单片机应用课程设计数字电子钟设计_第1页
单片机应用课程设计数字电子钟设计_第2页
单片机应用课程设计数字电子钟设计_第3页
单片机应用课程设计数字电子钟设计_第4页
单片机应用课程设计数字电子钟设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机应用课程设计系部名称: 机械工程系 专业班级: 机 自 083 学 号: 学生姓名: 指导教师: 2011年06月中原工学院信息商务学院课程设计目 录1 绪论11.1 数字电子钟的应用11.1.1 数字电子钟的意义12 整体方案设计22.1单片机at89c52和基本结构22.1.1数码管显示选择方案63 数字钟的硬件设计73.1 单片机最小系统73.1.1 ds1302时钟芯片电路93.1.1.1 led显示电路 104软件设计与流程图124.1 软件设计124.1.1 流程图135 系统仿真165.1 proteus软件介绍165.1.1电子钟系统proteus仿真166原理电路176

2、.1 总原理电路176.1.1单片机最小系统和蜂鸣器系统的电路177调试与功能说明197.1 电路调试197.1.1 软件调试197.1.1.1系统性能测试与功能说明198软件调试问题及解决209结论2010 致谢2111 参考文献2212附录23i1 绪论20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但

3、是,一旦重要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着cmos化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术1,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿

4、命,因此得到了广泛的使用。1.1 数字电子钟的应用数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术4,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。 1.1.1 数字电子钟的意义数字钟是采用数字电路实现对时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度超过老式钟表, 钟表的

5、数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。2 整体方案设计设计任务:请设计一个基于单片机的电子时钟,画出protel硬件电路图、编写相应的软件,完成电子时钟的任务,并进行proteus仿真。设计要求:1.启动时显示制作的年、月、日、制作者的学号等信息;2.24小时计时功能(精确到秒);3.整点报时功能;4.对时、分、秒进行校准; 单片机模块驱动模块按键模块led 显示模块时 钟 模 块电源模块 图1 系

6、统整体框图整个系统用单片机作为中央控制器,由单片机执行采集芯片内部时钟信号,时钟信号通过单片机i/o口传给单片机,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出、led的显示及相关的控制功能。系统设有按键模块用于对时间进行调整及扩展多个小键盘7,系统整体框图如图1所示。2.1 单片机at89c52和基本结构9at89c52是一个低电压,高性能cmos 8位单片机,片内含8k bytes的可反复擦写的flash只读程序存储器和256 bytes的随机存取数据存储器(ram)。主要性能有:兼容mcs51指令系统、32个双向i/o口、256x8bit内部ram、3个16位可编程定时

7、/计数器中断、时钟频率0-24mhz、2个串行中断、可编程uart串行通道、2个外部中断源、6个中断源、2个读写中断口线、3级加密位、低功耗空闲和掉电模式、软件设置睡眠和唤醒功能。8052单片机包含中央处理器、程序存储器(rom)、数据存储器(ram)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(cpu)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,cpu负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(ram):8052内部有1

8、28个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的ram只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图2-1 单片机8052的内部结构程序存储器(rom):8052共有4096个8位掩膜rom,用于存放用户程序,原始数据或表格。定时/计数器(rom):8052有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(i/o)口:8052共有4组8位i/o口(p0、 p1、p2或p3),用于对外部数据的传输。全双工串行口:8052内

9、置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8052具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8052内置最高频率达12mhz的时钟电路,用于产生整个单片机运行的脉冲时序,但8052单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(princeton)结构。intel的mcs-52系

10、列单片机采用的是哈佛结构的形式,而后续产品16位的mcs-96系列单片机则采用普林斯顿结构。图2-2 mcs-52系列单片机的内部结构mcs-52的引脚说明:mcs-52系列单片机中的8031、8051及8751均采用40pin封装的双列直接dip结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线复用。现在我们对这些引脚的功能加以说明:mcs-51的引脚说明:mcs-52系列单片机中的8031、8051及8751均采用40pin封装的双列直接dip结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石

