单片机课程设计报告定时闹钟(含程序)

上传人:仙*** 文档编号:27653065 上传时间:2021-08-19 格式:DOC 页数:35 大小:272.50KB
收藏 版权申诉 举报 下载
单片机课程设计报告定时闹钟(含程序)_第1页
第1页 / 共35页
单片机课程设计报告定时闹钟(含程序)_第2页
第2页 / 共35页
单片机课程设计报告定时闹钟(含程序)_第3页
第3页 / 共35页
资源描述:

《单片机课程设计报告定时闹钟(含程序)》由会员分享,可在线阅读,更多相关《单片机课程设计报告定时闹钟(含程序)(35页珍藏版)》请在装配图网上搜索。

1、河南理工大学河南理工大学 单片机课程设计报告 程序,加 153893706 定时闹钟 姓 名: 学 号: 专业班级: 电气工程 044 指导老师: 所在学院:电气工程与自动化学院 2007 年 6 月 30 日 摘要 1 本设计是用单片机原理及其相关硬件的运用实现的定时闹钟。数字电子钟 设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成, 所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电 路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机 来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件 电路的复杂性,而

2、且其成本也有所降低,所以在该设计与制作中采用单片机 AT89C51,它是低功耗、高性能的 CMOS 型 8 位单片机。片内带有 4KB 的 Flash 存储器,且允许在系统内改写或用编程器编程。另外, AT89C51 的指令系统和引 脚与 8051 完全兼容,片内有 128B 的 RAM、32 条 I/O 口线、2 个 16 位定时计数 器、5 个中断源、一个全双工串行口等。显示部分采用六位一体的共阳极数码 管,运用同相三态双向总线收发器 74LS245 作为输出驱动显示部件的元件。 在编写程序的过程采用了定时程序和时间调整程序对称的编写方法。并且 在时间的调整或设置过程中本设计采用了长按进行

3、调时或调分的选择,短按是 进行在选择后进行加 1,每短按一次,该单位加 1.调整完毕以后再次长按原设 置键即可跳出设置循环,显示部分共阳极数码管显示正常走时的时间。但 是该程序在硬件的仿真过程中有点瑕疵。在仿真开始时警示灯直接亮,必须通 过闹钟定时键 K2 的闹钟设置以后时间才可以正常走时。之后可以进行时间的 调整或闹钟的重新调整。 目录 2 1 概述 .3 1.1 设计任务 .3 1.2 设计要求 .3 1.3 设计意义 .3 2 系统总体方案与硬件选择设计 .4 2.1 系统总体方案 .4 2.2 硬件选择设计 .4 3 软件设计 .9 3.1 程序流程图 .9 3.2 程序模块 .10

4、4 PROTEUS 软件仿真 .17 5 课程设计体会 .19 参考文献 .19 附 1:源程序代码 .21 附 2:系统原理图 .33 3 1 概述 1.1 设计任务 在熟练掌握单片机及其仿真系统的使用方法的基础上,综合应用单片机 原理,微机原理,微机接口技术等专业知识,设计采用一个 AT89C51 单片机控 制的定时闹钟。 1.2 设计要求 1)能够显示时时分分秒秒。 2)设定定时时间、修改定时时间。 3)定时时间到能发出报警声或者启动继电器,从而控制电器的启停。 在此设计中该定时闹钟的报警启动继电器的动作用 LED 灯的变化来显示。 1.3 设计意义 通过利用 MCS-51 单片机制作定

5、时闹钟,可以更加深刻的理解单片机在自动 化仪表中的作用以及掌握单片机的编程方法;从而进一步熟悉和掌握单片机的 内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤;通过设计 定时数字闹钟数字输出输入及扫描显示模拟系统,熟练掌握单片机仿真软件 Proteus 的使用方法。 4 2 系统总体方案与硬件选择设计 2.1 系统总体方案 定时闹钟的系统可分为四个环节,分别是单片机控制系统、时间显示模块、 控制键模块和闹铃模块。通过若干模块的协调工作就可以完成相应的时间调整 和定时闹钟的相应功能以及显示功能。模块的相互连接如下图(图 1)所示: 单片机控制系统模块 图 1 2.2 硬件选择设计 1

