51单片机LED时钟的设计

合集下载

51单片机作的电子钟程序及电路图

51单片机作的电子钟程序及电路图

51单片机作的电子钟程序在很多地方已经有了介绍,对于单片机学习者而言这个程序基本上是一道门槛,掌握了电子钟程序,基本上可以说51单片机就掌握了80%。

常见的电子钟程序由显示部分,计算部分,时钟调整部分构成。

时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。

10秒位到5后,即59秒,分钟加1,10秒位回0。

依次类推,时钟最大的显示值为23小时59分59秒。

这里只要确定了1秒的定时时间,其他位均以此为基准往上累加。

开始程序定义了秒,十秒,分,十分,小时,十小时,共6位的寄存器,分别存在30h,31h,32h,33h,34h,35h单元,便于程序以后调用和理解。

6个数码管分别显示时、分、秒,一个功能键,可以切换调整时分秒、增加数值、熄灭节电等功能全部集一键。

以下是部分汇编源程序,购买我们产品后我们用光盘将完整的单片机汇编源程序和烧写文件送给客户。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 中断入口程序 ;; (仅供参考) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 主程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;START: MOV R0,#70H ;清70H-7AH共11个内存单元MOV R7,#0BH;clr P3.7 ;CLEARDISP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清20H(标志用)MOV 7AH,#0AH ;放入"熄灭符"数据MOV TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH ;50MS定时初值SETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1秒定时用初值(50M S×20)START1: LCALL DISPLAY ;调用显示子程序JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序SJMP START1 ;P3.7口为1时跳回START1 SETMM1: LJMP SETMM ;转到时间调整程序SETMM; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 1秒计时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T0中断服务程序INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR TR0 ;关闭定时器T0MOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值)MOV A,#3CH ;高8位初值修正ADDC A,TH0 ;MOV TH0,A ;重装初值(高8位修正值)SETB TR0 ;开启定时器T0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出ACALL CLR0 ;大于或等于60秒时对秒计时单元清0MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等于60分时分计时单元清0MOV R0,#79H ;指向小时计时单(78H-79H)ACALL ADD1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标志CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;POP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器RETI ;中断返回; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 闪动调时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T1中断服务程序,用作时间调整时调整单元闪烁指示INTT1: PUSH ACC ;中断现场保护PUSH PSW ;MOV TL1, #0B0H ;装定时器T1定时初值MOV TH1, #3CH ;DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次)MOV R2,#06H ;重装0.3秒定时用初值CPL 02H ;0.3秒定时到对闪烁标志取反JB 02H,FLASH1 ;02H位为1时显示单元"熄灭"MOV 72H,76H ;02H位为0时正常显示MOV 73H,77H ;MOV 74H,78H ;MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场POP ACC ;RETI ;中断退出FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制MOV 72H,7AH ;01H位为0时,"熄灭符"数据放入分MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据MOV 74H,78H ;MOV 75H,79H ;AJMP INTT1OUT ;转中断退出FLASH2: MOV 72H,76H ;01H位为1时,"熄灭符"数据放入小时MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示MOV 74H,7AH ;MOV 75H,7AH ;AJMP INTT1OUT ;转中断退出; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 加1子程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADD1: MOV A,@R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAP A ;A中数据高四位与低四位交换ORL A,@R0 ;前一地址中数据放入A中低四位ADD A,#01H ;A加1操作DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高四位变0MOV @R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高四位与低四位交换ANL A,#0FH ;高四位变0MOV @R0,A ;数据放入当削地址单元中RET ;子程序返回; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 清零程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;............. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 时钟调整程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;当调时按键按下时进入此程序SETMM: cLR ET0 ;关定时器T0中断CLR TR0 ;关闭定时器T0LCALL DL1S ;调用1秒延时程序JB P3.7,CLOSEDIS ;键按下时间小于1秒,关闭显示(省电)MOV R2,#06H ;进入调时状态,赋闪烁定时初值SETB ET1 ;允许T1中断SETB TR1 ;开启定时器T1SET2: JNB P3.7,SET1 ;P3.7口为0(键未释放),等待SETB 00H ;键释放,分调整闪烁标志置1SET4: JB P3.7,SET3 ;等待键按下LCALL DL05S ;有键按下,延时0.5秒JNB P3.7,SETHH ;按下时间大于0.5秒转调小时状态MOV R0,#77H ;按下时间小于0.5秒加1分钟操作LCALL ADD1 ;调用加1子程序MOV A,R3 ;取调整单元数据CLR C ;清进位标志CJNE A,#60H,HHH ;调整单元数据与60比较HHH: JC SET4 ;调整单元数据小于60转SET4循环LCALL CLR0 ;调整单元数据大于或等于60时清0CLR C ;清进位标志AJMP SET4 ;跳转到SET4循环CLOSEDIS: SETB ET0 ;省电(LED不显示)状态。

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

