单片机设计数字电子钟的程序

作者&投稿:慈樊 (若有异议请与网页底部的电邮联系)
基于单片机的电子时钟设计 要C语言程序~

就是电子钟。有仿真图和C程序的。

ORG 0000H ;主程序入口
LJMP MAIN ;跳转到标号MAIN执行
ORG 000BH ;定时器T0中断入口
AJMP PTF0 ;跳转到标号PTF0执行
HOUR EQU 4AH ;赋值伪指令
MIN EQU 4BH
SEC EQU 4CH
BUFF EQU 4DH
;*************************************************************************************
;主程序
MAIN: MOV HOUR,#00H ;时,分,秒,标记清零
MOV MIN,#00H
MOV SEC,#00H
MOV BUFF,#00H
MOV SP,#60H ;设堆栈指针
MOV TH0,#3CH ;定时器赋初值
MOV TL0,#0B0H
MOV 40H,#14H ;设循环次数20次
MOV TMOD,#1 ;写TMOD
MOV IP,#2 ;写IP
MOV IE,#82H ;开中断
SETB TR0 ;启动定时器
LOOP: ACALL DISPLAY ;调用显示程序
JNB P3.0,FEN ;校时键按否?否,跳转到FEN
ZX: ACALL DISPLAY
JB P3.0,ZX
MOV A,HOUR ;时加1
ADD A,#1
DA A
CJNE A,#24H,BI ;时加到24时否?是,清零
CLR A
BI: MOV HOUR,A
MOV SEC,#00H ;秒清零
FEN: JNB P3.1,YY ;校分键按下否?否,跳转到YY
ZC: ACALL DISPLAY
JB P3.1,ZC
MOV A,MIN ;分加1
ADD A,#1
DA A
CJNE A,#60H,CI ;分加到60否?是,清零
CLR A
CI: MOV MIN,A
MOV SEC,#00H ;秒清零
YY: AJMP LOOP
;***************************************************************************************
;中断服务程序
PTF0: MOV TH0,#3CH ;初值重装
MOV TL0,#0B0H
CLR TR0 ;关定时器
CLR A ;清A
DJNZ 40H,XX ;1秒到否?否,跳转到XX
MOV 40H,#14H ;重写循环次数
MOV A,SEC ;秒单元加1
ADD A,#1
DA A
MOV SEC,A
CJNE A,#60H,PTF0R ;60秒到否?否,跳转到PTF0R
JMIN: MOV SEC,#00H ;秒清零
MOV A,MIN ;分单元加1
ADD A,#1
DA A
MOV MIN,A
CJNE A,#60H, PTF0R ;60分到否?否,跳转到PTF0R
MOV MIN,#00H ;分清零
JHOUR: MOV SEC,#00H ;秒清零
MOV A,HOUR ;时单元加1
ADD A,#1
DA A
MOV HOUR,A
CJNE A,#24H, PTF0R ;24时到否?否,跳转到PTF0R
MOV HOUR,#00H ;时清零
AJMP PTF0R ;跳转到PTF0R
XX: MOV R7,40H ;给小数点做标记,1和0
CJNE R7,#0AH,NEQ
EQ: NOP
AJMP PTF0R
NEQ: JC YEQ
MOV BUFF,#00H
AJMP PTF0R
YEQ: MOV BUFF,#0FFH
AJMP PTF0R
PTF0R: SETB TR0
RETI
;***************************************************************************************
;显示子程序
DISPLAY: MOV R5,BUFF ;根据标记输出带点和不带点的数字
CJNE R5,#00H,CVB ;根据标记查不同的表
MOV DPTR,#TAB1
LJMP TYU
CVB: MOV DPTR,#TAB
TYU: MOV A,MIN ;显示分钟的个位
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0F0h
CLR P2.4
ACALL DELAY
MOV A,MIN ;显示分钟的十位
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0F0H
CLR P2.5
ACALL DELAY
MOV A,HOUR ;显示时钟的个位
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0F0H
CLR P2.6
ACALL DELAY
MOV A,HOUR ;显示时钟的十位
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0F0H
CLR P2.7
ACALL DELAY
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;不带小数点的字型码
TAB1: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;带小数点的字型码
;****************************************************************************************
;延时子程序
DELAY: MOV R4,#20
YAN: MOV R5,#10
SHI: DJNZ R5,SHI
DJNZ R4,YAN
RET
END