6、单片机控制系统与相关附件 XTAL218XTAL1 19 ALE30EA31PSEN29 RST9 P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336 P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732 P1.01P1.12P1.23P1.34 P1.45P1.56P1.67P1.78 P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113 P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115 P2.7/A1528 P2.0/A821P2.1/A92P2.2/A1023P2.3/A1 24

7、 P2.4/A1225P2.5/A1326P2.6/A1427 U1 AT89C51 可编程可擦除只读存储器 AT89C51 ( 如图 2 ) 图 2 (1) 简介 该元件由 CPU、振荡器与时序电路、4KB 的 ROM、256B 的 RAM、两 个 16 位的定时器/计数器 T0 和 T1、4 个 8 位的 I/O 端口 闹铃模块时间显示 模块 控制键模 块 5 (P0、P1、P2、P3) 、串行口等组成。其中振荡器时序电路与外时钟组成 了定时控制部件。 (2) CPU 的主要功能是产生各种控制信号,控制存储器、输入/输出接口 的数据传送、数据的算术运算、逻辑运算以及位操作处理等。它是单片

8、机的头脑。 (3) CPU 从功能上可以分为运算器和控制器两部分。其中运算器由算术 逻辑运算部件 ALU、累加器、暂存器、程序状态字寄存器、BCD 码运算调 整电路等组成。为了提高数据处理和位操作能力,片内增加了一个通用 寄存器 B 和一些专用寄存器,还增加了位处理逻辑电路的功能。主要完 成对数据进行算术四则运算和逻辑运算、移位操作、位操作等。 控制器由程序计数器、指令寄存器、指令译码器、定时控制与条件 转移逻辑电路等组成。主要功能是对来自存储器中的指令进行译码,通 过定时控制电路,在规定的时刻发出各种操作所需的全部内部和外部控 制信号,协调各功能元件的工作,完成指令所规定的功能。而控制器中

9、的定时控制部件与时序是在规定时刻发出各种操作所需的全部内部和外 部控制信号,使各功能元件能够协调工作,完成指令所规定动作的功能。 主要任务是产生一个工作时序,其工作需要时钟电路提供一个工作频率。 (4) 管脚说明 VCC:供电电压 GND:接地 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P1 口的管脚第一次写 1 时,被定义为高祖输入.P0 能够用于外部程序数据 存储器,它可以被定义为数据/地址的第八位.在 FLASH 编程时,P0 口作为原 码输入口,当 FLASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1

10、口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能 接受输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用做输入, P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故.在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 缓冲器可接收输 出 4 个 TTL 门电流,当 P2 口被写 1 时,其管脚被内部上拉电阻拉高,且作为输 6 入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流.这是由于内部 上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存

11、储器进行 存取时,P2 口作为地址的高 8 位。在给出地址 1 时,它利用内部上拉优势,当 对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流,当 P3 口写入 1 后,它们被内部上拉为高电平,并用作输入.作为输 入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 2 系统时钟电路 如图 3 XTAL218 XTAL119 ALE30 EA31 PSEN29 RST9 P0.0/A

12、D0 39P0.1/AD1 38P0.2/AD2 37 P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34 P0.6/AD6 3P0.7/AD7 32 P1.01 P1.12 P1.23 P1.34 P1.45 P1.56 P1.67 P1.78 P3.0/RXD10P3.1/TXD1P3.2/INT0 12 P3.3/INT1 13P3.4/T0 14 P3.7/RD17P3.6/WR16P3.5/T1 15 P2.7/A15 28 P2.0/A8 21P2.1/A9 2P2.2/A10 23 P2.3/A1 24P2.4/A12 25P2.5/A13 26 P2.6/A14

13、 27 U1 AT89C51 C2 10u X1CRYSTAL C1 10u R110k R210kR310k 图 3MCS-51 内部有一个用于构成振荡器的高增益反相放大器,此放大器的输 入和输出端分别是引脚 XTAL1 和 XTAL2,在 XTAL1 和 XTAL2 上外接时钟源即可 构成时钟电路。单片机的生产工艺不同,时钟的产生方式也不同,有内部和外 部两种时钟产生方式。根据该设计的需要,采取了内部方式。 (1) HMOS 型 MCS-51 外部时钟源的接法。内部时钟产生方式:XTAL1 和 XTAL2 两端跨接晶体或陶瓷振谐器,与内部反相器构成稳定的自激 振荡器。其发出的时钟脉冲直接送