所以设计一个简易数字电子钟很有必要。

本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。

该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。

具有时间显示、整点报时、校正等功能。

走时准确、显示直观、运行稳定等优点。

具有极高的推广应用价值。

关键词:电子钟 AT89C52 硬件设计软件设计目录一、数字电子钟设计任务、功能要求说明及方案介绍 (4)1.1 设计课题设计任务 (4)1.2 设计课题的功能要求说明 (4)1.3 设计课的设计总体方案介绍及工作原理说明 (4)二、设计课题的硬件系统的设计 (5)2.1硬件系统各模块功能简要介绍 (5)2.1.1 AT89C52简介 (5)2.1.2 按键电路 (6)三、设计课题的软件系统的设计 (6)3.1 使用单片机资源的情况 (6)3.2 软件系统个模块功能简要介绍 (7)3.3 软件系统程序流程框图 (7)3.4 软件系统程序清单 (7)四、设计课题的设计结论、仿真结果、误差分析 (9)4.1 设计结论及使用说明 (9)4.2 仿真结果 (10)结束语 (12)参考文献 (12)附录 (13)附录A:程序清单 (13)一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。

具有时间显示,并有时间设定,时间调整功能。

1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。

该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。

(完整word版)C51单片机实现电子闹钟

(完整word版)C51单片机实现电子闹钟

课程名称:单片机原理与接口技术实践设计课题:基于MCS 51单片机实现电子闹钟功能的设计学院:电子与信息工程学院专业:通信工程小组成员:电子闹钟在科学技术高度发展的今天,千家万户都少不了它,所以很多家庭个人都需要有一个电子闹钟,为人们提供报时方便,但普通电子闹钟不够方便实用。

本文给出了一种基于MCS51单片机实现电子闹钟功能的设计方法,从而给人们带来更为方便的工作与生活。

一.电子闹钟简介我们设计的电子闹钟是以MCS 51单片机中的计时器作为时钟,用8位数码管显示当前时间,并且可以设置闹钟时间,并在设置的时间点发出闹铃。

简易闹钟具有以下功能:1.时钟能准确地走时,并可以通过数码管进行显示2.复位后可以进行当前时间的设置3.可以随意设置闹钟时间,闹钟会在设置时间响铃整个系统的任务要求:1)输入数字按键的功能。

保证数字的输入。

2)复位电路的功能。

所有时间回到初始化状态,用于启动设定时间参数(调时或设定闹钟时间);3)显示电路的功能。

当输入数字时显示24小时时间功能。

4)闹铃功能设置闹铃的时间后.能按设置好的时间准时闹铃。

二.系统方案的设计要求根据以上各模块并结合显示屏的功能及元器件材料的情况,决定采用AT89C51为内核显示设计方案。

先进行系统的整体规划确定整个系统的功能,然后按照每个功能的具体要求,进行各个模块的实物设计并逐个调试,待全部通过后,进行整个系统的联调,最终实现一个完整的系统。

整个系统的设计步骤如下:在单片机最小系统的基础上,完成按键电路和复位电路的设计。

完成显示电路、数字按键、单片机时钟电路。

Ⅰ硬件设计系统硬件的设计可以根据系统的各个功能,把整个系统划分成若干个模块,分别对这些模块来进行设计,然后在通过单片机程序来实现对各个硬件模块功能的调度。

