




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
商丘师范学院学士学位毕业设计 数字定时器的设计与制作 目 录摘 要II关键词II0 引言11 基本知识11.1 单片机的基本结构11.1.1 CPU系统11.1.2 CPU外围电路21.1.3 基本功能单元21.2 LED显示的基本原理31.2.1 简介31.2.2 LED显示方式31.3 键盘输入基本原理41.3.1 简介41.3.2 按键抖动41.3.3 按键结构41.4 单片机定时器工作原理与中断简介41.4.1 定时器工作原理41.4.2 中断简介51.5 指令系统与汇编编程61.6 一些软件的扼要介绍62系统硬件工作原理72.1 系统实际电路图及分析72.2 从原理图到PCB图再到成品93 系统软件工作原理93.1 软件设计概况93.2 设计思路93.2.1 整体思路93.2.2 电子钟模式设计思路103.2.3 定时器模式设计思路103.2.4 主要难点分析103.3 本程序实现的功能104 实验结果115 结语11参考文献11致 谢11附录一 程序流程图12附录二 PCB板图15附录三 源程序16数字定时器的设计与制作摘 要设计了一款基于单片机的定时器。可以实现电子钟,四种定时模式,到点警报的功能。电路核心采用AT89S52实现,并配有相应外围元件构成完整电路。采用汇编语言设计源程序。经过仿真调试后程序无误,功能可实现。最后做出成品。关键词定时器;电子钟;AT89S52;外围电路;汇编编程;仿真调试;做出成品Design and production of digital timerAbstractDesigned a single-chip-based timer with the functions of electronic clock and four modes of time and do the relational work with the time-ending. Using the AT89S52 chip as the core of the circuit which having the relational components. Program based on assembly language. The functions proved executable after debug and simulation. Production made in the end.Keywordstimer; electronic clock; AT89S52; periphery circuits; assembly language; debug and simulation; production0 引言通常将面向工控领域对象,嵌入到工控应用系统中,实现嵌入式应用的计算机称之为嵌入式计算机系统,建成嵌入式系统1。嵌入式系统具有面向对象,嵌入到工控应用系统中的结构形态,能在工业现场环境中可靠运行,突出的控制能力等功能。在现代社会的应用日益广泛。本设计是以单片机为平台,运用汇编语言,实现一定控制功能。是模拟嵌入式的小系统,是对嵌入式系统学习的初级探索。主要目的是要初步掌握嵌入式系统工作原理,开发流程,编程思想,以及认清编程思想的重要性和培养严谨认真的工作态度。1 基本知识1.1 单片机的基本结构将微处理器、一定容量的ROM和RAM以及I/O口、定时器等电路集成在一块芯片上,构成单片微型计算机,简称单片机。单片机种类丰富多样,各有特色,在工业控制领域和数据处理领域等都有巨大用途2。单片机应用系统的结构有三层2。(1)单片机:通常指应用系统主处理机,即所选择的单片机器件。(2)单片机系统:指按照单片机的技术要求和嵌入对象的资源要求而构成的基本系统,如时钟电路、复位电路和扩展存储器等与单片机构成了单片机系统。(3)单片机应用系统:指能满足嵌入对象要求的全部电路系统。在单片机系统的基础上加上面向对象的接口电路,如前向通道、后向通道、人及交互通道(键盘、显示器、打印机等)和串行通信口(RS232)以及应用程序等。典型系列单片机是由CPU系统、外围功能单元和归一化I/O端口三部分组成,如图1所示。图1 典型单片机系统1.1.1 CPU系统CPU包括CPU、时钟系统和总线控制逻辑三部分,其功能如下:(1) CPU:包含运算器和控制器,专门为面向控制对象、嵌入式特点而设计,有突出控制功能的指令系统。运算器可进行8位算数运算和逻辑运算,另外还有一个布尔处理器,专门用于处理位操作。控制器包括程序计数器PC、指令寄存器IR、振荡器及定时电路等重要特殊功能寄存器。是整个系统的指挥中枢。(2) 时钟系统:包含振荡器、外接谐振元件,可关闭振荡器或CPU时钟,其结构如图2所示。时钟系统是单片机工作的指挥中心。负责确定单片机指令工作周期的长短。单片机晶振的频率越高,每条指令花费的时间越短,机器执行的速度越高。此外,时钟系统也可以外接时钟发生器,而忽略单片机内部时钟发生器。89S52基本时序定时单位有4个:振荡周期、状态周期、机器周期、指令周期。振荡周期为最小时序单位,一个状态周期包含两个振荡周期,一个机器周期由6个状态周期组成,是计算机执行一种基本操作的时间单位,指令周期是执行一条指令所需要的时间。一个指令周期由14个机器周期组成。(3) 总线控制逻辑:主要用于管理外部并行总线时序及系统的复位控制,外部引脚有RST(系统复位用)、ALE(数据/地址服用控制)、EA(外部/内部程序存储器选择)、PSEN(外部程序存储器的取指控制)。总线是指将所有的单条线汇总到一起走线,但其中的单条线不交叉重叠。相当于各个单线单独在总线的范围内走线。图2 振荡器电路图1.1.2 CPU外围电路CPU外围电路包括ROM、RAM、I/O口和SFR四部分。(1)ROM:程序存储器。数据在程序运行时不能变。(2)ROM:数据存储器。数据可以在程序运行时改变,是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。(3) I/O端口:89S52单片机具有4个8位I/O端口,分别为P0、P1、P2、P3。P0为数据总线端口,P2、P0组成16位地址总线,P1为用户端口,P3不作基本功能单元的输入/输出端口时,可作用户I/O端口。(4) SFR:特殊功能寄存器。是单片机中的重要控制单元,CPU对所有片内功能单元的操作都是通过访问SFR实现的。1.1.3 基本功能单元80C51系列单片机具有定时/计数器、中断系统和串行接口三个基本功能单元3。(1) 定时器/计数器:89S52有3个16位定时/计数器,其中有两个较为常用。定时时靠内部的分频时钟频率计数实现。做定时器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。(2) 中断系统:89S52共有5个中断源,即2个外部中断源、2个定时器溢出中断和1个串行中断。(3) 串行接口UART:一个带有移位寄存器工作方式的通用异步收发器,不仅可以作串行通信,还可用于移位寄存器方式的串行外围扩展。RXD(P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。1.2 LED显示的基本原理1.2.1 简介单片机应用系统中使用的显示器主要有发光二极管显示器,简称LED(Light Emitting Diode),液晶显示器,简称LCD(Liquid Crystal Display)。应用系统中常用的数码管由发光二极管构成,常用7段LED构成“8”字型的数码管。数码管分为公阴、共阳两种,发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。一位显示器由8个发光二极管组成,其中,7个发光二极管构成“8”的各个比划(段)ag,另一个小数点为DP发光二极管。当在某段发光二极管上施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,须外加限流电阻。共阴极和共阳极7段LED显示字型编码表如图3图3 LED显示字型编码表1.2.2 LED显示方式LED 显示器有静态显示和动态显示两种。静态显示为当显示器显示某个字符时,相应的段恒定的导通或截止,知道显示另一个字符为止。特点是操作简单,占用系统资源较多。动态显示具有占用资源少的优点,但操作较静态稍复杂。将所有位的段选线并联在一起,由一个8位I/O口控制。而共阴极或共阳极公共端分别由相应的I/O线控制,实现各位的分时选通。由于6位LED所有段选线皆由一个I/O控制,因此每一瞬间6个LED会显示相同字符。要想每位显示不同的字符,就必须采用扫描方法轮流点亮各位LED,即在每一瞬间只使某一位显示字符。在此瞬间段选控制I/O口输出相应字符段选码(字型码),而位选则控制I/O口在该显示位送入宣统电平(共阳极送低电平),以保证该位显示字符。如此轮流,使每位分时显示该位应显示的字符。段选码、位选码每送入一次后注意延时,因人眼的视觉暂留时间为0.1s(100ms),因此应注意延时不能超过一定限度,以免出现数码管熄灭现象4。1.2.3 LDS-5461BH数码管简介本应用系统采用LDS-5461BH四位一体共阳数码管。元件引脚图如图4。图4 LDS-5461BH外形图此数码管最大的优点是引脚减少,共有12个,为设计提供了便利。其中A、B、C、D、E、F、DP分别对应引脚11、7、4、2、1、10、5、3,数码管14分别对应引脚12、9、8、6。本单片机应用系统用到1个此型号数码管。1.3 键盘输入基本原理1.3.1 简介键盘是一组按键的集合,它是最常用的单片机输入设备。操作人员可以通过键盘输入数据和命令,实现简单的人机通信。按键是一种常开型按键开关。平时按键的二个触点处于断开状态,按下键时它们才闭合。键盘分编码键盘和非编码键盘5。键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号或键值的称为编码键盘,如BCD码键盘等,靠软件识别的称为非编码键盘。在单片机控制系统中用的最多的是非编码键盘。本单片机系统也是用的非编码键盘。1.3.2 按键抖动通常按键所用的开关为机械弹性开关,当机械触点断开、闭合时,会产生一个电信号的上下波动,称谓按键抖动。由于机械出点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合和断开时按键抖动时不可避免的。抖动时间的长短由按键的机械特性决定,一般为510ms。这是一个很重要的时间参数,在很多场合都要用到。1.3.3 按键结构键盘还可分为独立连接式和行列式(矩阵式)两类。相似于LED静态显示和动态显示。独立链接式简单方便,缺点是需要占用较多硬件资源。而行列式稍微复杂,但可以节省硬件资源。在按键数量不多的情况下,优选独立连接式,但如果按键很多,超过了4个就可以选择行列式,按键越多,选用行列式的优势就越突出。本单片机系统按键不多,故采用独立连接式。独立式按键是指各按键相互独立地接通一条输入数据线。1.4 单片机定时器工作原理与中断简介1.4.1 定时器工作原理89S52单片机具有3个定时器,本设计中用到T0与T1。他们都有定时和事件计数的功能。定时器具有两个控制字如图5,有软件写入TMOD和TCON两个8位寄存器,用来设置T0或T1的操作模式和控制功能。当89S52系统复位时,两个寄存器所有位被清0。图5 TMOD与TCON寄存器TMOD与TCON两个特殊功能寄存器对定时器的工作起主宰作用。通常两个一起工作,一起起着控制作用。其中TCON除可字节寻址外,各位还可以位寻址。定时器有四种工作模式。由TMOD中M1与MO组合操作决定,图6为MO与M1组合功能表。四种模式中,模式0与模式1的用途基本一样而大多时用模式1。该模式对用的是一个16位的定时器/计数器。模式2是把TL0(或TL1)配置成一个可以自动重新装载的8位定时器/计数器6。TL0计数溢出时,不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重新装载到TL0中。这里,16位计数器被拆成两个,TL0用作8位计数器,TH0用以保存初值。模式3对T0和T1大不相同。本实验系统采用模式1。主要用于来定时。T0用来为电子钟定时1s。每次定时结束后引发中断,中断程序开始为T0重新赋定时初值。如此循环来达到定时1s的目的。T1用来定时闪烁数据。当定时器开始工作时,开中断。图6 M1与M1组合功能表1.4.2 中断简介所谓中断,就是当CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理,于是CPU暂停当前的工作转为紧急事件服务,待服务完成后返回原来被终止的地方继续工作,这样的过程称为中断。89S52中断系统较为复杂,共有5个中断源和2个中断优先级。其中T0中断与T1中断会在程序用体现。有关中断的一个特殊功能寄存器为IE。其各位如图7所示。图7 IE特殊功能寄存器EA为中断总开关。EA为0,中断被禁止。ES为串口中断允许位,ET1为T1中断允许位,EX1为外部中断1中断允许位,ET0为T0中断允许位,EX0为外部中断0中断允许位。其中T0,T1中断触发后,硬件自动触发TF0,TF1为1。同时程序返回中断程序入口处。图8 中断矢量地址表中断程序一般比较长,而中断程序入口处的空间又教小。所以一般在入口处放置长跳转指令,从而达到不受地址空间大小限制的中断服务程序。中断服务程序执行完毕后返回原触发中断的地址。程序接着继续执行。中断服务程序一般需要在开头保护现场,在结尾恢复现场。采用的是堆栈的技术。所谓堆栈,是微处理器在片内RAM中专门开辟出来的一个区域,数据的存取是以“后进先出”的结构方式处理的。堆栈的操作有两种:一种叫数据压入(PUSH),另一种叫数据弹出(POP)。堆栈系统有个SP,叫做堆栈指针,在使用堆栈之前首先对SP赋值,以规定堆栈的起始位置,称为栈底。当数据压入堆栈后,SP自动加1,即RAM地址单元加1以指示出当前栈顶位置。这种堆栈结构属于向上生长型,较为常用7。1.5 指令系统与汇编编程单片机是一个硬件平台,它的工作需要用软件驱动。即需要程序驱动。常用的程序设计语言有汇编语言和C51语言。其中汇编语言程序设计要求设计人员对单片机的硬件结构有较为详细的了解。编程时,对数据的存放、寄存器和工作单元的使用等要由设计者安排,而用C51这类高级编程语言编程时,这些工作是由计算机软件完成的。所以开始采用汇编语言编程,可以帮助设计者提高对硬件的理性认识和夯实硬件基础。但高级语言编程教汇编语言简单、快速,在产品研发周期上具有重要意义,所以在掌握汇编语言编程能力后要继续学习高级语言编程,使工作效率得到提高。本设计采用汇编语言编程。89S52单片机汇编语言有独有的一套指令系统,共计111条,按功能可分为数据传送指令、算数运算指令、逻辑操作指令、控制程序转移类指令、位操作类指令。有7种寻址方式,分别是立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、编制寻址、相对寻址、位寻址。掌握111条指令和7中寻址方式是进行汇编程序设计的基础。1.6 一些软件的扼要介绍单片机的学习离不开各种软件的支持。常用的有keil软件和protel99SE等。Keil软件是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。利用此软件可以实现对单片机程序语言的编程,调试,并生成hex文件。Hex文件是一种可以输入到单片机芯片内部的文件,单片机芯片只有输入hex文件才能正常工作。另外,单片机系统需要硬件支持,PCB板是承载各种元件的平台。利用protel99SE可以画原理图,然后生成网络表格,调入到PCB板编辑器中就可以画出实际需要的PCB板。关于keil软件和protel99SE软件的更多知识,请查阅相关书籍8。2系统硬件工作原理2.1 系统实际电路图及分析图10是本单片机系统实际电路图。本电路中用到的元件清单见图9。元件数值/型号个数名称封装封装备注电阻4.7K5R1R5AXIAL0.4电阻10K1R6AXIAL0.4电阻1007R7R13AXIAL0.4电容30PF2C1C2RAD0.1电容10UF/25V1C3RB.1/.2自做晶振12M112MXTAL1三极管85505Q1Q5TO-92B1自做按键6*6(mm)4S1S4ANNIU自做蜂鸣器R=5.5(mm)1BELLBELL自做数码管LDS-5461BH1LDS1DIP12自做芯片AT89S521At89s52DIP40图9 电路元件清单图图10 电路实际原理图电路核心芯片为AT89S52。数码管芯片采用LDS-5461BH共阳性集成管。起开关作用的三极管8550的集电极接数码管片选信号,发射极接高电平,基极通过4K7电阻接单片机P3.0P3.3端口。当P3.0P3.3送低电平时,8550基极和发射极之间导通,起到开关作用,从而选中特定的数码管。数码管的7段显示二极管在芯片内部并联,通过电阻R7R13接到P0.0P0.6端口。当P0口送段选码时,数码管配合片选信号正确显示。电路设有复位按钮S4。为了达到比较精确的计时,采用12M晶振,配合两个30pf电容。报警装置为蜂鸣器,采用低电平触发。电路简单实用。部分电路采用总线设计,降低原理图的复杂度。其中数码管的段选信号出口ag因为不在同一侧,造成连线交叉点过多。在设计PCB板时,如果采用单面板,必然会造成复杂走线。如果采用双面板,则影响不大9。电路当中的+5V电源可以从电脑USB接口直接取电,或者采用3颗1.5V电池串联实现。2.2 从原理图到PCB图再到成品原理图是设计PCB板的基础,原理图应保持正确,并将原理图中所有元件进行封装。通常情况下大部分元件的封装在封装库中可以找到,如果找不到,虽然可以从网上下载别人建好的元件封装库,但也可以自己画元件封装。自己画元件封装可以实现更准确,有时也很简单。确认原理图正确并将元件全部封装后,进行ERC电气规则检查。所谓,ERC电气规则检查就是检查各个输入输出口是否连接正确,网络标号是否对应等。ERC检查无误后创建网络表。网络表是联系PCB图和原理图的纽带桥梁,网络表是纯TXT文档形式,也就是说可以自由编辑。通常情况下,从原理图生成的网络表一般正确,但有时将网络表调入PCB板后发现有些元件的引脚并无预拉线,这时就需要返回网络表查看相应的网络是否完善,一般情况下可能会少一个元件引脚,自己在网络表上加上,然后再保存,最后到PCB板重新调入网络表,会提示有新结点或接线要更新,点执行就会直接更新PCB板上的引脚预拉线。从原理图创建网络表,正确调入到PCB板后,需要对PCB各种参数进行适合自己的设计。比如PROTEL99SE默认自动布线是双面板自动布线,本系统需要单面板布线,则需要在设计选项里调整相应参数设置。通常单面板自动布线效果不好,需要手动修改,有时可以先让系统自动布线,然后自己参考系统布线规律进行手动布线。本系统单面板布线完成后留下5个跳线位置。所谓跳线,是为避免单面板走线交叉而手动加上的类似立交桥式的走线,以达到电气连接的目的。PCB布线完成后,将PCB原理图送入实验室完成PCB板的制作。制作完成后将各个元件焊接上去,调试,最后完成产品10。3 系统软件工作原理3.1 软件设计概况一个单片机系统功能的实现,最主要的就是单片机程序质量的高低。程序对于单片机的重要程度就像车手对于汽车一样。同样的汽车,在不同的车手控制下就能发挥不同的速度与质量。软件设计的中心就是让单片机按照人的意志实现预期的目的。为了达到这个目标,我们需要控制单片机的工具,这就是编程语言。编程语言丰富多样,本设计采用的是最普通也是最底层的语言,单片机汇编语言。单片机汇编语言对单片机内部资源的利用的精确程度最高。与此对应的是,汇编语言因为操作细腻而要求程序的严谨性和完整性。本系统采用汇编语言编程。简略框图如图11。AT89S52显示电路电源电路蜂鸣器电路图11 系统简略框图3.2 设计思路3.2.1 整体思路整体上采用模块化、结构化设计,重点是对定时器T0,T1的应用。程序设定一个MODE位来标志电子钟模式和定时器模式。默认MODE为0,电子钟模式。LED段选码在P0口扫描输出,位选码在P1口输出11。电子钟模式可以进入定时器模式,定时器模式无法返回电子钟模式,只能复位返回,故加一个复位电路。选用12M晶振以提高计时精度。3.2.2 电子钟模式设计思路计时采用定时器T0中断完成,其余状态循环调用显示子程序,当S1键按下时,转入调时功能程序。数码管显示的数据存放在内存单元70H75H中,其中70H75H存放秒数据,72H73H存放分数据,74H75H存放时数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出70H75H某一地址中的数据,然后查得相对应的显示用段码从P0口输出。P3口将对应的数码管选中,就能显示该地址单元的数据值。定时器T0用于时间计时。定时溢出中断周期设为50ms,中断累计20次到达1s,对秒计数单元加1。时间计数单元地址分别在70H71H(s)、76H77H(min)、78H79H(h),7AH单元内存放“熄灭符”数据(#0AH)。在计数单元中采用十进制BCD码计数,满60进位。T1中断服务程序用于指示调整单元数字的亮闪。在时间调整状态下,每过0.3s,将对应单元的显示数据换成“熄灭符”数据(#0AH)。这样,在调整时间时,对应调整单元的显示数据就会间隔闪亮起来。电子钟主要模块包括调时程序、中断程序、显示程序。3.2.3 定时器模式设计思路定时器模式程序中加入了抗干扰程序,可以在程序跑飞时被软件陷阱捕获,被抗干扰程序处理,返回复位状态,重新启动系统。计时设计和显示设计思路同电子钟模式类似。定时器主要模块包括主程序、菜单程序、中断程序、到点工作程序。3.2.4 主要难点分析本程序的模式转换采用MODE标志位,以选择对应T1中断服务程序。因为定时器T1是两种模式公用的中断计时器。思路是若按键时间小于1s,则对MODE位取反,按下时间长于1s则直接进入电子钟调时程序。在T1中断服务程序的开头,判断MODE位,为0进入电子钟中断服务程序,为1进入定时器中断模式。因为数码管显示的时候牵扯到2个大模式,在定时器模式中,调定时的模式中数码管闪动时无法完全熄灭,但不影响程序正常运行。这个是本程序的缺憾。3.3 本程序实现的功能本定时器可以实现两个主要功能。上电复位进入电子钟模式,窗口显示时钟从0h0min开始计时。长按调时键S1键1s以上可以进入电子钟调时间程序,小于1s进入定时器模式。进入调时程序后首先时钟停止,进入调分状态,再次按下S1键,若小于0.5s,分加1;若大于0.5s,进入调小时状态,再次按下S1键,若小于0.5s,时加1;若大于0.5s,退出调时程序,窗口显示时钟继续走动。进入定时器模式后窗口显示“-”机器待命。按下功能键S2键,窗口显示“F-01”,此时按修改键S3键,选择不同定时方式如下:方式1:定时关电源,定时范围为1s30min59s;方式2:定时关电源,定时范围为1min30h59min;方式3:定时开电源,定时范围为1s30min59s;方式4:定时开电源,定时范围为1min30h59min。选定定时方式后,按下S2键,进入时间设定。先设定秒或分,再设定分或小时。按S3增加数字,按S2确定,按住S3不放可快进。设定完毕按下S2键定时器长鸣一声,开始工作。定时到,在方式1和方式2下,定时器会一直鸣叫,显示工作模式;在方式3和方式4下,定时器以4分钟为频率间隔鸣叫一声,显示工作模式。按S2键或S3键可停止。进入定时器待命状态。任何时候按下S4键,程序初始化,重新进入电子钟模式12。4 实验结果利用RZ-51实验开发板和KEIL3软件,电子钟模块和定时器模块均能通过调试正常工作。将电子钟模块和定时器模块结合起来的调试也成功。最后做出了成品。5 结语通过本次设计,深刻领悟到单片机学科的精髓。掌握了单片机开发从编程到制作PCB板的一整套过程。单片机是一种开发平台,是一种工具,而单片机外围硬件电路的设计涉及到各个电子学科:模拟数字电路,高频低频电路,信号处理等。而更重要也更难的是编程,可以运用C语言和汇编语言,但主导思想不变:运用工具操纵单片机内核,从而达到自己想要的目的。本次设计坚定了我对单片机的信念,同时也让我领悟到学习单片机动手实验的重要性。参考文献1 冯川放. MCS-51单片机定时器的应用与误差纠正J.计算机时代.2008,(10):48-492 李朝青.单片机原理及接口技术M.第三版.北京.北京航空航天大学.2005,103 楼然苗,李光飞.51系列单片机设计实例M.第一版.北京.北京航空航天大学.2003,34 吴振声,王兆月,邢立军.病房多用单片机定时器J.微小型计算机开发与应用.1991,(5):83-855 洪源.基于单片机的智能定时控制系统的设计J.河南科技学院学报.2005,33(1):97-986 丁建军,陈定方,周国柱.基于AT89C51的智能电风扇控制系统J. 湖北工学院学报.2003,(2):61转687 钱夫泰.家用倒计时数字定时器J.家用电器.1994,(2):9-108 朱旭光.应用于教改的单片机定时器J.自动化技术与应用.2008,.27(4):98-1019 张继辉,崔亦斌.用AT89C2051单片机组成的数字定时器J.无线电.2004,(9):37-3810 朱光忠.AT89C51控制的红外遥控定时器J.电子工程师.2004,30(6):72-7411 Jeff C.Gust, Robert M.Graham, Michael A.Lombardi.Stopwatch andTimer Calibrations.Stopwatch andTimer CalibrationsM.U.S.GOVERNMENT PRINTING OFFICE.WASHINGTON. 2004,512 Afujinoe tal.An elevator group control system with floor-attribute control method and system optimization using genetic algorithmsJ.IEEE Transactions on IndustrialElectronics.1997.44(4):546-552致 谢本设计是在李晓伟老师的精心指导下完成的。从选题到完成的整个过程中,得到了李晓伟老师的及时指导和帮助,在此表示深深的敬意和谢意。附录一 程序流程图开始伪定义,赋初值,进入电子钟模式T0,T1设定为16位计数定时器,选第4组寄存器开总中断,允许T0中断调用电子钟显示子程序NY进入电子钟调时程序对MODE取反,进入定时器模式NY定时器模式开始关T1中断,设置堆栈冷启动,全面初始化调用定时器显示子程序P1.2=0?调用菜单程序,设定时间开始计时工作TIME UP?Y停止计时,调用到点工作程序结束P1.1=0?P1.11s?YNYN图12 总流程图秒单元加1=60s?秒单元清零,分加1=60min?分单元清零,时加1=24hour?时单元清零恢复现场,中断返回=1s?NNNNYYYY保护现场T0中断图13 T0中断服务程序P1.10.5s?NP1.10.5s?N电子钟调时程序关T0,开T1分钟加1子程序小时加1子程序关T1开T0,退出调时YY图14 电子钟调时程序T1中断MODE=0?NY保护现场关中断T1赋初值=0.3s?02H=0?YCPL 02HYN01H=0?分熄灭时熄灭不熄灭NY恢复现场,退出中断N保护现场,选寄存器组1倒计时子程序图15 T1中断服务程序附录二 PCB板图图16 PCB板图附录三 源程序;* 附加电子钟的定时器设计* ;*MCU: AT89S52 ;*MCU-crystal: 12M ;*Version: 01 ;*Last Updata: 2009-5-1 ;*Author: wangxin ;*Description ; ;1:定时器T0、T1溢出周期为50MS,T0为电子钟秒计数用 ;T1为电子钟和定时器的复合定时工具。 ; ;2:共4个按键。 S1为电子钟功能键兼转换键, ;S2为定时器功能键,S3为定时器修改键, ;S4为复位键 ; ;3:P3.0P3.3为位选,P0口送段选码 ;P2.1为报警发音 ;*;*; 伪定义 ;*;SL EQU 30H ;SL存放秒的个位数SH EQU 31H ;SH存放秒的十位数ML EQU 32H ;ML存放分的个位数MH EQU 33H ;MH存放分的十位数HL EQU 34H ;HL存放时的个位数HH EQU 35H ;HH存放时的十位数;L0 EQU 36H ;L0L3:显示数据存储器L1 EQU 37HL2 EQU 38HL3 EQU 39HDSPLYP EQU 3AH ;显示数据指针(DISPLAY-POINT)PLYTS EQU 3BH ;显示次数计数器(DISPLAY-TIMES);LPLMOD BIT 39H ;低两位显示方式(LOW-PLAY-MOD)HPLMOD BIT 3AH ;高两位显示方式(HIGH-PLAY-MOD)BRIGHT BIT 3BH ;DISPLAY子程序参数:亮灭指示位;TCOUNT EQU 3CH ;时间计数器(TIME-COUNT);ADDRES EQU 3DH ;加1子程序参数MAX EQU 3EH ;加1子程序参数IFDEC BIT 20H ;BCD加法子程序参数;R_MOD EQU 3FH ;响铃方式参数;LED4 BIT 30H ;发光管状态位BELL BIT P2.1 ;蜂鸣器CKEY BIT P1.1 ;调时&跳转键(S1)FKEY BIT P1.2 ;功能键 (S2)MKEY BIT P1.3 ;修改键 (S3);WORKIN BIT 38H ;工作状态指示位MODE BIT 03H ;电子钟和定时器指示位;/ 中断入口程序/ORG 0000HLJMP START ;0000H引向主程序LJMP ERR ;0003HNOPNOPLJMP ERR ;引向出错处理程序LJMP INTT0 ;000BH引向中断处理程序INTT0NOPNOPLJMP ERR ;引向出错处理程序LJMP ERR ;0013HNOPNOPLJMP ERRLJMP INTT1 ;001BH 引向中断处理程序INTT1NOPNOPLJMP ERRLJMP ERR ;0023HNOPNOPLJMP ERRLJMP ERR ;002BHNOPNOP/主程序 /START: MOV PSW,#18H ;选用第4组寄存器MOV R0,#70H ;清70H7AH共11个内存单元MOV R7,#0BHCLEARDISP: MOV R0,#00HINC R0DJNZ R7,CLEARDISPMOV 20H,#00H ;清20H(标志用)MOV 7AH,#0FFH ;放入“熄灭符”MOV TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50ms定时初值(T0用)MOV TH0,#3CH ;MOV TL1,#0B0H ;50ms定时初值(T1用)MOV TH1,#3CHSETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1s定时用初值(50ms*20)START1: LCALL DISPLAY ;调用显示子程序JNB CKEY,SETMM1 ;P3.1口为0时转时间调整程序SJMP START1 ;P3.1口为1时跳回START1SETMM1: LJMP SETMM ;转到时间调整程序SETMM/1S计时程序 /INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断保护CLR TR0 ;关定时器T0MOV TL0,#0B0H ;重新对T0赋初值MOV TH0,#3CHSETB TR0 ;开定时器T0DJNZ R4,OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1s)重赋初值MOV R0,#71H ;指向秒计数单元(70H71H)ACALL ADD1 ;调用加1程序(加1s程序)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60s时中断退出ACALL CLR0 ;大于或等于60s时对秒计时单元清0MOV R0,#77H ;指向分计时单元(76H77H)ACALL ADD1 ;分计时单元加1minMOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60min时中断退出ACALL CLR0 ;大于或等于60min时分计时单元清0MOV R0,#79H ;指向小时计时单元(78H79H)ACALL ADD1 ;小时计时单元加1MOV A,R3 ;时数据单元放入ACLR C ;清进位标志CJNE A,#24H,HOURHOUR: JC OUTT0 ;小于24h中断退出ACALL CLR0 ;大于或等于24h小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元MOV 73H,77H ;数据移入对应的显示单元MOV 74H,78HMOV 75H,79HPOP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断RETI ;中断返回/ 闪动调时程序 /INTT1: JNB MODE,INT1M0 ;MODE位为1,跳转到电子钟T1中断LJMP PGT1 ;否则跳到定时器T1中断INT1M0: PUSH ACC ;MODE标志位为0,中断现场保护PUSH PSW ;MOV TL1,#0B0H ;装入定时器T1定时初值MOV TH1,#3CH ;DJNZ R2,INTT1OUT ;0.3s未到退出中断(50ms中断6次)MOV R2,#06H ;重装0.3s定时用初值CPL 02H ;0.3s定时到对闪烁标志取反JB 02H,FLASH1 ;02H位为1时显示单元“熄灭”MOV 72H,76H ;02H位为0时正常显示MOV 73H,77H ;MOV 74H,78H ;MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场POP ACC ;RETI ;中断退
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京市海淀区第二实验小学教育集团招聘模拟试卷及完整答案详解1套
- 2025年安徽理工大学公开招聘电气与工程学院副院长考前自测高频考点模拟试题及答案详解(网校专用)
- 2025广西西林县委机构编制委员会办公室招聘编外聘用人员2人考前自测高频考点模拟试题含答案详解
- 2025贵州护理职业技术学院第十三届贵州人才博览会引才17人模拟试卷完整答案详解
- 2025黑龙江伊春市金林区社区工作者招聘笔试模拟试卷附答案详解(突破训练)
- 2025河北承德市消防救援支队政府专职消防队员招聘73人模拟试卷及答案详解(网校专用)
- 2025年4月广东潮州市第三人民医院招聘编外人员49人考前自测高频考点模拟试题及完整答案详解1套
- 2025年四川绵阳市经开区考核招聘卫生专业技术人员9人模拟试卷完整答案详解
- 2025河北张家口市事业单位招聘有关事项模拟试卷及完整答案详解一套
- 子女托费协议书
- 新版中华民族共同体概论课件第七讲华夷一体与中华民族空前繁荣(隋唐五代时期)-2025年版
- 急性淋巴细胞白血病
- 围墙装饰墙帽施工方案
- 燃气运营安全管理方案
- 企业安全生产费用预算表模板
- (正式版)DB44∕T 2697-2025 《岩土工程勘察安全技术标准》
- 畜牧兽医专业毕业论文豆
- (高清版)DBJ∕T 13-318-2025 《建筑施工盘扣式钢管脚手架安全技术标准》
- 高中英语完形填空高频词汇300个
- 脑梗塞并出血护理查房
- 鲁班锁制作技术
评论
0/150
提交评论