11、英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线复用。现在我们对这些引脚的功能加以说明:图2-3 单片机的引脚图pin9:reset/vpd复位信号复用脚,当8052通电,时钟电路开始工作,在reset引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器pc指向0000h,p0-p3输出口全部为高电平,堆栈指针写入07h,其它专用寄存器被清“0”。reset由高电平下降为低电平后,系统即从0000h地址开始执行程序。然而,初始复位不改变ram(包括工作寄存器r0-r7)的状态,8052的初始态。8051的复位方式可以是自动复位,也可以是手动复位,。此外,

12、reset/v还是一复用脚,vcc掉电其间,此脚可接上备用电源,以保证单片机内部ram的数据不丢失。图2-4 上电自动和手动复位电路图图2-5 内部和外部时钟方式图pin30:ale/prog当访问外部程序器时,ale(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ale端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ale会跳过一个脉冲。 如果单片机是eprom,在编程其间,prog将用于输入编程脉冲。pin29:psen当访问外部程序存储器时,此脚输出负脉冲选通信号,pc的16位地址

13、数据将出现在p0和p2口上,外部程序存储器则把指令数据放到p0口上,由cpu读入并执行。pin31:ea/vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kb的程序存储器,当ea为高电平并且程序地址小于4kb时,读取内部程序存储器指令数据,而超过4kb地址则读取外部指令数据。如ea为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,ea端必须接地。2.1.1 数码管显示选择方案方案一:静态显示。静态显示,即当显示器显示某一字符时,相应的发光二极管恒定导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小电流能获得较高的亮度,且

14、字符不闪烁。但因当所需显示的位数较多时,静态显示所需的i/o口数较大,造成资源的浪费6。方案二:动态显示。即各位数码管轮流点亮,对于显示器各位数码管,每隔一段延时时间循环点亮一次。显示器的亮度与导通电流、点亮时间及间隔时间的比例有关动态显示节省了i/o口,降低了能耗8。从节省单片机芯片i/o口和降低能耗角度出发,电子钟数码管显示选择设计采用方案二。3 数字钟的硬件设计3.1 单片机最小系统单片机最小系统:单片机的最小系统是由电源、复位、晶振、/ea=1组成,下面介绍一下每一个组成部分1.电源引脚vcc40电源端gnd20接地端工作电压为5v,另有at89lv51工作电压则是2.7-6v, 引脚

15、功能一样。 2.外接晶体引脚10xtal1是片内振荡器的反相放大器输入端,xtal2则是输出端,使用外部振荡器时,外部振荡信号应直接加到xtal1,而xtal2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12mhz,时钟频率就为6mhz。晶振的频率可以在1mhz-24mhz内选择。电容取30pf左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。at89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚xtal1和xtal2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容c1和c2构成并联谐振电

16、路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12mhz,电容应尽可能的选择陶瓷电容,电容值约为22f。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3. 复位rst在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后p0p3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器sfr全部清零。当复位脚由高电平变

17、为低电平时,芯片为rom的00h处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚rst通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的s5p2,由复位电路采样一次15。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6mhz时,c取22f,rs约为200,rk约为1k。复位操作不会对内部ram有所影响。图3-2 晶振连接的内部、外部方式图图3-3 常用复位电路图4.输入输出引脚11(1) p0端口p0.0-p0.7 p0是一个8位漏极开路型双向i/o端口,端口置1(对端口写1)时作高

18、阻抗输入端。作为输出口时能驱动8个ttl。对内部flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,p0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2) p1端口p1.0p1.7 p1是一个带有内部上拉电阻的8位双向i/0端口。输出时可驱动4个ttl。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash程序存储器编程时,接收低8位地址信息。(3) p2端口p2.0p2.7 p2是一个带有内部上拉电阻的8位双向i/0端口。输出时可驱动4个ttl。端口置1时,内部上拉电阻将端口拉到高电平,