14、入片内定时控制部件。C1、C2 对 频率有微调作用。 (2) CHMOS 型的外部时钟源的接法与 HMOS 型的单片机内部时钟电路不同: (2.1)内部时钟信号取自反相放大器的输入端。 (2.2)振荡器的工作可编程控制。即当相应的部件进入掉电保护, 系统进入低功耗运行。因内部时钟发生器的信号取自放大器的输 入端,故采用外部时钟源时,接线方法与 HMOS 型的单片机有所不 同。 7 3 同相三态双向总线收发器 74LS245 如图 4 XTAL218 XTAL119ALE30EA31PSEN29 RST9 P0.0/A D0 39 P0.1/A D1 38 P0.2/A D2 37 P0.3/A

15、 D3 36 P0.4/A D4 35 P0.5/A D5 34 P0.6/A D6 3 P0.7/A D7 32 P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78 P3.0/R XD 10 P3.1/T XD 1 P3.2/IN T0 12 P3.3/IN T1 13 P3.4/T0 14 P3.7/R D1 7 P3.6/W R1 6 P3.5/T1 15 P2.7/A 152 8 P2.0/A 821 P2.1/A 92 P2.2/A 102 3 P2.3/A 12 4 P2.4/A 122 5 P2.5/A 132 6 P2.6/A 142 7 U1AT

16、89C 51 C210u X1CRYST AL C110uR110k R210k R310k A02 B0 18A13 B1 17A24 B2 16 A35 B3 15A46 B4 14A57 B5 13 A68 B6 12A79 B7 1 CE19 AB/BA1 U27 4LS245D1LED-GREN 图 4 用来驱动 LED 或其他的设备,可双向传输数据.还具有三态功能,既可以输出,也 可以输入数据。当 8051 单片机的 P0 口总线负载达到或超过 P0 口负载能力时, 必须接入 74LS245 等总线驱动器。 (2)控制键模块(如图 5) R110k R210k D1LED-YELO

17、W K1 K2 图 5 K1 键为时间设置和正常走时的设置键。第一次长按该键即可进行分钟的设 置状态,调整的部分为闪烁状态,之后短按该键每按下一次即可在要设置的分 钟上加 1。设置完成以后再次长按该键即可进入小时的设置,分钟的显示位置 8 不再闪烁。而小时的显示位置为闪烁状态,之后短按该键每按下一次即可在要 设置的小时上加 1。设置完成之后再次长按该键(显示部分无闪烁状态) ,即可 显示设置时间后的正常走时。 K2 键为闹钟设置键和正常走时的调整键。调整的过程与时间的设置过程类 似。第一次长按该键即可进行分钟的调整状态,调整的部分为闪烁状态,之后 短按该键每按下一次即可在要设置的分钟上加 1。

18、设置完成以后再次长按该键 即可进入小时的设置,分钟的显示位置不再闪烁。而小时的显示位置为闪烁状 态,之后短按该键每按下一次即可在要调整的小时上加 1。调整完成以后长按 该键(显示部分无闪烁状态) ,即可显示正常走时。 须注意:该定时闹钟在定时之后才可以正常走时。 ( 3 )时间显示模块显示部分(如图 6) 图 6 显示部分采用六位一体共阳数码管,自左到右分别显示时时分分秒秒。 在进行时间的闹钟设置和时间的调整过程中相应的设置或调整的单元部分为闪 烁状态。 (4)闹铃模块(如图 7) D1LED-GREEN 图 7 警示灯,定时时间输出低电平,LED 灯两端存在电位差即灯亮。 9 3 软件设计

19、3.1 程序流程图 10 初次设置闹铃 间 CPU 等初始化 设定闹铃时间 启动走时 有关量的初始化 启动闹铃 定时设置程序 判断分时变化 调时调分 判断 1S 到否 再次设置闹铃否 闹铃时间到否 显示刷新 3.2 程序模块 ; 11 ; 主 程 序 ; ; START: MOV R0 , #70H MOV R7, #0BH MOV 20H, #00H CLEARDISP: MOV R0, #00H INC R0 DJNZ R7,CLEARDISP ; 给显示缓冲单元 7075H 赋初值 MOV 7AH,#0AH MOV 3AH,#0AH MOV R0, #30H MOV R7, #0BH M