以前我的单片机课程设计,提供给你参考参考,不过只有调分和调时的。。。

org 00h
ajmp start
org 03h
ajmp jia
org 0bh
ajmp saomiao
org 13h
ajmp jian
org 1bh
ajmp jishu
org 2bh
start:
mov ie,#10001111b
mov ip,#00000010b
mov tmod,#00100010b
mov th1,#6
mov tl1,#6
mov th0,#88h
mov tl0,#88h
setb it1
setb it0
mov r4,#11111110b
mov sp,#30h
mov 20h,#00h
mov p3,#0ffh
mov r0,#00h
mov r1,#00h
mov r2,#00h
mov r3,#00h
mov r5,#00h
mov dptr,#table
setb tr1
setb tr0
loop:
mov a,r0
mov b,#40
div ab
jz chuli
mov r0,#00h
inc r5
mov a,r5
mov b,#100
div ab
jz chuli
cpl 20h.7
mov r5,#00h
inc r1
mov a,r1
cpl a
mov p2,a
cpl a
mov b,#60
div ab
jz chuli
mov r1,#00h
inc r2
mov a,r2
mov b,#60
div ab
jz chuli
mov r2,#00h
inc r3
mov a,r3
mov b,#24
div ab
jz chuli
mov r3,#00h
chuli:
mov a,r2
mov b,#10
div ab
mov 10h,b
mov 11h,a
mov a,r3
mov b,#10
div ab
mov 12h,b
mov 13h,a
jb p3.4,loop
mov r1,#00h
mov 87h,#01h
ljmp loop
jia:
push acc
inc r2
mov a,r2
mov b,#60
div ab
jz next1
mov r2,#00h
next1:
lcall ys
clr ie0
pop acc
reti
jian:
push acc
inc r3
mov a,r3
mov b,#24
div ab
jz next2
mov r3,#00h
next2:
lcall ys
clr ie1
pop acc
reti
jishu:
inc r0
reti
saomiao:
push acc
mov a,r4
rl a
mov p0,#0ffh
d0:
cjne a,#11111110b,d1
mov p1,a
mov r4,a
mov a,11h
jnz zc
mov a,r4
rl a
mov p1,a
zc:
mov a,10h
movc a,@a+dptr
mov p0,a
sjmp over
d1:
cjne a,#11111101b,d2
mov p1,a
mov r4,a
mov a,11h
jz over
movc a,@a+dptr
mov p0,a
sjmp over
d2:
cjne a,#11111011b,d3
mov p1,a
mov r4,a
mov a,12h
movc a,@a+dptr
mov p0,a
mov c,20h.7
mov p0.7,c
sjmp over
d3:
cjne a,#11110111b,d4
mov p1,a
mov r4,a
mov a,13h
jz over
movc a,@a+dptr
mov p0,a
sjmp over
d4:
mov a,#11111110b
ajmp d0
over:
pop acc
reti
ys:
mov 14h,#0ffh
a0:
mov 15h,#0ffh
a1:
djnz 15h,a1
djnz 14h,a0
ret
table:
db 0c0h
db 0f9h
db 0a4h
db 0b0h
db 099h
db 092h
db 082h
db 0f8h
db 080h
db 090h
end


数字钟课程设计原理图以及制作方法
图3-1 数字钟的组成框图 ⑴晶体振荡器电路 晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路.⑵分频器电路 分频器电路将32768Hz的高频方波信号经32768()次分频后得到1Hz的方波信号供秒计...

