收藏 分销(赏)

单片机课程设计报告电子秒表闹钟设计.doc

上传人:二*** 文档编号:4519644 上传时间:2024-09-26 格式:DOC 页数:28 大小:234KB
下载 相关 举报
单片机课程设计报告电子秒表闹钟设计.doc_第1页
第1页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、- -目录摘要1 电子秒表与闹钟系统概述11.1 课程设计根本要求11.2 系统实现功能11.3 系统应用价值展望22 仿真软件Proteus和Keil简介32.1 Proteus简介32.2 Keil简介33 系统工作原理分析43.1AT89C2051模块43.2 显示驱动模块63.3 数码管显示模块84 程序流程图设计95 Proteus仿真原理图126 课程设计体会14参考文献15附:源程序代码16- word.zl- -摘 要随着科学技术的不断开展 , 人们对时间计量的要求越来越高 。在当今社会,电子时钟已经得到相当广泛的应用,产品多样,开展更是多元化。本作品是以STC89C51单片机

2、作为主控芯片,使用12MHZ的晶振,使用专用时钟日历芯片DS12C887产生时间信息,时间准确。软件局部以C语言为主体,用1602LCD液晶屏显示输出信息,输出信息量多,更直观、人性化。该时钟可实现人机交互,可通过提供的键盘对其进展调整。系统具有以下功能:年、月、日、时、分、秒显示;12小时/24小时模式切换,在12小时模式中,用AM和PM区分上午和下午;秒表功能;整点闹铃和报时功能,且闹钟可设置多组。本次设计的电子时钟系统由单片机最小系统,1602LCD液晶屏,时钟芯片,调整按键,蜂鸣器,电源五大局部组成。 关键词:定时器中断闹钟电子时钟1 电子秒表与闹钟系统概述1.1 课程设计根本要求(1

3、) 用并行口设计一个具有显示功能的秒表,显示准确的时间时、分、秒,可用24小时制式;(2) 有时间校准功能;(3) 允许通过转换功能键转换显示时间,用定时器实现一个电子闹钟,能设定和修改定时的时间,并能到时响铃通知;(4) 所有按键需要通过串口自发自收来调校各种功能。1.2 系统实现功能本系统是基于单片机AT89S52制作的数字电子钟。根据实验要求,在完成实验所要求的根本功能外,扩展了几个功能。硬件系统设计方面:采用六位LED数码管,用切换的方式显示时间和设置的闹钟时间;可调整时间以及闹钟时间;具有设置闹钟的功能。软件系统设计方面:程序采用汇编语言编写,使自己更加理解硬件语言以及其工作原理;“

4、时钟基准时间由单片机部的定时中断提供用一个计数器对定时中断的次数进展计数,可实现“秒定时,同理可以进展“分“时定时;采用按键查询功能复用,简化了程序的设计;采用动态扫描法显示6位数码管。基于51单片机的电子时钟的设计,从硬件和软件两个方面给出了具体实现过程。该时钟的设计采用功能分块的思想方法,将硬件电路划分为开关电路,显示驱动电路和数码管电路等假设干独立模块,而软件的实现那么由闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等组成。文中给出了各个模块的电路图,并用Proteus的ISIS软件对电子时钟系统的各个功能进展了仿真,并给出了

5、相应的仿真结果图像。1.3 系统应用价值展望现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进展时和分的校对,片选的灵活性好。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进展满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由

6、于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。在编程之前必须了解硬件构造尤其是各引脚的用法,以及部存放器、存储单元的用法,否那么,编程无从下手,电路也无法设计。这是前期准备工作。第二局部是硬件局部:依据想要的功能分块设计设计,比方输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三局部是软件局部:先学习理解汇编语言的编程方法再根据设计的硬件电路进展分块的编程调试,最终完成程序设计。

7、第四局部是软件画图局部:设计好电路后进展画图,包括电路图和仿真图的绘制。第五局部是软件仿真局部:软硬件设计好后将软件载入芯片中进展仿真,仿真无法完成时检查软件程序和硬件电路并进展修改直到仿真成功。第六局部是硬件实现局部:连接电路并导入程序检查电路,假设与设计的完全一样一般能实现想要的功能。最后进展功能扩展,在已经正确的设计根底上,添加额外的功能。2仿真软件Proteus和Keil简介2.1 Proteus简介Proteus是英国Labcenter公司开发的电路分析与仿真软件。该软件的特点是:集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品的完整电子设计工具,具有模拟电路、数字电路、单