20、OV 20H, #00H CLEARdDISP: MOV R0, #00H INC R0 DJNZ R7,CLEARdDISP MOV 3AH,#0AH MOV TMOD,#11H;定时器等状态初始化 MOV TL0, #0B0H MOV TH0, #3CH MOV TL1, #0B0H MOV TH1, #3CH SETB EA;开中断 SETB ET0 SETB TR0;T0 开始工作 MOV R4,#14H start1: LCALL DISPLAY JNB P3.2,SETMM1 JNB P3.3,DSETMM1 SJMP Start1 SETMM1: LJMP SETMM DSETM

21、M1:LJMP DSETMM 程序开始先调用调整与正常走时显示程序,判断 K1 键是否按下,若按下择调用时钟 调整程序,若无按下则判断 K2 是否按下,若按下则调用闹钟设置程序。若无键按下则返 回主程序继续循环 当定时器计数满溢出时,调用计时秒进位程序,时钟每增加一秒,通过以下语句: CJNE a,70H,yyy 12 MOV a,31H CJNE a,71H,yyy MOV a,32H CJNE a,72H,yyy MOV a,33H CJNE a,73H,yyy MOV A,34H CJNE A,74H,yyy MOV A,35H CJNE A,75H,yyy 判断定时时间是否到,若没有则

22、返回主程序,若有则调用闹钟服务子程序。 由于定时设置时的初值和正常走时的初值全部为 00H,所以在刚开始运行时灯直接亮。 之后可以通过长按 k2 键设置定时闹钟的时间进而实现该闹钟的正常走时。 ; ;计时秒进位程序 ; ; INTT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV A,#0B7H ;中断同步修正 ADD A,TL0 MOV TL0,A MOV A,#3CH ADD A,TH0 MOV TH0,A SETB TR0 DJNZ R4, OUTT0 ADDSS: MOV R4,#14H MOV R0,#71H ACALL ADD1 ;加 1 程序 MO

23、V A,R3 CLR C CJNE A,#60H,ADDMM ADDMM: JC OUTT0 ACALL CLR0 MOV R0,#77H ACALL ADD1 13 MOV A,R3 CLR C CJNE A,#60H,ADDHH ADDHH: JC OUTT0 ACALL CLR0 MOV R0,#79H ACALL ADD1 MOV A,R3 CLR C CJNE A,#24H,HOUR HOUR: JC OUTT0 ACALL CLR0 OUTT0: MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79H MOV A,30H CJNE A,70H

24、yyy MOV A,31H CJNE A,71H,yyy MOV A,32H CJNE A,72H,yyy MOV A,33H CJNE A,73H,yyy MOV A,34H CJNE A,74H,yyy MOV A,35H CJNE A,75H,yyy CLR p1.0 LCALL ALARMPROCESS yyy: POP PSW POP ACC SETB ET0 RETI ; ; 时钟调整程序 ; ; 14 ; SETMM: cLR ET0 CLR TR0 LCALL DL1S JB P3.2,CLOSEDIS MOV R2,#06H SETB ET1 SETB TR1 SET2: J

25、NB P3.2,SET1 SETB 00H SET4: JB P3.2,SET3 LCALL DL05S JNB P3.2,SETHH MOV R0,#77H ;加 1 分程序 LCALL ADD1 MOV A,R3 CLR C CJNE A,#60H,HHH HHH: JC SET4 LCALL CLR0 CLR C AJMP SET4 CLOSEDIS: SETB ET0 SETB TR0 CLOSE: JB P3.2,CLOSE LCALL DISPLAY JB P3.2,CLOSE WAITH: JNB P3.2,WAITH LJMP START1 SETHH: CLR 00H SET

26、HH1: JNB P3.2,SET5 SETB 01H SET6: JB P3.2,SET7 LCALL DL05S JNB P3.2,SETOUT MOV R0,#79H LCALL ADD1 MOV A,R3 15 CLR C CJNE A,#24H,HOUU HOUU: JC SET6 LCALL CLR0 AJMP SET6 SETOUT: JNB P3.2,SETOUT1 LCALL DISPLAY JNB P3.2,SETOUT CLR 01H CLR 00H CLR 02H CLR TR1 CLR ET1 SETB TR0 SETB ET0 LJMP START1 SET1: L