本系统涉及到的硬件模块有:按键电路、数码管显示电路、单片机时钟电路、蜂鸣器电路。

各部分实现功能如下:按键电路:提供按键信号。

单片机时钟电路、复位电路:提供内部时钟。

基于51单片机的电子时钟

基于51单片机的电子时钟

1、电子闹钟的硬件系统框架:设计出电子闹钟的基本整体框架。

2、电子闹钟的电源设计:采用交直流供电电源。

电子钟一般采用数码管等显示介质,因而必须以交流供电为主,以直流电源为后备辅助电源。

3、电子闹钟的主机电路设计:主要有1)系统时钟电路设计:对时间要求不是很高,只要能使系统可靠起振并稳定运行就行。

2)系统复位电路设计:本系统采用的是RC复位方式3)按键与按钮电路设计:按键与按钮电路设计中关键要考虑的就是按键的去抖动问题。

本系统采用软件去抖。

考虑到对时和设定闹铃时间操作的使用频率不高,为了精简系统和降低成本,本系统只设置两个按键。

a)SET键,对应系统的不同工作状态,具有3个功能:在复位后的待机状态下,用于启动设定时间参数(对时或定闹);在设定时间参数状态而且不是设定最低位(即分个位)的状态下,用于结束当前位的设定,当前设定位下移;在设定最低位(分个位)的状态下,用于结束本次时间设定。

b)+1键,用于对当前设定位进行加1操作。

4)闹铃声光指示电路设计:本系统采用声音指示,关键元件是蜂鸣器。

4、电子闹钟的显示电路设计:设计一个由LED数码管组成的显示电路,显示采用共阳极数码管,其目的是为了简化限流电路的设计和实现亮度可调的要求。

一功能模、设计指标:1. 显示时、分、秒。

2. 可以24小时制或12小时制。

3. 具有校时功能,可以对小时和分单独校时,对分校时的时候,停止分向小时进位。

校时时钟源可以手动输入或借用电路中的时钟。

4. 具有正点报时功能,正点前10秒开始,蜂鸣器1秒响1秒停地响5次。

5. 为了保证计时准确、稳定,由晶体振荡器提供标准时间的基准信号。

二、设计要求:1. 画出总体设计框图,以说明数字钟由哪些相对独立的块组成,标出各个模块之间互相联系,时钟信号传输路径、方向和频率变化。

并以文字对原理作辅助说明。

2. 设计各个功能模块的电路图,加上原理说明。

3. 选择合适的元器件,在面包上接线验证、调试各个功能模块的电路,在接线验证时设计、选择合适的输入信号和输出方式,在充分电路正确性同时,输入信号和输出方式要便于电路的测试和故障排除。

51单片机时钟代码(带秒表闹钟功能).

