第24卷第7期Vo.l 24No .7荆楚理工学院学报Jo u rnal of Ji ngchu University of Technol ogy 2009年7月Ju.l 2009[收稿日期]2009-06-17[作者简介]汤剑锋(1964-),男,福建华安人,漳州职业技术学院讲师。
研究方向:电子技术应用。
AT mega128单片机仿真系统设计及实现汤剑锋(漳州职业技术学院电子工程系,福建漳州 363000)[摘 要] 本仿真系统采用ATm ega128单片机作为控制核心,利用其强大的兼容性和处理能力,以及丰富的接口等特点使整个系统的电路结构简单、可靠性高。
ATm ega128单片机仿真系统的硬件部分由电源电路、复位电路、晶振电路、模/数转换滤波电路、ISP 下载接口电路、J T AG 仿真接口电路、蜂鸣器驱动电路、MAX232串口模块、按键模块以及各种显示模块组成。
[关键词] AT m ega128;单片机;仿真系统[中图分类号] TN702 [文献标识码] A [文章编号] 1008-4657(2009)07-0025-070 引言ATmega128为基于AVR R IS C 结构的8位低功耗C MOS 微处理器。
由于其先进的指令集以及单周期指令执行时间,AT mega128的数据吞吐率高达1M I PS/M H z ,从而可以缓减系统在功耗和处理速度之间的矛盾。
ATmega128具有如下特点:128K 字节的系统内可编程F lash(具有在写的过程中还可以读的能力,即R WW )、4K 字节的EEPRO M 、4K 字节的S RA M 、53个通用I/O 口线、32个通用工作寄存器、实时时钟RTC 、4个灵活的具有比较模式和P WM 功能的定时器/计数器(T /C)、两个US ART 、面向字节的两线接口T W I 、8通道10位ADC(具有可选的可编程增益)、具有片内振荡器的可编程看门狗定时器、S PI 串行端口、与I EEE 1149.1规范兼容的J T AG 测试接口(此接口同时还可以用于片上调试),以及六种可以通过软件选择的省电模式。
A t m ega128采用了A t m el 的高密度非易失性内存技术,片内Flash 可以通过SPI 接口+通用编程器,或通过JT AG 接口,或使用自引导B OOT 程序进行编程和自编程。
利用自引导BOO T 程序,可以使芯片在工作过程中通过任一硬件串行通信接口下载应用程序,并写入到F lash 的应用程序区中(I A P)。
在更新F lash 的应用程序区数据时,处在Flash 的BO OT 区中的自引导程序将继续执行,实现了同时读/写(Read-W hile-W r ite)的功能(芯片自编程功能)。
由于将增强R I SC 8位CPU 与在系统编程和在应用编程的F lash 存储器集成在一个芯片内,AT mega128成为功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。
ATmega128具有整套的开发工具,包括C 编译器,宏汇编,程序调试器/仿真器和评估板。
1 仿真系统基本硬件线路设计1.1 电源电路的设计电源电路如图1所示。
本仿真系统的电源电路采用两种方式:1)电脑USB 取电,由电脑通过USB 接口给仿真系统提供+5V 电源,省掉了电源模块,使仿真系统使用更为简便,稳定性更高。
该方式适合在调试软件时使用。
25图1 电源电路2)稳压电源供电,该种方式主要是通过L M 7805稳压、电容滤波后给仿真系统提供+5V 电源。
该方式可解决无电脑时的取电问题。
1.2 复位电路的设计复位电路的基本功能是系统上电时提供复位信号直至系统电源稳定后撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
复位电路的设计如图2所示。
AT mega128已经内置了上电复位设计,并且在熔丝位里,可以控制复位时的额外时间,故仿真系统外部的复位线路在上电时,可以设计得很简单:直接拉一只4K7的电阻到VCC 即可(R2)。
为了可靠,再加上一只0.1uF 的电容(C3)以消除干扰、杂波。
D2(1N 4148)的作用有两个:1)将复位输入的最高电压钳在Vcc+0.5V 左右;2)系统断电时,将R2(4K7)电阻短路,让C3快速放电,以便下一次来电时,能产生有效的复位。
当ATmega128在工作时,按下S1开关,复位脚变成低电平,触发AT 2mega128芯片复位。
1.3 晶振电路的设计晶振电路如图3所示。
AT mega128已经内置RC 振荡线路,可以产生1M 、2M 、4M 、8M 的振荡频率。
不过,内置的毕竟是RC 振荡,在一些要求较高的场合,比如要与RS232通信需要比较精确的波特率时,建议使用外部的晶振线路。
早期的90S 系列,晶振两端均需要接22pF 左右的电容。
AT m ega 系列实际使用时,这两只小电容不接也能正常工作。
不过为了线路的规范化,我们仍建议接上。
1.4 AD 转换滤波线路的设计图4 AD 转换滤波电路AD 转换滤波电路如图4所示。
AT mega128有一个10位的逐次逼近型ADC 。
ADC 与一个8通道的模拟多路复用器连接,能对来自端口A 的8路单端输入电压进行采样。
为减小AD 转换的电源干扰,ATmega128芯片有独立的AD 电源供电。
官方文档推荐在VCC 串上一只10u H的电感,然后接一只0.1uF 的电容到地。
ATmega128内带2.56V 标准参考电压,也可以从外面输入参考电压。
不过一般的应用使用内部自带的参考电压已经足够。
习惯上在AREF 脚接一只0.1uF 的电容到地。
说明:实际应用时,如果想简化线路,可以将AVCC 直接接到VCC ,AREF 悬空,即这部分不需要任何的外围零26件。
1.5I SP下载接口设计图5ISP下载接口电路ISP下载接口电路如图5所示。
ISP下载接口,不需要任何的外围零件。
使用双排2@5插座。
由于没有外围零件,故PE0(MOSI)、PE1(M IS O)、PB1(SC K)、复位脚仍可以正常使用,不受I SP的干扰。
说明:实际应用时,如果想简化零件,可以不焊接2@5座。
但在PCB设计时最好保留这个空位,以便以后升级ATmega128内的软件。
1.6J TAG仿真接口设计图6J TAG仿真接口电路J TAG仿真接口电路如图6所示。
J T AG仿真接口也是使用双排2@5插座。
需要四只10K的上拉电阻。
1.7M AX232串口电路设计图7MAX232串口电路ATmega128单片机有两个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。
进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是T TL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但还是用专用芯片更简单可靠。
我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的T XD。
电路如图7所示,M AX232的第10脚为TXD脚,第9脚为RXD脚。
271.8基本显示模块电路设计1)液晶显示模块图812864液晶串行接口方式接线TS12864液晶显示模块是采用控制芯片S T7920来控制显示的。
该显示器能够使用串口和并口两种接线方式。
ST7920是一种内置128*64-12汉字图形点阵的液晶显示控制模块,用于显示汉字及图形。
该芯片共内置8192个中文汉字(16@16点阵)、128个字符的ASCII字符库(8@16点阵)及64@256点阵显示RA M(GD RA M).为了能够简单、有效地显示汉字和图形,该模块内部设计有2MB的中文字型CGRO M和64@256点阵的GDRA M绘图区域;同时,该模块还提供有4组可编程控制的16@16点阵造字空间;除此之外,为了适应多种微处理器和单片机接口的需要,该模块还提供了4位并行、8位并行、2线串行以及3线串行等多种接口方式。
在这里,采用的是2线串行接口方式,即一根时钟线(SCL K)、一根数据线(SI D)。
12864液晶串行接口方式如图8所示。
2)数码管及L ED模块图9数码管驱动电路及LED电路数码管驱动电路及L ED电路如图9所示。
数码管采用一体式四位8字共阴LED管,虽然AT2 mega128I/O口具有很强的驱动能力可以直接驱动LED发亮,但是为了更清楚地显示,本仿真系统采用四只8550三极管来驱动LED管。
显示时可采用扫描的方式来分别显示四个数值。
其原理是根据人眼存在着一种叫做/视觉惰性0的特性,视觉惰性也称视觉暂留,指的就是人眼的亮度感觉并不会随着物体亮度的消失而立即消失。
利用这个特性,在这一定时间内分别对D1-D4输出低电平并给予相对应的值,就完成了对数码管赋值的过程。
281.9键盘电路设计1)4*4键盘电路由于AT mega128是真正双向I O口,所以可采用线翻转法进行键盘扫描。
即先设D0-3为输出,D4 -7为输入状态。
扫描时D0-3输出高电平,D4-7接收,然后把接收的值存入A中。
如果A的值为0的话,表示没有按键按下,跳出扫描。
如果A的值为非0,则设D0-3为输入,D4-7为输出,扫描时D4 -7输出高电平,D0-3接收,接收的值存入B中。
然后把B做高4位A做低4位存入C中,再按C的值进行键值查寻。
因此可以不另接VCC或G ND。
4*4键盘电路如图10所示。
图104*4键盘电路2)外部中断按键电路图11外部中断按键电路外部中断按键电路如图11所示。
按键按下时输出一个低电平信号,可做外部中断按钮使用。
AT2 mega128拥有8个外部中断,中断可以由下降沿、上升沿,或者是低电平触发。
为了避免因按键按下或松开时的机械抖动所引起的错误中断,可以把中断敏感电平控制设为低电平时产生中断请求。
1.10蜂鸣器驱动电路B1输入的信号经三极管功率放大后,驱动蜂鸣器发了声音。
可实现声音报警、演奏乐曲等仿真实验。
蜂鸣器驱动电路如图12所示。
图12蜂鸣器驱动电路2仿真系统的调试ATmega128的开发平台有AVR Stud i o、I CC AVR、GCC AVR(W i n AVR)、I A R AVR等,这里使用的是I C C AVR+AVR Stud i o。
I CC AVR是I M AGE CRAFT提供的一款低成本高性能的C语言编译器,其包29括了C编译器和I D E集成编译环境。
A VR Stud i o是AT MEL公司免费提供的一个用于开发AVR系列单片机的集成工作环境,包括了AVR A sse mb ler编译器、AVR Stud i o调试功能、A VR Prog串行、并行下载功能和JT AG I CE仿真等功能。