8、片机应用系统、嵌入式系统不高于ARM7设计与仿真功能,具有全速、单步、设置断点等多种形式的调试功能,具有各种信号源和电路分析所需的虚拟仪表,支持Keil C51 uVision2、MPLAB等第三方的软件编译和调试环境,具有强大的原理图到PCB板设计功能,可以输出多种格式的电路设计报表。拥有PROTEUS电子设计工具,就相当于拥有了一个电子设计和分析平台。2.2 Keil简介KeilSoftware公司推出的uVision3是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。除增加了源代码、功能导航器、模板编辑以及改良的搜索功能外,uV

9、ision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。uVision3提供逻辑分析器,Keil C51是Keil Software公司出品的51系列兼容C语言软件开发系统,与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括宏汇编、连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案,将这些局部组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而

10、仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。3 系统工作原理分析3.1AT89C2051模块AT89C2051是一种低电压、高性能CMOS8位单片机,片含2k bytes的可反复擦写的只读程序存储器PEROM和128bytes的随机数据存储器,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元。是一种强劲的微型处理器,对许多嵌入式控制应用提供一定高度灵活和本钱低的解决方法。下列图为其芯片引脚:图3-1 AT89C2051引脚图各引脚功能如下:1 VCC:电源电压。 2 GND:地。 3 P1口:P1口是一个8位双向I/O口。口引脚P1.

11、2P1.7提供部上拉电阻,P1.0和P1.1要求外部上拉电阻。P1.0和P1.1还分别作为片精细模拟比拟器的同相输入(ANI0)和反相输入(AIN1)。P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。当引脚P1.2P1.7用作输入并被外部拉低时,它们将因部的写入“1时,其可用作输入端。当引脚P1.2P1.7用作输入并被外部拉低时,它们将因部的上拉电阻而流出电流。 4 P3口:P3口的P3.0P3.5,P3.7是带有部上拉电阻的七个双向I/O口引脚。P3.6用于固定输入片比拟器的输出信号并且它作为一通用I/O引脚而不可。P3口缓冲器可吸收20mA电流。当P3口写入“1时,它们被部上拉电

12、阻拉高并可用作输入端。用作输入时,被外部拉低的P3口脚将用上拉电阻而流出电流。 P3口还用于实现AT89C2051的各种第二功能,如下表所列:引脚口功能P3.0RXD串行输入端口P3.1TXD串行输入端口P3.2INT0 外中断0P3.3INT1 外中断1P3.4T0定时器 0外部输入P3.5T1定时器 1外部输入图3-2AT89C2051引脚功能P3口还接收一些用于闪速存储器编程和程序校验的控制信号。 5 RST:复位输入。RST一旦变成高电平所有的I/O引脚就复位到“1。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。 6 X

13、TAL1:作为振荡器反相器的输入和部时钟发生器的输入。 7 XTAL2:作为振荡器反相放大器的输出。3.2 显示器驱动模块由于通过数码管公共极的电流较大,单片机I/O口驱动能力是不够的,故LED驱动模块必不可少。为防止过多地使用分立元件,本次设计采用一片 74HC245来驱动位码,用P2口进展位选扫描。图3-3显示器驱动模块仿真图74HC245是常用来驱动LED或者其他的设备,它是 8 路同相三态双向总线收发器,可双向传输数据,74LS245还具有双向三态功能。 片选端CE,接低电平时传输数据,接高电平时A、B均为高阻态。 方向选择端AB/BA,接高电平时信号由A向B传输发送,接低电平时信号由

14、B向A传输接收。3.3 数码管显示模块显示设备为共阳8位7段数码管LED,用单片机P0口作为LED段选控制端,用单片机P2口作为LED位选控制端,并采用集成块74LS245作为位驱动模块。片选端CE接地,方向选择端AB/BA接电源。图3-4 数码管显示模块仿真图LED数码管及引脚图资料 LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的 2个8数码管字样了。如:显示一个“2字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。这类数码管可以分为共阳

15、极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点,而每个LED的阴极分别为a、b、c、d、e、f、g及dp小数点;共阴极那么是把所有LED的阴极连接到共同接点,而每个LED的阳极分别为a、b、c、d、e、f、g及dp小数点,如下列图所示。图中的8个LED分别与上面那个图中的ADP各段相对应,通过控制各个LED的亮灭来显示数字。4 程序流程图设计主程序流程图:开场存放器赋初值初始化,开定时器0显示时间按键扫描闹铃程序秒表计时显示模式调整闪烁位移位闪烁加一程序图4-1主程序流程图当有不同按键,进入不同的效劳子程序,同时在查询的时候判断是不是整点,有没有到达闹铃设置的时间,进入效劳子程序采