27、CALL DISPLAY AJMP SET2 SET3: LCALL DISPLAY AJMP SET4 SET5: LCALL DISPLAY AJMP SETHH1 SET7: LCALL DISPLAY AJMP SET6 SETOUT1: LCALL DISPLAY AJMP SETOUT ; 调整通过判断按键按下时间的长短来判断是调小时还是调分,通过调用闪烁程序可以判断 当前状态是调整小时或是调整分钟。 ; ; 闹铃时钟调整程序 ; ; DSETMM: CLR ET0 CLR TR0 SETB 04H LCALL DDL1S JB P3.3,DCLOSEDIS MOV R2,#06H

28、 16 SETB ET1 SETB TR1 DSET2: JNB P3.3,DSET1 SETB 03H DSET4: JB P3.3,DSET3 LCALL DDL05S JNB P3.3,DSETHH MOV R0,#37H ;加 1 分程序 LCALL ADD1 MOV A,R3 CLR C CJNE A,#60H,DHHH DHHH: JC DSET4 LCALL CLR0 CLR C AJMP DSET4 DCLOSEDIS: SETB ET0 SETB TR0 DCLOSE: JB P3.3,DCLOSE LCALL DISPLAY2 JB P3.3,DCLOSE DWAITH:

29、JNB P3.3,DWAITH LJMP START1 DSETHH: CLR 03H DSETHH1: JNB P3.3,DSET5 SETB 06H DSET6: JB P3.3,DSET7 LCALL DDL05S JNB P3.3,DSETOUT MOV R0,#39H LCALL ADD1 MOV A,R3 CLR C CJNE A,#24H,DHOUU DHOUU: JC DSET6 LCALL CLR0 AJMP DSET6 DSETOUT: JNB P3.3,DSETOUT1 17 LCALL DISPLAY2 JNB P3.3,DSETOUT CLR 06H CLR 03H

30、CLR 05H CLR 04H CLR TR1 CLR ET1 SETB TR0 SETB ET0 LJMP START1 DSET1: LCALL DISPLAY2 AJMP DSET2 DSET3: LCALL DISPLAY2 AJMP DSET4 DSET5: LCALL DISPLAY2 AJMP DSETHH1 DSET7: LCALL DISPLAY2 AJMP DSET6 DSETOUT1: LCALL DISPLAY2 AJMP DSETOUT 设置通过判断按键按下时间的长短来判断是设置小时还是设置分钟,通过调用闪烁程序可 以判断当前状态是设置小时或是设置分钟。 4 Prot

31、eus 软件仿真 正常走时的仿真图(如图 8) 18 XTAL218XTAL119 ALE301PSN29RST9 P0./AD039.1/18P0.2/A237.3/D36P0.4/A435.5/54P0.6/AD63.7/72 P1.01.2P1.23.34P1.45.56P1.67.78 P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528 P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47 AT89C51 C10uC210u R10k X1CRYSTAL A02

32、B0181317A24B2163535A46B4145753A68B612797CE19AB/U374LS245 R210k D1LE-YELOW 图 8 定时时间到灯亮时的仿真图(如图 9,图 10) XTAL218XTAL119 ALE301PSN29RST9 P0./AD039.1/18P0.2/A237.3/D36P0.4/A435.5/54P0.6/AD63.7/72 P1.01.2P1.23.34P1.45.56P1.67.78 P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528 P2.0/A82

33、1.1/9P2./A023.3/14P2.4/A225.5/136.6/47 AT89C51 C10uC210u R10k X1CRYSTAL A02B0181317A24B2163535A46B4145753A68B612797CE19AB/U374LS245 R210k D1LE-YELOW 图 9 19 XTAL218XTAL119 ALE301PSN29RST9 P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/AD63.7/72 P1.01.2P1.23.34P1.45.56P1.67.78 P3.0/RXD10.1/TP3.2/IN0

34、12./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528 P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47 AT89C51 C10uC210u R10k X1CRYSTAL A02B0181317A24B2163535A46B4145753A68B612797CE19AB/AU374LS245 R210k D1LE-YELOW 图 10 20 5 课程设计体会 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控 制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速 度被单片机智能控制系

