基于AVR单片机的电子计时器软硬件设计Word文档格式.docx
- 文档编号:21727287
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:33
- 大小:778.42KB
基于AVR单片机的电子计时器软硬件设计Word文档格式.docx
《基于AVR单片机的电子计时器软硬件设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于AVR单片机的电子计时器软硬件设计Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
AVR单片机的快速存取寄存器由32个通用寄存器组成。
所有32个通用寄存器直接与逻辑运算单元(ALU)连接,单个寄存器都可以取代累加器工作,这使得微处理器可以在执行当前指令时从而取出要执行的下一条指令,这样就避免了传统的累加器结构导致的累加器和存储器之间的数据传输瓶颈效应,提高了系统运算速度。
我们知道在以往的的精简指令集RISC的结构中,分频降低到内部执行周期的不是内部的时钟分频系统而是MCU的外部晶振的时钟频率。
但是AVR单片机有内部集成时钟系统是没有对外部时钟分频的,它可以执行一条指令通过一个时钟周期来实现。
AVR单片机与c51不同的是avr只采用采用哈佛(Harvard)的总线结构,程序存储器和数据存储器是严格分开的。
微处理器直接访问所有的ROM和RAM。
AVR单片机为什么会有ISP的功能?
答案就是Atmel公司在AVR单片机上面使用了密度比较大的的不容易丢失的存储器技术,也就是说在程序运行时,也可以对电路系统进行重新编译。
AVR单片机越来越成为人们首选的一种高灵活降低开发成本的处理器,在avr高端产品中ATmega公司在部分单片机系统上综合了在线调试的功能,这就使得用户可以很方便的随意更改程序,同时用户也看可以通过JATG实现在线调试以及下载的功能。
用高级语言编写比如C以及BASIC语言已经成为了一种行业趋势,而avr不但支持汇编也支持c和basic。
高级语言可以帮助用户更好的进行移植方便业内技术的交流。
1.2ATmega16单片机的特点
ATmega16单片机的ATmega系列AVR单片机内部具有接口丰富,功能齐全,特性价格比较高的产品等优点。
如下:
功耗较低以及运行性能较高的8位微处理器系统。
先进的精简指令集RISC结构。
►精简指令集包含了118条指令,很大一部分是单指令周期。
►工作在16MHz时具有16MIPS的性能。
►硬件乘法器只需两个时钟周期。
非易失性程序以及数据存储器
►在线可编程Flash存储器容量达到了16KB,可擦写的次数在10000次以上。
►真正的能够进行同时进行读写操作功能的是可选Boot代码区具有独立锁定位功能可以实现系统内编程。
►线可编程EEPROM具有512B,寿命可达100000次
►片内SRAM具有1KB
外围器件特点
►频率等分,对比和采集功能是16位定时器/计数器所具有的
►10位ADC具有8路
►两个可编程的串行USART
►可工作于主机/从机的SPI串行接口
►片内模拟比比较器
处理器特点
►上电复位电路和可编程掉电检测
►片内经RC振荡器已经过校准
►片内/片外中断源
►睡眠模式具有6种
I/O口和封装
►可编程I/O接口32个
►DIP封装40引脚,44引脚TQFP封装和MLF封装
工作电压
►ATmega16L:
2.7~5.5v
►ATmega16:
4.5~5.5v
速度等级
0~8MHz、
►ATmega10~16MHz
ATmega16的功耗
►正常模式:
1,1mA
►空闲模式:
0.35mA
►掉电模式:
<
1uA
1.3ATmega16单片机
►端口A(PA7:
PA0)
作为一个A/D转换器的模拟输入.PA口也能作为8位的双向输出输入端口,假如数模转换器不使用的情况下.PA口可以使用内部集成的上拉电阻.PA口输出buffer可以吞吐大电流驱动器以及源能力韵的性能.当PA0到PA7的8个输出口当做投入使用以及被外部负载拉低电压时,将输出电流,假设输出IO的内部集成上拉电阻器开始投入使用.端口是一个三态的,在系统复位的过程中,即使内部集成时钟系统没有运行外部也不会被负载拉低而输出电流。
►端口B(PB7:
PB0)
PB口是8位双向输入输出的具有内部集成的上拉电阻输入输出端口.该端口Boutbuffer具有源对称的驱动能力.当我们使用pb口的输入功能时,PB口电平就会就会因外部负载拉低时而输出电流。
假设内部集成上拉电阻器投入使用时.PB口为三态的,在系统复位过程中,就算使系统时钟没有运行PB也可以使用不同的特殊功能。
►端口C(PC7:
PC0)
PC是位双向输入输出具有内部上拉电阻(每个位选中)的输出输入端口.该PC口的输出buffer具有源对称的驱动特性能力.当把pc口作为输入使用时,PC口就会被外部负载拉低将输出电流,但是此时假如拉电阻器被使用.那么PC口就会作为三态使用,
►端口D(PD7:
PD0)
单片机的端口D具有8准位双向输出输入具有内部集成的上拉电阻系统的端口.该端口D输出buffer也是具有源对称的驱动性能.当作为输入时。
PD口被外部拉低时将输出电流。
ATmega16芯片具有两种封装形式如图1-1,图1-2所示
图1-1ATmega16芯片的引脚图
图1-2mega16封装图TQFP封装
以上的ATmega16A是一种功耗比较低的微控制器CMOS8-bit是有关于曾强的AVR基础的RISC(精简指令集)架构.
第二章方案设计与论证
按照系统设计功能的要求,初步确定设计系统由复位模块、按键模块、蜂鸣器模块、显示模块共4个模块组成,后来在显示模块的基础上又添加了一个发光二极管,为了在单片机上电时确认是否有电源接通。
本课题的设计要求主要是对mega16芯片的熟悉与应用,通过使用ATmega16的内部时钟分频电路,从而确定出内部的机器周期。
再利用两个外部中断分别控制按键1,2,中断响应时执行加减操作。
相应的外围电路单片机最小系统的基础上根据要求扩展而来,就是在,比如根据要求所加的数码管模块
软件设计思路:
按照实验任务的要求,初步确定此课题需要用到3个按键,即按键1控制加1部分,按键2控制减一部分,以便确保用户可以根据自身的定时需求随意的更改定时时间,按键3是控制启动功能,按下启动定时功能,在加1减一操作时要保证数码管显示模块可以正确显示数字,当定时时间到时蜂鸣器即开始鸣叫报警,复位后恢复正常。
硬件设计思路:
电子计时器采用MEGA16单片机,包括复位模块,按键开关模块和蜂鸣器模块以及数码管模块构成。
系统采用5v直流电池供电,通过AMS1117芯片输出3.3v的稳定电压给单片机芯片,在设计电压部分时初步的方案是采用串联的3v纽扣电池通过硅管分压达到要求的电压,但后来考虑到纽扣电池的压降以及功率输出并不能达到单片机的要求所以采用上述方案)。
各模块通过保护电阻连接(也可不接上拉电阻,因为MEGA16内部自带上拉电阻),系统各模块通过排线连接到MEGA16单片机板上相应端口。
在单片机最小系统的基础上才能实现电子计时器的功能,所以首先确定AVR单片机最小系统包括的成分。
AVR最小系统:
ATmega1644A芯片一个TQFP封装形式,复位电路,晶振电路,电源系统。
在最小系统的基础上搭载外围电路两个,也就是要求的驱动数码管电路部分和驱动蜂鸣器的电路。
由于ATmega16芯片内部自带复位电路和十分频时钟系统,在画最小系统时可以省去晶振电路和复位电路,但由于个人喜好在设计电路板时只保留了复位系统,省去了晶振电路。
第三章系统总体结构框图
图3-1电子计时器系统框图
原理图如图3-2所示:
图3-2电路原理图
PCB板图如图3-3所示
图3-3PCB板图
第四章系统的硬件设计
电路是由控制部分和显示部分两大部分组成。
利用AVR单片机程序进行控制,并通过外围电路数码管模块进行显示。
4.1显示部分电路的设计
4.1.1LED数码显示管的基本原理
用单片机驱动LED数码管有很多种方法,本实现采用其中的一种及动态显示的方法。
.静态译码►优点:
数码管静态显示时数据显示温度而且运行速度快。
►原因:
在显示程序执行时,单片机将高低电平通过IO口输出到数码管的各个引脚后就不再控制LED,直到下次显示时再传送一次新的显示数据。
►缺点:
使用的电路硬件较多
每个显示驱动电路控制一个显示单元,一对一工作
.动态译码►优点:
所要用的电路的硬件较少,可以大幅节约的电路板空间
数据的显示给人闪烁感,微处理器损耗时间多。
动态显示时单片机的要不断的对IO口进行扫描刷新以获得最新的输出高低电平,通过人的视觉暂留效应达到动态显示的目的。
本设计采用的是动态显示的显示方式。
原因如下:
动态扫描显示方法在工业应用中极为广泛,也是在学校教学任务中作为主要讲授的应用方式。
在设计本实验时只需用到两位一体的数码管即可,共阴极数码管,他们的各个同名引脚连接在一起,两个com端共极,用来进行位选。
数码管的七个led管编成a~g,通过控制不同的led段显示相应的数字。
在共阴极工作时单片机向数码管的各个引脚发送同样的高低电平,这时两个数码管就会显示同样的数字,这显然不符合我们的要求。
所以此时的公共com端就可以用来位选,即是给相应的com段输入低电平,即可控制让某一个数码管工作。
我们所说的动态扫描就是用快速扫描的方法来回切换所要点亮的数码管,由于速度快时间短加上人们具有的视觉停留效应也就达到我们要求的动态显示就好像一起亮一样。
从上述的介绍中,可以看出动态显示方式具有很大的实用性,尤其对IO口有限的单片机来说,动态显示是首选方式,综上所述动态显示在目前的数码管应用中极为广泛,了解动态显示的原理对本设计的进行极为重要。
4.1.2数码管显示模块分析
用5v直流电源通过AMS1117输出3.3v给单片机供电,ATmega16的PA口通过一个8x1k的排阻连接两位一体的数码管,用来段选,低电平有效。
PD3和PD4口用于段选,低电平有效,两位一体的数码管是共阴极接法,公共端是10,5.此法节省I/O口。
该两位一体数码管公用8个引脚,PA口输出低电平各LED管发光,通过PD3和PD4的段选作用确定是哪个数码管有效。
但这个方式使数码管呈现的效果没有静态显示方式的效果要好,是因为动态显示是应用了扫描的方法,在显示位数比较多的时候,微处理器就要不断的的对每个数码管进行扫描,这在很大程度上增加微处理器的工作时间。
另附该两位一体数码管原理图及封装形式如图4-1,4-2所示
图4-1两位一体数码管原理图
图4-2两位一体数码管封装
两位一体数码管参考尺寸如图4-3所示
图4-3数码管参考尺寸
4.1.3LED显示电路
设计思路:
第一种方案如图4-4所示:
图4-4数码管显示模块原理图
优点:
通过74HC595节省I/O口
弊端;
74HC595对程序设计要求较高,太过于繁琐
第二种方案如图4-5所示:
图4-5数码管显示模块原理图二
采用独立数码管编程相对简单
缺点:
占用较多I/O口,74HC595对程序设计要求较高,太过于繁琐
综合以上的设计思路分析得出最终方案如图4-6所示:
图4-6数码管显示模块原理图三
通过PA口直接驱动数码管,编程简单。
PCB板制作方便
占用I/O口较多,但由于外接电路较少,I/O口充足,可以接受。
4.2控制部分电路的设计
4.2.1复位模块
设计单片机复位系统的目的是使得单片机以及系统的中的其他寄存器能够从一个预备的状态也就是初始的状态执行。
当单片机发生断电后或者某个部分发生故障时都应该按复位键使程序能够在下次从初始状态开始执行。
比如值000H就会在系统复位后给PC输入,这就使得单片机在执行程序时从第一个单元开始读取相应的指令。
电源电路设计思路:
第一种方案如图4-7所示:
图4-7电源原理图一
实际应用中接口不方便
第二种方案如图4-8所示:
图4-8电源原理图二
由于是USB口接口,在实际应用中USB借口并不是很方便的就找到,从用户的角度来看在实际操作过程中并不是那么方便。
最终方案如图4-9所示:
图4-9电源原理图三
说明:
此方案采用5v的直流电池供电,方便简单易于实时应用不受电源接口的限制,在任何场合都可以拿来使用。
直流电源采用5v直流电池供电,通过AMS1117的作用输出3.3v可以满足单片机的工作电压的需要,而且输出电压稳定。
AMS1117介绍:
选用器件时根据任务需要直接选用尾椎为3.3v的型号就可以了,最大输出电流是800ma,封装形式为SOT223,ams1117的地脚是1,2脚接输出,3脚接输入。
电压在5v到12v之间都是安全的,它会直接输出一个3.3v的电压,不用配置相应的电阻直接接管脚就即可。
4.3蜂鸣器电路的设计
4.3.1无源蜂鸣器跟有源蜂鸣器的区别
►无源蜂鸣器的优点是:
1。
便宜
2。
声音频率可控,可以做出“多来米发索拉西”的效果
3。
在一些特例中,可以和LED复用一个控制口
►有源蜂鸣器的优点是:
程序控制方便
有源蜂鸣器是目前比较常用到的一种蜂鸣器驱动电路,在有源蜂鸣器的内部集成了诸如rc振荡电路,还有必要的电路驱动。
有源蜂鸣器优点是用起来比较方便,但是用起来就只有一个音调,这是由固定的频率导致的,这是他的缺点。
有源蜂鸣器和无源蜂鸣器的差别为:
当给有源蜂鸣器输入额定的直流电流值时其就会发出单音(新的蜂鸣器在标签上都有注明)且持续鸣叫。
但是无源蜂鸣器必须给之以特定的频率诸如方波脉冲之类的它才会发出鸣叫,这和电磁扬声器差不多都是需要给定频率才工作,。
总结以下几点:
1)只要蜂鸣器能够发出声音,不管其是何种的类型的蜂鸣器,他们内部的驱动电路以及震荡电路一定是给定了频率信号。
2)因此,假如我们直接输入的信号是某种音频脉冲信号,方波或者正玄波之类的(其他类型的周期信号也可以),像这种类型的输入信号就可以直接驱动蜂鸣器内部的压电片使之发出声音。
这样的蜂鸣器就可以称为无源蜂鸣器。
3)同时,若是另外一种情况,当输入的信号不是脉冲信号而是直流信号,蜂鸣器可以发出声音,那就说明蜂鸣器内部已经集成设计了震荡系统,只需要给一定的激励就可以,那么这样的蜂鸣器我们就称为有源蜂鸣器。
这里所说的有源是指蜂鸣器内部是否有集成的震荡系统。
振荡系统由有源器件组成,所以叫做有源.自激震荡是有源震荡的别名,无源震荡有时候我们也称为自激震荡,.但是在某些特定的情况下一些有源蜂鸣器也可以发生,这对有源信号脉冲的频率以及电压的要求比较高,这种蜂鸣器工作方式不建议使用。
但是无源蜂鸣器没有内部集成的震荡驱动电路系统,有些单位称他为讯响器,在国标中称为声响器。
方波是无源蜂鸣器工作的最理想的信号。
任务中蜂鸣器的驱动没有采用mega16内部的psw输出,而是采用延时程序控制IO口给定高低电平用以输出方波信号。
蜂鸣器原理图如图4-10所示:
图4-10蜂鸣器模块原理图
无源蜂鸣器的封装形式如图如图4-11:
图4-11蜂鸣器模块封装
参考尺寸如图如图4-12所示:
图4-12蜂鸣器原理图封装参考尺寸
4.4按键模块设计
4.4.1按键模块原理图
如图4-13所示
图4-13按键模块原理图
4.4.2四角按键封装形式及参考尺寸
如图4-14,4-15所示
图4-14四角按键原理图封装
图4-15四角按键封装参考尺寸
第五章系统的软件设计
5.1总体系统的设计思路
按照实验要求实现电子计时器的功能,包括三个部分的程序设计,一是蜂鸣器报警二按键程序三是数码管程序。
要实现按键1,2可以分别控制数码管的加一减一功能达到可以随意定时多少秒,当定时时间到时蜂鸣器及开始报警。
5.2计时程序
计时程序是实现电子计时器的核心部分,直接关系到产品的使用。
本实现采用中断tmer0来控制,定时1s。
每50ms溢出中断一次,中断20次即可实现计时1s。
5.3报警程序
报警采用无源蜂鸣器,编程实现方波输出到蜂鸣器即可发声。
5.4系统图
图5-1软件设计流程图
第六章系统电路的制作与调试
6.1电路硬件焊接制作
电路硬件焊接是PCB板制作的尾声,是检验PCB板制作是否可用的流程之一,也是是毕业设计的重要内容之一,实际做出的电路板应与PCB板尺寸一致,我们所设计的电路功能的能否实现很大一部分取决去电路板的焊接质量,也就是说其焊接工艺的好坏直接关系到系统的整体性能,因此电路板的焊接过程不容忽视,一个完美的电路板设计应体现在板子的焊接上。
本设计的板子制作采用手工焊接,在焊接制作中应遵守手工焊接的工艺流程和技术要求。
6.2调试的主要方法
单片机最小系统板子焊接好之后要对板子进行各项测试以确保焊接的最小系统可用,能满足我们的设计要求。
⑴测试焊接的最小系统功能是否完善。
这是针对整个AVR单片机最小系统基本功能的检测,检测软件是否具有完整性,检测单片机最小系统是否能满足我们的设计要求。
⑵对最小系统进行上电、掉电测试。
上电和掉电是我们在单片机使用过程中经常遇到的情况,为了确保单片机不会出现供电不稳定的情况,这个时候我们可以进行多次的开关电源的操作,以便检查单片机是否已经满足了可靠性的要求。
⑶单片机最小系统老化检测。
在系统长时间工作的情况下检测单片机最小系统能否满足我们的设计要求。
若有必要的话可以放置在高温,低温,高压,低压以及强弱电磁干扰的环境下测试。
⑷D和EFT等测试。
在检测我们设计的单片机最小系统能否满足我们的任务需要时,我们可以通过使用各种干扰模拟器来检测。
比如静电模拟器就是一种唱用的用来检测单片机系统的抗静电能力。
在测试脉冲抗干扰能力时可以使用模拟器等等,这些只是检测最小系统的一些常用的方法。
⑸对最小系统的数码管显示模块的检测。
这是针对单片机最小系统的外围电路显示系统功能的测试,在单片机正常工作后,对单片机烧录显示双8的程序检测数码管模块是否正常显示。
⑹对数码管模块的调试。
编写不同的程序烧录单片机,用单片机最小系统控制数码管模块显示各种数字,字母,同时检查小数点是否正常显示。
6.3系统调试
6.3.1硬件调试
单片机最小系统及外围电路焊接好以后要对其做以下几项的必要调试:
静态测试:
在电路板加工制作好以后,第一步就是对系统做静态的检测而不是急着加电。
检查线路:
通过目测或者使用万用表,跟先前画好的单片机最小系统原理图一一比对,检查线路焊接的正确性,有无元器件放错位置,有无断路和短路,无虚焊的存在等。
核对元件:
检查元件有没有按照原理图安装正确,有没有缺原件或者元件多余,以及有没有破坏等。
6.3.2软件调试
本实验采用c语言编写,调试时可以采用分块调试方法,先调试蜂鸣器模块,当烧录蜂鸣器程序时蜂鸣器能否发声。
接着调试按键模块,先测试按键一按下能否实现++功能,再测试按键2能否有——功能。
然后测试能否实现定时功能以及定时过后蜂鸣器是否报警,最后将整个程序烧录进芯片是否能实现预计功能。
6.3.3联机调试
在电路板没有发现功能不全和软件部分都
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AVR 单片机 电子 计时器 软硬件 设计