数字时钟的数字时钟设计
与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。数字钟从原理上讲是一种典型的数字电路,一般是由振荡器、分频器、计数器、显示器等几部分组成。其中包括了组合逻辑电路和时序电路。数字钟的设计方法有许多种,例如:可用中小规模集成电路组成电子钟;也...

怎样用数字电路设计一个数字时钟
图1、数字电子钟结构图2、秒钟、分钟计时电路的设计利用集成十进制递增计数器(74160)和带主译码器的七段显示数码管组成的数字钟电路。计数器74160的功能真值表如图2所示。根据计数器74160的功能表真值表,利用两片74160组成的同步六十进制递增计数器如图3示,其中个位计数器(CL)接成十进制形式。十位计数器(C2)选择...

急求一个89c51设计的电子时钟,有原理图和C程序
有关用晶振电路产生秒脉冲电路的"12小时数字钟,请看下回贴图。 采用AT89C2051兼容芯片制作六位数显多路定时电子钟采用at89c2051兼容芯片制作六位数显多路定时电子钟电路特点这里介绍的电子钟,电路可称得上极简,它仅使用单片的20引脚单片机完成电子钟的全部功能,而笔者见到的其它设计方案均采用二片以上的多片ic实现。电路...

数字钟的设计
其中主体电路完成数字钟的基本功能,扩展电路完成数字钟的扩展功能。论文安排如下: 1、绪论 阐述研究电子钟所具有的现实意义。 2、设计内容及设计方案 论述电子钟的具体设计方案及设计要求。 3、单元电路设计、原理及器件选择 说明电子钟的设计原理以及器件的选择,主要从石英晶体振荡器、分频器、计数器、显示器和校时...

大学数字电子技术的课程设计:数字式电子钟的设计或交通灯控制电路设计...
根据题目,我们可以分析出:数字电子钟是由多块数字集成电路构成的,其中有振荡器,分频器,校时电路,计数器,译码器和显示器六部分组成。振荡器和分频器组成标准秒信号发生器,不同进制的计数器产生计数,译码器和显示器进行显示,通过校时电路实现对时,分的校准。1)振荡器又包括由集成电路555与RC组成的多谐振荡器,用...

电子钟设计原理图
设计题目 电子钟 具有6个led 显示器,分别显示 时,分,秒 要求能设置时间,并且时间精度,每天误差小于30秒。主要任务 1) 设计控制系统数字电子电路部分的电原理图 2) 按照电原理图制作实物(制线路版,焊接)3) 编制单片机控制程序 4) 综合调式 以上设计先把电原理图和程序用电子邮件寄来,然后再...