35、统所取代。单片机具有体积小、功能强、成本低、应用 面广等优点,可以说,智能控制与自动控制的核心就是单片机。它在科学技术 的发展与生活中的重要性随着时间的发展越来越显著。通过这次单片机课程设 计我对常用的单片机的工作原理与设置应用有了具体的操作上的认识。对于程 序中编程过程掌握欠缺的地方在此次单片机的课程设计中得到很大的提高。对 于指令的认识与运用在这次课程设计中有了更多的认识。并且对 PROTEUS 软件 与 WAVE 软件的应用得到了掌握。 并且通过这次单片机课程设计我深刻的感受到自己在编程以及硬件上的差 距。虽然实现了老师对这个课程设计的基本要求,但是对于编程过程中的许多 细节上的东西处理

36、的不好,以致在数码管的刚开始的显示中显示有点混乱,只 有在若干次的按键才能正常显示。并且开始的正常走时必须在定时的前提下才 能正常走时。我的这次课设存在瑕疵。通过这次课设让我更深刻的感受到单片 机是与实践是紧密联系在一起的.因此我更要在以后的学习中注重对这方面能力 的培养!为走向工作岗位增加自己的竞争力,也为更好的适应社会与时代的发 展做准备! 参考文献 期刊论文: 1金素华,张尉.单片机调试方法的讨论.电子世界,2004,25(4):34-65 2宋凤娟,廉文利,付云强.单片机 89C51 在调速系统中的应用.微计算机信息,2007,12(6):113- 114 书、专著: 1余发山. 单片

37、机原理及应用技术. 中国矿业大学出版社 , 2003,2130 2何立民编著.单片机中级教程( 原理与应用).北京:北京航天大学出版社,2000.78-100 3张迎新编著.单片微型计算机原理应用及接口技术.北京 :国防工业出版社,1993.67-89 电子文献: 1步步鱼.单片机 AT89C51 介绍. 21 http:/ 2007-05-20/2007-08-06 2海子. 同相三态双向总线收发器 74LS245 简介. http:/ 2007-04-12/2007-08-06 22 附 1:源程序代码 ;显示缓冲单元在 70H75H, 70H71H 显示秒,72H73H 显示分,74H

