《电子时钟单片机课程设计报告(WIT).docx》由会员分享,可在线阅读,更多相关《电子时钟单片机课程设计报告(WIT).docx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、电气信息学院单片机原理及应用课程设计报告课题名称电子时钟的设计专业班级 电气自动化学 号学生姓名指导教师评 分2023 年 12 月 22 日至 12 月 28 日辩论记录1、例举设计过程中遇到的问题及其解决方法至少两例。答:1问题说明:解决方法:。2问题说明:解决方法:2、教师现场提的问题记录在此不少于2个问题。摘要数字时钟在日常生活中很常见,应用也很广泛。承受数字电路实现对“时”、“分”、“秒”数字显示的计时装置。数字钟的精度、稳定度远远超过老式机械钟。在这次设计中,我们承受 LED 数码管显示时、分、秒,以 24 小时计时方式,依据数码管动态扫描法进展显示,用 12MHz 的晶振产生振荡
2、脉冲,定时器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。本系统设计以 AT89C51 芯片为核心,辅以必要的外围电路,设计了一个结构简洁功能齐全的电子时钟。本系统由单片机的时钟信号实现计时功能,将其时间数据经单片机输出,利用显示器显示出来,同时通过按键可以进展校时、定时等功能。利用单片机实现的数字时钟具有编程敏捷,便于功能的扩大等优点以满足人们不同的需要。系统利用汇编语言开发,并在软件设计中分别使用了 keilC51、Proteus 开发平台。利用单片机实现的数字时钟具有编程敏捷,便于功能的扩大等优点以满足人们不同的需要。关键词:单片机;电子时钟;LED 数码管显示
3、I目录1 设计任务12 设计方案22.1 任务分析22.2 方案设计23 系统硬件设计43.1 时钟电路设计43.2 复位电路设计43.3 按键掌握电路设计53.4 按键去抖动设计53.5 LED 显示器电路设计63.5.1 LED 显示器的选择63.5.2 LED 段码驱动芯片的选择63.6 掉电保护电路设计73.7 闹钟蜂鸣电路设计84 系统软件设计84.1 主程序设计84.2 数码管 LED 动态扫描子程序94.3 时钟计时子程序104.4 按键调整子程序124.4.1 当前时间调整子程序124.4.2 当前日期调整子程序134.4.3 闹钟时间调整子程序144.4.4 闹铃报警子程序1
4、55 仿真与性能分析166 设计小结18参考文献19附录 1 系统原理图20附录 2 程序清单21武汉工程大学电气信息学院单片机课程设计论文说明书1 设计任务利用单片机完成电子时钟的设计,用 8 个 7 段 LED 数码管作为显示设备,承受动态扫描法显示时钟功能;可以分别设定小时、分钟和秒,复位后时间为00:00:00。即通过单片机主控芯片定期读取时钟芯片中的时间并把年、月、日、小时和分显示在数码管中。而且用按键还可以实现时间的调整和闹铃的设定创局部,即对设置的闹铃时间与实时时间进展比较,假设时间一样且闹铃允许,那么蜂鸣器就会以 1 秒的周期鸣响一分钟, 提示使用者。图 1.1 电子时钟成品效
5、果图1. 根本要求 设计任务:(1) 用 6 个 7 段 LED 数码管作为显示设备,设计时钟功能;(2) 可以分别设定小时、分钟和秒,复位后时间为 00:00:00;(3) 秒钟复位功能,秒复位键按下后,秒回到 00;(4) LED 承受动态扫描法显示。2. 选做(1) 日期、时间切换功能;(2) 使用 LCD 取代 LED 作为显示设备;(3) 假设需要制作电子万年历,可以考虑外部扩展专用时钟芯片如:DS1302(4) 实现闹钟功能创局部102 设计方案2.1 任务分析电子时钟的主要功能为显示日期和时间、时间的调整以及闹铃的设定等。用 LED 显示时间和日期,并且可以调整。即通过单片机主控
6、芯片定期读取时钟芯片中的时间并把年、月、日、小时和分显示在数码管中;而且用按键还可以实现时间的调整和闹铃的设定。即对设置的闹铃时间与实时时间进展比较,假设时间一样且闹铃允许,那么蜂鸣器就会以 1 秒的周期鸣响一分钟,提示使用者。2.2 方案设计1. 硬件方案依据设计的要求可知,系统的硬件原理框图如图 2.1 所示。图 2.1 系统的硬件原理框图单片机可选用 AT89C51,它与 8051 系列单片机全兼容,但其内部带有 4KB 的 FLAS H ROM,设计时无需外接程序存储器,为设计和调试带来极大的便利。AT89C51 系列单片机的优势有:第一,片内程序存储器承受闪速存储器,使程序的写入更加
7、便利。其次, 供给了更小尺寸的芯片,使整个硬件电路的体积更小。第三,具有程序加密的功能,物美价廉,经济有用。电子时钟含显示模块和按键模块。显示模块承受 8 位数码管动态扫描显示,P0 口掌握段码,驱动芯片承受一块 74LS245N 芯片,P2 口掌握位码;按键模块设置 SET、AL M、+1、NEXT、REST,DATE 六个功能键,分别由 P3.0P3.5 掌握。2. 软件方案图 2.2 软件设计程序框图依据设计要求,程序框图如图 2.2 所示。软件可由汇编语言完成,也可由 C 语言完成。依据模块的划分原则,除主程序外,本设计还可分为以下 6 个子程序。包括:数码管动态扫描子程序、时钟计时子
8、程序、蜂鸣器报警子程序、当前时间调整子程序、当前日期调整子程序和当前闹钟时间调整子程序。3 系统硬件设计3.1 时钟电路设计图3.1 单片机时钟电路如图3.1所示,承受内部时钟产生方式,在XTAL1 和XTAL2 两端跨接晶体或陶瓷振荡器, 与内部反相器构成稳定的自击震荡。其发出的时钟脉冲直接送入片内定时掌握部件。3.2 复位电路设计如图3.2所示,承受上电+按钮电平复位方式,当按下按钮时,RST 管脚高电平触发。为保证复位牢靠,RC 时间常数应大于两个机器周期,电容取33uf,电阻取200 欧。图 3.2 单片机复位电路3.3 按键掌握电路设计本设计承受了独立键盘方式,并进展按键去抖动设计,
9、设置六个功能键进展时间调整与定时时间的输入,通过接入键盘电路实现,如图3.3所示,6 个按键分别定义为:+1 键:其功能是当该键按下时,被调整位加一,由 P3.0 掌握;NEXT 键:其功能是当该键按下时,指向下一个要调整的位。由 P3.1 掌握。SET 键时间调整设置键 :当该键按下时,进入时间调整输入功能,由 P3.2掌握;ALM 键定时时间设置键当该键按下时,进入闹钟时间输入功能,由 P3.3掌握;DATE 键日期时间设置键 :当该键按下时,进入日期时间输入功能,由P3.4 掌握;REST 键复位键 :当该键按下时,关闭闹铃,由 P3.5 掌握;图3.3 按键电路3.4 按键去抖动设计当
10、用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的状况;在释放一个键时,也回会消灭类似的状况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于 10ms。很简洁想到, 抖动问题不解决就会引起对闭合键的识别。 用软件方法可以很简洁地解决抖动问题,这就是通过延迟 10ms 来等待抖动消逝,这之后,再读入键盘码。3.5 LED 显示器电路设计LED 显示器的显示掌握方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位 LED 显示器,通常都是承受动态扫描的方法进展显示。本设计使用动态扫描方式,其中段码接 p0 口,位码接 p2 口。3.5.1 LE
11、D 显示器的选择图3.5.1 八位LED显示器如图3.5.1所示,显示电路显示模块需要实时显示当前的时间,即时、分、秒,以及年月日。因此需要 6 个数码管,另需两个数码管来显示横。74EGCOM-MAX8 系列显示器能满足显示的需要,如图 2.6 所示。时年的十位和个位分别显示在第一个和其次个数码管,分月的十位和个位分别显示在第四个和第五个数码管,秒日的十位和个位分别显示在第七个和第八个数码管, 其余数码管显示横线。3.5.2 LED 段码驱动芯片的选择LED 的段驱动链路有很多种,在本例中,我们选择 74LS245 作为段驱动芯片。如图 3.5.2。74LS245 是我们常用的芯片,可用来驱
12、动 LED 或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据,并具有锁存,译码,驱动的功能。图 3.5.2 74LS245引脚图3.6 掉电保护电路设计通常,在数字钟、打铃仪、某些定时器和日历钟等类型的单片机系统中,当主电源 DC5V 失去时,我们称之为掉电。掉电之后,单片时机停顿工作,时钟会停顿往前走,这种结果在很多场合往往是不期望的,为了保证单片机在主电压失去时仍旧能够保持运行,人们就利用干电池对单片机系统连续进展供电。图 3.6 掉电保护电路本设计承受如图 3.6 的设计电路,当主电源正常时,单片机由 VCC5V 电源供电,此时,VCC 5V 电源通过 D1 和 R1 ,对
13、保护用电池进展充电,以保证电池电量的充分。适中选择 R1 的大小,可以保证充电电流和充电时间都比较合理。3.7 闹钟蜂鸣电路设计本设计使用 P3.7 掌握蜂鸣电路,蜂鸣电路如图 2.9 所示。当到定时时间时,P3.7 置0,蜂鸣器鸣叫。此时,假设手动按下 REST 键,蜂鸣器停顿鸣叫。图 3.7 闹钟蜂鸣电路4 系统软件设计4.1 主程序设计主程序的内容包括:主程序的起始地址,终端效劳程序的起始地址,有关内存和相关部件的初始化和子程序的调用等等。(1) 程序的起始地址。单片机复位后,PC=0000H。(2) 主程序的初始化内容 包括一些存储单元的内容进展初始化及计时器的初值设定。在本试验中,计
14、时子程序承受了中断方式。图 4.1 主程序流程图4.2 数码管 LED 动态扫描子程序在承受动态扫描方式时,要使 LED 现实的比较均匀,又有足够的亮度,需要设置适当的扫描频率。(1) 在显示缓冲区分别取出 8 位 LED 显示器显示数据的位码及段码,送到P2 口,依次显示每一位,每一位显示时间是 1ms,显示 8 位时间是 8ms。(2) LED 显示器的时间是 1ms,延时子程序是用的软件定时程序。图 4.2 LED动态扫描子程序框图4.3 时钟计时子程序(1) 时间的产生选择定时器 T0,工作方式 1,定时 50ms,T0 定时 50ms 中断一次。利用存放器加 1,当存放器累加至 20
15、,时间正好等于 1 秒。之后依据下面的流程图再逐级累加,便可产生时间。(2) 设置定时器初值 时钟晶振频率=6Mhz计数值=定时时间 / 机器周期时间 TH0= (65536-50000)/256 TL0=176图 4.3 时钟计时子程序框图4.4 按键调整子程序按键调整子程序由当前时间调整子程序, 当前日期调整子程序和当前闹钟时间调整子程序组成。功能分别为实现对当前的时间调整,对当前日期的调整及输入定时闹钟时间。4.4.1 当前时间调整子程序在程序中,当 SET 键按下时,即转入调时功能。利用+1 键和 NEXT 键协作使用, 每次对+1 键按下进展累加,当 NEXT 键按下时,调整时间被确
16、认,转向处理下一位。当前时间存储在 30H,31H,32H 单元中,并送入显示缓冲区显示。图 4.4.1 当前时间调整子程序框图4.4.2 当前日期调整子程序当前日期调整子程序的设计思路与当前时间调整子程序根本一样。不同的是当 DATE键按下时转入日期调整功能。输出的日期存储在 38H,39H,40H 中。图 4.4.2 当前日期调整子程序框图4.4.3 闹钟时间调整子程序闹钟调整程序的设计思路与当前时间调整子程序也是根本一样的。不同的是当 ALM键按下时转入闹钟调整功能。 输出的闹钟时间存储在 35H, 36H,37H 单元中。图 4.4.3 闹钟时间调整子程序框图4.4.4 闹铃报警子程序
17、当定时时间到达时,P3.7 输出低电平,促发闹铃提示功能,直至 REST 键被按下后停顿闹铃提示。其程序流程图如图 4.4.4图 4.4.4 闹铃报警子程序框图5 仿真与性能分析1、系统仿真过程仿真调试过程如下:1 PROTEUS 软件使用过程:(1) 选择元器件(2) 放置元器件(3) 连线(4) 添加程序(5) 运行仿真2 在 KEIL 中编写程序,编译、连接形成 HEX 文件,如图 5.1 所示。3 在 PROTEUS 中把 HEX 文件加载到单片机芯片上,如图 5.2 所示。图 5.1Keil 编译后工作界面图 5.2Proteus 仿真界面2 仿真结果与分析运行仿真结果如图 5.3
18、所示。按下 F12,仿真开头运行,时钟从 00:00:00 开头走时。走时调整:按 SET 键时钟走时暂停,并可先对时进展调整,按+1 键后时加 1;按 NEXT 后对分进展调整,按+1 键后时分加 1;按 NEXT 后对秒进展调整,按+1 键后秒加 1,从而到达设定时间的目的, 仿真结果完全符合设计要求。日期调整:按 DATE 可以显示当前日期,并对日期进展调整,按+1 键后年加 1;按 NEXT 后对月份进展调整,按+1 键后月份加 1;按 NEXT 后对天进展调整, 按+1 键后天加 1, 从而到达设定日期的目的, 仿真结果完全符合设计要求。闹钟定时:按 ALM 进入闹钟时间设定,按+1
19、 键后时加 1;按 NEXT 后对分进展调整,按+1 键后时分加 1;按 NEXT 后对秒进展调整,按+1 键后秒加 1,从而到达闹钟时间设定的目的。设定闹铃时间为 00:02:00,当时间到达 00:02:00 时,定时时间到时,蜂鸣器鸣叫,按 REST 键后,停顿鸣叫, 。图 5.3系统仿真结果6 设计小结这次单片机课程设计由于电路设计合理,功能电路根本能实现设计要求,程序简洁明白,根本上到达了题目的各项要求:时钟的显示,日期的显示,复位功能,校时功能,调时功能。时钟显示功能,准确度完全可以满足日常生活显示时间的需要;调时功能,便利快捷;校时功能保证了时钟准确和牢靠性,还有扩展成音乐闹钟的
20、余地。硬件设施符合要求,软件设计可以协作硬件实现要求功能。但是由于时间比较短,消灭局部缺乏:在日期计时的软件编程方面,并没有考虑闰年闰月的因素,在实际的万年历设计中,人们常常用DS1302 芯片自动实现时间的计算。经争论只是软件局部还不完善,对于本争论课题,应尽量考虑到人的因素,增加时钟的有用性和操作性,为使用者供给切实的便利,营造一种舒适的生活气氛。所以,在设计的时候,应当从多方面、多角度去考虑问题,而且应当进一步提高时钟的质量。参考文献1 郭天祥.概念 51 单片机C 语言教程M.北京:电子工业出版社,2023.2 徐爱钧. 智能化测量掌握仪表原理及设计M, 北京 北京航空航天大学出版社,
21、2023:253 何立民.单片机中级教程.北京:北京航空航天大学出版J. 2023.169-1704 白艳敏.51 单片机典型系统开发实例精讲M 北京:电子工业出版社,2023:123-1265 刘迎春. MCS-51 单片机原理及应用教程M,北京:清华大学出版社,2023:40-436 王法 杰 . 基 于 Proteus 和 Keil 仿 真 试验 平台 在单 片 机教学 中 的应用 J. 群众 科技,2023(06 ):39-43.附录 1 系统原理图附录 2 程序清单NUMADD BIT P3.0 NEXTBIT P3.1 WEI_SET BIT P3.2 ALMBIT P3.3DAT
22、E BIT P3.4RESTBIT P3.5 SECONDEQU 30H MINUTEEQU 31H HOUREQU 32HTCNTEQU 34H ALM_HOUREQU 35H ALM_MINUTEEQU 36H ALM_SECONDEQU 37H DAYEQU 38H MONTHEQU 39HYEAREQU 40H;标号赋值ORG00H;主程序SJMPSTARTORG0BH LJMPINT_T0 START:MOV DPTR,#TABLE MOV HOUR,#00 MOV MINUTE,#0 MOV SECOND,#0 MOV TCNT,#0MOV ALM_HOUR,#0 MOV ALM_
23、MINUTE,#0 MOV ALM_SECOND,#0 MOV DAY,#00MOV MONTH,#00MOV YEAR,#11;初始化赋值MOV 29H,#0MOV 27H,#0;闹钟标志位MOV 41H,#0;显示缓冲区MOV 42H,#0 MOV 43H,#0MOV TMOD,#01H;设置计时器工作方式MOV TH0,#60;定时 50 毫秒MOV TL0,#176 MOV IE,#82H SETB TR0;*;推断是否有掌握键按下,是哪一个键按下;* A1: MOV 41H,SECONDMOV 42H,MINUTE MOV 43H,HOURLCALL DISPLAY;送显示JNB R
24、EST,S0JNB WEI_SET,S1 JNB ALM,S2 JNB DATE,S3 MOV A,27HCJNE A,#0,RING;假设以设定闹钟,则转 RING LJMP A1;*;推断是否到所定时间;* RING:MOV A, HOURCJNE A,ALM_HOUR ,NEQ MOV A,MINUTECJNE A,ALM_MINUTE,NEQ MOV A, SECONDCJNE A,ALM_SECOND ,NEQ CLR P3.7;定时到NEQ:AJMP A1;*;关闭闹钟;* S0:LCALL DELAY;去抖动JB REST,A1 CLR 27H SETB p3.7 AJMP A1
25、;*;时间调整程序;* S1:LCALL DELAY;去抖动JB WEI_SET,A1SJMP K1 S2:LCALL DELAY;去抖动JB ALM,A1LJMP K2 S3:LCALL DELAY;去抖动JB DATE,A1LJMP K3K1: SETB NUMADD SETB NEXTCLR TR0 CLR ET0MOV 28H,#03H LP0:JB NUMADD,NEXT0 LCALL DELAYJB NUMADD,LP0 LP1:JNB NUMADD,LP1 INC 29HSJMP LO1 NEXT0:JB NEXT,L1 LCALL DELAY JNB NEXT,NEXT0 LD
26、1:MOV 29H,#0DJNZ 28H,LO1SJMP LL LO1:MOV A,28HCJNE A,#03H,LO2 MOV A,29HADD A,HOUR MOV HOUR,A CJNE A,#24,LA1 MOV HOUR,#00H LA1:MOV 29H,#0 SJMP L1 LO2:MOV A,28HCJNE A,#02H,LO3 MOV A,29HADD A,MINUTE MOV MINUTE,A CJNE A,#60,LA2 MOV MINUTE,#0 LA2:MOV 29H,#0 SJMP L1 LO3:MOV A,29H ADD A,SECOND MOV SECOND,A
27、CJNE A,#60,LA3MOV SECOND,#00H LA3:MOV 29H,#0 L1:MOV 41H,SECOND MOV 42H,MINUTE MOV 43H,HOUR LCALL DISPLAY MOV A,#28HCJNE A,#00H,LP0 LL:MOV TH0,#(65536-50000)/256 MOV TL0,#176SETB TR0 SETB ET0 LJMP A1;*;闹铃定时程序;* K2:SETB NUMADD SETB NEXT MOV 28H,#03H LP0B:JB NUMADD,NEXT0B LCALL DELAYJB NUMADD,LP0B LP1B
28、:JNB NUMADD,LP1B INC 29HSJMP LO1B NEXT0B:JB NEXT,L1B LCALL DELAY JNB NEXT,NEXT0B LD1B:MOV 29H,#0 DJNZ 28H,LO1B SJMP LLB LO1B:MOV A,28HCJNE A,#03H,LO2B MOV A,29HADD A,ALM_HOUR MOV ALM_HOUR,A CJNE A,#24,LA1BMOV ALM_HOUR,#00H LA1B:MOV 29H,#0 SJMP L1BLO2B:MOV A,28HCJNE A,#02H,LO3B MOV A,29HADD A,ALM_MIN
29、UTE MOV ALM_MINUTE,A CJNE A,#60,LA2B MOV ALM_MINUTE,#0 LA2B:MOV 29H,#0 SJMP L1B LO3B:MOV A,29HADD A,ALM_SECOND MOV ALM_SECOND,A CJNE A,#60,LA3BMOV ALM_SECOND,#00H LA3B:MOV 29H,#0L1B: MOV 41H,ALM_SECOND MOV 42H,ALM_MINUTE MOV 43H,ALM_HOURLCALL DISPLAY MOV A,#28HCJNE A,#00H,LP0BLLB: MOV 27H,#1H;闹钟标志位置
30、 1 LJMP A1;*;日期调整程序;* K3:SETB NUMADD SETB NEXT MOV 28H,#03H LP0C:JB NUMADD,NEXT0C LCALL DELAYJB NUMADD,LP0C LP1C:JNB NUMADD,LP1C INC 29HSJMP LO1C NEXT0C:JB NEXT,L1C LCALL DELAY JNB NEXT,NEXT0C LD1C:MOV 29H,#0 DJNZ 28H,LO1C SJMP L1C LO1C:MOV A,28HCJNE A,#03H,LO2C MOV A,29HADD A,YEAR MOV YEAR,A CJNE A
31、,#100,LA1C MOV YEAR,#00H LA1C:MOV 29H,#0 SJMP L1C LO2C:MOV A,28HCJNE A,#02H,LO3C MOV A,29HADD A,MONTH MOV MONTH,A CJNE A,#30,LA2C MOV MONTH,#0 LA2C:MOV 29H,#0 SJMP L1C LO3C:MOV A,29H ADD A,DAY MOV DAY,ACJNE A,#12,LA3C MOV DAY,#00HLA3C:MOV 29H,#0L1C: MOV 41H,DAY MOV 42H,MONTH MOV 43H,YEAR LCALL DISPL
32、AY MOV A,#28HCJNE A,#00H,LP0C LJMP A1;*;定时器中断效劳程序,对秒 ,分钟和小时的计数,50MS;* INT_T0: MOV TH0,#(65536-50000)/256MOV TL0,#176 INC TCNT MOV A,TCNTCJNE A,#20,RETUNE;计时 1 秒INC SECOND MOV TCNT,#0 MOV A,SECONDCJNE A,#60,RETUNE; 计时 1 分INC MINUTE MOV SECOND,#0 MOV A,MINUTECJNE A,#60,RETUNE;计时 1 时INC HOURMOV MINUTE,
33、#0 MOV A,HOURCJNE A,#24,RETUNE INC DAYMOV HOUR,#0 MOV A,DAYCJNE A,#30,RETUNE INC MONTHMOV DAY,#0 MOV A,MONTHCJNE A,#12,RETUNE INC YEARMOV MONTH,#0MOV A,YEARCJNE A,#100,RETUNE MOV HOUR,#0MOV MINUTE,#0 MOV SECOND,#0 MOV DAY,#0 MOV MONTH,#0 MOV YEAR,#0 MOV TCNT,#0 RETUNE: RETI;*;显示掌握子程序;* DISPLAY:MOV A
34、,41H;显示秒MOV P2,#40HMOV B,#10 DIV ABMOVC A,A+DPTR MOV P0,ALCALL DELAY MOV P2,#80H MOV A,BMOVC A,A+DPTR MOV P0,ALCALL DELAYMOV P2,#20H;显示分隔符MOV P0,#40HLCALL DELAYMOV A,42H;显示分钟MOV B,#10DIV ABMOV P2,#08H MOVC A,A+DPTR MOV P0,ALCALL DELAY MOV A,BMOV P2,#10HMOVC A,A+DPTRMOV P0,A LCALL DELAYMOV P2,#04H;显示分隔符MOV P0,#40HLCALL DELAYMOV A,43H;显示小时MOV B,#10DIV ABMOV P2,#01H MOVC A,A+DPTR MOV P0,ALCALL DELAY MOV P2,#02H MOV A,BMOVC A,A+DPTR MOV P0,ALCALL DELAY RETTABLE: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FHDELAY: MOV R6,#10;10 毫秒延时D1: MOV R7,#250 DJNZ R7,$DJNZ R6,D1 RETEND