16、用的是查询的模式。秒表子程序流程图:图4-2秒表子程序流程图闹铃程序流程图:图4-3闹铃程序流程图实现闹钟功能主要有两个步骤,首先是能在按键中把闹钟数值写进存放器,实现存储功能。其次是根据在查询按键效劳程序中作判别,检查当前时间是否与闹铃时间相等,如果相等,那么使在相应时间时对蜂鸣器提供驱动电流即可。就实现了闹钟设置的功能。TO中断子程序:图4-4中断子程序流程图5 Proteus仿真原理图列出元件连线仿真,如图:图5-1电子时钟系统总图功能按键解释: S1为功能选择按键,S2为功能扩展按键,S3为数值加一按键。操作时,连续短时间小于1秒按动S1,即可在以上的几个功能中连续循环。中途如果长按大

17、于2秒S1,那么立回到时钟功能的状态。功能说明:1 时钟功能:上电后LED数码管会显示已设定好的10:10:00。2 校时功能:短按一次S1,当前时间变为闪烁状态,按动S2小时位加1,按动S3分钟位加1。3 闹钟功能:短按二次S1,显示状态为22:10:00。冒号为长亮。按动S2小时位加1,按动S3分钟位加1,秒时不可调。4 倒计时功能:该功能为拓展功能。短按三次S1,显示状态为0。按动S2那么从低位依次显示高位,按动S3那么相应位加1,当S2按到第6次时会是所设定的时间状态下开场倒计时,再次按动S2将再次进入调整功能,并且停顿倒计时。5 秒表功能:短按四次S1,显示状态为00:00:00.冒

18、号为长亮。按动S2那么开场秒表计时,再次按动S2那么停顿计时,当停顿计时的时候按动S3那么秒表清零。6 计数器功能:短按五次S1,显示状态为00:00:00。冒号为长灭,按动S2那么计数器加1.按动S3那么计数器清零。6 课程设计体会我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业根底课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。 这次单片机课程设计我们历时一个星期,时间虽然不算长,但经过这一个星期的实践和体验下来,我们

19、综合那些理论知识来运用到设计和创新,那些原本感觉枯燥乏味的程序在这次课程设计后,我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。 总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。 在此次设计中我们必须首先熟悉和掌握单片机的构造及工作原理,单片机的接口技术及相关外围芯片的特性,控制方法。以及单片机核心电路设计的根本方法和技术,了解有关电路参数的计算方法。单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。它的体积小、质量轻、价格廉价、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与构造的最正确选择。目前单片机渗透到我们生活的各

20、个领域,几乎很难找到哪个领域没有单片机的踪迹。 而在这次设计LCD动态图片显示的过程中,我学到了很多有关LCD动态图片显示的设计方法与工作原理。我不但稳固了以前所学过的知识,也学到了很多在 单片机的控制系统课程设计 ,书本上所没有学到过的知识。同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,原本以为我们学习的课程很多了。但是当我们要真正的用我们已学过的知识来解决实际的问题时,开场我们都茫然了。所以,我们要学的东西真的还有很多很多,只有把所学的理论知识与实践相结合起来,在实际的操作过程中,我们才能够体会到其中意义,从而提高自己的实际动手能力和独立思考的能力。 参考文献1X煜明,雁

21、.单片机原理及接口技术,电子工业2万光毅,严义,邢春香.单片机实验与实践教程,航空航天大学3迎新.单片机中级教程,航空航天大学4丁元杰.单片机原理与应用,机械工业5育才.MCS-51系列单片微型计算机及其应用,东南大学附:源程序代码#include #define uchar unsigned char#define uint unsigned intuchar code table=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x7F,0x3F;uchar code table1=0xC0,0xF9,0xA4,0xB0,0x99,0x9

22、2,0x82,0xF8,0x80,0x90,0xFF,0x3F;uchar code table2=0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x37;sbit key1=P35;sbit key2=P34;sbit key3=P32;sbit L5=P31;sbit L3=P33;sbit L1=P35;sbit L4=P32;sbit L2=P34;sbit L6=P30;sbit P3_7=P37;sbit led=P17;char miao=0,fen=10,shi=10,count1,count1_1,count2,

23、count3,count4,num,ci,wei1,wei2,wei3,wei4,wei5,wei6,time,dingmiao,dingfen=10,dingshi=22,miaobiao;char ji1,ji2,ji3,ji4,ji5,ji6;char miao_ge,miao_shi,fen_ge,fen_shi,shi_ge,shi_shi;uint kai,change1,xun1,change2,xun2;uint xiao1,xiao2,xiao3,xiao4,xiao5,xiao6;uint naozhong; void delay(uint z) uint x,y; for

