基于单片机辅助的音频功率放大器-googlecode内容摘要:
) 基本输入输出端口 3,输出端:至显示模块 74164 数据线。 14) 基本输入输出端口 4,输出端:显示模块 74164 时钟线。 15) 基 本输入输出端口 5,输出端:显示模块的数码管片选线。 3. 元器件选用 1) PIC16F818 简介: 基于上述需求与大量筛选,本例中使用 PIC16F818单片机作为核心的控制元件。 PIC16F818 是一片带 A/D 转换及微功耗纳瓦技术的单片机芯片,使用取指令和执行指令并行的哈佛总线结构以及只有 35 条单字指令的精简指令集。 可以通过 JDM 编程器 1进行软件编程。 硬件资源 2:具有 字节程序存储单元 (Program Memory); 128 字节的数据存储器 (RAM); 128 字节非易失性数据存储器 (EEPROM); 16 个基本 输入输出引脚;2 个 8 位、 1 个 16 位定时 /计数器; 1 个增强型捕捉 /比较 /PWM 模块; 1 个 10 位 5通道 A/D 转换器;并且支持 SPI/I2C 串行通讯技术以及欠压复位、看门狗、休眠模式等其他资源。 通过大量的引脚复用技术将所有功能集合于一个 18 脚的芯片中。 在本电路中,单片机工作在 20MHz 时钟频率上。 指令周期 (5MHz)。 典型工作电压 5V,不带负载电流 ~(20MHz,5V),休眠状态最小电流 200nA(2V)。 单片机基本输入输出引脚数, AD 转换器数目,程序存储单元, EEPROM,指令执行速 度等均合乎要求,不缺少且不过于浪费。 是较佳的选择。 2) 电子音量控制控制模块: 1 JDM 编程器是 Jens Dyekjar Madsen 设计的一个简易的单片机编程器,此文的 PIC 单片机编程器完全根据 里面的电路制作而成。 2 数据来源自此芯片生产商 Mircochip 公司的 PIC16F818/819 数据手册。 中山大学新华学院学位论文 张润华 9 本电路使用 M64629 进行电子音量调整,其工作状态由单片机控制。 M64629是串行控制双通道电子音量控制芯片。 可控音量范围【 0~83dB(步长 1dB), ∞】。 其中通过将对数据输入引脚注入控制串行数据流来控制 M64629 的工作状态。 3) 当前音量数码显示模块: 本文音量值需要显示在一个两位数码管中。 一般的解决方案有三种: 第一种是全静态显示,单片机给每个数码管引出 8 只脚,根据段码设置各引脚高低即可。 编程最简单,但这种方法驱动 4 个数码管 单片机引出 8 个段驱动 x4=32只脚,非常浪费单片机资源,极少使用; 第二种是数码管片选动态显示,将所有数码管的 ag 段连起来接到单片机的 8个引脚,数码管公共极接到二 十进制译码器的输出端。 通过公共端控制每时刻只开启一个数码管,并以超过人眼可分辨的频率轮流开启不同位的数码管。 接数码管段的 8 个引脚输出相应时刻的段码。 由于视觉暂留特性,人眼将看到四个数码管同时显示不同数字。 这是最常见的方法。 编程稍复杂。 驱动 4 个数码管单片机需要引出8 个段驱动 +2 个片选 =10 只脚; 第三种是数码管段动态显示,通过 74164 串 并行转 换芯片将段驱动的八只脚串行化。 使用 8 个周期将段码输出到 74164 后锁定,同时通过片选信号将数字显示到相应位上。 这种方法最为复杂,器件也要求最高速度。 但是引脚占用最少。 驱动 4个数码管单片机只需要引出 1 个串行段码输出 +1 个时钟输出 +2 个片选 =4 只脚。 如果将片选信号也串行化 (使用移位寄存器 )而且时钟足够快的话,理论上几只引脚就能驱动十几位数码管。 本文由于 PIC16F818 属于高速少引脚器件。 只能使用第三种方法, 74164 时钟和串行输入端分别接单片机的引脚 RB6,RB7,数码管公共端接 RB4,RB5 静态片选。 具体 电路可见总原理图。 4) 按钮检测模块: 本电路由于单片机引脚紧张,按钮检测通过接通不同的电阻组合产生相应的电压信号。 输入到单片机中进行 A/D 转换得到不同按钮值。 这种方法可以实现一条线上复用多个按钮,不过考虑到按钮用久了可能会产生电阻变化,所以本电路使用了近似值检测,即允许按钮电阻值在一定范围内变化。 在实际的软件实现上非常简单,只需要将 A/D转换的结果部分低位置 0 即可。 即如某个键期望 A/D值是 10110010B,中山大学新华学院学位论文 张润华 10 检测时我们先将低 4 位置 0,那么只要结果为 10110000B~10111111B 之间都会得到10110000B。 当结果是这个值就判定这个按键按下了。 这样就允许按钮有一定程度的电阻误差了。 5) 音频放大器连接模块: 由于本文的主题是音频放大器的辅助电路,所以单片机部分要与音频放大器主体建立桥梁,使单片机发出的指令能作用音频放大器上。 由于音频放大器的工作电压一般比单片机的要高很多。 音频放大器一般工作在双电源 177。 15~50V,单片机只有单电源 5V。 所以必须区分两者之间的电源。 并且由音频放大器原理可知,输入输出信号的参考点都是双电源的中点地。 所以单片机与音频放大器必须共地,控制才能做到最简便。 输出方面:单片机的大电流开关操 作要通过晶体管扩流或者控制继电器间接作用到放大器上;而数字量与模拟量的转换用 M64629 完成。 输入方面:输出中点电压、负载电流等检测均使用 A/D 转换或者使用部分外围电路先进行信号类型和电压转换再输入单片机。 总而言之,要将所有检测控制信号通过接口电路转换成与单片机可识别的 0~5v 电压,可承受的 25mA 电流内。 6) 硬件电路原理图: 综合上述想法,得到最终的电路原理总图 见附录 1。 六、 单片机软件设计 工作流程: 由于电路需要长时间工作,所以总体设计思想必须将单片机执行于无限循环中。 在一次循环中,必须完成所有的检测调整工 作。 并且由于按键事件,过载事件等事件是不定时发生的,所以代码执行中途遇到不定事件则转去中断处理程序。 处理完毕之后回到原来的无限循环中。 遇到代码执行错误导致崩溃时使用单片机看门狗进行复位操作。 下面列出软件总流程 (由于图片太大,请见附录)。 下面就按照流程顺序各部分详细分析: 1. 开机延时 3 秒部分 等待系统准备完毕检测好中点电压才接通喇叭。 使用 Timer0 实现较长时间延时,并且控制开机等待指示灯闪动 4 次,指示灯接 RB3。 单片机时钟时钟频率中山大学新华学院学位论文 张润华 11 fc=20MHz,指令频率 f=1/4fc=5MHz=5x106Hz,指令周期。 在此定时器分频比设置为 div=256,使用双重循环计数。 一层循环 a=256,二层循环为 b= fc /(div*a)= 5x106/(256*256)≈76。 具体代码:。 函数名称: Delay_3s。 功能描述:延时 3 秒启动系统,期间呼吸灯闪 4 次,计时完成之后接通喇叭继电器。 Delay_3s BSF OPTION_REG,0。 分频比 256 BSF OPTION_REG,1 BSF OPTION_REG,2 BCF INTCON,T0IF MOVLW 0xE5。 外循环 76 次 ,用时 1s CLRF TMR0。 重置 TMR0 MOVWF Delay_3s_Cnt Delay_3s_1 BTFSS INTCON,T0IF GOTO Delay_3s_1。 呼吸灯开始 BTFSC Delay_3s_Cnt,6。 3 秒内 ,呼吸灯闪 4 次 BCF PORTB,1 BTFSS Delay_3s_Cnt,6 BSF PORTB,1。 呼吸灯结束 DECFSZ Delay_3s_Cnt,1 GOTO Delay_3s_1 END 2. 键盘检测部分 1) 通过 AD 中断开始检测按钮按下情况,然后开始检测按按钮工作。 2) 音量升 /降按钮:按钮 100ms~ 3s 属于短按,音量变化 1dB,触发一次;按钮 3~ 5s 属于中按,音量变化 3dB/s 连发;按钮 5s 属于长按,音量变化 5dB/s 连发。 中山大学新华学院学位论文 张润华 12 3) 静音按钮:按下静音按钮立即静音,再按一次 20dB/s 渐变升回原音量。 单片机上电时不启用静音。 4) 电源按钮:单片机上电时关机,按一次电源按钮启动,再按关机。 开关操作都以 20dB/s 速度渐入渐出改变音量。 函数名称: Key_Scan。 输入参数:原有按键时间值 Key_AD_Count。 输出参数:按键值 Key_Record,按键时间值 Key_AD_Count。 功能描述:按键扫描, 扫描一次,总共次数累计于 Key_AD_Count。 如果结果不为 0,结果放 Key_Record。 Key_Scan BCF Key_Record,0。 置转换成功标志 0 BCF STATUS,RP0。 体 0 BSF ADCON0,2。 开启 A/D Wait_AD BTFSS PIR1,6。 等待 A/D 完成 GOTO Wait_AD BTFSC ADRES,7。 如果 A/D 结果高 4 位全为 0 则舍弃,本次扫描没有检测到键 GOTO Key_Scan_Success BTFSC ADRES,6 GOTO Key_Scan_Success BTFSC ADRES,5 GOTO Key_Scan_Success BTFSC ADRES,4 GOTO Key_Scan_Success GOTO Key_Scan_0 Key_Scan_Success MOVF ADRES,W。 A/D 值到 W ANDLW B39。 1111100039。 低位 置 0 舍弃,防止按键不稳干扰 XORWF Key_Record,W。 新旧按键值对比 中山大学新华学院学位论文 张润华 13 BTFSC STATUS,Z。 测试异或结果,新旧按键不同则重置计数 GOTO Key_Scan_0 INCF Key_AD_Count。 如果相同计数 +1 NO_Recount MOVF ADRES,W。 更新按键记录 ANDLW B39。 1111100039。 低位 置 0 舍弃,防止按键不稳干扰 MOVWF Key_Record。 本次 AD 扫描结果放 Key_Record,本次扫描成功 检测键值结束 BSF Key_Record,0。基于单片机辅助的音频功率放大器-googlecode
相关推荐
CSG4110012020 5 对 WHS 质量控制点,监理检查采用现场复核方式,因特殊原因不能及时到场的,施工项目部应提供录像、数码照片和施工记录作为检查复核依据。 公司鼓励各单位对 WHS 质量控制点拍摄数码照片 并存档。 工程质量 WHS 控制点 工程 WHS 控制点专业分布 本标准共设置质量控制点 312 个,包括 W 点 166 个、 H 点 90 个、 S点 56 个。 其中:
表 H009 41 阀外水冷系统设备安装 W045 表 W045 42 阀内水冷系统 设备安装 W046 表 W046 43 直流接地极馈电棒 H010 表 H010 土建 工程质量控制点 序号 质量控制点 控制方式及编号 WHS 表格编号 1 定位放线 W047 表 W047 2 土方开挖 H011 表 H011 表 H0112 3 土方回填 H012 表 H012
—— 以粘土类及其它天然矿物岩石为原料,经加工烧制成的上釉或不 上釉硅酸盐制品(如日用陶瓷、建筑卫生陶瓷、普通电瓷等)。 胎 —— 经高温烧成后构成陶瓷制品的非釉、非化妆土砾袭玉茅秆矩郧崖俘倚葫守仁铰扑拥挖汁缕步吃境各护协您抄吠怀攀沫溺森医裸噪哉冷峭库毒粕征促牢腋役消摆僻颤篇镐庇涛禹酗淮签秀案育艳占 [最新 ]陶瓷工艺学试题库 23 陶瓷工艺学试题库一.名词术语解释陶瓷制品 ——
键盘输入检测模块 LCD显示模块; 算术运算模块 错误处理及提示模块。 4 总体程序框图 系统总体 框图 设计 单片机课程设计 12 开始 初始化参数 初始化 LCD 显示 有键输入。 读取键码 LCD 显示 数字键 清零键 功能键 状态清零 输入数值 数值送显示缓冲 Y N 等待数值输入 结果送显示缓冲 根据上 次功能键和输入的数据计算结果 本次功能键。 等待数值输入 结果送显示缓冲
另外一般在三端稳压器的输入输出端接一个二极管,用来防止输入端短路时 ,输出端存储的电荷通过稳压器 ,而损坏器件。 图 23 电源电路原理图 显示器 DRIVER 根据需要显示当前时间、用户设置的闹钟时间 或用户通过键盘输入的新时间,同时判断当前时间是否已到 了闹钟时间,实际上是一个多路选择比较器。 多路选择器是数据选择器的别称。 在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做
池组中各单体电池的最高充电电压也有差别,因此采用这种方法不可能非常准确地判断电池己足充电。 电压负增量 (- △ V):由于电池电压的负增量与电池组的绝对电压无关,而且不受环境温度和充电速率等因素影响,因此可以比较准确地判断电池己充足电。 这种控制方法的缺点是: ① 从多次快速充电实验中发现,电池充足电之前,也有可能出现局部电压下降的情况,使电池在未充足电时,由于检测到了负增量而停止快充; ②