




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
# 业 大 学毕 业 设 计(论 文)设计(论文)题目: 基于单片机数码管的显示、定时与计数的设计系 别:电子工程系专 业:应用电子技术班 级:09 电子(1)姓 名:#学 号:0906010115指导教师:#完成时间:45#毕业设计(论文) 第45 页共44页目 录 摘要:41引言51.1数电字子钟的背景、意义、应用51.2设计方案的确定62单片机设计数字钟的原理72.1主芯片8051的硬件介绍72.1.1单片机的概念72.1.2 引脚定义及功能82.2 单片机最小系统122.2.1时钟电路的设计122.2.2 复位电路的设计132.2.3 电源电路的设计142.3中断系统152.3.1中断的概念152.3.2中断源152.3.3中断优先级控制器IP162.3.4 中断响应172.3.5中断返回182.4定时与计数192.4.1单片机定时/计数器在数字钟的使用192.4.2与T/C有关的特殊功能寄存器192.4.3定时器/计数器的初始化203 硬件设计223.1电子钟设计223.1.1 功能说明223.2 LED数码管的显示设计223.2.1LED数码管动态显示原理223.2.2 LED数码管显示器的译码方式233.2.3 LED数码管显示器的显示方式243.3大电流负载驱动电路设计243.4按键带路的设计253.4.1 键盘接口电路设计253.4.2按键的消抖253.4.3独立式键盘的硬件设计273.4.4独立式键盘程序设计274 软件设计284.1 汇编语言284.1.1单片机汇编语言284.1.2 概述284.2系统单元分配294.3 程序框图与汇编程序294.3.1功能说明及系统软件设计流程图294.3.2主程序设计304.3.3 T0中断服务子程序324.3.4 显示子程序324.3.5 T1中断服务子程序325 结论与展望345.1 结论345.2 单片机的发展趋势34致谢36参考文献37附录 原理图38附录 编语言39附录 器件清单45题目基于单片机数码管的显示、定时与计数的设计作者 李曼摘要:时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器。由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校。数字式电子钟用集成电路计时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差。这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。本次设计利用单片机实现数字时钟计时功能的主要内容,其中AT89C51是核心元件同时采用数码管动态显示“时”、“分”、“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。本次做的数字钟就是以单片机(80C51)和共阳极LED数码管为核心,结合相关的电路来完成设计。它具有时、分、秒显示的功能,并且时、分、秒可以调整的功能。此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。关键词:单片机;AT89C51芯片;共阳极LED数码管;汇编语言。 1 引言1.1数电字子钟的背景、意义、应用 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时自动报时及自动控制的领域。1.2设计方案的确定项目设计要求:用单片机实现由LED数码管显示时分秒的数字钟,具有按键修改时钟参数的功能,并且整点报时和闹钟功能。方案一:基本门电路搭建,用基本门电路来实现数字钟,电路结构复杂,故障系数大,不易调试。方案二:单片机编程,用单片机设计电路,由于使用软硬件结合的方式,所以电路结构简单,调试也相对方便。所以我们选择第二种方案。2 单片机设计数字钟的原理 以8051为主芯片制作多功能数字钟的方案中,时钟信号主要由8051单片机的定时器/计数器来提供,对时间进行设置和进行闹铃设置主要用到单片机的外部中断。外部控制电路及显示电路都用到了他的I/O口,在本章我们主要介绍一下关于8051单片机定时器/计数器、中断源及中断系统以及8051的I/O口的特性及应用。2.1主芯片8051的硬件介绍2.1.1单片机的概念单片机(microcontroller,又称微控制器)是在一块硅片上集成了各种部件的微型计算机。这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。AT89S51/ATS52属于标准型单片机,其基本组成如下图2-1所示AT89S系列单片机内部结构一个8位的CPU,是计算机的核心部件,主要用于运算和控制(字长=8bit);CPU需要有时钟电路,产生脉冲信号即主频。内部RAM一共256B,可读可写(指令),但真正用于一般数据存储器的只有128B(内存),外128B作为专用寄存器使用(用于对计算机的各种设定和工作状态的反应),AT89S52内部有256B的数据存储器,外部可扩展64KB。内部有4KB的FlashROM,AT89S52内部有8KB,只能读不能写(指令),一般用于存放程序和表格;外部可以扩展64KB。有两个16位的+1定时/计数器(T0、T1),分别可以工作定时和计数两种状态。有4个8位的并行输入/输出口(I/O),分别是P0、P1、P2、P3口,这是单片机和外设通信的输入/输出口,共32个口线。有一个全双工的异步串行口,可以同时发送或接收。中断系统,有5个中断源,3个内部中断,2个外部中断,能实现两级嵌套。有一个ISP串行口,用于对单片机内部FlashROM进行串行在线编程。看门狗电路,当单片机发生死机时,能使计算机自动复位。三总线,包括数据总线、地址总线、控制总线。2.1.2 引脚定义及功能单片机实际有效的引脚为40个,常用的有2种封装,其引脚图可参见图:(a)为DIP封装形式,这是普通40脚塑封双列直插式;(b)为PLCC封装形式,这种形式是具有44分“J”脚型(其中有4个是空脚)的方形芯片,使用时需要插入与其相配的方形插座中,在这里使用的是40脚封装的双列直插式DIP结构的单片机,40个引脚中,正电源和地线2个引脚,外置石英震荡器的时钟线2个引脚,4组8位共32个I/O接口,中断口线与P3口线复用,控制引脚4个,其引脚图如2-1所示。下面对这些引脚的功能加以说明,如图2-2所示:图2-2 引脚排列图VCC:电源GND:地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口。P1输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表2-1所示。在flash编程和校验时,P1口接收低8位地址字节。表2-1 P1口引脚的第二功能引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如表2-2所示。表2-2 P3口引脚的第二功能引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2(外部中断0)P3.3 (外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器写选通)在flash编程和校验时,P3口也接收一些控制信号。在上述4个I/O口,各有各的用途,在扩展外部存储器系统中,P0口专用于分时传送第8位地址信号和高8位数据信号,P2口专用于传送高8位地址信号,P3口根据需要常用于第二功能,真正可提供给用户使用的I/O口P1口和一部分未用作第二功能的P3口端线。RST:复位输入。晶振工作时,RST脚持2个机器周期,高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号,为内ROM 选择端编程电源 a、正常工作时,EA为内外ROM 选择端; b、 对闪存进行编程期间,此引脚用于施加编程电源VPPc、为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。2.2 单片机最小系统 单片机的最小系统就是单片机工作时所需要的最小配置。包括以下几个部分(除8031外)2.2.1时钟电路的设计80C51单片机内有一个高增益反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件,XTAL2可以不接,而从XTAL1接入,由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。反相放大器的输入端为XTALl,输出端为XTAL2,两端连接石英晶体及两个电容形成稳定的自激振荡器。电容通常取30PF左右。振荡频率范围是1.212MHz。如图2-2(a)所示。(a)振荡电路 (b)AT89S52的时钟芯片图2-2 时钟电路80C51单片机的一个机器周期由6个状态(S1S2)组成,每个状态又持续2个振荡周期,分为P1和P2两个节拍。晶体振荡器的振荡信号从XTAL2端输出到片内的时钟发生器上。时钟发生器为二分频器。向CPU提供两相时钟信号P1和P2。每个时钟周期有两个节拍(相)P1和P2,CPU就以两相时钟P1和P2为基本节拍指挥AT89S52单片机各部件协调工作。图2-2(b)给出片内时钟发生器原理。在本次设计中取石英晶体的振荡频率为12MHz。地址锁存信号端ALE,输出一个固定频率的脉冲,fALE=fose/6,VALE=5/3(V),用万用表的直流电压档直接去测量该引脚,若单片机电源为+5V,则,VALE电压为5/3(V),单片机时钟电路已经正常工作,这一般用于单片机是否正常工作的判断。2.2.2 复位电路的设计单片机复位是使CPU和系统中的其他功能部件都处于一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第一个单元取指令。无论是在单片机刚接通电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MGS-51型单片机复位的条件、复体电路和复位后状态。 单片机复位的条件是:必须使RST引脚(9)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12MHz,每个机器周期为1s,则只需2s以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位电路如图2.3所示。图2-4(a)图为80C51型单片机上电复位电路。RC构成了微分电路,利用电容充电来实现的。在接电瞬间,电阻R1电压为电源VCC,若其宽度大于2个周期,80C51型单片机将复位,电容充满电后,电容的电压为VCC,电阻R1的电压为0,引脚RST电压也为0,单片机退位复出,开始正常工作。为保证微分脉冲宽度足够大,RC时间常数应大于2个机器周期,一般取电容10uF,电阻10K。电容电压为0V,RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于两个机器周期,便能正常复位。上电复位电路的特点是很方便,当有电源接通给单片机时,此电路就可以自动产生复位信号。图2-4(b)图为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图 (b)中的RST键,此时电源VCC经电阻R1、R2分压,在RST端产生一个复位高电平。按键复位电路的特点就是上电以后,可以随时通过按键来发出复位信号。该电路除具有上电复位功能外。这对系统的可控性是很有帮助的。在本次设计中采用上电复位。 2.2.3 电源电路的设计 一般8051单片机的是5V电源。在项目板上有两种供电方式,一种是直接使用+5V的电源,一种是利用PC机USB接口的+5V电源,本次设计我们采用了前者。如下图:2.3中断系统2.3.1中断的概念 所谓中断,是指当计算机正在执行正常程序时,系统中出现了某些急需处理的异常情况和特殊请求。计算机停止正在执行的正常程序,转而去处理异常情况,处理完异常情况后,再回到正常程序的过程。2.3.2中断源中断源就是能向CPU提出申请的部件。内部结构如下: 2-6 中断源注:MCS-51单片机(51子系列)有五个中断源,其中两个外中断,三个内中断,具有两个中断优先级,可以实现二级中断嵌套。8051单片机的5个中断源是;外部中断请求0,由INT0(P3.2)输入;外部中断请求1,由INT1(P3.3)输入;片内定时器/计数器0益处中断请求;片内定时器/计数器1 溢出中断请求;片内串行口发送/接收中断请求;为了了解每个中断源是否产生了中断请求,中断系统应设置许多个中断请求触发器(标志位)实现记忆。这些中断源请求标志位分别有特殊功能寄存器TCON和SCON的相应位锁存(1) 定时器/计数器控制寄存器TCON,它是一个八位的寄存器,各位如下表所示TF1TR1TF0TR0IE1IT1IE0IT0IT0:外中断0的触发方式选择位,为“0”低电平触发,为“1”下降沿触 发,由用户设定。IE0:外中断0中断申请标志位,当满足触发条件时,IE0为“1”,否则为“0”,由硬件完成。IT1:外中断1的触发方式选择位,为“0”低电平触发,为“1”下降沿触发,由用户设定。IE1:外中断1中断申请标志位,当满足触发条件时,IE1为“1”,否则为“0”,由硬件完成。TR0:为T0的启动位,为“1”时T0开始计数,为“0”时T0停止计数,由用户设定。TF0:为T0的溢出标志位,当T0计满数后,TF0为“1”,在中断系统中也称之为中断申请标志位,由硬件完成。TR1:为T1的启动位,为“1”时T1开始计数,为“0”时T1停止计数,由用户设定。TF1:为T1的溢出标志位,当T1计满数后,TF1为“1”,在中断系统中也称之为中断申请标志位,由硬件完成。2.3.3中断优先级控制器IP中断优先级寄存器IP字节地址B8H为,位地址为B8H-BFH,其内容及位地址如表2-7所示:表2-7 IP寄存器的内容及地址地址位BFHBEHBDHBCHBBHBAHB9HB8H符号位/PSPH1PX1PT0PX0PX0:外中断INT0优先级设置,为“0”时低优先级,为“1”时高优先级,由用户设置。PT0:定时/计数器T0优先级设置,为“0”时低优先级,为“1”时高优先级,由用户设置。PX1:外中断INT1优先级设置,为“0”时低优先级,为“1”时高优先级,由用户设置。PT1:定时/计数器T1优先级设置,为“0”时低优先级,为“1”时高优先级,由用户设置。PS:串行口S优先级设置,为“0”时低优先级,为“1”时高优先级,由用户设置。注:1、都是有用户设定。 2、8051复位时,IP被清零,5个中断源都在同一个优先级。这时若其中几个中断源同时产生中断请求,则CPU按照片内硬件优先级链路的顺序相应中断,硬件优先级由高到低的顺序是:外部中断0定时器/计数器0-外部中断1-定时器/计数器1-串行口中断2.3.4 中断响应某一中断源向CPU发出中断请求,只有满足下面条件后,才能得到CPU 的响应: 有中断源发出中断请求; 中断总允许位EA1,即CPU 开中断; 申请中断的中断源的中断允许位为1,即相应的中断允许标志位为1 。满足以上条件,CPU一般会响应中断,但如果有下列情况之一,则中断响应被暂时搁置:CPU正在执行一个同级或高优先级的中断服务程序;当前的机器周期不是正在执行的指令的最后一个机器周期,只有在当前指令执行完后,才能响应中断;当前正在执行的指令时返回指令(RET、RETI)或访问IE、IP指令。CPU在中断响应之后完成如下操作:硬件清除相应的中断标志位;执行一条硬件子程序,保护断点,并转向中断服务程序入口。结束中断时执行RETI指令,恢复断点,返回主程序。8051的CPU在相应中断请求时,由硬件电路自动形成转向与该中断源对应的中断的服务程序入口地址。这种方法为硬件向量中断法。各中断源的中断服务程序入口地址如下:编号中断源入口地址T0外部终端00003H/INTO 1定时器/计数器0000BHT1外部终端10013H/INT1定时器/计数器1001BHS串行口中断0023H各中断服务程序入口地址仅隔8个字节,编译器在这些地址放入无条件转移指令,跳到服务程序的实际地址。向量中断包括把先前的程序计数指针推入堆栈,中断服务程序很像其他子程序。当向量中断发生时,硬件禁止所有中断。此时表明外部中断或定时器溢出的标志位由硬件清除。中断服务程序的不同分支取决于中断源。在重新允许全局CPU中断EA之前,必须仔细清除各种标志。标志会引起立即地重复中断。8051对终端实际上有特殊的返回指令-RETI。不是RET。RETI重新允许系统识别其他中断。因而,没必要在正常使用中断时复位EA,只要在程序初始化时开中断一次就可以了2.3.5中断返回中断服务程序的最后一条指令必须是中断返回指令RETI。CPU 执行完这条指令后,把响应中断时所保护的断点地址从堆栈中弹出,然后装入程序计数器PC 中,CPU 就从原来被中断处继续执行原来被中断的程序。2.4定时与计数2.4.1单片机定时/计数器在数字钟的使用8051系列单片机至少有两个16位内部定时器/计数器。8052有三个定时器/计数器,其中连个基本定时器/计数器是定时器/计数器0和定时器/计数器1。他们既可以编程为定时器使用,也可以编程为计数器使用。若是计数内部晶振驱动时钟,则它是定时器;若是计数8051的输入引脚的脉冲信号,则它是计数器。8051的T/C时加一计数的。定时器实际上也是工作在技术方式下的,只不过对固定频率的脉冲计数;由于脉冲周期固定,由计数值可以计算出时间,有定时功能。当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加一,频率加=fosc/12。晶振为6MHz,计数频率=500KHz,每2Us计数加一。当T/C工作在计数器时,计数脉冲来自外部脉冲输入引脚T0或T1。当T0或T1脚上负跳变需2个机器周期,即24个振荡周期。所以T0或T1脚输入的计数外部脉冲的最高频率为fosc/12。当晶振为12MHz时,最高技术频率为500KHz,高于此频率将计数出错。2.4.2与T/C有关的特殊功能寄存器计数寄存器TH和TLT/C是16位的,计数寄存器有TH高8位TL低8位构成。在特殊功能寄存器中,对应T/C0为TH0和TL0;对应T/C1为TH1和TL1。定时器/计数器的初始值通过TH1/TL1和TH0/TL0设置定时器/计数器控制寄存器TCONTR1TR0TR0、TR1:定时器/计数器0、1启动控制位。1是启动,0是停止TCON复位后清零,T/C需要受到软件控制才能启动计数;当计数计满时,产生向高位的进位TF,即溢出中断请求标志T/C的方式控制寄存器TMODGATEC/TM1M0GATEC/TM1M0C/T:计数器或定时器选择位。1位计数器,0位定时器GATE:门控信号。1时T/C的启动控制受到双重控制,即要求TR0/TR1和INT0/INT1同时为高;0时T/C的启动仅受TR0/TR1控制M1和M0:工作方式选择位,具体见下表M1 M0方式功能0 00为13位定时器/计数器,TL存低5位,TH存高8位0 11为16定时器/计数器,TL存低8,TH存高8位1 02常数自动装入的8位定时器/计数器1 13仅适用于T/C0,两个8为定时器/计数器2.4.3定时器/计数器的初始化初始化步骤在使用8051的定时器/计数器前,应对它进行编程初始化,主要是对TCON和TMOD编程,还需要计算和装载T/C的计数初值。一般完成以下几个步骤:确定T/C的工作方式-编程TMOD寄存器。计算T/C中的计数初值,并装载到TH和TL。T/C在中断方式工作时,须开CPU中断和源中断-编程IE寄存器。启动定时器/计数器-编程TCON中TR1和TR0位设计定时、计数初值的计算在定时器方式下,T/C是对机器周期脉冲计数的,如果fosc=12MHz,一个机器周期为1Us,则方式0 13位定时器最大时间间隔=(2-1)*1Us=8.192ms;方式1 16位定时器最大时间间隔=(2-1)*1Us=65.356ms;方式2 8位时器最大时间间隔=(2-1)*1Us=2.56ms若使T/C工作在定时器方式1,要求定时1ms,求计数初值。如设计数初值为50ms,则有(2-1)*1Us=50000us 即: x=2-50000因此,TH,TL可置65536-50000,十六进制表示为3CB0。本设计中的1S钟基准时间的设计要求是:时钟的主频为12MHz,设定T0工作在方式1、定时、中断工作状态,定时时间为50ms(3CB0),中断20次为1s,1s钟时间到,秒1,秒为60后,分1,分为60后,时1,时为24后,清零。调整时闪烁设计,用T1工作在方式1、定时、中断工作状态,定时时间为50ms(3CB0),中断5次为0.5s,0.5s钟时间到,标志位F0取反一次。F0在显示主程序中作为闪烁的判断。T0、T1的计算方法如下: 根据要求我们知道TMOD=11H, 工作在方式1 (2-a)*fose/12MHz=50000 (2-a)*12MHz/12MHz=50000 a=2-50000=65536因此,TH,TL可置65536-50000,十六进制表示为(3CB0)。 1s=50ms*20 也就是说定时时间为50ms时,要循环20次才可以得到1s的基准时间。3 硬件设计3.1电子钟设计3.1.1 功能说明用六个LED数码管显示时、分、秒,用四个按键来实现时、分、秒的调整及60秒的倒计时,其中一个按键作为功能键,可控制调时、调分、调秒位,另外三个按键作为1键、1键和60秒倒计时控制键,在调整时,对应的位闪烁。四个LED用来显示时与分、分与秒之间的显示。3.2 LED数码管的显示设计3.2.1LED数码管动态显示原理 LED显示器是发光二极管显示器,内部由发光二极管组成,按其发光二极管排布的结构不同,可分为LED数码管显示和LED点阵显示器。LED数码管显示器可显示少量的数字、字母和符号,本次设计就采用了LED数码管显示器, LED数码管显示器是有8只发光二极管组成,其中7只发光二极管排成“8”字形的7各段,另外一只构成小数点,各段标记如下图3-1 3-1 LED数码管显示器结构LED数码管显示器中内部8只二极管有两种接法,一种是共阴极,就是将发管二极管的阴极连接到一起,作为公共端COM,使用时公共端要接电源负极;另一种是共阳极,就是将发管二极管的阳极连接到一起,作为公共端COM,使用时公共端要接电源正极。本次设计采用了共阳极的数码管。在接口电路中,由于发光二极管发光时的正向电压是1.8V,发光电流是3mA10mA。故需要外接限流电阻,电阻值的大小同单个发管二极管,那么公共端COM的电流就是24mA。限流电阻的计算:(5-1.8)/3mA=1K但是我们为了方便通常会放有一定的余量,故本次设计里数码管的限流电阻我们取510欧姆。对于另外的四个发光二极管的限流电阻我们就取1K3.2.2 LED数码管显示器的译码方式LED数码管显示器可显示少量的数字、字母和符号,而这些在计算机中是以二进制数的形式出现,将这些二进制译成对应字形的过程称为译码。单片机里有两种译码方式,一种是用译码芯片,称为硬件译码;一种是过单片机的内部程序来译码,称为软件译码。本次设计采用了软件译码。 二进制数和共阳极数码管显示器字型码之间的关系,如下图3-2显示的数二进制数二进制字型码十六进制B3B2B1B0hgfedcba0000011000000C01000111111001F92001010100000A43001110110000B04010010011001995010110010010926011010000010827011111111000F8810001000000080910011000100090软件译码就是将要显示的数通过计算机的程序翻译成对应的字形码。只要将LED数码管和单片机直接相连即可(见原理图)。软件译码是通过查表的方式实现的。3.2.3 LED数码管显示器的显示方式 LED数码管显示器有两种显示方式,及即静态显示和动态显示。 、静态显示 在静态显示方式下,每位数码管的ag和h端与一个位的I/O 相连。要在某一位数码管上显示字符时,只要从对应的I/O 口输出其显示代码即可。其特点为:数码管中的发光二极管恒定地导通或截至,直到显示字符改变为止。静态显示优点:不占用CPU的时间;缺点:占用过多输出端口。 、动态显示(硬件电路) 工作原理:逐个地循环点亮各位显示器,为了使人看到所有的显示器都在显示,就得加快循环点亮各位显示器的速度,利用人眼视觉残留效应,给人感觉到与全部显示器持续点亮的效果一样。注:循环扫描的频率不低于50Hz。 优点:用较少的端口,可扩展多位LED显示器;缺点:过多的占用CPU的时间。 综上故设计采用了LED数码管、共阳极的动态显示。3.3大电流负载驱动电路设计 80C51单片机的驱动电流较小,不能直接驱动大电流负载,那就必须要加驱动带路。 本次设计采用了负载与单片机共用+5V电源VCC 故本次设计P2口输出低电平驱动(驱动电路图此处略)。 我们采用了PNP-8550三极管作为驱动,其驱动电阻的计算如下: 因为LED数码管的电流是3mA8mA,我们取6mA,故其COM端的电流为24mA80mA,取中间值48mA;电源VCC为5V;三极管的放大倍数为30150,我们取中间值50为例;此处的三极管当于一个开关,当P2口的输出低电平时,三极管相当于开关的“开”,三极管集电极的理想电压为5-0.3=4.7V, Ib=Ic/50=48/50mA=0.96mA R=4.7/0.96=4.8K 为了留有一定的余量我们这次设计中取5.1K。3.4按键带路的设计3.4.1 键盘接口电路设计单片机键盘接口电路是利用端口输出若高电平的特点来实现的。由于输出为弱高电平,负载可以是无穷大,电阻为0,即输出高电平时输出可以短路,此时的电流由上拉电阻来决定。电路图如下图3-3当端口输出为高电平时,输出为弱高电平,若负载短路,即按键S闭合,高电平被按键拉成低电平,流过按键的电流是由P3口内部的上拉电阻R决定,即VCC/R,内置的上拉电阻一般在10K50K之间,则最大的电流为0.5mA,电流很小,故端口短路也不会烧坏单片机,我们就是利用这个特点来扩展按键的。 我们读端口状态时,必须向端口写“1”,使内部场效应管V截止,通过内置的上拉电阻R,使端口处于弱高电平,再去读引脚。若按键闭合,将端口的弱高电平拉成低电平,我们读到低电平,即有按键闭合。本次设计上拉电阻的计算如下: R=VCC/0.5=5/0.5=10K3.4.2按键的消抖 由于机械式按键为有触点式按键,在闭合时和释放时的瞬间有抖动,也就是说由高电平到低电平的瞬间和由低电平到高电平的瞬间要反复多次才能稳定,如下图3-4所示。这种抖动和干扰相似,同时也不利于多键盘的查找,因此我们需要消抖。消抖的方法有:硬件消抖、软件消抖和软硬结合消抖。 1S钟基准时间的设计,时钟的主频为12MHz,设定T0工作在方式1、定时、中断工作状态,定时时间为50ms(3CB0),中断20次为1s,1s钟时间到,秒1,秒为60后,分1,分为60后,时1,时为24后,清零。调整时闪烁设计,用T1工作在方式1、定时、中断工作状态,定时时间为50ms(3CB0),中断5次为0.5s,0.5s钟时间到,标志位F0取反一次。F0在显示主程序中作为闪烁的判断。 3-4 按键的消抖、硬件消抖硬件消抖有分为双稳态触发器和电容滤波电路,双稳态触发器使用较为较为复杂,就是用数字电路的RS触发器等来实现的,一般不用。电容滤波较为简单,就是在按键上并连一个小电容来消抖,电容一般为0.1uF,这种方法简单,成本低,使用较多,如上图3-5所示: 、软件消抖按键的抖动一般前沿和后沿10ms内,单片机在度到低电平(按键闭合)后,延时10ms,再读第二次,若第二次读到的还是低电平,则按键闭合,否则按键没有闭合。也就是说,必须读两次,两次的都是低电平,;两次的间隔时间是10ms,才能确定有按键闭合。这在程序上的实现也是比较简单的。、软硬结合事实上就是把软件和硬件结合起来。本次设计采用了软件消抖的方法。3.4.3独立式键盘的硬件设计 键盘的设计分为独立式和行列式。独立式键盘是直接用I/O口线构成单个按键电路,如下图3-6所示:用P3口的8个I/O口线扩展8个独立式键盘,没有按键闭合时,为了使输出口得到可靠的高电平,在每个端口上都加上一个10K的上拉电阻。说明:独立式键盘占用的I/O口端口较多,一位I/O口线只能扩展一个按键,不利于按键多的扩展,但是按键的错误判断率低,而且编程简单,故本次设计采用了这个方法。3.4.4独立式键盘程序设计单片机再读外引脚时,先向端口写“1”,使单片机内部的输出场效应管截止,端口输出为弱高电平,在去读P3口的数据,读进的数据不全为“1”,则说明有按键闭合。延时10ms消抖,再去读一次,若读进的数据还是不全为“1”,则真的说明有按键闭合。有按键闭合后,再去键扫描,判断具体的键号,放入R3中。4 软件设计4.1 汇编语言4.1.1单片机汇编语言机器语言、汇编语言和高级语言在计算机中,所有的指令、数据都是用二进制代码来表示的。这种用二进制代码表示的指令系统称为机器语言,用机器语言编写的程序称为机器语言程序或目标程序,为了书写方便,一般用十六进制代码表示。优点:机器语言是计算机唯一懂的语言,能被计算机直接识别并快速执行;缺点:用户不易识别和记忆,容易出错。4.1.2 概述用英文字符来代替机器语言,这些英文字符被称之为助记符,用助记符表示指令系统的语言称之为汇编语言。但是计算机不能直接识别在汇编语言中出现的各种字符,需要将其转换成机器语言,单片机原理与应用中常把这一转换(翻译)工作称为汇编。汇编可以由查表的形式手工完成,也可由专门的程序来完成,这种程序称为汇编程序。汇编后得到的机器语言程序称为目的程序或目标程序,原来的汇编语言程序称为源程序。由于汇编语言是一种面向机器的语言,因此受到机器种类的限制,不能在不同类型的计算机上通用,这样就出现了高级语言,例如ASIC、C 语言等。高级语言是一种面向过程的语言,这种语言更接近英语和数字表达式,易被一般用户掌握。汇编语言是用助记符形式表示指令的一种计算机语言,其中助记符由约定的英文字母组成,而指令则是完成特定动作所需的指示和命令。目前,在单片机系统中,应用最广泛的还是汇编语言。这是因为汇编语言源程序结构紧凑,灵活,汇编成的目标程序有效率高,占用内存空间少,运行速度快和实时性强等特点,适合实时测控等应用领域的要求,但不适合编写太复杂的程序。汇编语言程序设计的基础是与其对应的汇编语言指令集,并与硬件组成,系统功能要求密切相关。因此,对设计者的要求是全面了解和掌握系统的硬件结构,指令系统以及有关算法,并尽可能的节省存储单元,缩短程序长度,加快运算速度,选取合适指令等。这样才能设计出高质量的汇编语言源程序。4.2系统单元分配在AT89C51单片机的内部00H-1FH为工作寄存器区,20H-2FH为位寻址区,30H-7FH为数据缓冲区。堆栈的先进后出的特点。本次设计寄存器的分布如下:R2:放构成1ms的循环次数R3:功能选择键R4:“时” 的显示R5:“分” 的显示R6:“秒” 的显示 R7:用于调整时、分、秒时的0.5秒闪烁4.3 程序框图与汇编程序单片机数字钟的系统软件程序由主程序和子程序组成,主程序包含初始化参数设置、按键处理、数码管显示模块等,在设计时各个模块都采用子程序结构设计,在主程序中调用。由于定时器/计数器采用中断方式处理,因此还要编写定时器/中断服务子程序,在定时计数器中断服务程序中对时钟进行调整。 4.3.1功能说明及系统软件设计流程图用六个LED数码管显示时、分、秒,用四个按键来实现时、分、秒的调整及60秒的倒计时,其中一个按键作为功能键,可控制调时、调分、调秒位,另外三个按键作为1键、1键。四个LED用来显示时与分、分与秒之间的显示。1S钟基准时间的设计,时钟的主频为12MHz,设定T0工作在方式1、定时、中断工作状态,定时时间为50ms(3CB0),中断20次为1s,1s钟时间到,秒1,秒为60后,分1,分为60后,时1,时为24后,清零。调整时闪烁设计,用T1工作在方式1、定时、中断工作状态,定时时间为50ms(3CB0),中断5次为0.5s,0.5s钟时间到,标志位F0取反一次。F0在显示主程序中作为闪烁的判断。六个LED数码管采用动态显示的方法,字型口串联510欧姆的限流电阻后接到P1口上,字位口通过三极(8550)管驱动后,接到P2.0P2.5上。三个按键采用独立式按键的方法,分别接到P3.7P3.4上,S1为功能键,S2为1键,S3为1键,这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。(1)主程序的内容的一般包括:主程序的起始地址,中断服务程序的起始地址有关内存单元及相关部件的初始化和一些子程序的调用等内容。各部分流程图及其相关说明如下:4.3.2主程序设计 初始化中,T0、T1都工作在方式1、定时、中断工作状态,定时时间都为50ms(3CB0),T0中断20次为1s,T1中断10次为0.5s,T0用于1s钟基准时间,T1用于调整时的闪烁设定。功能键3s,是通过500次的调用显示子程序完成,调用一次显示子程序的时间约
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-湖南-湖南护理员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖南-湖南医技工五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖北-湖北防疫员一级(高级技师)历年参考题库含答案解析
- 2025年工业污染场地修复技术选型研究:成本效益与环保产业前景展望
- 金融机构2025年风险管理数字化转型中的风险管理移动应用市场前景研究报告
- 2025年水上乐园游乐设施水上项目设备抗电磁干扰性能评估报告
- 2025-2030中国笔记本配件行业运行状况与投资盈利预测报告
- 2025-2030中国立式分切复卷机行业前景展望及运营态势剖析报告
- 2025年事业单位工勤技能-河南-河南舞台技术工二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-河南-河南水工监测工二级(技师)历年参考题库典型考点含答案解析
- SH/T 0358-199510号航空液压油
- DL∕T 722-2014 变压器油中溶解气体分析和判断导则
- 健康保险行业可行性分析报告
- 劳动保障监察业务知识
- 《春》示范课教学课件第1课时【统编人教版七年级语文上册】
- 医院检验科实验室生物安全程序文件SOP
- 新入辅导员职员工培训
- IPS内置保温体系施工方案(经典)
- 房屋买卖合同范本Word模板下载
- 授权委托书保险理赔
- 保安公司安全生产培训课件
评论
0/150
提交评论