24、(x=z;x0;x-) for(y=110;y0;y-); void didi() P3_7=1; delay(2); P3_7=0; delay(2); void xianshi(uchar a,uchar b) if(num!=1) if(num=2|num=4)P1=tablea; else if(num=3|num=5|change1=1) P1=table1a; else P1=tablea; else if(change2=1)P1=table2a; else P1=table1a; if(b=1) L5=0; delay(2); L5=1; if(b=2) L3=0; delay

25、(2); L3=1; if(b=3) L1=0; delay(2); L1=1; if(b=4) L4=0; delay(2); L4=1; if(b=5) L2=0; delay(2); L2=1; if(b=6) L6=0; delay(2); L6=1; void miaox(uchar t) uchar y1,y2;y1=t%10;y2=t/10; xianshi(y1,1); xianshi(y2,2); void fenx(uchar t) uchar y3,y4;y3=t%10;y4=t/10; xianshi(y3,3); xianshi(y4,4); void shix(uc

26、har t) uchar y5,y6;y5=t%10;y6=t/10; xianshi(y5,5); xianshi(y6,6); void display() if(num=2) if(dingshi=6)num=0; if(num!=0) if(key2=0) delay(4); if(key2=0) while(key2=0)display();if(num=1) shi+;if(shi23)shi=0; display(); if(num=2) kai=0; dingshi+; if(dingshi=25) kai=0; dingfen=0; dingshi=0; dingmiao=0

27、; if(num=3) ci+;if(ci=1)xiao1=1;if(ci=2)xiao1=1;xiao2=1;if(ci=3)xiao1=1;xiao2=1;xiao3=1; if(ci=4) xiao1=1;xiao2=1;xiao3=1;xiao4=1;if(ci=5)xiao1=1;xiao2=1;xiao3=1;xiao4=1;xiao5=1;if(ci=6)xiao1=1;xiao2=1;xiao3=1;xiao4=1;xiao5=1;xiao6=1;if(ci=7)TR1=1;if(ci=8)TR1=0; xiao1=0;xiao2=0;xiao3=0;xiao4=0;xiao5

28、=0;xiao6=0;ci=0; if(num=4) miaobiao+;if(miaobiao=1) TH1=(65536-10000)/256; TL1=(65536-10000)%256; TR1=1; display(); if(miaobiao=2) if(miaobiao%2=0)TR1=0; else TH1=(65536-10000)/256; TL1=(65536-10000)%256; TR1=1; display(); if(num=5) ji1+; if(ji19) ji1=0; ji2+; if(ji29) ji2=0; ji3+; if(ji39) ji3=0; j

29、i4+; if(ji49) ji4=0; ji5+; if(ji59) ji5=0; ji6+; if(num!=0) if(key3=0) display(); delay(4); display(); if(key3=0) while(key3=0)display();if(num=1) fen+;if(fen59)fen=0;display();if(num=2) kai=0; dingfen+;if(dingfen59)dingfen=0; display(); if(num=3) if(ci=1) miao_ge+; if(miao_ge9)miao_ge=0; if(ci=2) m

30、iao_shi+; if(miao_shi5)miao_shi=0; if(ci=3) fen_ge+; if(fen_ge9)fen_ge=0; if(ci=4) fen_shi+; if(fen_shi5)fen_shi=0; if(ci=5) shi_ge+; if(shi_ge9)shi_ge=0; if(ci=6) shi_shi+; if(shi_shi2)shi_shi=0; if(num=4) wei1=0; wei2=0; wei3=0; wei4=0; wei5=0; wei6=0; miaobiao=0; TR1=0; if(num=5) ji1=0;ji2=0;ji3=

31、0;ji4=0;ji5=0;ji6=0; void init() TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;TR0=1;TR1=0;EA=1;ET0=1;ET1=1; void main() init();while(1) scan(); display(); if(dingmiao=miao&dingfen=fen&dingshi=shi&kai=0) kai=1; naozhong=1; TR1=1; if(naozhong=1) didi(); void t0(void ) interrupt 1using 0 TH0=(65536-50000)/256;TL0=(65536-50000)%256;count1+;count1_1+;if(count1_1=10) count1_1=0; xun1+; if(xun1=1) change1=0;if(xun1=2) xun1=0; change1=1; if(num=1) xun2+; if(xun2=1) change2=

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服