19、作输入用。对内部flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,p2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) p3端口p3.0p3.7 p2是一个带有内部上拉电阻的8位双向i/0端口。输出时可驱动4个ttl。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash程序存储器编程时,接控制信息。除此之外p3端口还用于一些专门功能,具体请看下表。 表3-1p3端口引脚兼用功能表p3引脚兼用功能p3.0串行通讯输入(rxd)p3.1串行通讯输出(txd)p3.2外部中断0( int0)p3.3

20、外部中断1(int1)p3.4定时器0输入(t0)p3.5定时器1输入(t1)p3.6外部数据存储器写选通wrp3.7外部数据存储器写选通rd3.1.1 ds1302时钟芯片电路1.ds1302引脚在ds1302的引脚排列,其中vcc1为后备电源,vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。ds1302由vcc1或vcc2两者中的较大者供电。当vcc2大于vcc1+0.2v时,vcc2给ds1302供电。当vcc2小于vcc1时,ds1302由vcc1供电。x1和x2是振荡源,外接32.768khz晶振。rst是复位/片选线,通过把rst输入驱动置高电平来启动所有的数据传送

21、。rst输入有两种功能:首先,rst接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,rst提供终止单字节或多字节数据的传送手段。当rst为高电平时,所有的数据传送被初始化,允许对ds1302进行操作。如果在传送过程中rst置为低电平,则会终止此次数据传送,i/o引脚变为高阻态。上电运行时,在vcc2.5v之前,rst必须保持低电平。只有在sclk为低电平时,才能将rst置为高电平。i/o为串行数据输入输出端(双向),后面有详细说明。sclk始终是输入端。 2ds1302与cpu的连接17实际上,在调试程序时可以不加电容器,只加一个32.768khz 的晶振即可。只是选择晶振时,不同的晶振

22、,误差也较大。另外,还可以在上面的电路中加入ds18b20,同时显示实时温度。只要占用cpu一个口线即可。 lcd还可以换成led,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块lcm101,内含看门狗 (wdt)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示ram,可显示任意字段笔划,具有34线串行接口,可与任何单片机、ic接口。功耗低,显示状态时电流为2a (典型值),省电模式时小于1a,工作电压为2.4v3.3v2,显示清晰。 ds1302时钟芯片最小系统电路3.1.1.1 led显示电路显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品