38、75H 显示时 ;定时缓冲单元在 30H35H,30H-31H 显示秒,32H-33H 显示分,34H-35H 显示小时 ;时间计数单元在 70H71H(秒)、 76H77H(分)、78H79H(时),7AH 单元放熄; 灭符(#0AH) ;计数单元采用 BCD 码计数,定时器 T0 设置为 50MS 溢出中断,为秒计数用,定时器 T1; 为调整时闪烁用 ;P3.2 为调整按钮,P1 口为字符输出口,采用共阳显示管。 ; ; 中断入口程序 ; ; ORG 0000H LJMP START ORG 0003H RETI ORG 000BH LJMP INTT0 ORG 0013H RETI OR

39、G 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI ; ; 主 程 序 ; ; START: MOV R0, #70H MOV R7, #0BH MOV 20H, #00H CLEARDISP: MOV R0, #00H INC R0 DJNZ R7,CLEARDISP MOV 7AH,#0AH MOV 3AH,#0AH MOV TMOD,#11H 23 MOV TL0, #0B0H MOV TH0, #3CH MOV TL1, #0B0H MOV TH1, #3CH SETB EA SETB ET0 SETB TR0 MOV R4,#14H st

40、art1: LCALL DISPLAY JNB P3.2,SETMM1 JNB P3.3,DSETMM1 SJMP Start1 SETMM1: LJMP SETMM DSETMM1:LJMP DSETMM ; ; ;计时秒进位程序 ; ; INTT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV A,#0B7H ;中断同步修正 ADD A,TL0 MOV TL0,A MOV A,#3CH ADD A,TH0 MOV TH0,A SETB TR0 DJNZ R4, OUTT0 ADDSS: MOV R4,#14H MOV R0,#71H ACALL ADD1 ;

41、加 1 程序 MOV A,R3 CLR C CJNE A,#60H,ADDMM ADDMM: JC OUTT0 ACALL CLR0 24 MOV R0,#77H ACALL ADD1 MOV A,R3 CLR C CJNE A,#60H,ADDHH ADDHH: JC OUTT0 ACALL CLR0 MOV R0,#79H ACALL ADD1 MOV A,R3 CLR C CJNE A,#24H,HOUR HOUR: JC OUTT0 ACALL CLR0 OUTT0: MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79H MOV A,30H C

42、JNE A,70H,yyy MOV A,31H CJNE A,71H,yyy MOV A,32H CJNE A,72H,yyy MOV A,33H CJNE A,73H,yyy MOV A,34H CJNE A,74H,yyy MOV A,35H CJNE A,75H,yyy CLR p1.0 LCALL ALARMPROCESS yyy: POP PSW POP ACC SETB ET0 RETI ; 25 ;* ; 闹时服务子程序 ;* ALARMPROCESS: clr p1.0; jb p3.3,$ setb p1.0 ALARMRETURN: RET ; ; 闪动调时程 序 ; ;

43、INTT1: PUSH ACC PUSH PSW MOV TL1, #0B0H MOV TH1, #3CH DJNZ R2,INTT1OUT MOV R2,#06H JB 04H,DFLASH CPL 02H JB 02H,FLASH1 MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79H INTT1OUT: POP PSW POP ACC RETI FLASH1: JB 01H,FLASH2 MOV 72H,7AH MOV 73H,7AH MOV 74H,78H MOV 75H,79H AJMP INTT1OUT FLASH2: MOV 72H,76

44、H MOV 73H,77H MOV 74H,7AH MOV 75H,7AH 26 AJMP INTT1OUT ; ; 定时闪动调时程序 ; ; DFLASH: CPL 05H JB 05H,FLASH3 MOV 32H,36H MOV 33H,37H MOV 34H,38H MOV 35H,39H AJMP INTT1OUT FLASH3: JB 06H,FLASH4 MOV 32H,3AH MOV 33H,3AH MOV 34H,38H MOV 35H,39H AJMP INTT1OUT FLASH4: MOV 32H,36H MOV 33H,37H MOV 34H,3AH MOV 35H,

45、3AH AJMP INTT1OUT ; ; 加 1 程序 ; ; ADD1: MOV A,R0 DEC R0 SWAP A ORL A,R0 ADD A,#01H DA A MOV R3,A ANL A,#0FH MOV R0,A MOV A,R3 INC R0 SWAP A 27 ANL A,#0FH MOV R0,A RET ; ; 清零程序 ; ; CLR0: CLR A MOV R0,A DEC R0 MOV R0,A RET ; ; 时钟调整程序 ; ; SETMM: cLR ET0 CLR TR0 LCALL DL1S JB P3.2,CLOSEDIS MOV R2,#06H SE

46、TB ET1 SETB TR1 SET2: JNB P3.2,SET1 SETB 00H SET4: JB P3.2,SET3 LCALL DL05S JNB P3.2,SETHH MOV R0,#77H ;加 1 分程序 LCALL ADD1 MOV A,R3 CLR C CJNE A,#60H,HHH HHH: JC SET4 LCALL CLR0 CLR C AJMP SET4 CLOSEDIS: SETB ET0 SETB TR0 CLOSE: JB P3.2,CLOSE 28 LCALL DISPLAY JB P3.2,CLOSE WAITH: JNB P3.2,WAITH LJMP

47、 START1 SETHH: CLR 00H SETHH1: JNB P3.2,SET5 SETB 01H SET6: JB P3.2,SET7 LCALL DL05S JNB P3.2,SETOUT MOV R0,#79H LCALL ADD1 MOV A,R3 CLR C CJNE A,#24H,HOUU HOUU: JC SET6 LCALL CLR0 AJMP SET6 SETOUT: JNB P3.2,SETOUT1 LCALL DISPLAY JNB P3.2,SETOUT CLR 01H CLR 00H CLR 02H CLR TR1 CLR ET1 SETB TR0 SETB

48、ET0 LJMP START1 SET1: LCALL DISPLAY AJMP SET2 SET3: LCALL DISPLAY AJMP SET4 SET5: LCALL DISPLAY AJMP SETHH1 SET7: LCALL DISPLAY AJMP SET6 SETOUT1: LCALL DISPLAY 29 AJMP SETOUT ; ; 闹铃时钟调整程序 ; ; DSETMM: CLR ET0 CLR TR0 SETB 04H LCALL DDL1S JB P3.3,DCLOSEDIS MOV R2,#06H SETB ET1 SETB TR1 DSET2: JNB P3.

49、3,DSET1 SETB 03H DSET4: JB P3.3,DSET3 LCALL DDL05S JNB P3.3,DSETHH MOV R0,#37H ;加 1 分程序 LCALL ADD1 MOV A,R3 CLR C CJNE A,#60H,DHHH DHHH: JC DSET4 LCALL CLR0 CLR C AJMP DSET4 DCLOSEDIS: SETB ET0 SETB TR0 DCLOSE: JB P3.3,DCLOSE LCALL DISPLAY2 JB P3.3,DCLOSE DWAITH: JNB P3.3,DWAITH LJMP START1 DSETHH:

50、CLR 03H DSETHH1: JNB P3.3,DSET5 SETB 06H DSET6: JB P3.3,DSET7 LCALL DDL05S 30 JNB P3.3,DSETOUT MOV R0,#39H LCALL ADD1 MOV A,R3 CLR C CJNE A,#24H,DHOUU DHOUU: JC DSET6 LCALL CLR0 AJMP DSET6 DSETOUT: JNB P3.3,DSETOUT1 LCALL DISPLAY2 JNB P3.3,DSETOUT CLR 06H CLR 03H CLR 05H CLR 04H CLR TR1 CLR ET1 SETB

51、 TR0 SETB ET0 LJMP START1 DSET1: LCALL DISPLAY2 AJMP DSET2 DSET3: LCALL DISPLAY2 AJMP DSET4 DSET5: LCALL DISPLAY2 AJMP DSETHH1 DSET7: LCALL DISPLAY2 AJMP DSET6 DSETOUT1: LCALL DISPLAY2 AJMP DSETOUT ; ; 显示程序 ; ; DISPLAY: MOV R1,#70H MOV R5,#7FH PLAY: MOV A,R5 MOV P2,A 31 MOV A,R1 MOV DPTR,#TAB MOVC A

52、,A+DPTR MOV P0,A LCALL DDL1MS INC R1 MOV A,R5 JNB ACC.0,ENDOUT RR A MOV R5,A AJMP PLAY ENDOUT: SETB P2.1 MOV P0,#0FFH RET TAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH ; ; 闹铃显示程序 ; ; DISPLAY2: MOV R1,#30H MOV R5,#7FH PLAY2: MOV A,R5 MOV P2,A MOV A,R1 MOV DPTR,#TAB2 MOVC A,A+DPTR MOV P0,A LCALL

53、DDL1MS INC R1 MOV A,R5 JNB ACC.0,ENDOUT2 RR A MOV R5,A AJMP PLAY2 ENDOUT2: SETB P2.1 MOV P0,#0FFH RET TAB2: DB 3FH,06H,5BH,4FH,66H 32 DB 6DH,7DH,07H,7FH,6FH ; ; 延时程序 ; ; DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET DS20MS: ACALL DISPLAY ACALL DISPLAY ACALL DISPLAY RET DL1S: L

54、CALL DL05S LCALL DL05S RET DL05S: MOV R3,#20H DL05S1: LCALL DISPLAY DJNZ R3,DL05S1 RET ; ; 延时程序 ; ; DDL1MS: MOV R6,#14H DDL1: MOV R7,#19H DDL2: DJNZ R7,DDL2 DJNZ R6,DDL1 RET DDS20MS: ACALL DISPLAY2 ACALL DISPLAY2 ACALL DISPLAY2 RET DDL1S: LCALL DDL05S LCALL DDL05S RET DDL05S: MOV R3,#20H DDL05S1: LC

55、ALL DISPLAY2 DJNZ R3,DDL05S1 33 RET END 34 附 2:系统原理图 XTAL218XTAL119 ALE301PSN29RST9 P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/AD63.7/72 P1.01.2P1.23.34P1.45.56P1.67.78 P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528 P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47 AT89C51 C10uC210u R10k X1CRYSTAL A02B0181317A24B2163535A46B4145753A68B612797CE19AB/AU374LS245 R210k D1LE-YELOW K1K2

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!