1、编号:201234140115本科毕业设计数码管电子钟的设计及实现院 系:信息工程学院姓 名: 学 号:0835140115专 业:通信工程年 级:2008级指导教师: 职 称: 完成日期:2012年5月摘 要电子钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、可拓展性能强等特点,被广泛用于生活和工作中去。本文主要为实现一款可正常显示时间、带有24h/12h制调整、带有AM/PM显示以及时间校准功能的一款基于单片机仿真的多功能电子钟。本文对设计要求的功能进行了分析和比较,确定了提供电源、界面显示、输入等方案。本设计采用AT80C51芯片作为核心,以时钟电路、复位电路为辅助电路,
2、用Proteus软件自带的电子钟组件实现高度仿真的显示结果。软件部分主要采用简单且应用广泛的C51语言编写实现。这种仿真的电子钟具有电路简单、读取方便、显示直观、功能多样、时间精度较高、操作简单、编程容易、成本低廉等很多优点。设计主要是用Proteus电路软件实现电子管的仿真。经过改装,添加部分功能所生产出的产品即可应用于一般的生活和工作中,从而给人们的生活和生产带来便利,符合电子仪器仪表的发展趋势,具有广阔的市场前景。关键词:单片机;电子钟;控制器AbstractElectronic clock is the use of electronic technology to make cloc
3、k electronic and digital. With a precise clock, small size and can be able to develop strong performance characteristics, so are widely used to live and work.In this paper, to achieve a normal display time with 24h/12h system adjustments, with the AM/PM display and time calibration function of a sim
4、ulation based on single chip multi-function electronic clock.In his paper the design requirements of the function are analyzed and compared, determined to provide power, interface display, input program. This design adopts AT80C51 chip as the core, with a clock circuit, reset circuit, using Proteus
5、Software comes with the electronic clock assembly to achieve a high degree of simulation result. Software part mainly uses a wide range of C51 language. This simulation electronic clock has the advantages of simple circuit, convenient reading, visual display, multiple functions, high precision ,simp
6、le operation, time programming is easy, low cost and many other advantages.The design is mainly use Proteus software to realize the electronic tube simulation circuit. After modification, adding some functions to produce products that can be applied to peoples life and production,in line with the de
7、velopment trend of electronic instrumentation, and has broad market prospects.Keywords:SCM;electronic clock;controller目 录1 绪论11.1 数字电子钟的背景和意义11.2 本设计研究的主要内容22 系统总体设计及方案论证32.1 提供方案32.2 显示界面方案32.3 输入方案43 系统硬件设计及实现53.1 整体方案设计53.2 单片机的基本结构63.3 其它电路设计83.3.1 时钟电路83.3.2 复位电路93.3.3 数码管显示电路104 系统软件设计及实现144.1
8、 主程序流程图144.2 时间调整程序流程图155 Proteus软件仿真175.1 Proteus软件简介175.2 仿真步骤175.3 仿真过程中出现的错误及解决措施175.4 仿真结果18总结20参考文献21致谢22附录231 绪论1.1 数字电子钟的背景和意义20世纪末电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间,忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大
9、雅。但是,一旦重要事情,一时的耽误可能酿成大祸。单片机具有集成度高、功能强、通用性好的特点,特别是它能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,所以单片机现在广泛的应用到家用电器、机电产品、儿童玩具、机器人、办公自动化产品等领域。目前,单片机正朝着高性能和多品种方向发展,趋势是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传
10、统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟是采用数字电路实现对时、分、秒、数字显示的计时装置,广泛用于个人家庭、车站、码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断
11、动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。1.2 本设计研究的主要内容本设计采用AT80C51芯片作为核心,采用延时电路和复位电路来实现其计时的功能,用Proteus软件自带的电子钟组件实现仿真结果。此设计的主要研究内容有:(1)研究电子钟的原理与实现方法。(2)51单片机的原理与运用。(3)构思基于单片机的仿真电子钟的实现方案。(4)熟悉运用C51单片机语言编写软件系统。(5)熟悉运用Keil软件与Proteus软件仿真和调试系统。2 系统总体设计及方案论证本系统采用单片机80C51为中心器件来设计电子钟系统
12、,系统实用性强、操作简单、扩展性强。本设计采用单片机、键盘、LED显示、电子钟演示系统组成。系统包括状态转换、调时、调分以及基本的电子钟功能,计时牌显示当前时间。电子钟控制的框图如下图2-1所示,主要有控制电路、按键电路、晶振电路、复位电路、显示电路、电源电路等电路组成。单片机AT80C51按键控制装置时钟电路驱动装置74LS138地址分配装置复位电路时间显示装置图2-1系统总体设计框图2.1 提供方案为使模块稳定工作,须有可靠电源。本次设计考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路
13、电平。方案二:采用单片机控制模块提供电源。该方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,选择第二种方案。2.2 显示界面方案该系统要求完成时间显示功能。基于上述原因,本次设计考虑了两种方案:方案一:完全采用点阵式LED显示。这种方案功能强大,可方便的显示各种英文字符、汉字、图形等,但实现复杂,且须完成大量的软件工作。方案二:完全采用数码管显示。这种方案优点是实现简单,可以完成时间显示功能。缺点是功能较少,只能显示有限的符号和数码字符。根据本设计的要求,方案二已经满足了要求,所以本次设计采用方案二以实现系统的显示。2.3 输入方案这里同样讨论了两种方案:方案一:采用74LS
14、138扩展I/O口、键盘及显示等。该方案的优点是使用灵活可编程,并且有RAM及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。方案二:直接在I/O口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的端口资源还比较多。由于该系统是对电子钟数码显示管的控制,用到的单片机端口比较多,所以要实现时间的显示就需要进行端口的扩展,故选择方案一。3 系统硬件设计及实现3.1 整体方案设计本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、键盘及状态显示时间模块等。整体硬件设计图如3-1所示。单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器
15、。它由单片机振荡电路、复位电路等组成。系统采用单数码管时间显示功能,最大显示数字9。在时间走飞的情况下,可以通过K1、K2、K3和K4四个按键对时间进行调整。图3-1 整体电路设计3.2 单片机的基本结构MCS-51单片机内结构如图3-2所示,MCS-51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。80C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明。图3-2 80C51单片机内结构(1)中央处理器中央处理器(CPU)是整个单
16、片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入/输出功能等操作。(2)数据存储器(RAM)80C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。(3)程序存储器(ROM)80C51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。(4)定时/计数器80C51有两个16位的可编程定时/计数器,以实现
17、定时或计数产生中断用于控制程序转向。(5)并行输入/输出(I/O)口80C51共有4组8位I/O口(P0、P1、P2、P3),用于对外部数据的传输。(6)全双工串行口80C51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。(7)中断系统80C51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。(8)时钟电路80C51内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但80C51单片机需外置振荡电容。(9)MCS-51的引脚说明MCS-
18、51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。80C51的引脚如图3-3所示,现在对这些引脚的功能加以说明。图3-3 80C51引脚图I/O口线:P0、P1、P2、P3共四个八位端口。P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读写操作。P0口也用以输出外部存储器的低8位地址。由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。P1口是专门供用户使用的I/O口,是准双向口。P2口是从系统扩展时作
19、高8位地址线用。不扩展外部存储器时,P2口也是准双向口。P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能,P3口的第二功能如表3-1。作为第一功能使用时操作同P1口。表3-1 P3口的第二功能引脚序列第一功能标志位第二功能P3.0RXD串行输入口P3.1TXD串行输出口P3.2INT0外部中断0输入P3.3INT1外部中断1输入P3.4T0定时/计时器0外部输入P3.5T1定时/计时器1外部输入P3.6WR外部数据存储器写选通P3.7RD外部数据存储器读选通控制口线:PSEN(片外取控制)、ALE(地址锁存控制)、EA(片外储器选择)、RESET(复位控制);Pin
20、9:RESET/Vpd复位信号复用脚,当80C51通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。80C51的复位方式可以是自动复位,也可以是手动复位。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。电源及时钟:Vcc、Vss;XTAL1,XTAL2;3.3 其它电路设计3.3.1 时钟电路本设计的时钟电路图3
21、-4所示。图3-4 时钟电路图XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30pF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT80C51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C2和C3构成并联谐
22、振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3.3.2 复位电路在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由
23、高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。当时钟频率选用12MHz时,C1取10F,R1约为1K。复位操作不会对内部RAM有所影响。本设计中的复位电路如图3-5所示。图3-5 复位电路图3.3.3 数码管显示电路本数字钟显示时间需8位,格式为12:00:00,因此需采用8个数码管,若采用单独数码管连线时比较麻烦,而市场上无8位一体的数码管,故本数字钟采用4位一体的数码管。若使8个数码管正常显示时间,必须采用
24、数码管的动态扫描方式,即每一时刻只有一个数码管点亮,采用软件延时和人眼的视觉停留效果,使人眼看到的数码管是同时点亮的。因此需要用8个端口控制数码管的段选,即决定数码管显示什么字符,8个端口控制数码管的位选,即决定该时刻让哪个数码管点亮。考虑到数码管采用动态扫描方式,即循环扫描数码管的8位,并将显示字符送入段选段,为了节省单片机的输入/输出端口和易于程序的编写,采取直接用P2口控制数码管的8个段选位,其中数码管的小数点控制位DP不用可直接悬空,为了增加其驱动能力使数码管显示更亮,在此加入74100,有锁存数据和增加驱动的作用。利用P2.0P2.3口接一个74LS138的38译码器控制数码管的位选
25、端。连接方式如图3-6所示。图3-6 74LS138与P2口连接图74LS138为3线8线译码器,共有54/74S138和54/74LS138线路结构型式,其74LS138工作原理如下:当一个选通端(E1)为高电平,另两个选通端(E2)和(E3)为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平的方式译出。利用E1、E2和E3可级联扩展成一个24线译码器。若外接一个反相器还可以级联扩展成为32线译码器。若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。74LS138的引脚如图3-7所示。图3-7 74LS138译码器引脚图74LS138的真值表见表3-
26、2。表3-2 74LS138译码器真值表输 入输 出E1E2+E3C B AY0 Y1 Y2 Y3 Y4 Y5 Y6 Y70xx x x1 1 1 1 1 1 1 1x1x x x1 1 1 1 1 1 1 1100 0 00 1 1 1 1 1 1 1100 0 11 0 1 1 1 1 1 1100 1 01 1 0 1 1 1 1 1100 1 11 1 1 0 1 1 1 1101 0 01 1 1 1 0 1 1 1101 0 11 1 1 1 1 0 1 1101 1 01 1 1 1 1 1 0 1101 1 11 1 1 1 1 1 1 074LS138外接一个反相器级联扩展成
27、为32线译码器。在该设计中,由于单片机的P2口只有8个数据线显然不够32个数据使用。因此,74LS138译码器再次使用于扩展数据输入端的。将选通端中的一个作为数据输入端,74LS138还可作为数据分配器如图3-8所示。将数据分配给7个74100,以此来驱动点亮数码管。图3-8 74LS04与74100连接图74100具有数据锁存和数据缓冲的功能,做数据锁存时,当输入的数据消失时,在芯片的输出端,数据仍然保持;做数据缓冲时,可加强驱动能力,74100的引脚图如图3-9所示。同样,74LS244也具备数据缓冲的能力。图3-9 74100引脚图本设计中所用到的数码管的如图3-10所示,将1、2、3、
28、4引脚与U5:A的Q0、Q1、Q2、Q3引脚依次相连接,引脚1控制AM/PM显示,引脚2控制12h/24h制的设定,引脚3控制复位显示,引脚4控制时间间隔位。图3-10 数码管引脚图本设计用到七个74100芯片,分别是U2:A、U2:B、U3:A、U3:B、U4:A、U4:B、U5:A。U2:A通过NOR-4与74LS244相连接,驱动数码管的A0D0。U2:B与A1D1相连接,连接方式如图3-11所示;依次类推,U3:A、U3:B、U4:A和U4:B依次与A2D2、A3D3、A4D4、A5D5相连接。图3-11 74100与74LS244连接图按键扫描控制部分采取独立按键控制方式,用单片机的
29、P0.0P0.3控制4个弹性按键,用来显示和控制时间的调整,因所用的按键较少,故采用独立按键控制方式,且所用按键均为弹性小按键,即按下时为低电平接通,松手时即弹起变为高电平,为了节省输入/输出端口和方便编程,每个按键根据其按的次数有不同的作用。按键控制图如图3-12所示。图3-12 按键控制图4 系统软件设计及实现该系统软件程序主要有主程序模块,按键扫描程序,显示子程序,时钟调整与设置程序等四大模块组成。图4-1中按键从上往下设定为K1、K2两个开关和K3、K4两个按键,K1与P0.0相连,K2与P0.1相连,K3与P0.2相连,K4与P0.3相连。当需要设定当前时间时,按一下K2键,进入时间
30、设定状态,按一下K4,分钟加1;按一下K3,小时加1。如此反复来设定当前时间。调好时间后,断开K2,退出当前时间设定状态;当要切换时间模式时,按下K1键,进入二十四时计时模式,断开K1键,进入十二时计时模式。图4-1 按键控制图4.1 主程序流程图本流程图所描述的是:程序导入单片机,开始运行。系统从12点59分40秒开始计时,本设计中用到了两个开关(K1、K2)和两个按钮(K3、K4),K1的优先级别最高,所以进行按键扫描时首先判断K1键是否闭合。K1键控制着不同的计时模式,闭合就进入二十四时计时模式,断开则进入十二时计时模式。在相应的计时状态下,判断K2键是否闭合,如果要进行时间调整,则闭合
31、K2键,程序将会通过K3和K4键进行时间的设定,K3对小时进行调整,K4对分钟进行调整,按下一次K3键,小时加1,按下一次K4键,分钟加1,时间调整结束后,断开K2键,程序从调整后的时间开始正常显示。具体主流程图如4-2所示。进入24时进制计时开始从12时59分40秒开始计时判断K1是否按下进入12时进制计时判断K2是否按下进行相应的时间调整调整结束正常的时间显示NYNY图4-2 主程序流程图4.2 时间调整程序流程图时间的调整是通过K2、K3和K4来实现的。K2与K3、K4的优先级别不一样,K2的优先级高于K3和K4,K3和K4是同等优先级。要实现对时间的重置首先要从K2开始判断,K2是时间
32、调整的开启键,只有先闭合K2才能进行时间的重置。在K2闭合的状态下,按一下K3键,小时按照相应的计时模式(12/24时制)进行加1,当小时加到相应的最大值时进行自动返1(12时计时下)或者返0(24时计时下),通过K3键进行小时的调整,直到所要设定的小时为止。按一下K4键进行分钟的加1,当达到60是自动返回1,通过K4键进行分钟的调整,直到所要设定的分钟为止。具体设计流程图如图4-3所示。开始判断K2是否按下进行时间调整判断K2、K3是否按下进行相应的小时或分钟的调整调整结束YYNN图4-3 时间调整程序流程图5 Proteus软件仿真5.1 Proteus软件简介Proteus软件是Labc
33、enter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用能够轻易地获得一个功能齐全、实用方便的单片机实验室。5.2 仿真步骤第一步:用Keil uVision4软件对程序进行编译,编译通过后,会自动生成HEX文件。第二步:在Proteus的元件库中
34、找到80C51以及相应的元件,按照硬件设计中的说明把各部件连接起来组成一个定时闹钟的硬件系统。第三步:把在Keil uVision4环境调试下生成的.HEX文件装入到80C51里,点击运行符号就可以使软硬件的配套设施在Proteus的环境下仿真实现。第四步:验证系统能否实现所要求的功能,并检验错误。5.3 仿真过程中出现的错误及解决措施(1)当把程序生成的.HEX文件装入到AT80C51后运行时,显示模块出现数字显示错误,但是软硬件都没有错误,经检查是它们不配套,在修改扫描显示控制字而且改变硬件布线顺序后方显示正常。(2)在设计的初期把主程序设计成顺序结构,但是在运行的时候没有注意到这个问题,
35、没有按照软件说明中的顺序操作,以至于时间模式转换时出现错误,在改变按下按键的顺序后工作正常。(3)电子钟在设置时间的时候加时与加分未能正常运行,经检查硬件没有出现错误,而是在编写程序时漏过了一个&的字符导致时间调节功能不能正常进行,经过对程序的反复检查并改正使其实现该功能。所以不是程序运行不报错就一定可以在硬件上正常实现所要求的功能,只有认真编写程序,并在硬件上多次调试才能达到所要实现的功能。5.4 仿真结果图5-1 电子钟的起始状态图5-1显示的是:程序倒入单片机后,点击开始,显示电子钟的起始状态,系统从12:59:40开始计时。图5-2 K1断开十二时制计时图5-2显示的是:系统正常运行时
36、,断开K1,电子钟按十二时制计时,显示当前时间01:01:01。图5-3 K1闭合二十四时制计时图5-3显示的是:系统正常运行时,在K2闭合的状态下,电子钟按二十四时制计时,显示当前时间13:06:44。图5-4 二十四时制K2闭合进行时间设置图5-4显示的是:系统正常运行时,闭合K2进行时间设置,按6次K3键,把时间调整至19:06:44。总结单片机是一门应用性很强的学科,毕业设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,为自己今后从事与单片机控制系统有关的工作打下了基础。虽然在做毕业设计以前已经系统的把单片
37、机课本认真的学习了一下,但是在刚开始时还是有点一头雾水,不知道该从哪里下手。令人欣慰的是经过几个月的学习,虽然过程很艰辛,问了很多朋友,但是总算实现了电子钟的功能,所有的努力都很值得。这几个月的大部分时间都在研究程序怎么处理,在这个过程中加深了对C语言命令的应用,而且也更加了解到软硬件配套的重要性。以下是本次单片机课程设计的几点心得与体会。(1)在设计程序之前,务必要对所学单片机课程的内容有一个系统的了解知道单片机片内片外的内容及其功能。(2)设计程序采用什么编程语言并不是非常重要,关键要有一个清晰的思路和一个完整的软件流程图。模块化的设计思想在程序设计中的作用是十分大的,它可以提供一个比较清
38、晰的思路,并且很容易找到头绪,不至于在设想一个程序时感觉到无从下手。(3)在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路。程序刚开始编好时,一般情况下会存在很多错误,要不断地修改,不断的改进才能达到预期的目的,编写程序的时间并不是很长,主要是修改程序会花很多时间。(4)要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。刚开始在编写程序时,很不习惯于写注释,感觉很麻烦,而且没用,但是在修改的过程中就遇到了较大的麻烦,以至于不得不重新的做了注释,以增加程序的易读性,从而使修改过程
39、变得容易一些。总之,这次毕业设计不仅巩固了所学的单片机基本知识,还有助于加强个人动手能力,这些能力在以后的工作或者是学习中一定会起到不小的作用,看到自己几个月的成果,感觉一切的辛苦和艰难都是值得的。参考文献1曹天汉.单片机原理与接口技术M.北京:电子工业出版社.2009.2李海滨.单片机技术课程设计与项目实例M.北京:中国电力出版社.2009.3郑思铭.交通灯的一种新型智能控制系统J.广东自动化与信息工程,2006,第2期.4胡汉才.单片机原理及接口技术(第三版)M.北京:清华大学出版社.2010.5杨欣.51单片机实用实例详解M.北京:清华大学出版社.2010.6王东锋.单片机C语言应用10
40、0例M.北京:电子工业出版社.2009.7薛小玲.单片机接口模块应用与开发实例详解M.北京:北京航空航天大学出版社.2010.8王爱学.一种交通信号灯模糊控制器的模型设计J.重庆工学院学报(自然科学版),2009,第2期.9彭伟.单片机C语言设计实训100例:基于8051+Proteus仿真M.北京:电子工业出版社.2009.10郑锋.51单片机典型应用开发范例大全M.北京:中国铁路工业出版社.2011.11谢亮.例说51单片机(C语言)(第三版)M.北京:人民邮电出版社.2010.12张亚力.基于C语言在单片机技术的应用J.农业网络信息,2006,第5期.13李朝青.单片机原理及接口技术(第
41、三版)M.北京:北京航空航天大学出版社.2005.14谭浩强.C语言程序教程设计教程M.北京:高等教育出版社.2006.15何立民.单片机应用系统设计系统配置与接口技术.北京M:北京航空航天大学出版社.2001.16杨毅.基于单片机的交通灯控制系统设计J.现代企业教育,2010,第18期.17彭伟.单片机C语言程序设计实训100例M.北京:电子工业出版社.2009.18郭天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略M.北京:电子工业出版社.2009.19杨天怡.单片机原理及应用M.北京:清华大学出版社.2010.20李广弟.单片机基础(第三版)M.北京.北京航空航天大学出版社
42、.2007.21房小翠.单片机使用系统设计技术.北京:国防工业出版社.2009.22王静霞.单片机应用技术M.北京:电子工业出版社.2009.23杨欣.实例解读51单片机完全学习与应用M.北京:电子工业出版社.2011.24张毅刚.单片机原理及应用M.北京:高等教育出版社.2010.致谢经过将近两个多月的准备和查找资料,在老师的指导下,我的毕业论文终于写完了。在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。感谢老师对我的教育培养。他们细心指导我的学习与研究,在此,我要向诸位老师深深地鞠上一躬。我尤其要强烈感谢我的指导老师,他给予了我无私的帮助和指导,不厌其烦的帮助我进行
43、论文的修改和改进。在此,我再次向关心我学习,并且在我完成论文过程中给予我帮助和支持的老师和同学们表示衷心的感谢和祝愿!我在此衷心祝福老师身体健康,工作顺利,事业节节高!另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此向帮助和指导过我的各位老师表示最衷心的感谢!本文引用了数位学者的研究文献,感谢这篇论文所涉及到的各位学者,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。同时感谢我的同学和朋友,在我写论文的过程中给予我了很多素材,还在论文的撰写和排版等过程中提供热情的帮助。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指
44、正!再次感谢关心和在我写作工程中给予我帮助和支持老师和同学们!谢谢大家啦!大家辛苦了。附录附录I 子程序设计延时子程序void DelayMS(uint x) uchar i; while(-x) for(i=0;i120;i+);时间显示子程序void Display_Time() uchar i; for(i=0;i7;i+) P2=(disp_Bufferi4)|i|0x08; DelayMS(5); P2&=0xF7; DelayMS(5); 时钟调整子程序void Adjust_and_Set_Clock()while(K2=0) if(K1=0) f_24=1; disp_Buff
45、er6|=0x02; else f_24=0;disp_Buffer6&=0xFD; if(K3=0) DelayMS(150); Add_Hour(); if(K4=0) DelayMS(150); current_Time1=(current_Time1+1)%60; Refresh_Disp_Buffer(); Display_Time(); 附录II 源程序#include#include#define uchar unsigned char#define uint unsigned intuchar tCount=0;/时钟设置开关及按键sbit K1=P00; /12h/24h选择键sbit K2=P01; /设置键sbit K3=P02; /小时加sbit K4=P03; /分钟加uchar current_Time=12,59,40; /当前时间:时分秒uchar disp_Buffer=0,0,0,0,0,0,0x00; /时分秒显示