23、工艺,单片机应用系统中常用的显示器有: 发光二极管led显示器、液晶lcd显示器、crt显示器等。led显示器是现在最常用的显示器之一,如下图所示。图3-4 led显示器的符号图发光二极管(led)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式led显示器件(半导体显示器)。分段式显示器(led数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号12。led数码管有共阳、共阴之分。图是共阳式、共阴式led数码管的原理图和符号.图3-5 共阳式、共阴式led数码管

24、的原理图和数码管的符号图显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管3,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。led显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位led显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。 图3-6 数码管的硬件连接示意图数码管使用条件16:a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决

25、定; 小数点:根据发光颜色决定c、使用电流:静态:总电流 80ma(每段 10ma);动态:平均电流 4-5ma 峰值电流 100ma数码管使用注意事项说明:()数码管表面不要用手触摸,不要用手去弄引角;()焊接温度:度;焊接时间:()表面有保护膜的产品,可以在使用前撕下来。4 软件设计与流程图4.1 软件设计系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;(2)培养

26、良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(4)绘制程序流程图;(5)合理分配系统资源;(6)为程序加入注释,提高可读性,实施软件工程;(7)注意软件的抗干扰设计,提高系统的可靠性。4.1.1 流程图这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。 主程序是先开始,然后启动中断显示学号和日期,之后恢复中断进行计时,每当达到整点时蜂鸣器就会鸣叫,期间还可以调试,完成后就可以显示时间。数字电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期

27、为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。8个数码管的段选接到单片机的p0口,位选接到单片机的p2口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”通过七段显示器显示出来。了解中断,

28、有助于我们对单片机的学习。中断是一个过程,当中央处理器cpu在处理某件事情时,外部又发生了另一紧急事件,请求cpu暂停当前的工作而去迅速处理该紧急事件。处理结束后,再回到原来被中断的地方,继续原来的工作。引起中断的原因或发出中断请求的来源,称为中断源19。单片机一般允许有多个中断源,当几个中断源同时向cpu请求中断时,就存在cpu优先响应哪一个中断请求源的问题(优先级问题),一般根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求,于是便规定每一个中断源都有一个中断优先级别,并且cpu总是响应级别最高的中断请求。 系统初始化,调用显示子程序循环次数加1是否满1秒?秒值加1n分值加1是否满60

29、m?n小时加1是否满24h?ny整点时,蜂鸣器响显示缓冲单元清零返回是否满60s?数字电子时钟主流程序图开始 开始保护现场,开启中断调用显示学号,年月日的程序完成?关闭现场,返回yn显示学号,日期的中断子程序流程图 按一下s1,调时按两下s1,调分按三下s1调秒按下s2,加1 按下s3,减1保护现场开始中断返回中断程序,调接时间的流程图 5 系统仿真5.1 proteus软件介绍proteus软件是labcenter electronics公司的一款电路设计与仿真软件,它包括isis、ares等软件模块,ares模块主要用来完成pcb的设计,而isis模块用来完成电路原理图的布图与仿真。pro

30、teus的软件仿真基于vsm技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如mcs-51系列、pic系列等等,以及单片机外围电路,比如键盘、led、lcd等等。通过proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室14。5.1.1 电子钟系统proteus仿真用proteus软件,根据数字电子钟的原理图,画出仿真图,得到的图如下所示 6 原理电路6.1 总原理电路 6.1.1 单片机最小系统和蜂鸣器系统的电路 元件清单图名称数量型号芯片1片at89s52六位一体数码管1个共阴极按键4个晶振2个12m电容2个30p蜂鸣器1个排阻8个220

31、欧电阻11个1.5k发光三极管7个 单片机最小系统蜂鸣器最小系统7 调试与功能说明7.1 电路调试把相应编译好的目标程序代码加载到单片机芯片at89c52,可接上5v电压源即开始进行硬件电路的调试工作。如果显示结果不符合设计要求,即检查电路各连接点是否正确连接,再次进行硬件电路的调试工作,或是检查代码程序是否符合硬件电路的设计,若有错即进行相应的修改,编译后,再进行硬件电路的调试工作。如此反复操作,直到调试出正确结果18。7.1.1 软件调试(1) 在计算机上运行程序调试软件keil,进行程序调试,若显示0错误(s),0警(s)即证明程序代码正确。(2)在proteus软件画好的电路原理图中加

32、载程序代码到单片机芯片at89c52中,进行模拟仿真。若出现错误,查看错误后进行相应修改再进行调试与模拟仿真,直到调试出正确结果。7.1.1.1 系统性能测试与功能说明走时:默认为走时状态,按24小时制分别显示“时时-分分-秒秒”,有2个“-”动态显示,时间会按实际时间以秒为最少单位变化。走时调整:按s1对时进行调整,按一下s2加一时,按一下s3减一时;同理按两下s1实现对分的调节;按三下实现对秒的调节,从而达到快速设定时间的目的。时间是一个基本物理量,具有连续、自动流逝、不重复等特性。我国时间基准来自国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持同步的。结合时间概念和误差理论,

33、可以定义电子钟的走时误差s=s1-s2,s1表示程序实际运行计算所得的秒;s2表示客观时间的标准秒。s0时表示电子钟秒单元数值刷新滞后,即走时误差为“慢”;反之,s0表示秒单元数值的刷新超前,即走时误差为“快”。本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成与基准时间产生偏差,造成走时误差8 软件调试问题及解决8.1 软件调试问题及解决软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试可以采取离线调试

34、和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。本次课题,keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。仿真部分采用proteus6 professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。首先打开proteus6 professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求5。9 结论我在这一次数字电子

35、钟的设计过程中,很是受益匪浅。通过对自己在大学三年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了。这为自己今后进一步深化学习,积累了一定宝贵的经验。撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。培养了我运用所学知识解决实际问题的能力。通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。这个实验十分有意义 我获得很深刻的经验。通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和

36、实际想结合的重要性,也从中得知了很多书本上无法得知的知识。我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。受时间和经验限制,本系统有不足和需改进的地方:1单片机最小系统电路与显示器之间的线路多而且比较杂乱,这主要是和我们的经验不足所致。老师也给许多指导,这是使我们受益匪浅。2元器

37、件的分布不合理,接线端口的不正确使用,在实际的工作中要求是相当高的,我们从每一次课程设计汲取教训,多思考比较简单而又高效的接线方法,我们总结此类问题,找出合适的方法。3我们采用c语言程序,抛弃了繁琐的汇编程序,但是也存在很多问题。关于消息响应机制:本次设计中在消息响应方面处理还有所欠缺。真正的消息响应机制应该是由一个独立的进程不断循环接收外部事件,并在接收到外部事件的同时把消息传递给主程序进行处理。本次试验只是在程序中加入判断,该判断基本能够达到类似的效果。但是日后如果对系统进行改进,现有的机制肯定不能满足需求。因此须采用独立线程进行消息的响应。4. 关于时间的控制:本次设计中采用的是c语言的

38、循环来实现时间的控制,精度方面通过硬件调试已经基本满足要求。若日后对时间精度有更高的要求还需要再程序上加以改进13。a.智能校正。通过实际测试在积累一定时间差后程序自动进行校正。b.晶振改进以及程序更加精确的控制 。通过使用更稳定更精确的晶振和对程序更加精确的时间控制来满足设计要求10 致谢首先衷心地感谢我的指导老师孙继卫老师。从理论上的探讨到实际问题的解决,孙老师的悉心指导和建议给了我极大的帮助和支持,使我受益匪浅,在此论文完成之际,谨向孙老师致以深深的谢意和崇高的敬意。在这个过程中,孙继卫老师给了我极大的帮助,不仅是知识上的,更有很多心理上的支持,她引导我在各种杂事比较多的情况下能踏踏实实

39、做点属于自己的工作,让我学会了自主学习。此外衷心感谢在本次课程设计中指点和帮助我的其他老师与同学!感谢学院为我们提供了良好课程设计仪器设备及学习环境。11 参考文献 1 倪晓军,章韵单片机原理与接口技术教程北京:清华大学出版社,200992 王华祥现代传感技术及应用北京:化学工业出版社,200873 康华光电子技术基础(数字部分)第五版北京:高等教育出版社,200614 康华光电子技术基础(模拟部分)第五版北京:高等教育出版社,200615 陈正义单片机控制实习d页码1486 谭炳煜怎样撰写科学论文m2版沈阳:辽宁人民出版社,1982::567 刘湘涛,江世明单片机原理与应用m北京:电子工业出

40、版社,20068 王桠楠信息系统灾难恢复能力评估方法研究d 北京:华北电力大学,2006 9 张毅刚, 彭喜源,潭晓昀mcs-51 单片机应用设计m 哈尔滨:哈尔滨工业大学出版社199710 皮红梅,李英顺单片机开发中的定时方法沈阳石油化工高等专科学校学报2002 年12 月11 h.g.cragonthe elements of single-chip microcomputer architecture. computer,1980 (13)274112 mark e.buccini.digital countdown timer never needs battery replaceme

41、nt.end,2005 (11):798013 卢超.基于单片机的数字电子钟的设计与制作.大庆师范学院学报,2006(5):4914 scott edwards. crystal-controlled oscillator is heartbeat of 60-hour timer. the nuts and volts of basic stamps,1996(1):9510315 向继文,廖立新.基于at89s51 的电子钟系统设计.机电产品开发与创新,2007(2):626316 刘盛雄,周奇,韦云隆.基于单片机的数字式电子钟的设计与制作.重庆工学院学报,2006(8):9117 潘永雄

42、.新编单片机原理与应用. 第2版.西安:西安电子科技大学出版社 200618 樊金荣,谢智文. 数字倒计时秒表的设计与实现.中南民族大学计算机科学学院院报,2005(1):626319 魏立峰,王宝兴.单片机原理与应用技术m .北京:北京大学出版社,2006. 12 附录#include #include ds1302.h#define keyport p3 /按键端口#define dataport p0 /数据端口sbit latch1=p22;/段锁存sbit latch2=p23;/位锁存sbit p2_0=p20;/报警sbit p2_5=p25;sbit p2_7=p27;unsi

43、gned int panduan,baojing;unsigned int bian1;/调时unsigned int bian2,bian3,bian4,bian5,bian6;/闹钟bit readtimeflag;/定义读时间标志unsigned int xianshi,shijian;/显示学好是用unsignedcharcode dofly_duanma10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 显示段码值09unsigned char code dofly_weima=0xfe,0xfd,0xfb,0xf7,0xef

44、,0xdf,0xbf,0x7f;/位码unsigned char tempdata8; /存储显示值的全局变量void delayus2x(unsigned char t);/us级延时函数声明 void delayms(unsigned char t); /ms级延时void display(unsigned char firstbit,unsigned char num);/数码管显示函数+报警函数 unsigned char keyscan(void);/键盘扫描void init_timer0(void);/定时器初始化void main (void)unsigned char num

45、;/键盘扫描init_timer0(); /定时器初始化ds1302_init(); / ds1302初始化ds1302_write_time();/向ds1302写入时钟数据while (1) /主循环 num=keyscan(); switch(num) case 1:bian1+;if(bian1=4)bian1=0;break;/设置时间case 2:if(bian1=1) /设置时间加1 time_buf14+;if(time_buf14=24)time_buf14=0; ds1302_write_time();/小时 else if(bian1=2) time_buf15+;if(

46、time_buf15=60)time_buf15=0; ds1302_write_time();/分 else if(bian1=3) time_buf16+;if(time_buf16=60)time_buf15=0; ds1302_write_time(); /秒 break;case 3:if(bian1=1) /设置时间减1 time_buf14-;if(time_buf14=255)time_buf14=23; ds1302_write_time();/小时 else if(bian1=2) time_buf15-;if(time_buf15=255)time_buf15=59; d

47、s1302_write_time();/分 else if(bian1=3) time_buf16-;if(time_buf16=255)time_buf15=59; ds1302_write_time(); /秒 break; case 4:bian2+;if(bian2=2)bian2=0;break;/切换显示、闹铃case 5:bian3+;if(bian3=4)bian3=0;break;/设置闹钟时间case 6:if(bian3=1) /加1 bian4+;if(bian4=24)bian4=0;/小时 else if(bian3=2) bian5+;if(bian5=60)bi

48、an5=0;/分 else if(bian3=3) bian6+;if(bian6=60)bian6=0; /秒 break;case 7:if(bian3=1) /减1 bian4-;if(bian4=255)bian4=23;/小时 else if(bian3=2) bian5-;if(bian5=255)bian5=59;/分 else if(bian3=3) bian6-;if(bian6=255)bian6=59; /秒 break;case 8:panduan+;if(panduan=2)panduan=0; if(panduan=1) baojing=1; else baojin

49、g=0; default:break; if(readtimeflag=1) readtimeflag=0; ds1302_read_time(); if(shijian=0)/显示制作着学号前六位 tempdata0=0x5b;/2 tempdata1=0x3f;/0 tempdata2=0x3f;/0 tempdata3=0x7f;/8 tempdata4=0x7f;/8 tempdata5=0x3f;/0 else if(shijian=1)/显示制作着学号后六位 tempdata0=0x07;/7 tempdata1=0x5b; /2 tempdata2=0x66;/4 tempdata3=0x4f;/3 tempdata4=0x3f;/0 tempdata5=0x6f;/9 else if(shijian=2)/显示制作年、月、日 tempdata0=dofly_duanmatime_buf11/10;/年 tempdata1=dofly_duanmatime_buf11%10; tempdata2=dofly_duanmatime_buf12/10;/月 tempdata3=dofly_duanmatime_buf12%10; tempdata4=dofly_duanmatime_buf13/10;/日

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论