基于avr单片机多功能函数信号发生器内容摘要:

,考虑到电路的简单和成本等因素,选用 ATMEL 公司的 ATmega64单片机作为处理器,它内含 64K 字节的系统可编程 Flash,其编程和擦除完全用电实现;其外部晶振为 20M,也就是做为时钟频率;并且价格低廉,运行速度快。 用 ATmega64,加上相应的时钟和复位电路就组成了最小系统,采用外接键盘操作控制输出三角波、正弦波、方波等波形,同时也可以用键盘方便的调整频率的变化,并且还可以将频率和波形显示到 TG12864 液晶显示屏上。 ATmega64 单片机用来实行某一波形发生程序,向由R2R 网络制作 成的 D/A 转换器的输入端发送数据,然后从 D/A 输出端输出一个小阶梯的波形,正弦波通过低通滤波器滤波得到平滑的波形。 同时使用 AVR 自带的 A/D 模数转换器采集从控制电压输出幅度的滑动变阻器出来的电压值并显示在液晶上。 从结构上来看,单片机函数发生器主要由单片机结构的计算机系统和各种功能接口组成。 本设计桂林电子科技大学毕业设计(论文)报告 第 4 页 共 43 页 系统的结构框图见图 图 硬件设计的结构框图 单片机 ATmega64 的简介 ATmega64 是 ATMEL公司生产的价格 便宜、资源丰富、功能强大的 AVR单片机。 该单片机具有 64K 的系统内可编程 FLASH、 2K 的 EEPROM, 4K 字节 SRAW,擦写可达 10 万次,可以用来存储状态信息, 4 个定时器 /计数器,可用来设置溢出中断、 53 个 IO 引脚,具有较大的电流驱动能力,可以直接驱动液晶显示器和数码管而省去驱动电路、面向字节的 TWI 串行接口,可以外挂其它设备节省 IO 口、 2 个可编程串行 USART接口支持全双工通用同步 /异步串行通信、 8 通道 10 位 A/D 通道, 具有片内振荡器的可编程看门狗定时器,一个 SPI 串行端口,与 标准 兼容的,可用于访问片上调试系统及编程的 JTAG 接口,以及六个可以通过软件进行选择的省电模式。 工作于空闲模式的 CPU 停止工作, AVR 单片机 液晶显示 4 4 矩阵键盘 R2R网络 运放 方波 低通滤波器 运放 正弦波 运放 三角波 PE0(RXD0/PDI)2PE1(TXD0/PDO)3PE2(XCK0/AIN0)4PE3(OC3A/AIN1)5PE4(OC3B/INI4)6PE5(OC3C/INT5)7PE6(T3/INT6)8PE7(IC3/INT7)9PB0(SS)10PB1(SCK)11PB2(MOSI)12PB3(MISO)13PB4(OC0)14PB5(OC1A)15PB6(OC1B)16PB7(OC2/OC1C)17PD0(SCL/INT0)25PD1(SDA/INT1)26PD2(RXD1/INT2)27PD3(TXD/INT3)28PD4(IC1)29PD5(XCK1)30PD6(T1)31PD7(T2)32TOSC2/PG318TOSC1/1PG419PG0(WR)33PG1(RD)34PG2(ALE)43PA0(AD0)51PA1(AD1)50PA2(AD2)49PA3(AD3)48PA4(AD4)47PA5(AD5)46PA6(AD6)45PA7(AD7)44PC0(A8)35PC1(A9)36PC2(A10)37PC3(A11)38PC4(A12)39PC5(A13)40PC6(A14)41PC7(A15)42PF0(ADC0)61PF1(ADC1)60PF2(ADC2)59PF3(ADC3)58PF4(ADC4/TCK)57PF5(ADC5/TMS)56PF6(ADC6/TDO)55PF7(ADC7/TDI)54PEN1RESET20XTAL223XTAL124VCC21VCC52AVCC64AREF62GND22GND53GND63图 Atmega64 的管脚图 桂林电子科技大学毕业设计(论文)报告 第 5 页 共 43 页 而 SRAW、 T/C、 SPI 端口以及中断系统继续工作; 掉电模式时晶体振荡器停 止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终止 CPU 和除了异步定时器与 ADC 以外所有 I/O 模块的工作,以降低 ADC 转换时的开关噪声; Standly 模式下只有晶振或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动的能力;扩展 Standly 模式下则允许振荡器和异步定时器继续工作。 Atmega64 引脚介绍 VCC 数字电路的电源 GND 地 A( PA7… PA0) 端口 A 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。 作为输入使用时,若内部上拉电阻使能,端口被外部电 路拉低时将输出电流。 在复位过程中,即使系统时钟还未起振,端口 A 处于高阻状态。 端口 A 也可以用做其他不同的特殊功能。 B( PB7… PB0) 端口 B 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。 作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。 在复位过程中,即使系统时钟还未起振,端口 B 处于高阻状态。 端口 B 也可以用做其他不同的特殊功能。 C( PC7… PC0) 端口 C 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性,可 以输出和吸收大电流。 作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。 在复位过程中,即使系统时钟还未起振,端口 C 处于高阻状态。 端口 C 也可以用做其他不同的特殊功能。 D( PD7… PD0) 端口 D 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。 作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。 在复位过程中,即使系统时钟还未起振,端口 D 处于高阻状态。 端口 D 也可以用做其他不同的特殊功能。 E( PE7… PE0) 端口 E 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。 作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。 在复位过程中,即使系统时钟还未起振,端口 E 处于高阻状态。 端口 E 也可以用做其他不同的特殊功能。 F( PF7… PF0) 端口 F 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。 作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。 在复位过程中,即使系统时钟还未起振,端口 D 处于高阻状态。 如果 JTAG 接口使能,即使复位出现引脚 PC7( TDI)、 PC5( TMS)桂林电子科技大学毕业设计(论文)报告 第 6 页 共 43 页 与 PC4( TCK)的上拉电阻被激活。 除去移出数据的 TAP 态外, TD0 引脚为高阻态。 端口 F 也是 JTAG 接口。 G( PG7… PG0) 端口 G 为 5 位双向 I/O 口,具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。 作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。 在复位过程中,即使系统时钟还未起振,端口 G 处于高阻状态。 端口 G 也可以用做其他不同的特殊功能。 RESET 复位输入引脚。 持续时 间超过最小门限时间的低电平引起系统复位。 XTAL1 反向振荡放大器与片内时钟操作电路的输入端。 XTAL2 反向振荡放大器输出端。 AVCC AVCC 是端口 F 与 A/D 转换器的电源。 不使用 ADC 时该引脚应该直接与 VCC 链接。 使用 ADC 时应通过一个低通滤波器与 VCC 连接。 AREF A/D 模拟基准输入引脚 PEN SPI 串行编程模式的编程使能引脚。 在上电复位时保持引脚为低,芯片进入 SPI 串行编程模式,在正常工作时 PEN 无效。 Atmega64I/O 特性分析 ( 1)分析 IO 引脚 Pxn。 DDRxn 只有为 1 时,可控单向开关才工作, PORTxn 的数值才能通过可控单向开关送到 Pxn。 结论: DDRxn=1 时,为输出状态。 输出值等于 PORTxn。 所以 DDRxn 为方向寄存器。 图 IO 口的内部结构图 桂林电子科技大学毕业设计(论文)报告 第 7 页 共 43 页 PORTxn 为数据寄存器。 ( 2)分析上拉电阻。 E 的电位为 0 时,即 D 为 1 时,上拉电阻有效。 从与门的输入分析,只有以下的条件同时满足时,上拉电阻才有效 PUD 为 0 DDxn 为 0 PORTxn 为 1 结论是:只有 DDxn=0 即管脚定义为输入状态,并且 PORTxn=1,而且 PUD 设置为0 时,上拉电阻才有效。 ( 3)分析 Pxn 及 SLEEP。 只有当 SLEEP=0 时,可控开关 2 才导通, SD1 不工作,施密特触发器的输入等于 Pxn,信号送到同步器后读取。 结论: Pxn 无论在输入或输出状态都能被 AVR 读取。 SLEEP=0 的输入才能读取。 ( 4) AVR 的 IO 端口的使用注意事项: 如果有引脚未被使用,建议这些引脚赋予一个确定电平。 最简单的保证未用引脚具有确定电平的方法是使能能部上拉。 如果定义了引脚的输入状态,就要立即回读,可以在回读前,插入一句 _nop()。 系统复位时, DDR 全为 0, Port 也全部为 0,故上拉电阻在复位时会失效。 电源模块设计 本设计中,采用的是三固稳压电源,三端固定稳压器的主要特点:输出稳定性好、使用方便、输出过流、过热自动保护。 其中, CW78XX 系列稳压器输出固定的正电压,如 7805 输出为 +5V。 CW79XX 系列稳压器输出固定的负电压,如 7905 输出 5V。 输入与输出端之间的电压不得低于 3V;输入端接电容 E1 、 E2 可以进一步滤除纹波,输出端电容 E E4, C C2 能改善负载的瞬态影响,使电路稳压工作。 键盘模块设计 在计算机控制系统 中,数据和控制信号的输入主要使用键盘。 键盘接口,尤其是键入信号的软件处理方法是影响系统使用和操作性能的重要因素。 键盘接口及其软件的任务主要有以下几个方面: ( 1)检测并判断是否有按键按下; ( 2)按键开关的延时消抖功能; ( 3)计算并确定按键的健值; ( 4)根据计算出键值进行一系列的动作处理和实行。 一般常用的键盘设 计有:独立式键盘和矩阵式键盘。 ( 1)独立键盘 在单片机控制系统中,常常只需要到功能键。 少量的功能键一般采用独立式结构,独立式按键是各个按键相互独立的接通一条输入数据线,每个键的工作不会影响其它的I/O 口。 这是较简单的键盘结构。 当某一个键闭合时,相应的 I/O 口线电平变化(高电平或者低电平)。 当程序检测到变化的 I/O 口线电平时,就可以执行相应的功能。 这种键盘的优点是电路简单;缺点是当键数较多时,要占用较多的 I/O 线。 桂林电子科技大学毕业设计(论文)报告 第 8 页 共 43 页 ( 2)矩阵式键盘: 矩阵式键盘的按键按 N 行 M 列,每个按键占据行列的一个交点,需要的 IO 口数 目是 N+M,容许的最大按键数是 N M。 显然,矩阵式键盘可以减少与微机接口的连线数,简化电路结构。 本设计使用到的键盘较多,因而使用矩阵式键盘。 显示模块 方案一:使用液晶显示屏显示转换结果。 液晶显示屏( TG12864)具有轻薄短小,平面显示以及影像稳定不闪烁等优势,能显示汉字及各种符号,可以绘制曲线和简单的图像,分辨率高,抗干扰能力强和显示形式灵活等优点。 方案二:使用传统的数码显示管。 数码管( LED)受外界环境影响小,显示明。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。