JournalofJingchuUniversityofTechnology2009年7月Ju.l2009
ATmega128单片机仿真系统设计及实现
汤剑锋
(漳州职业技术学院电子工程系,福建漳州 363000)
[摘 要] 本仿真系统采用ATmega128单片机作为控制核心,利用其强大的兼容性和处理能力,以及丰富的接口等特点使整个系统的电路结构简单、可靠性高。ATmega128单片机仿真系统的硬件部分由电源电路、复位电路、晶振电路、模/数转换滤波电路、ISP下载接口电路、JTAG仿真接口电路、蜂鸣器驱动电路、MAX232串口模块、按键模块以及各种显示模块组成。
[关键词] ATmega128;单片机;仿真系统
[中图分类号] TN702 [文献标识码] A [文章编号] 1008-4657(2009)07-0025-07
0 引言
ATmega128为基于AVRRISC结构的8位低功耗CMOS微处理器。由于其先进的指令集以及单周期指令执行时间,ATmega128的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
ATmega128具有如下特点:128K字节的系统内可编程Flash(具有在写的过程中还可以读的能力,即RWW)、4K字节的EEPROM、4K字节的SRAM、53个通用I/O口线、32个通用工作寄存器、实时时钟RTC、4个灵活的具有比较模式和PWM功能的定时器/计数器(T/C)、两个USART、面向字节的两线接口TWI、8通道10位ADC(具有可选的可编程增益)、具有片内振荡器的可编程看门狗定时器、SPI串行端口、与IEEE1149.1规范兼容的JTAG测试接口(此接口同时还可以用于片上调试),以及六种可以通过软件选择的省电模式。
Atmega128采用了Atmel的高密度非易失性内存技术,片内Flash可以通过SPI接口+通用编程器,或通过JTAG接口,或使用自引导BOOT程序进行编程和自编程。利用自引导BOOT程序,可以使芯片在工作过程中通过任一硬件串行通信接口下载应用程序,并写入到Flash的应用程序区中(IAP)。在更新Flash的应用程序区数据时,处在Flash的BOOT区中的自引导程序将继续执行,实现了同时读/写(Read-While-Write)的功能(芯片自编程功能)。由于将增强RISC8位CPU与在系统编程和在应用编程的Flash存储器集成在一个芯片内,ATmega128成为功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。
ATmega128具有整套的开发工具,包括C编译器,宏汇编,程序调试器/仿真器和评估板。
1 仿真系统基本硬件线路设计
1.1 电源电路的设计
电源电路如图1所示。本仿真系统的电源电路采用两种方式:
1)电脑USB取电,由电脑通过USB接口给仿真系统提供+5V电源,省掉了电源模块,使仿真系统使用更为简便,稳定性更高。该方式适合在调试软件时使用。
[收稿日期]2009-06-17
[作者简介]汤剑锋(19-),男,福建华安人,漳州职业技术学院讲师。研究方向:电子技术应用。
25图1 电源电路
2)稳压电源供电,该种方式主要是通过LM7805稳压、电容滤波后给仿真系统提供+5V电源。该方式可解决无电脑时的取电问题。
1.2 复位电路的设计
复位电路的基本功能是系统上电时提供复位信号直至系统电源稳定后撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。复位电路的设计如图2所示。ATmega128已经内置了上电复位设计,并且在熔丝位里,可以控制复位时的额外时间,故仿真系统外部的复位线路在上电时,可以设计得很简单:直接拉一只4K7的电阻到VCC即可(R2)。为了可靠,再加上一只0.1uF的电容(C3)以消除干扰、杂波。D2(1N4148)的作用有两个:1)将复位输入的最高电压钳在Vcc+0.5V左右;2)系统断电时,将R2(4K7)电阻短路,让C3快速放电,以便下一次来电时,能产生有效的复位。
当ATmega128在工作时,按下S1开关,复位脚变成低电平,触发AT2mega128芯片复位。1.3 晶振电路的设计
晶振电路如图3所示。ATmega128已经内置RC振荡线路,可以产生1M、2M、4M、8M的振荡频率。不过,内置的毕竟是RC振荡,在一些要求较高的场合,比如要与RS232通信需要比较精确的波特率时,建议使用外部的晶振线路。
早期的90S系列,晶振两端均需要接22pF左右的电容。ATmega系列实际使用时,这两只小电容不接也能正常工作。不过为了线路的规范化,我们仍建议接上。
1.4 AD转换滤波线路的设计
AD转换滤波电路如图4所示。ATmega128有一个10位的逐次逼近型ADC。ADC与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。
为减小AD转换的电源干扰,ATmega128芯片有的AD电源供电。官方文档推荐在VCC串上一只10uH的电感,然后接一只0.1uF的电容到地。
ATmega128内带2.56V标准参考电压,也可以从外面输入参考电压。不过一般的应用使用内部自带的参考电压已经足够。习惯上在AREF脚接一只0.1uF的电容到地。
说明:实际应用时,如果想简化线路,可以将AVCC直接接到VCC,AREF悬空,即这部分不需要任何的外围零26图4 AD转换滤波电路
件。
1.5 ISP下载接口设计
图5 ISP下载接口电路
ISP下载接口电路如图5所示。ISP下载接口,不需要任何的外围零件。使用双排2@5插座。由于没有外围零件,故PE0(MOSI)、PE1(MISO)、PB1(SCK)、复位脚仍可以正常使用,不受ISP的干扰。说明:实际应用时,如果想简化零件,可以不焊接2@5座。但在PCB设计时最好保留这个空位,以便以后升级ATmega128内的软件。1.6 JTAG仿真接口设计
图6 JTAG仿真接口电路
JTAG仿真接口电路如图6所示。JTAG仿真接口也是使用双排2@5插座。需要四只10K的上拉电阻。
1.7 MAX232串口电路设计
图7 MAX232串口电路
ATmega128单片机有两个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。电路如图7所示,MAX232的第10脚为TXD脚,第9脚为RXD脚。
271.8 基本显示模块电路设计
1)液晶显示模块
图8 128液晶串行接口方式接线
TS128液晶显示模块是采用控制芯片ST7920来控制显示的。该显示器能够使用串口和并口两种接线方式。
ST7920是一种内置128*-12汉字图形点阵的液晶显示控制模块,用于显示汉字及图形。该芯片共内置8192个中文汉字(16@16点阵)、128个字符的ASCII字符库(8@16点阵)及@256点阵显示RAM(GDRAM).为了能够简单、有效地显示汉字和图形,该模块内部设计有2MB的中文字型CGROM和@256点阵的GDRAM绘图区域;同时,该模块还提供有4组可编程控制的16@16点阵造字空间;除此之外,为了适应多种微处理器和单片机接口的需要,该模块还提供了4位并行、8位并行、2线串行以及3线串行等多种接口方式。
在这里,采用的是2线串行接口方式,即一根时钟线(SCLK)、一根数据线(SID)。128液晶串行接口方式如图8所示。2)数码管及LED模块
图9 数码管驱动电路及LED电路
数码管驱动电路及LED电路如图9所示。数码管采用一体式四位8字共阴LED管,虽然AT2mega128I/O口具有很强的驱动能力可以直接驱动LED发亮,但是为了更清楚地显示,本仿真系统采用四只8550三极管来驱动LED管。显示时可采用扫描的方式来分别显示四个数值。其原理是根据人眼存在着一种叫做/视觉惰性0的特性,视觉惰性也称视觉暂留,指的就是人眼的亮度感觉并不会随着物体亮度的消失而立即消失。利用这个特性,在这一定时间内分别对D1-D4输出低电平并给予相对应的值,就完成了对数码管赋值的过程。281.9 键盘电路设计
1)4*4键盘电路
由于ATmega128是真正双向IO口,所以可采用线翻转法进行键盘扫描。即先设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或GND。4*4键盘电路如图10所示。
图10 4*4键盘电路
2)外部中断按键电路
图11 外部中断按键电路
外部中断按键电路如图11所示。按键按下时输出一个低电平信号,可做外部中断按钮使用。AT2mega128拥有8个外部中断,中断可以由下降沿、上升沿,或者是低电平触发。为了避免因按键按下或松开时的机械抖动所引起的错误中断,可以把中断敏感电平控制设为低电平时产生中断请求。1.10 蜂鸣器驱动电路
B1输入的信号经三极管功率放大后,驱动蜂鸣器发了声音。可实现声音报警、演奏乐曲等仿真实验。蜂鸣器驱动电路如图12所示。
图12 蜂鸣器驱动电路
2 仿真系统的调试
ATmega128的开发平台有AVRStudio、ICCAVR、GCCAVR(WinAVR)、IARAVR等,这里使用的是ICCAVR+AVRStudio。ICCAVR是IMAGECRAFT提供的一款低成本高性能的C语言编译器,其包
29括了C编译器和IDE集成编译环境。AVRStudio是ATMEL公司免费提供的一个用于开发AVR系列单片机的集成工作环境,包括了AVRAssembler编译器、AVRStudio调试功能、AVRProg串行、并行下载功能和JTAGICE仿真等功能。
为了方便调试该仿真系统的各个模块,利用ICC编译器把各个模块的调试程序集合成一个系统。这样只要用四个中断按键就可调试各个模块,避免每调试一个模块就要重新烧写一个程序。2.1 显示模块的调试
液晶在调试系统中起人机对话的作用,所有的操作过程都是按照液晶上显示的画面来执行的。在本仿真系统中,ATmega128以串口数据线模式向液晶传输数据,即单片机通过一根时钟线(SCLK)、一根数据线(SID)按照一定通讯协议向液晶的控制芯片发送数据。数据传输过程如图13所示。
图13 串口数据线模式数据传输过程
2.2 MAX232串口模块的调试
该模块在调试时因仿真系统要与上位机进行串口数据通信,所以需借助于上位机上的串口调试软件。在调试仿真系统从串口接收数据的功能时,主要是通过上位机上的串口调试软件向串口发送不同的数据,在ATmega128通过MAX232串口模块接收并校验无误后,即可对这些数据进行处理。在本次调试中,仿真系统根据接收进来的数据内容执行预先编好的程序,最后通过液晶、LED、数码管等不同的显示模块显示不同的效果。在调试仿真系统向串口发送数据的功能时,通过按不同的键盘按键,仿真系统会向串口发送不同的数据,发送时ATmega128会自动给这些数据加上校验信号。当上位机接收并校验无误后,会通过串口调试软件的数据接收窗口显示本次接收到的数据。如图14所示。
图14 串口调试软件
2.3 模/数转换模块的调试
在调试仿真系统模/数转换模块时,因器件外部和内部的数字电路会产生电磁干扰,并会影响模拟测量的精度,所以除硬件上要加滤波电路外,在转换过程中还需进行软件数字滤波以提高模拟测量的精30度。另外,ADC有一个噪声抑制器,使其可以在睡眠模式下进行转换,从而降低了由于MCU内核及外围I/O设备的噪声所造成的影响。噪声抑制器可以在ADC降噪模式及空闲模式下使用。
2.4 蜂鸣器模块的调试
蜂鸣器不仅可以输出简单的嘀声,还可以输出各种不同频率的音乐声。为了输出准确的音阶频率,需要用定时器输出来控制蜂鸣器的驱动。ATmega128在每一次定时器中断溢出时取反输出信号,以形成频率驱动蜂鸣器。在调试中使用定时器1,定时器1工作在16位方式,需要在中断里重新置入初始值。这个值就决定了信号输出的频率。因此可以在程序里先做好一张表,预先写好每个音阶的频率所需要设置的初始值。到时调入对应的值进定时器1,不断溢出时就可以输出对应的频率。
为了让仿真系统能够以乐谱的方式播放音乐,增加了2个比较复杂的函数,一个乐谱解释函数,一个音乐播放函数。乐谱以一个自己定义的乐谱形式写好,作为一个预定义的字符串。再通过乐谱解释函数解释为/音符频率的序号0和/音符播放的时间0两个数组,在音乐播放函数中,就将音符频率的序号数组对应的频率送入定时器预置数中,再延时对应音符播放的时间。这样音乐就播放出来了。
3 结束语
本ATmega128仿真系统不仅可以作为一个应用系统来使用,而且也可以做为一个编程器和仿真器来使用,它可以在不同的条件下,通过外接扩展不同的模块来仿真不同的实验。该仿真系统的电路结构简单、可靠性高,操作简单,使用方便,可以作为学生课外学习和做设计的工具使用。
[参考文献]
[1]马 潮.高档8位单片机ATmega128原理与开发应用指南(上)[M].北京:北京航空航天大学出版社,2004.[2]马 潮.VR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007.
[3]霍宏伟,牛延超,黄吉莹.ATmega128\\2560系列单片机原理与高级应用[M].北京:中国林业出版社,2006.[4]刘兰香,张秋生.ATmega128单片机应用与开发实例[M].北京:机械工业出版社,2006.[5]陈冬云.ATmega128单片机原理与开发指导[M].北京:机械工业出版社,1900.[6]沈 文,詹卫前.AVR单片机C语言开发入门指导[M].北京:清华大学出版社,2003.[7]沙占友,孟志永,王彦明.单片机外围电路设计[M].2版.北京:电子工业出版社,2006.
[责任编辑:刘玉成]
TheDesignandRealizationofAtmega128MCUSystemSimulation
TANGJian-feng
(ElectronicEngineeringDepartmen,tZhangzhouInstituteofTechnology,Zhangzhou,Fujian,363000,China)
Abstract:ThissystemsimulationusesAtmega128asitscontrollingcore,makingthewholesystemeticcircuitsimpleandreliablebecauseitspowerfulcompatibility,dealingabilityandrichinterface.ThehardwareofAt2mega128MCUsystemSimulationconsistspowercircui,tresetcircui,tcrestalcircui,tA/Dconverterfiltercir2cuit,ISPdownloadinterfacecircui,tJTAGsimulationinterfacecircui,tbuzzerdrivecircui,tMAZ223serialmod2ule,keymoduleandkindsofmodules.
Keywords:Atmegal28;
MCU;systemsimulation
31
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo3.com 版权所有 蜀ICP备2023022190号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务