基于单片机的数字时钟设计开题报告
\/\/我这里有一个定时的闹钟,你把蜂鸣器的中断改为LED就行了,可以通过P2^0--P2^3实现秒表的显示和以及调时调分和调节闹钟以及闹钟的开关,有问题可以给我留言QQ834589429 include<reg52.h> \/\/包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 code unsigned char tab[]= {0x3f,...

数字时钟电路设计
数字时钟电路设计 200 功能要求:一准确计时以数字形式显示时,分,秒二小时的计时要求为24进位,分和秒的计时要求为60进位三校正时间(分,小时)(一点报一声...电子密码锁【摘要】本文的电子密码锁利用数字逻辑电路,实现对门的电子控制,并且有各种附加电路保证电路能够安全工作,具有极高的安全系数。【关键词】电子密码...

求助:大三课程设计《数字电子钟的设计》详细方案过程!!急!急!急!_百...
晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路.⑵分频器电路 分频器电路将32768Hz的高频方波信号经32768()次分频后得到1Hz的方波信号供秒计数器进行计数.分频器实际上也就是计数器.⑶时间计数器电路...

涡阳县13447843263: 单片机电子钟程序 -
进张活血: 51单片机在数码管上显示的数字钟程序:#include "at89x51.h" unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0...

涡阳县13447843263: 单片机C语言编程简易数字电子时钟 -
进张活血: #include unsigned char X=10,sec,flag;unsigned char key[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};// 数码管显示数字表unsigned char ke...

涡阳县13447843263: 单片机设计数字电子钟的程序 -
进张活血: org 00h ajmp start org 03h ajmp jia org 0bh ajmp saomiao org 13h ajmp jian org 1bh ajmp jishu org 2bh start: mov ie,#10001111b mov ip,#00000010b mov tmod,#00100010b mov th1,#6 mov tl1,#6 mov th0,#88h mov tl0,#88h setb it1 setb it0 mov r4,...

涡阳县13447843263: 用C语言编写AT89C51单片机程序,设计一个智能数字钟. -
进张活血: 基本要求:1.C语言程序要求是模块化设计.2.该闹钟基于AT89C51单片机及相关外围电路进行设计.3.该闹钟有6个数码管(共阳极),可分别显示时间(时、分、秒)、及定时时间(分、秒).4.该闹钟有4个按钮,S1是切换显示按键,该键按下时可分别实现切换正常走时显示、设定走时显示、设置定时时间,启动定时,回到正常状态等功能.S2是设定键,即该键按下,将分别选中需要设定的选项.S3键是加键,即按下去表示相应选项加1.S4键是减键,即按下去表示相应的选项减1.5.该闹钟可以定时时间到,LED将发出提示闪光,且持续30s.发挥要求:1.定时时间可被打断,即打断后恢复时继续计时.2.设置闹钟报警功能;3.能切换显示年月日等信息.

涡阳县13447843263: 单片机数字时钟程序 -
进张活血: #include sbit SCL2=P1^3; //SCL2定义为P1口的第3位脚,连接DS1302SCL和ADC0831SCL脚sbit SDA2=P1^4; //SDA2定义为P1口的第4位脚,...

涡阳县13447843263: 谁知道单片机电子钟设计的程序?
进张活血: ORG 8000H AJMP MAIN ORG 800BH AJMP INTT0 ORG 8040H MAIN:MOV SP,#60H MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H MOV 3CH,#00H MOV 3DH,#00H MOV 3EH,#00H MOV R1,#3EH MOV R5,#6 LOOP:LCALL 0026H LCALL ...

涡阳县13447843263: 谁能提供一个单片机电子时钟的设计程序 -
进张活血: HOUR EQU 40H ;存放时信息的单元 MINUTE EQU 41H ;存放分信息的单元 SECOND EQU 42H ;存放秒信息的单元 NUM EQU 43H ;存放T0溢出次数的单元 ORG 0000H ;程序入口 AJMP MAIN ORG 0030H ;主程序入口 MAIN:MOV SP,#...

涡阳县13447843263: 单片机课程设计电子时钟程序
进张活血: #include &lt;at89x51.h&gt; //头文件包含 #define uchar unsigned char //宏定义 #define uint unsigned int #define ON 0 //定义0为打开 #define OFF 1 //定义1为关闭 #define LEDBus P1 //定义p1口为数码管段码口 sbit MIAO =P1^2; //秒点 sbit HOU...

涡阳县13447843263: 单片机电子时钟编程 -
进张活血: SDA BIT P0.0 SCL BIT P0.1 LED0 EQU 40H LED1 EQU 41H LED2 EQU 42H LED3 EQU 43H LED4 EQU 44H LED5 EQU 45H second equ 50h minute equ 51h hour equ 52hMOV DPTR, #TABLEMOV LED0,#0MOV LED1,#5MOV LED2,#9 ...

涡阳县13447843263: 急求基于51单片机数字电子钟的汇编程序 -
进张活血: #include<reg51.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned int/*七段共阴管显示定义*/ uchar code dispcode[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0xBF,0x86,0xCB,0xCF,0xEF,0xED,0xFD,0x87,0...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网