51单片机时钟代码(带秒表闹钟功能).
write_com(0x80+0x00+7);
}
}
}
if(s6==0)
{
delay(5);
if(s6==0)
{
while(!s6);
di();
if(s4num==1)
{
miao--;
if(miao<0)
miao=59;
write_alarm(10,miao);
write_com(0x80+0x00+13);
ep=0;
}
voidwrite_data(uchardat) //写入字符显示数据到LCD
{
while(lcd_bz()); //等待LCD空闲
rs=1;
rw=0;
ep=0;
P0=dat;
_nop_();
_nop_();
_nop_();
_nop_();
ep=1;
_nop_();
_nop_();
_nop_();
}
if(s1num==3)
{
hour++;
if(hour==24)
hour=0;
write_time(4,hour);
write_com(0x80+0x40+7);delay(5);
}
}
}
if(s3==0)
{
delay(5);
if(s3==0)
{
while(!s3);
di();
if(s1num==1)
批注本地保存成功开通会员云端永久保存去开通
#include <reg51.h>
#include <intrins.h>

基于单片机的时钟电路设计

基于单片机的时钟电路设计

商丘工学院学院:信息与电子工程学院班级:12级电信工程技术班专业:信息电子工程技术题目:基于单片机的时钟电路指导老师:***学生姓名:***学号:**********基于单片机的时钟电路设计摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,51单片机是各单片机中最为典型和最有代表性的一种芯片。

本次设计以AT89C51单片机芯片为核心,辅以必要的外围设计电路,设计了一个简易的电显示,数码管采用的是动态扫描显示的时钟电路。

通过数码管能够比较准确显示时、分,LED一闪一灭显示秒,设计方面采用汇编语言编程,整个电子时钟系统能完成对时间的显示、复位等功能。

通过这次设计让我更深入了解单片机基本电路、如何控制定时器和中断编程的基本方法,从而锻炼了我学习、设计和开发软、硬件的能力。

关键词:AT89C51 ;单片机;数码管。

目录1 绪论 (I)1.1 选题的目的和意义 (1)1.2 单片机的应用 (1)1.3 单片机数字时钟的总体设计方案 (3)1.4 程序流程图 (4)2 硬件分析 (6)2.1 单片机的选用 (6)2.1.1 AT89C51的主要性能参数 (6)2.1.2 引脚说明 (7)2.1.3 复位电路 (8)2.2 数码管的选择 (8)2.2.1 数码管的主要特点 (8)2.2.2 驱动方式 (9)2.2.3 性能检测 (9)3 系统设计 (11)3.1 分析论证 (11)3.2 电路组成及工作原理 (11)3.3 显示模块 (11)3.4 运算模块 (11)3.5 显示的原理 (12)3.6 主要程序分析设计 (13)3.7 程序流程图 (14)4 系统的仿真与调试 (15)4.1 硬件系统与调试 (15)4.2 软件调试 (16)结论 (16)参考文献 (17)附录 (18)附录A (18)附录B (24)1、绪论1.1 选题的目的和意义单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广泛、发展很快、单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。

时钟电路的设计

时钟电路的设计

一、概述本次设计以AT89C51单片机芯片为核心,辅以必要的外围电路,设计了一个简易的电子时钟并且利用单片机自身的定时计数器,使LED 按照一定的时间间隔闪烁,闪烁时间间隔不小于1秒。

在硬件方面,除了CPU 外,使用七段数码管来进行动态扫描。

通过数码管能够比较准确显示时,分,LED 一闪一灭显示秒,设计方面采用C 语言编程,整个电子时钟能完成时间的显示,手动复位等功能。

本系统是基于AT89C51单片机设计的一个具有显示的数字实时时钟的发光二极管,该系统同事具有硬件设计简单,工作稳定性高,价格低廉等优点。

数字单片机的技术进步反应在内部结构,功率消耗,外部电压等级以及制造工艺上。

二、方案论证利用单片机自身的定时计数器,使LED 发光二极管按照一定的时间间隔闪烁,闪烁时间间隔不小于1秒。

方案一:采用AT89C51单片机来做LED 时间闪烁电路,其方案原理框图如下图1所示。

图1 打片机控制设计时钟电路的原理框图方案二:采用电子电路装置安装,其原理框图如下图2所示。

图2 电子电路控制设计时钟电路原理图时钟电路A T89C51 单片机 复位电路按键控制电路LED 显示电路直流5V 电源电路振荡电路控制电路计数器译码器LED 显示电路本设计采用的是方案一,AT89C51单片机构成的数码管显示时钟,硬件设计简单,工作稳定性高,性价比高比较合适。

三、电路设计1.程序流程图程序总体结构示意流程图如下图3所示。

程序从开始运行,设计要求为1秒的闪烁间隔,内容包括了开关中断子程序,以及总体流程。

YNNY图3 程序总体结构示意图2.复位电路AT89C51的复位方式可以是自动复位,也可以是手动复位,复位电路主要是确定开始开关中断 Countor1++(自加1)Counror1==20 D1=~D1(按位取反操作)TH0=(65536-50000)/256(重新赋初值)P1~0口状态改变单片机的起始状态,完成单片机的启动过程,本实验主要采用手动按键复位方式,该复位方式同样具有自动复位功能.当MCS-51单片机的复位引脚RST出现两个周期以上的高电平时,单片机就执行复位操作。

基于51单片机的时钟电路设计

基于51单片机的时钟电路设计

基于51单片机的时钟电路设计毕业设计用纸中文摘要随着单片机技术的飞速发展,在其推动下,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高。

时间对于人们来说总是那么的宝贵,可以说时间和金钱是划上了等号。

准确的掌握时间和分配时间对人们来说至关重要。

因此采用单片机为主的数码管为显示器的电子时钟就体现出了很大的优势。

电子钟的设计方法有很多种,但利用单片机制作的电子时钟更具有编程灵活、便于电子功能的扩充、精确度高、便于携带、显示直观等特点。

通过利用MCS-51单片机内部的定时器/计数器功能来实现电子时钟的计时方法。

主要由AT89S51芯片和LED数码显示管为核心,构成了一个单片机电子时钟。

关键词:单片机,AT89S51,电子时钟,LED第 1 页共 1 页毕业设计用纸AbstractWith the rapid development of microcomputer technology in its promotion, modern electronics into almost all areas of society, a strong impetus to the development of social productive forces and social improvement in the level of information, but also to further improve the performance of modern electronic products.Time is always so valuable for people who can say that time and money is the equal sign. Accurate grasp of time and allocation of time is crucial to people. Therefore, the digital control based on microcomputer-based electronic clock on the display reflects a great advantage. Clock Design There are many ways, however, produced by single chip electronic clock is more flexible programming, and easy expansion of electronic capabilities, high accuracy, easy to carry, display visual and so on.In this paper, through the use of MCS-51 microcontroller's internal timer / counter function to implement the electronic clock timing method. Mainly bythe AT89S51 chip and LED digital display tube as the core, forming a single chip electronic clock.Key word: Monolithic integrated circuit,AT89S51,Electronic clock,LED第 2 页共 2 页毕业设计用纸目录第一章、前言 (5)1.1 概述 ....................................................... 5 1.2 研究目的 ................................................... 5 第二章、电路涉及单片机概述 . (6)2.1 单片机的概念 ............................................... 6 2.2 单片机的发展史和发展趋势 .. (6)2.2.1 单片机的发展历史 ...................................... 6 2.2.2 单片机的发展趋势 ...................................... 6 2.3 单片机的特点 ............................................... 7 2.4 MCS-51单片机的基本结构 . (7)2.4.1 MCS-51单片机的基本组成 ............................... 7 2.4.2AT89S51单片机的引脚 (8)第三章、系统设计 (10)3.1 设计方法及原理 (10)3.1.1 设计方法 .............................................. 9 3.1.2 电子时钟原理 .......................................... 9 3.1.3 数码管显示原理 ........................................ 9 3.2 总体设计 (10)3.2.1 系统说明 ............................................. 10 3.2.2 系统框图 ............................................. 10 3.3 模块设计 (11)3.3.1 电源部分 ............................................. 11 3.3.2 复位电路 ............................................. 11 3.3.3 数码管的连接电路 ..................................... 12 3.3.4 控制部分 (13)第四章、软件设计 (15)4.1 程序流程图 (15)第 3 页共 3 页毕业设计用纸4.2 源程序 (17)4.2.1 中断入口程序 ......................................... 17 4.2.2 主程序 ............................................. 18 4.2.3 1秒计时程序 ......................................... 18 4.2.4 闪动调时程序 ......................................... 20 4.2.5 加1子程序 ........................................... 21 4.2.6 清零程序 ............................................. 22 4.2.7 时钟调整程序 ......................................... 22 4.2.8 显示程序 ............................................. 24 4.2.9 延时程序 (25)参考文献 (27)致谢 (28)第 4 页共 4 页毕业设计用纸第一章、前言1.1 概述时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LED电子钟 一.功能与使用 该电子钟由于使用12MHZ晶振,故而能获得较高精度的时间。它能同时显小时,分钟和秒。设有三个按键:A,B和C键。A键用于选择要校正的目标,是小时,分钟还是秒,按第一下时,选择秒,按第二下则选分钟,第三下则选小时,第四下则退出校时,第五下又选秒,如此循环,可选择校时或退出校时。B键每按一次,所选对象就会加1,比如,已选择分钟,那么每按一下此键,分钟数目就会加上1;C键按一次,所校正的对象就会不断自动快地加一,再按任意键一次,就会停止快速校时。 当需要校正时间时,先按下A键,选好对象,(可看到,两个数码管比其余4个亮了一倍,)再按B键或C键。 二.元件与功能 ⑴ 数码管 采用高亮共阴型数码管,共有6位数码管,为示区别,显示秒的两个数码管个头较小,另外4个较大。共阴数码管连接线路如下: ⑵ 单片机采用89C51 89C51内含4KB的程序存储器,可稳定地工作于5V的电源下。 ⑶ ULN2003 ULN2003为达林顿管反相驱动器,能够提供高达500mA的电流,对于数码管所需的驱动电流10mA*8=80mA来说,驱动数码管绰绰有余。其引脚功能:i1~i7为7个输入端,o1~o7为相应的7个输出端,gnd 为地端,com 为电源正极。如图: 三.电路原理图

四.汇编源程序 DIR1 EQU 00H DIR2 EQU 01H DIR3 EQU 02H DIR4 EQU 03H DIR6 EQU 05H RAB EQU 21H ;时,分,秒之一,用于校正 RAC EQU 22H ;供驱动数码管采用动态扫描时用 RAD EQU 23H ;延时 RAD.7 EQU 1FH RAD.1 EQU 19H RAD.0 EQU 18H RAA EQU 30H RBB EQU 31H RCC EQU 32H RII EQU 33H RJJ EQU 34H RKK EQU 35H RLL EQU 36H RMM EQU 37H RNN EQU 38H ROO EQU 39H RPP EQU 3AH RQQ EQU 3BH RRR EQU 3CH RSS EQU 3DH RTT EQU 3EH ORG 0 AJMP MAIN ORG 001B AJMP DSZD ORG 0030 MAIN: SETB EA ;中断设置 SETB ET1 MOV TH1,#6 ;定时设置 MOV TL1,#6 MOV TMOD,#20H SETB TR1 MOV SP,#40H ;初始化 CLR A MOV RAB,#1 MOV R5,A MOV R6,A MOV R7,A CLR DIR1 CLR DIR3 MOV R0,#30H MOV R2,#16 M1: MOV @R0,A DEC R0 DJNZ R2,M1 MOV ROO,#3FH MOV RPP,#3FH MOV RQQ,#3FH MOV RRR,#3FH MOV RSS,#3FH JCY: JB DIR2,JCN; MOV P3,#FFH MOV A,P3 ANL A,#7 JZ A,LE SETB RAD.7 ;RAD.7=1FH DEL: JNB RAD.0,DEL ;RAD.0=18H MOV RAD,#0 MOV A,P3 ANL A,#7 JZ A,LE ;有按键 SETB DIR2 JNB ACC.0,AJ2 AJI: CLR DIR3 ;按键自动计数标志 SETB DIR1 ;中断下禁秒计数及按键计数标志 MOV A,RAB RL A MOV RAB,A JNZ WSA MOV RAB,#1 WSA: JNB RAB.4,WS CLR DIR1 MOV RAB,#1 WS: AJMP LE AJ2: JNB ACC.1,AJ3 CLR DIR3 ;按键自动计数标志 JNB DIR1,LE JNB RAB.1,AJ2C1 INC R5 CJNE R5,#60,LE MOV R5,#0 AJMP LE AJ2C1: JNB RAB.2,AJ2C2 INC R6 CJNE R6,#60,LE MOV R6,#0 AJMP LE AJ2C2: MOV RAB,#8 INC R7 CJNE R7,#24,LE MOV R7,#0 AJMP LE AJ3: JNB ACC.2,LE JNB DIR1,LE JNB DIR3,AJ3A CLR DIR3 ;按键自动计数标志 AJMP LE AJ3A: SETB DIR3 AJMP LE JCN: MOV A,P3 ANL A,#7 JZ A,LE SETB RAD.7 DELA: JNB RAD.0,DELA MOV RAD,#0 MOV A,P3 ANL A,#7 JZ A,LE CLR DIR2 LE: JNB DIR3,JCY ;(DIR3)=0自加 JNB DIR6,JCY ;DIR6为0.25S标志 JNB RAB.1,ZJ2 INC R5 CJNE R5,#60,JCY MOV R5,#0 AJMP JCY ZJ2: JNB RAB.2,ZJ3 INC R6 CJNE R6,#60,JCY MOV R6,#0 AJMP JCY ZJ3: JNB RAB.3,ZJQ INC R7 CJNE R7,#24,JCY MOV R7,#0 AJMP JCY ZJQ: CLR DIR3 MOV RAB,#1 AJMP JCY DSZD: PUSH A ;定时中断,250US PUSH PSW ;状态寄存器 SM: MOV P2,#0 ;扫描,先清位选 MOV P1,#0 CPL DIR4 ;DIR4代表奇偶次中断 MOV A,RAC RL A MOV RAC,A SM1: JNB RAC.1,SM2 SETB P2.0 JNB DIR1,SM1A ;DIR1(C)=0 JNB DIR4,SM1A JNB RAB.1,JS SM1A: MOV P1,ROO AJMP JS SM2: JNB RAC.2,SM3 SETB P2.1 JNB DIR1,SM2A JNB DIR4,SM2A JNB RAB.1,JS SM2A: MOV P1,RPP AJMP JS SM3: JNB RAC.3,SM4 SETB P2.2 JNB DIR1,SM3A JNB DIR4,SM3A JNB RAB.2,JS SM3A: MOV P1,RQQ AJMP JS SM4: JNB RAC.4,SM5 SETB P2.3 JNB DIR1,SM4A JNB DIR4,SM4A JNB RAB.2,JS SM4A: MOV P1,RRR AJMP JS SM5: JNB RAC.5,SM6 SETB P2.4 JNB DIR1,SM5A JNB DIR4,SM5A JNB RAB.3,JS SM5A: MOV P1,RSS AJMP JS SM6: JNB RAC.6,SM7 SETB P2.5 JNB DIR1,SM6A JNB DIR4,SM6A JNB RAB.3,JS SM6A: MOV P1,RTT AJMP JS SM7: MOV RAC,#2 AJMP SM1 JS: DJNZ RAA,DSZ1 MOV RAA,#40 JNB RAD.7,JS1 JNB RAD.1,JS2 SETB RAD.0 JS2: SETB RAD.1 JS1: DJNZ RBB,DSZ1 MOV RBB,#25 SETB DIR6 JB DIR1,CLL DJNZ RCC,DSZ1 MOV RCC,#4 CL: INC R5 ;60和24进制计数,IN R5,R6,R7 CLR C MOV A,R5 SUBB A,#60 JC CLL CLR R5 CLR C INC R6 MOV A,R6 SUBB A,#60 JC CLL CLR R6 CLR C INC R7 MOV A,R7 SUBB A,#24 JC CLL CLR R7 CLL: MOV A,R5 ;60和24进制计数转化为10和6进制 MOV B,#10 DIV AB MOV RII,B MOV RJJ,A MOV A,R6 MOV B,#10 DIV AB MOV RKK,B MOV RLL,A MOV A,R7 MOV B,#10 DIV AB MOV RMM,B MOV RNN,A CB: MOV DPTR,#TAB ;查表 MOV A,RII MOVC A,@A+DPTR MOV ROO,A MOV A,RJJ MOVC A,@A+DPTR MOV RPP,A MOV A,RKK MOVC A,@A+DPTR MOV RQQ,A MOV A,RLL MOVC A,@A+DPTR MOV RRR,A MOV A,RMM MOVC A,@A+DPTR MOV RSS,A MOV A,RNN JZ CBE MOVC A,@A+DPTR CBE: MOV RTT, A ;息隐,灭零显示 DSZ1: POP PSW; POP A RETI TAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,6FH,77H END

相关文档
最新文档