




免费预览已结束,剩余38页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的专用定时器摘要: 本设计主要研究以单片机为核心的专用定时器。该系统在单片机的控制下能够完成三个定时时间,而且每个时间的初值都可以改变,通过LED数码管显示剩余时间。本文主要解决了两个问题:一个是数码管的显示问题,另一个是定时时间的确定。软件方面采用Keil C51 进行C语言编程,用PROTEUS进行电路仿真,在程序控制下整个定时系统能完成时间的显示,调时,复位等功能。关键词:AT89C51,LED数码管显示管,Keil C51,PROTEUSSpecial-purpose Timer Base on Single-chip MicrocomputerAbstract:This major study designed to SCM as the core of an exclusive timer. The system under the control of the MCU to complete the three regular time, and each time the initial value can be changed,through LED digital display the remainder of time. This article has mainly solved two problems: One is the digital display and the other is the determination of regular time.in the aspect of software,used Keil C51 to programm C language,and circuit simulation by PROTUUS, the entire timing system can be completed in time, transfer, reduction, and other functions under the program control.Keywords:AT89C51,The LED figures tube display,Keil C51,PROTEUS1 绪论1.1定时器概述定时器按结构可分为机械式、电动式和电子式 3类。机械式定时器 以发条为原动力,用擒纵调速器控制走时精度,通过齿轮传动和凸轮,按时间控制机构预置的时段操纵执行机构动作。计时精度要求不高的定时器(如风扇定时器、洗衣机定时器、厨房用定时器、照相暗房用定时器、电视机控制用定时器、电灯开关定时器),一般采用无固有振动周期的调速器。这些定时器都是在手动上发条的同时预置时限,定时精度不高,但结构简单,使用方便。计时精度要求高、定时范围在312小时的定时器,一般采用摆轮游丝调速器。电动式定时器 用交流同步电动机或石英步进电机驱动,通过齿轮传动和凸轮簧片触点机构,按预置的时段或时刻控制执行机构。其中短时段控制的电动式定时器可用于程序控制式洗衣机、洗碗机、微波炉、烘箱及时间继电器等;长时段电动式定时器是一种24小时或7天程序控制的开关装置,可预置开关动作多次,最短时间控制间隔一般为15分钟,可用于用户用电情况监控、照明控制、实验室装置控制、空调器控制和自动生产线上某些设备的定时控制等1。电子式定时器 利用石英振荡器或民用交流电的标准频率,经过分频计数组成时间累加器或数字钟,按照预置的时间编码输出控制信号。这种定时器走时精确,时间设定没有误差,定时精度高,控制程序多。其中长时段定时器最小控制时段一般为1分钟,配上微处理器后能精确地编制一年的时间程序,组成多路可编程序的定时器。电子式定时器在工业自动化控制系统中应用广泛,它也是节约能源管理中一种有效的技术措施。电子定时器类的电子定时开关钟,可用于按高、平、低峰用电收取不同电费制度的场合,它将一天内的用电高峰、平峰、低谷时间在定时开关中设定,并分别接通3种电表进行计费。电子式定时器在科学实验中和在微波炉、电饭锅、洗衣机等电器中也有使用2。基于单片机的专用定时器是比较常用设备的基本电环境中,定时器能给我们的工作、生活以及娱乐带来很大的方便,充分利用定时器,人们就可摆路单元,在当今非常注重工作效率的社会脱直监督的工作,减少人力资源,充分地利用实现自动控制,提高效率。 1.2国内外单片机的发展和应用单片机诞生于20世纪70年代末,其发展过程可以分为SCM单片微型计算(Single ChipMicrocomputer)阶段,低性能单片机阶段,单片机的完善阶段,8位单片机的巩固发展及16位单片机的推出阶段以及微控制器的全面发展五个阶段。单片机按其内部数据通道的宽度,可分为4位、8位、16位、32位及64位。市场上在大份额的几类八位单片机是51(Intel公司),AVR (Atmel公司)和PIC(美国微芯公司Microship)八位单片机3。为什么选用单片机进行此次设计?近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善4。自单片机出现至今,单片机技术已走过了几十年的发展路程。纵观几十年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,拉动广泛的应用领域,表现出比微处理器更具个性的发展趋势。目前,单片机正朝着高性能和多品种方向发展,进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展5。单片机应用的意义绝不限于它的功能以及所带来的经济效益上,更重要的意义在于单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法,从前由模拟电路或数字电路实现的大部分控制功能,现在已能用单片机通过软件编程的方法实现了,这种以软件取代硬件并能提高系统性能的控制技术,称之为为控制技术。这标志着一种全新概念的建立。随着单片机应用技术的推广普及,为控制技术必将不断发展,日益完善,更加充实6。在应用上,单片机在各个领域都有表现,下面就一些方面进行介绍。(1)工业自动化方面 自动化能使工业系统处于最佳状态,提高经济效益,改善产品质量和减轻劳动强度。因此,自动化技术广泛应用于机械、电子、电力、石油、化工、纺织、食品等轻重工业领域中,而在工业自动化技术中,无论是过程控制技术,数据采集和测控技术,还是生产线上的机器人技术,都需要要有单片机的参与。 在工业自动化的领域中,机电一体化技术将发挥愈来愈重要的作用,在这种集机械、微电子和计算机技术于一体的综合技术中,单片机将发挥越来越大的作用。 (2)仪器仪表方面 现在仪器仪表的自动化和智能化要求越来越高,对此最好使用单片机来实现,而单片机的使用又将加速仪器仪表向数字化,智能化,多功能化和柔性化方向发展。 此外,单片机的使用还有助于提高仪器仪表的精度和准确度,简化结构、减小体积及重量而易于携带和使用,并具有降低成本,增强抗干扰的能力,便于增加显示、报警和自诊断等功能。 (3)家用电器方面 当前,家用电器产品的一个重要发展趋势是不断提高其智能化程度,而家电智能化的进一步提高就需要有单片机的参与,所以生产厂家常标榜“电脑控制”以提高其产品的档次,例如洗衣机,电冰箱,空调机,微波炉,电视机和音像视频设备等,这里说的电脑实际上就是单片机。智能化家用电器将给我们带来更大的舒适和方便,进一步改善我们的生活质量,把我们的生活变的更加丰富多彩。(4) 信息和通信产品方面 信息和通信产品的自动化和智能化程度很高,这当然离不开单片机的参与,例如计算机的外部设备和自动化办公设备中,都有单片机在其中发挥着作用7。1.3本设计要研究和解决的问题本设计主要研究以单片机为核心的专用定时器。该系统在单片机的控制下能够完成三个定时时间,而且每个时间的初值都可以改变,通过LED数码管剩余显示。本设计需要解决的问题大致有两个,一个是数码管的显示问题,另一个是定时时间的确定。考虑到可能单片机与数码显示管匹配问题,需要加一个驱动器,拟采用ULN2803作为驱动器;而定时时间则采用直观的LED显示来区别定时时间段。下面介绍本设计文章章节的分配情况:第一章 绪论回顾了基于单片机的定时器的应用。并对单片机的现状和发展趋势进行了简要说明。第二章 单片机定时器的总体设计介绍了基于单片机定时器的总体设计方案。并介绍了选择的元器件。第三章 单片机定时器的硬件实现详细介绍基于单片机定时器的硬件设计,其中包括设计器件的介绍以及各部分电路图。第四章 单片机定时器的软件设计基于单片机的定时器的软件设计部分流程图介绍及解释。第五章 基于单片机的定时器的软件仿真利用相关软件进行仿真,来验证单片机定时器控制硬件与软件的系统特性和功能的实现情况。第六章 总结与展望整篇论文的总结。2 总体方案设计2.1方案设计方案一:高频脉冲信号作为定时器的时间基准,计时器实现定时。该系统的工作原理是:振荡器产生的稳定的高频脉冲信号,作为定时器的时间基准,经分频器输出标准脉冲。T1减计数器计时时通过T1预置数显示器显示T1的剩余时间,同时使T1的时间输出器和指示器工作,当T1计数满之后T2开始工作,并对T2预置数。T2减计数器工作方式同T1。当T2计数满之后T3减计数器开始工作。工作方式同T1、T2,如此循环,便能实现该设计功能。原理框图见图2.1.T3显示T3显示译码器T3减计数器T3预置数振荡器分频器T2预置数T2减计数器译码器T2显示T3时间输出和指示T2时间输出和指示T1显示译码器T1减计数器T1预置数T1时间输出和指示图2.1方案二:利用单片机定时器完成定时要求。利用单片机定时输出Y1、Y2、Y3(如图2.2),定时时间分别为T1、T2、T3,并用发光二极管表示其时间的长短,用LED显示定时的剩余时间。时间长短通过按键调节。串口用来对单片机编程。原理框图见图2.3.Y1T1Y2T2Y3T3图2.2 定时器时间输出Y1、Y2、Y3单片机发光二极管显示、指示按键调节、选择串口LED显示驱动图2.3原理框图2.2方案选择方案一:优点是该方案应用稳定的高频脉冲信号作为定时器的时间基准,可以说也有同单片机一样的精确、稳定、可靠的输出时间,且对软件编写要求不高,能很好地实现设计要求的功能。缺点是该方案复杂,一般不容易弄明白它的原理,而且应用的元器件较多,在调试时出现的问题可能较多。由于原理复杂,所以成功完成该设计的概率较低。方案二:优点是利用单片机的定时器的定时,时间精确、稳定、可靠,并可以利用单片机的功能很好的进行时间的显示,指示,输出。原理简单,使用的元器件少,相对来说调试时出现的问题就少。经过无数人的证明,用单片机完全可以实现定时功能,失败的风险小。缺点是使用单片机要求写程序。对于不熟悉软件的人来说要单独完成该设计有一定难度。通过对以上设计方案比较,该设计选用方案一进行设计。3 硬件电路设计3.1主要元器件介绍3.1.1 AT89C51的芯片概述AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机, 它提供以下标准功能:4K字节FLASH闪速存储器,128字节内部RAM,32个可编程I/O接口,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器和时钟电路。同时,AT89C51可降至0HZ的静态逻辑操作,共支持两种软件可选的节电工作模式,空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位8。该设计选用AT89C51单片机,AT89C51单片机的内部框图如图3.1所示。图3.13.1.2数码管显示器LED显示器有静态显示和动态扫描显示两种工作方式。静态显示。显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再控制LED,知道下一次显示时再传送一次新的显示数据。静态显示的数据稳定,占用的CPU时间少。静态显示中,每一个显示器都要占用单独的具有锁存功能的I/O接口,该接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,该字段就可以显示发送的字形,要显示新的数据时,单片机再发送新的字形码。动态扫描显示。动态扫描方法是用其接口把所有显示器的8个笔划段ah同名端连在一起,而每个显示器的公共极COM各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟哪个显示器亮,则取决于COM端,而这一端由I/O控制的,由单片机决定何时显示哪一位。动态扫描用分时的方法轮流控制各个显示器COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每个显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二极管的余辉效应,给人的印象就是一组稳定的显示数据9。这两种显示方法各有利弊:静态显示虽然数据显示稳定,占用的CPU时间少,但是每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多;动态扫描显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多,但是使用的硬件少,能节省线路板空间。在一般比较简单的系统中,为了降低成本,动态方案具备一定的实用性,也是目前单片机数码管显示中较为常用的显示方法10。该设计使用动态显示方式。2个LED的段选端与锁存器的数据输出端相连,位选端分别连接单片机的P2.6、P2.7口,由89C51控制相应的LED点亮。采用扫描显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段码。这样同一时刻,4位LED中只有选通的那一位字符,而其他三位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通的状态,而其他各位的位选线处于关闭状态,同时,在段选线上输出相应位将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而且同一时刻只有一位显示,其他各位熄灭,但由于LED显示器的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,就可以造成多位同时亮的假象,达到同时显示的目的。如何确定LED不同位显示的时间间隔,例如对8位LED显示器,假若显示一位保持1ms时间,则显示完所以8位之后,只需8ms。上述保持1ms的时间应根据实际情况而定。不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光太弱人眼无法看清;也不能太长,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多。另外,显示位增多,也将占用大量的CPU时间,因此动态显示实质是以牺牲CPU时间来换取元件的减少。3.1.3锁存器74HC573和74LS373原理一样,8数据锁存器。主要用于数码管、按键等等的控制。该设计选用74HC573,功能表如图3.2所示。图3.23.1.4驱动器由于单片机I/O的电气特性决定了单片机的端口的驱动能力有限,一般地,单片机的端口只是驱动TTL电平,不提供或者提供很小的驱动电流,所以在带负载时,单片机应当在I/O口加上驱动芯片。该设计中使用ULN2803驱动芯片。发光二极管工作电流在10mA左右,而一般I/O接口不能提供这么大的电流,需要使用驱动电路,常用的有ULN2003A,7段驱动;UNL2803,8段驱动。使用ULN2803驱动芯片对LED进行驱动,ULN2803相当于一个反向驱动器,其内部具体结构如图3.3所示。 图3.3ULN2803的特点:(1) 最大驱动电流可达500mA;(2) 反向驱动;(3) 需要限流电阻,数码管越多,限流电阻的阻值越小。ULN2803的额定值如表3.1所示。额定值符号值单位输出电压Vo50V输入电压Vi30V集电极电流-连续Ic500mA基极电流-连续IB25mA工作环境温度范围IA0+7保存温度范围Tstg-55+150结温Ti1253.2单元电路的设计基于单片机的定时器设计主要是复位电路与单片机的接口设计,晶振电路与单片机的接口设计,数码管与单片机的接口设计,以及按键和发光二极管电路与单片机的接口设计四个大部分,以下将逐一介绍。3.2.1复位电路从原理上,一般采用上电复位电路。这种复位电路的工作原理是:通电时,电容两端相当于短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降到一定程度,即为低电平,单片机开始正常工作11。该设计中复位电路选用由10uF的电容和10k的电阻及1N4148二极管组成。在满足单片机可靠复位的前提下该复位电路的优点在于降低复位引脚的对地阻抗,可以显著增强单片机复位电路的抗干扰能力。二极管可以实现快速释放电容电量功能,满足短时间复位的要求,具体如图3.4所示。图3.43.2.2晶振电路单片机的晶振电路是一种典型的电路,分位内部时钟和外部时钟两种方式。AT89C51的振荡器输入分别由引脚19(XTAL1)和引脚18(XTAL2)来完成。只要将这两个引脚外接石英晶体和陶瓷电容, AT89C51的一个机器周期含有6个状态周期,而每个状态周期为2个振荡器周期,因此一个机器周期共有12个振荡周期,如振荡器的频率为12MHz,一个振荡器周期为1/12微秒,而一个机器周期为1微秒12。内部时钟电路的晶振频率一般选择在4MHz12MHz之间(该设计选用12MHz),外接两个谐振电容。该电容的典型值为30pF,该设计选用22pF。图3.5为内部时钟晶振电路。图3.53.2.3 LED显示与单片机接口常用的LED显示器有7段(或8段,8段比7段多了一个小数点“dp”段)。这种显示器有共阳极和共阴极两种。该设计中选用的是共阴极(见图3.6)。图3.6共阴极LED显示器的发光二极管的阴极连接在一起,通常该共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。使用LED显示器时,为了显示数字或符号,要为LED显示器提供代码,因为这些代码是通过段的亮与灭来显示不同字形的,因此称之为段码。7段发光二极管,再加上一个小数点位,共计8段,因此提供给LED显示器的段码正好一个字节。各段字节中各位的对应关系如表3.2所示13。显示数dpgfedcba段码0001111113FH10000011006H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FHLED与单片机的接线如图3.7所示。图3.73.2.4发光二极管、按键单片机接线发光二极管在两端的电压差超过其导通压降时开始工作,发光二极管的导通压降一般为1.7V1.9V。此外,工作电流要满足和电压的要求,发光二极管就可以发光了。单片机系统中往往是数字信号,其电源不是5V就是0V,所以只要将二极管的正负极和电源对应上就行了14。在发光二极管前面要接一个电阻,这个电阻的作用在于限制二极管的电流,从而达到减少功耗或者满足端口对最大电流的限制。一般二极管的点亮电流为5mA10mA,在5V电源驱动时,厂家多采用47013.限流电阻,在该设计中选用510,这样既不会超出单片机的I/O口最大限流。二极管一比较明亮。按键使用上拉电阻方式接入单片机。未按下时对单片机输入一个高电平,按下后输入一个低电平。在这个设计中的作用是用来调节T1、T2、T3的大小。键的闭合与否,反映在行线输出电压上就是呈现出高电平或低电平,如果高电平表示断开的话,那么低电平就表示闭合,所以通过对行线电平的高低状态的检测,便可以确认按键按下与否。为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响15。二极管和按键与单片机的连接如3.8图所示。图3.84 软件设计4.1主程序通电后,LED显示00,选定定时时间time1,time2或time3,发光二极管显示定时时间,按键S1,S2做在199之间的时间调整,按键S3按下后开始计时。程序流程图如图4.1所示。定时器初始化设定初值Reload()KEY_ST=1?键扫描结束LED显示二极管显示开始图4.1 主程序流程图部分关键变量的说明如表4.1所示。变量说明Buff2显示缓冲区(依次为低位、高位)sec05二极管变量sec05=2时,定时在time3,L2、L4亮sec05=1时,定时在time2,L1、L3亮sec05=0时,定时在time1,L0、l3亮Index标识当前显示的数码管和缓冲区的偏移量TableLED共阴极字形编码表Delay()延时变量sec剩余时间变量变量和端口的定义如表4.2所示。变量说明S1 S3定义89C51的P1.5 P1.7作为按键的输入管脚L0 L4定义89C51的P1.0 P1.4作为发光二极管的输入管脚4.2发光二极管指示程序发光二极管的亮灭指示了此刻数码管显示的时间是三个定时时间中的哪一个16。流程图如图4.2所示开始T三个时间之和?T=time3?L2、L4亮T=time2?L1、L3亮T=time1?L0、L3亮结束图4.2 发光二极管指示流程图程序代码如下:If(Ttime1+time2+time3*60) Return;Else if(T=(time1+time2)If(sec05=2) L1=OFF; L2=ON; L4=ON; L3=OFF; J=0x04; else if(Ttime1) If(sec05=1) L0=OFF; L1=ON; J=0x02; L3=ON; else If(sec05=0) L0=ON; J=0x01; L3=ON; 4.3键扫描程序键扫描程序流程图如图4.3所示。通过三个键KEY_ST、KEY_UP、KEY_DW及按键S3、S2、S1,来实现三个定时时间即time1,time2、time3的自增和自减及复位功能。在该程序的设计中要注意按键的去抖动程序。按键本身是机械开关,由于机械触点的弹性以及电压突跳等原因,在触电闭合或者是断开的瞬间会出现电压抖动的情况。在发生抖动时单片机很难判别此时按键是否按下,为此,就需要进行按键的去抖动处理。去抖动的办法一般有两种:一种采用硬件电路,另一种采用软件的时间延时程序以躲过抖动时间,待信号稳定后再进行按键扫描。在这里采用软件的方法去抖动。开始延时KEY_ST按下?KEY_UP按下?时间自加1LED显示KEY_DW按下?时间自减1LED显示KEY_ST按下?结束图4.3 按键子程序流程图程序代码如下:void OnSetting(void)Delay(4);while(!KEY_ST);flag_run=0;while(1)if(!KEY_UP);Delay(4);while(!KEY_UP);time1+;time2+;time3+;if(time199) time1=1;if(time299) time2=1;if(time399) time3=1;Reload();SetLED();if(KEY_DW)Delay(4);while(!KEY_DW);time1-;time2-;time3-;if(time10)time1=99;if(time20)time2=99;if(time30)time3=99;Reload();SetLED();if(!KEY_ST)Delay(4);while(!KEY_ST);flag_run=1;return;4.4数码管的显示程序定时器0中断服务程序,用于数码管的动态扫描,在动态LED显示程序中,需要不停地扫描字位口,从而实现不同字位的数据的动态显示效果,如图4.4。开始中断重置T0定时初值1s到?T+指定字形口查表得字形码送字形码结束图4.4 中断流程图程序代码如下:void Timer0_Interruput(void) interrupt 1TR0=0;TH0=TIMER0H;TL0=TIMER0L;TR0=1;time+;if(time=100)T=T+1;Index+;Index &=0x01;P0=TableLEDbuffIndex;switch (Index)case 0:P2=0X80 |J;break;case 1:P2=0X40 |J;break;pps+;if(!flag_run) return;if(pps=50)pps=0sec05+;flag=1;if(sec05=3); sec05=0; sec-; if(sec=0) Reload(); s=-s; 5 基于单片机的定时器的模拟仿真5.1 仿真软件介绍5.1.1EDA仿真软件PROTEUS ISISProteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。在软件仿真方面,支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。提供软件调试功能,提供丰富的的外围接口器件及其仿真,提供丰富的虚拟仪器,利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。运行proteus的ISIS程序后(图5.1),进入该仿真软件的主界面。在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。在pickdevices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Definecodegenerationtools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/removesourcefiles命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况17。图 5.1 ISIS启动画面图 5.2 ISIS的工作界面5.2 Keil C51Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。图5.3 Keil C51的启动界面图 5.4 Keil C51的工作界面5.2 仿真过程以及仿真结果的记录5.2.1硬件的仿真首先在Proteus的元件库中找到AT89C51以及相应的元件,按照硬件设计中的说明把各部件连接起来组成一个定时器的硬件系统。电器检测结果如图19所示。图5.5 硬件的电气检测检查无误后,运行电路,如图5.6所示,数码管显示正常。图5.65.2.2软件的仿真在KeilC51主界面中写入所编的语言,编译调试。结果如图5.7.图5.7 编译结果编译完成后,生成.HEX文件,生成过程如图5.8和5.9.图5.8图5.95.2.3软硬件结合的仿真把生成的yes.hex文件添加到AT89C51中,点击运行符号就可以使软硬件的配套设施在Proteus的环境下仿真实现。如图5.10所示。图5.106 总结6.1 全文小节本文对基于单片机的定时器的设计进行了比较系统的研究,主要对如何利用单片机控制实现定时器的数码管显示。研究工作主要分两个方面:硬件部分设计,包括系统的结构组成及各部分功能的实现;软件部分设计,其中包括软件流程图的设计及程序的调试。主要工作及研究内容如下:1) 硬件部分:设计了一套基于单片机的定时器的硬件系统。该系统在单片机的控制下能够完成三个定时时间,而且每个时间的初值都可以改变,通过LED数码管剩余显示。2) 软件部分:设计了C语言编程的基于单片机的定时器的软件系统。程序调试成功,实现了时间显示、调整,定时等题目要求的主要功能。当今,计算机技术带来了科研和生产的许多重大飞跃,微型计算机的应用已渗透到生产、生活的各个方面。其中单片微型计算机虽然问世不久,然而体积小、价廉、功能强,由于其性能不断提高,适用范围愈来愈宽,在计算机应用领域已占有日益重要的地位。定时器的应用亦越来越广泛,相信不久的将来定时器会有更丰富的功能,更简便优秀的设计方法。因时间关系,本设计中还存在着缺点和不足,因为整个设计过程是在计算机软件的环境下进行的,而现实中会出现的对于本设计的影响未考虑周全,如实际情况对于电路的影响,在设计中未作说明。希望各位老师批评指导。6.2 结束语单片机是一门应用性很强的学科,毕业设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。虽然在做毕业设计以前已经系统的把单片机课本认真的学习了一下,但是在刚拿到设计任务书时还是有点一头雾水,不知道该从哪里下手。令人欣慰的是经过一个月的学习,虽然过程很艰辛,但是总算实现了设计题目要求的功能,所有的努力都很值得。这一个月的大部分时间都在研究程序怎么处理,在这个过程中加深了我对语言命令的应用,而且也更加了解到软硬件配套的重要性。在设计的过程中不仅巩固了以前所学过的知识,加深了我对所学知识的理解,而且学到了很多在书本上所没有的知识。通过这次毕业设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。总之,毕业设计不仅使我巩固了所学的基本知识,还使我具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。附录A完整电路图附录B 源程序#include #define TIMER0H 0xD8#define TIMER0L 0xF0#define uchar unsigned char#define ON 0#define OFF 1sbit L0=P10;sbit L1=P11;sbit L2=P12; sbit L3=P13;sbit L4=P14;sbit KEY_UP=P15;sbit KEY_DW=P16;sbit KEY_ST=P17;sbit KEY_T2=P32;sbit KEY_T3=P33;uchar code TableLED=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F;uchar preSet;uchar Index;uchar buff2;uchar flag;uchar time,T,J;uchar pps;uchar sec;uchar sec05;uchar s;uchar flag_run;uchar time1,time2,time3;void InitDevice(void);void SetLED(void);void Reload(void);void OnRunning(void);void Delay(uchar u);void OnSetting(void);main() InitDevice(); time1=10; time2=20; time3=6; time=0; T=0; flag=0x00; sec=0; s=0; sec05=0; Reload(); L0=ON; L1=OFF; L2=OFF; L3=ON; L4=OFF; flag_run=1; while(1) if(KEY_ST=1) OnRunning(); else OnSetting(); void OnSetting(void)Delay(4);while(!KEY_ST);flag_run=0;while(1)if(!KEY_UP);Delay(4);while(!KEY_UP);time1+;time2+;time3+;if(time199) time1=1;if(time299) time2=1;if(time399) time3=1;Reload();SetLED();if(KEY_DW)Delay(4);while(!KEY_DW);time1-;time2-;time3-;if(time10)time1=99;if(time20)time2=99;if(time3time1+time2+time3*60)return;else if(T=(time1+time2)if(sec05=2)L1=OFF;L2=ON;L4=ON;L3=OFF;J=0x04;else if(Ttime1)if(sec05=1)L0=OFF;L1=ON;J=0x02;L3=ON;elseif(sec05=0)L0=ON;J=0x01;L3=ON;void SetLED(void)if(sec100)buff0=sec/600;buff1=sec/60-buff0*10;elsebuff0=sec/10;buff1=sec-buff0*10;void Reload(void)if(Ttime1+time2+time3*60)return;else if(T=(time1+time2)sec=time3*60;return;else if(T=time1)sec=time2;return;elsesec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 移动端健康医疗应用开发
- 职教数学复习 第7章简单几何体与立体几何 第34讲简单几何体的三视图 课件
- 甲状腺次全切除术课件
- 天津市河东区2024-2025学年高二下学期7月期末物理试题(含答案)
- 用电安全知识培训课件开场白
- 新解读《GB-T 36041-2018压水堆核电厂安全重要变量监测准则》
- 生药学课件-大黄
- 2024垃圾清理协议合同
- 2024建设用地使用权出租合同(8篇)
- 2025年考研英语(一)阅读理解模拟试卷 真题解析与训练
- 高端数控机床智能化控制系统研发项目可行性研究报告
- 2025年河南郑州航空港发展投资集团有限公司招聘笔试参考题库含答案解析
- 钢结构车棚建设服务方案投标文件(技术方案)
- 中国极地海洋装备的发展探索与技术需求
- GB 9706.283-2022医用电气设备第2-83部分:家用光治疗设备的基本安全和基本性能专用要求
- 2025市政排水管道非开挖修复工程计价定额
- UML2面向对象分析与设计(第2版)谭火彬全套教案课件
- 《血液肿瘤免疫及靶向药物治疗相关性感染预防及诊治中国专家共识(2025年版)》解读
- 药品不良反应培训课件
- 苏豪控股集团招聘笔试题库2025
- 2025年干部休养所服务项目合作计划书
评论
0/150
提交评论