基于单片机的定时器设计 副本2副本.docx
- 文档编号:30341950
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:49
- 大小:2.20MB
基于单片机的定时器设计 副本2副本.docx
《基于单片机的定时器设计 副本2副本.docx》由会员分享,可在线阅读,更多相关《基于单片机的定时器设计 副本2副本.docx(49页珍藏版)》请在冰豆网上搜索。
基于单片机的定时器设计副本2副本
摘要
本次论文是基于单片机的定时器设计。
随着时代的进步,电子行业的发展,定时器的应用也越来越广泛,比如。
本文介绍了一种电子定时器,用户可以自由输入需要定时的时。
传统的定时器都是使用发条驱动式、电机传动式或电钟式等机械定时器。
电子定时器相对机械定时器来说,体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。
本篇论文讨论了简单的单片机的定时器,对于倒计时器中的四位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
该电子定时器方便用户操作,达到定时时间后会给出相应的指示,还可以对电器的电源进行控制,更适合需要定时的电子产品使用。
关键词:
单片机定时器数码管锁存器
ABSTRACT
1概述
1.1课题背景
1.1.1AVR单片机简介
目前单片机的设计和应用技术发展很快,在全国高等工科学院中,己普遍开设了单片机及相关课程。
不仅学习单片机的理论知识,还要进行实验操作。
早期的单片机都是8位或4位的。
其中最成功的是INTEL的8031,因为性能尚佳而大获好评。
此后在8031基础上研制了MCS-51系列单片机系统。
基于这一系统的单片机系统仍在广泛使用。
随着工业控制领域要求的提高,出现了16位单片机,但因为性价比不理想并未得到广泛应用。
90年代后随着消费电子产品大发展,单片机技术有了长足进步,随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位并进入主流市场。
而传统的8位单片机的性能也得到了快速提高,在未来很长时间里仍将继续发展。
目前高校单片机教学中大都选用MCS-51进行讲解,所开发的教学实验系统也多是基于MCS-51系列单片机开发设计的。
MCS-51单片机作为目前最具代表性的主流机型,基于该机型的教学实验系统为我国单片机教学做出了很大贡献。
AVR单片机是美国ATMEL公司设计的,AVR单片机对原51单片机内核进行了较大改造,采用精简指令集RISC(ReducedInstructionSetCPU)结构,废除了原51单片机中的机器周期,由原来12个时钟执行一条指令改进为一个时钟执行一条单周期指令,大多数指令执行所需的时钟周期数与指令的字节数相同,使得AVR单片机的运行速度大大提高。
AVR单片机的设计者除了改造51内核外,还将Flash、EEPROM、A/D、RTC、WatchDog定时器I2C、SPI、PWM和片内振荡器等集合为一体,可以真正做到单片。
AVR单片机兼容51指令集,能够沿用过去开发的51应用程序,AVR技术创新主要体现在以下几个方面。
(1)高性能,采用精简指令集CPU(RJSC)和哈佛(Harvard)结构的流水线技术,拥有32个通用工作寄存器。
(2)片内集成了非易失性程序和数据存储器以及工作存储器。
(3)丰富的外设,如I2C、SPI、EEPROM、RTC、WatchDog定时器、A/D转换器、PWM和片内振荡器等。
(4)宽工作电压:
1.8~6V之间。
(5)低功耗,具有6种休眠模式,能够从低功耗模式迅速唤醒。
(6)编译好的目标文件可通过在线编程(ISP)直接写入程序存储器,实现芯片在系统编程调试,无需购买昂贵的仿真器和编程器,从而节省了系统开发成本。
(7)I/O口资源丰富,设计灵活,驱动力强。
(8)具有多复位源、多中断源方式。
(9)其USART不占用定时器,采用独特的波特率发生器。
(10)保密性强,Flash程序存储器具有保密锁死功能。
由于AVR单片机具有上述这些优点,给用户带来了前所未有的好处。
越来越多的设计人员把目光转向AVR单片机,把AVR单片机作为8位单片机的最佳选择,从而使AVR单片机广泛的进入应用领域。
ATmega系列单片机属于AVR中的高档产品,它具有AVR单片机所具有的特点,并在此基础上,增加了更多的接口功能,提供更充足的程序和数据存储器,而且在节电性、稳定性、抗干扰性以及灵活性方面考虑的更加周全和完善。
本课题采用ATmega128单片机,它属于ATmega系列单片机的一个子集(ATmeg32/64/128),指令系统完全兼容,所以学会了ATmega128,掌握其他的ATmega系列单片机就会驾轻就熟。
随着单片机技术的发展,ATmega系列单片机已成为MCS-51的升级替代产品。
1.1.2AVR单片机的主要特点
ATMEL在设计AVR系列单片机时吸取PIC及8051单片机的优点,并作了重大改进,其特点如下。
(1)AVR程序存储器由可擦写1000次的Flash构成并具有较大容量可擦写100000次的EEPROM。
可低价快速完成产品商品化,且可多次更改程序(产品升级)而不必浪费单片机或电路板,大大提高产品质量及竞争力。
(2)高速度和低功耗。
具有SLEEP(休眠)功能。
每一指令执行速度可达50ns(20MHZ),而耗电则在1~2.5mA间(典型功耗,当WDT关闭时为100nA),AVR运用Harvard结构概念(具有预取指令功能),即对程序存储和数据存储带有不同的存储器和总线,当执行某一指令时,下一指令被预先从程序存储器中取出,这使得在每一个时钟周期内都可以执行一条指令。
(3)高度保密(LOCK)。
可多次烧写的Flash具有多重密码保护锁死(LOCK)功能,并且Flash单元深藏于芯片内部,不像MaskROM那样可通过电子显微镜破解,因此目前国内还无法破解AVR单片机,这有利于保护设计成果,并且AVR可以通过SelfProgramming方式远程下载加密的更新代码。
(4)工业级产品。
具有(吸入电流)10~20mA或40mA(单一输出)大电流,可直接驱动SSR,内置看门狗定时器(WDT),防止程序邹飞,提高产品的抗干扰能力。
(5)超功能精简指令。
具有32个通用工作寄存器(相当于8051中的32个累加器,克服了单一累加器数据处理造成的瓶颈现象)及128-4KBSRAM;部分型号的单片机内置硬件乘法器,一条乘法指令只需2个时钟周期。
(6)程序写入器件可以并行写入(用万用编程器),也可串行在线下载(ISP)擦写。
(7)并行I/O口的输入输出特性与PIC的HI/LOW输出及三态高阻抗HI-Z输入相似外,也可设定类似8051系列内部上拉电阻作输入端的功能,以满足各种应用特性所需,AVR是真正的I/O口,能正确反映I/O口的输入,输出真实情况。
(8)单片机内置模拟比较器,可组成廉价且具有较高精度的A/D转换器。
(9)像8051一样,不同中断向量的入口地址不同,可快速响应,而不会像PIC一样,所有中断都在同一向量地址,需要以程序判别后才可响应。
(10)同PIC一样可重设启动复位。
AVR系列单片机也有内置的POR(上电复位)和BOD(电源电压监测),只要在复位端接一个上拉电阻就可以了,不必使用外部复位IC。
(11)最大具有6种睡眠模式。
(12)计数器/定时器:
有8位和16位,可作比较器、计数器外部中断和PWM(也可作D/A)用于控制输出。
(13)有串行异步通信UART(不占用定时器)和SPI传输功能,晶振可工作在一般标准整数频率,而波特率可达115.2Kbps和576Kbps。
(14)工作电压范围宽1.8~6.0V,电源抗干扰性能强。
(15)进入门槛低,可以通过自制下载线(最简单的并行下载线仅需4个电阻),利用ATMEL提供的汇编和仿真软件即可以进行开发。
(16)高档AVR单片机MEGA系列的性能更强大。
如ATmega128有更大容量的存贮器(Flash128KB、EPROM4KB)IO口有53个、中断源有34个、外部中断8个、SPI接口1个,片内有RC振荡器上电延时复位电路和可编程的欠电压检测电路,工作电压为2.7V~5.5V。
1.1.3AVR单片机内部结构介绍及方框图
AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与逻辑单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的复杂指令集微处理器高10倍的数据吞吐率。
为了得到最大程度的性能以及并行性,AVR采用了Harvard结构,具有独立的数据和程序总线。
程序存储器的指令通过一级流水线运行。
CPU在执行一条指令的同时读取下一条指令(在本文称为预取)。
这个概念实现了指令的单时钟周期运行。
程序存储器为可以在线编程的FLASH,AVR单片机内部结构图如图1.1所示。
图1.1AVR单片机内部结构图
1.2AVR教学实验板的总体结构
教学实验板的总体方案设计应能满足单片机教学实验的需求,具体来讲,基于单片机开发板实验平台应能完成如下实验项目。
(1)基础类实验。
可以实现如LED控制实验、模数转换A/D实验、蜂鸣器控制实验、中断控制实验、EEPROM读写实验、WATCHDOG控制实验等基础类实验。
(2)人机接口类实验。
可以实现如键盘输入实验、LCD显示实验等人机接口类实验。
(3)通讯类实验。
可以实现如串口通讯实验、USB通讯实验等通讯类实验。
(4)高级应用类实验。
可以实现如接近报警实验、过程控制实验、数据采集等实际应用类实验。
进行产品应用开发应具备常用的硬件接口和驱动,包括串口、LCD接口、USB接口及相应的驱动程序,能够基于该实验板便捷的完成相关产品的应用开发。
因此,在进行器件选型时要考虑成本、易用性及应用广泛性,在进行方案设计时要考虑资源完整性。
本实验板采用EasyAVRM128SK,它是基于ATmega128单片机的综合学习开发系统,集编程、仿真、学习开发资源、核心板为一体,集成JTAG仿真和ISP下载等功能,其结构如图1.2所示。
图1.2EasyAVRM128SK系统开发板
(1)USB取电线供电接口内正外负DC5V
(2)JTAGISP二合一编程仿真器PC接口
(3)二路RS232串行通讯口
(4)RS485串行通讯口
(5)LCD12864/1602/12232接口
(6)电源供电接口内正外负DC7~9V
(7)核心板外部ISP编程接口
(8)复位按键
(9)可选外接晶振插座
(10)核心板外部JTAG仿真接口
(11)4位一体七段数码管
(12)4个独立按键
(13)8位发光二极管
(14)1路有/无源蜂鸣器
(15)PCF8563实时钟
(16)IIC外部E2PROMAT24C01
(17)LMV358信号调理电路增益0.1-1000可调,输入0~10V
(18)AD采集和数字温度采集传感器18B20以及NTC输入接口
(19)液晶对比度和信号调理调节电位器
(20)PCB固定孔,背面有透明硅胶防滑贴脚
(21)芯片引脚引出接口
(22)核心板可拆卸,引脚全部向下引出
(23)板载仿真/编程器工作状态指示
(24)核心芯片Atmega128-16AU(L-8AU)
1.3课题的设计思路及意义
本论文从熟悉AVR单片机的原理及总体结构入手,了解AVR单片机的相关编译、调试软件及C语言的嵌入式编程方法,研究USB接口模块、LED显示模块、定时器的功能,分别对AVR单片机与上述模块的连接电路进行调试,得出最终的实验结果。
本论文通过对实验板的研究,熟悉了AVR单片机的结构、开发流程及在C语言中的应用。
在充分实验的基础上,建立起单片机与模块、软件与硬件的联系,最终实现单片机的综合应用。
2.教学实验板的软硬件开发平台
2.1AVR高速嵌入式单片机和ATmega128
ATMEL公司是世界上著名的高性能、低功耗、非易失性可擦除存储器和数字集电路的一流半导体制造公司。
ATMEL公司最引人注目的是它的电可擦除(EERPOM)技术、闪速存储器(Flash)技术和高质量、高可靠性的生产技术。
在CMOS器件生产领域中,ATMEL的先进设计水平、优秀的生产工艺及封装技术,一直处于世界领先地位。
这些技术用于单片机生产,使单片机也具有优秀的品质,在结构、性能等方面都有明显的优势。
1997年,ATMEL公司挪威设计中心出于市场需要考虑,充分发挥其Flash技术优势,推出增强型内置Flash的精简指令集(ReducedInstructionSetCPU,简称RISC)高速8位单片机,并命名为AVR。
其中A与V分别是两位充满工作激情与灵感的挪威年轻研发者姓名的第一个字母,R代表该芯片为RSIC架构。
AVR单片机已形成一个系列。
为满足不同的需求和应用,ATMEL公司对AVR单片机的内部资源进行了相应的扩展和删减,推出了ATtiny、AT90和ATmega三大系列,分别对应AVR的低、中、高档产品。
ATmega128为基于AVRRISC结构的8位低功耗CMOS微处理器。
由于其先进的指令集以及单周期指令执行时间,ATmega128的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾,产品特点如下。
(1)高性能、低功耗的AVR®8位微处理器。
(2)先进的RISC结构。
133条指令(大多数可以在一个时钟周期内完成);32x8通用工作寄存器+外设控制寄存器;全静态工作工作于16MHz时性能高达16MIPS;只需两个时钟周期的硬件乘法器。
(3)非易失性的程序和数据存储器。
128K字节的系统内可编程Flash(寿命:
10,000次写/擦除周期);具有独立锁定位、可选择的启动代码区;通过片内的启动程序实现系统内编程;真正的读-修改-写操作;4K字节的EEPROM(寿命:
100,000次写/擦除周期);4K字节的内部SRAM;多达64K字节的优化的外部存储器空间;可以对锁定位进行编程以实现软件加密;可以通过SPI实现系统内编程。
(4)JTAG接口(与IEEE1149.1标准兼容)。
遵循JTAG标准的边界扫描功能;支持扩展的片内调试;通过JTAG接口实现对Flash、EEPROM,熔丝位和锁定位的编程。
(5)外设特点。
两个具有独立的预分频器和比较器功能的8位定时器/计数器;两个具有预分频器、比较功能和捕捉功能的16位定时器/计数器;具有独立预分频器的实时时钟计数器;两路8位PWM;6路分辨率可编程(2到16位)的PWM;输出比较调制器;8路10位ADC;8个单端通道;7个差分通道;2个具有可编程增益(1x,10x,或200x)的差分通道;面向字节的两线接口;两个可编程的串行USART;可工作于主机/从机模式的SPI串行接口;具有独立片内振荡器的可编程看门狗定时器;片内模拟比较器。
(6)特殊的处理器特点。
上电复位以及可编程的掉电检测;片内经过标定的RC振荡器;片内/片外中断源;6种睡眠模式:
空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式;可以通过软件进行选择的时钟频率;通过熔丝位可以选择ATmega103兼容模式;全局上拉禁止功能。
(7)I/O和封装。
53个可编程I/O口线;64引脚TQFP与64引脚MLF封装。
(8)工作电压。
2.7-5.5VATmega128L;4.5-5.5VATmega128。
(9)速度等级。
0-8MHzATmega128L;0-16MHzATmega128。
AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与运算逻辑单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的复杂指令集微处理器高10倍的数据吞吐率。
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测试接口(此接口同时还可以用于片上调试),以及六种可以通过软件选择的省电模式。
空闲模式时CPU停止工作,而SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作,寄存器的内容则一直保持;省电模式时异步定时器继续运行,以允许用户维持时间基准,器件的其他部分则处于睡眠状态;ADC噪声抑制模式时CPU和所有的I/O模块停止运行,而异步定时器和ADC继续工作,以减少ADC转换时的开关噪声;Standby模式时振荡器工作而其他部分睡眠,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式则允许振荡器和异步定时器继续工作。
器件是以Atmel的高密度非易失性内存技术生产的。
片内ISPFlash可以通过SPI接口、通用编程器,或引导程序多次编程。
引导程序可以使用任何接口来下载应用程序到应用Flash存储器。
在更新应用Flash存储器时引导Flash区的程序继续运行,实现RWW操作。
通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega128为许多嵌入式控制应用提供了灵活而低成本的方案ATmega128AVR有整套的开发工具,包括C编译器,宏汇编,程序调试器/仿真器和评估板,ATmega128结构图如图2.1所示。
图2.1ATmega128结构图
2.2教学实验板的软件开发环境
2.2.1AVRStudio4软件的介绍
本文采用的AVR开发软件是AVRStudio4,它是一个完整的开发工具,包括仿真下载、调试等功能,可在AVR器件上运行,AVRStudio4的界面如下所示。
(1)创建一个新的项目
启动AVRStudio4的方式如下:
点击开始-〉程序-〉ATMELAVR工具。
AVRStudio启动后,你将看到一个对话框。
我们需要创建一个新的项目,点击“CreateNewProject”按钮,创建新项目图如图2.2所示。
图2.2创建新项目图
这个步骤包括选择我们要创建什么类型的项目,设定名称以及存放的路径。
这个过程包括五个步骤。
①在对话框左边选中Assemblyprogram,表明你要创建一个项目。
②输入项目的名称。
项目的名称可以随意定义。
③我们需要AVRStudio自动产生一个汇编文件。
④选择你要存放项目的路径。
⑤确认所有的选项,确认之后,按“Next”按钮。
配置项目参数图如图2.3所示。
图2.3配置项目参数图
(3)选择调试平台
AVRStudio4软件可以让客户选择多种开发调试工具。
AVRStudio4允许可以选择多种开发调试工具,在这里我们选用带有仿真功能的AVRSimulator,选择调试平台图如图2.4所示。
图2.4选择调试平台图
(4)AVRStudio4的用户图形界面(GUI)
AVRStudio4的用户图形界面图(GUI),如图2.5所示。
把用户图形界面划分成了6个部分,在AVRStudio4系统中包括了AVRStudio的帮助文件,并着重介绍AVRStudio4的框架和一些要注意的事项。
图2.5用户图形界面图
(1)第一行是菜单栏。
这与标准的Windows程序差不多,包括打开/保存文件、剪贴/复制,这个栏目还包含了Studio的一些特殊功能,如仿真等。
(2)第二行是快捷方式栏,这一栏存储了一些常用命令,包括保存/打开文件,设置断点等等。
(3)第三部分为工作台窗口,在这里显示项目文件、I/O状态以及项目选用AVR器件的信息。
(4)第四是编辑窗口。
在这里可以编辑你的源代码。
对于熟练的用户,在这里也可以嵌入C代码。
(5)第五是输出窗口,状态信息在这里显示。
(6)第六是系统状态条。
这里显示AVRStudio软件工作的模式,例如我们选用了AT90S8515芯片在仿真模式下工作,这些信息就会在系统状态条中显示。
2.2.2ICCAVR编译软件介绍
ImageCraft的ICCAVR是一种使用符合ANSI标准的C语言来开发微控制器MCU程序的一个工具,它有以下几个主要特点。
(1)ICCAVR是一个综合了编辑器和工程管理器的集成工作环境IDE其可在WINDOWS9X/NT下工作。
(2)源文件全部被组织到工程之中文件的编辑和工程的构筑也在这个环境中完成编译,错误显示在状态窗口中,并且当用鼠标单击编译错误时光标会自动跳转到编辑窗口中引起错误的那一行,这个工程管理器还能直接产生可以直接使用的INTELHEX格式文件,INTELHEX格式文件可被大多数的编程器所支持用于下载程序到芯片中去。
(3)ICCAVR是一个32位的程序支持长文件名。
ICCAVR中文件类型是由它们的扩展名决定的IDE和编译器可以使用以下几种类型的文件。
(1)输入文件
.c扩展名----表示是C语言源文件。
.s扩展名----表示是汇编语言源文件。
.h扩展名----表示是C语言的头文件。
.prj扩展名----表示是工程文件这个文件保存由IDE所创建和修改的一个工程的有关信息。
.a扩展名----库文件它可以由几个库封装在一起,libcavr.a是一个包含了标准C的库和AVR特殊程序调用的基本库如果库被引用链接器会将其链接到模块或文件中,也可以创建或修改一个符合需要的库。
(2)输出文件
.s对应每个C语言源文件由编译器在编译时产生的汇编输出文件。
.o由汇编文件汇编产生的目标文件多个目标文件可以链接成一个可执行文件。
.hexINTELHEX格式文件其中包含了程序的机器代码。
.eepINTELHEX格式文件包含了EEPROM的初始化数据。
.cofCOFF格式输出文件用于在ATMEL的AvrStudio环境下进行程序调试。
.lst列表文件在这个文件中列举出了目标代码对应的最终地址。
.mp内存映象文件它包含了您程序中有关符号及其所占内存大小的信息。
.cmdNoICE2.xx调试命令文件。
.noiNoICE3.xx调试命令文件。
.dbgImageCraft调试命令文件。
(3)附注和扩充
#pragma编译附注
这个编译器接受以下附注。
#pragmainterrupt_handler
这个附注必须在函数之前定义它说明函数func1func2是中断操作函数所以编译器在中断操作函数中生成中断返回指令reti来代替普通返回指令ret并且保存和恢复函数所使用的全部寄存器同样编译器根据中断向量号vectornumber生成中断向量地址。
#pragmactask
这个附注指定了函数不生成挥发寄存器来保存和恢复代码它的典型应用是在RTOS实时操作系统中让RTOS核直接管理寄存器。
#pragmatext:
改变代码段名称使其与命令行选项相适应。
#pragmadata:
改变数据段名称使其与命令行选项相适应这个附注在分配全局变量至EEPROM中时必须被使用读者可参考访问EEPROM的例子。
#pragma
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机的定时器设计 副本2 副本 基于 单片机 定时器 设计