问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

设计电子时钟 要用AT89S51单片机的定时器实现,用4位数码管显示,用点的闪烁表示秒,我需要电路原理图

发布网友 发布时间:2022-05-01 04:32

我来回答

4个回答

热心网友 时间:2023-10-05 02:03

带闹钟智能电子钟

源程序

源程序如下: ORG 0000H ;程序开始入口

LJMP START

ORG 0003H ;外中断0中断程序入口

RETI

ORG 000BH ;定时器T0中断程序入口

LJMP INTT0 ;跳至INTTO执行

ORG 0013H ;外中断1中断程序入口

RETI

ORG 001BH ;定时器T1中断程序入口

LJMP INTT1

ORG 0023H ;串行中断程序入口地址

RETI

;---------------主程序----------------------;

START:MOV R0,#70H ;70给R0,清70-7FH显示内存

MOV R7,#0FH

CLEARDISP:MOV @R0,#00H ;0给R0中的数为地址的内存中存放(70H)

INC R0

DJNZ R7,CLEARDISP

MOV 78H,#2 ;默认时间为12:00,闹钟5:00

MOV 79H,#1

MOV 74H,#2 ;防止上电时数码管显示00小时

MOV 75H,#1

MOV 66H,#1 ;中断退出时66H为1时,分、时计时单元数据移入显存标志

MOV 68H,#1 ;上电默认闹钟开状态

MOV 7DH,#6 ;闹钟时十位

MOV 7CH,#3

MOV 69H,#0

MOV 7AH,#0AH ;放入"熄灭符"数据

MOV TMOD,#11H ;设T0、T1为16位定时器

MOV TL0,#0B0H ;50MS定时初值(T0计时用)

MOV TH0,#3CH

SETB EA ;总中断开放

SETB ET0 ;允许T0中断

SETB TR0 ;T0定时器开始计时

MOV R4,#14H ;1秒定时用初值(50MS×20)

START1:LCALL DISPLAY ;显示子程序

LCALL BEEP ;闹钟查询

JNB P1.7,SETTIME ;P1.7口为0时转时间调整程序

JMP START1 ;P1.7口为1时跳回START1

;-----------------------时间闹钟调整系统--------------------------;

NFLAG:MOV A,68H ;设置闹钟开关状态

CJNE A,#1,BEE68

MOV 68H,#0

JMP E6

BEE68:MOV 68H,#1

E6:MOV 66H,#8 ;中断退出66H不为1时分、时计时单元数据移入显存标志

MOV 72H,7BH

MOV 73H,7CH

MOV 74H,7DH

MOV 75H,7EH

LCALL DDL

LCALL DDL

MOV 72H,68H

MOV 73H,69H

MOV 74H,7AH

MOV 75H,7AH

LCALL DDL

LCALL DDL

MOV 66H,#1

LJMP START1

SETTIME:LCALL DDL

JB P1.7,NFLAG ;键按下时间小于1秒,设置闹钟开关状态并查看闹钟时间,不关走时,确保准确,大于1秒调时

MOV TL1,#0B0H ;T1闪烁定时初值

MOV TH1,#3CH

MOV R2,#06H ;进入调时状态,赋闪烁定时初值

MOV 66H,#8 ;调闹钟时保持走时,关闭时钟显示数据

SETB ET1 ;允许T1中断

SETB TR1 ;开启定时器T1

SET1:LCALL DISPLAY ;调用显示,防止键按下无显示

JNB P1.7,SET1 ;P1.7口为0等待键释放

MOV R5,#00H ;清设置类型闪烁标志

SETN1:INC R5 ;闹钟分调整

SET5:LCALL DISPLAY

JB P1.7,SET5

SEETN1:LCALL DDL ;有键按下大于1秒分时间连续加(0.5秒加1),小于1秒转调时状态

JB P1.7,SET6 ;键释放查询,键释放自动转调时

MOV R0,#7CH

LCALL ADD1

MOV A,R3

CLR C

CJNE A,#60H,HHN1

HHN1:JC SEETN1

LCALL CLR0

JMP SEETN1

SET6:INC R5 ;闹钟时调整

SEET6:LCALL DISPLAY

JB P1.7,SEET6

SEETNH1:LCALL DDL

JB P1.7,SETF

MOV R0,#7EH

LCALL ADD1

MOV A,R3

CLR C

CJNE A,#24H,HOUU1

HOUU1:JC SEETNH1

LCALL CLR0

JMP SEETNH1

SETF:LCALL DISPLAY

JB P1.7,SETF

LCALL DDL

JNB P1.7,SETOUT ;短按调时,长按退出

CLR ET0

CLR TR0

MOV 70H,#00H ;设定后的时间从00秒开始走时

MOV 71H,#00H

INC R5

SET3:LCALL DISPLAY

JB P1.7,SET3

SETMM:LCALL DDL

JB P1.7,SET4

MOV R0,#77H

LCALL ADD1

MOV A,R3

CLR C

CJNE A,#60H,MMH

MMH:JC SETMM

LCALL CLR0

AJMP SETMM

SET4:INC R5

SEET4:LCALL DISPLAY

JB P1.7,SEET4

SETHH:LCALL DDL

JB P1.7,SETOUT1

MOV R0,#79H

LCALL ADD1

MOV A,R3

CLR C

CJNE A,#24H,HOUU

HOUU:JC SETHH

LCALL CLR0

AJMP SETHH

SETOUT1:SETB ET0

SETB TR0 ;计时开始

SETOUT:MOV R5,#00H ;清设置类型闪烁标志

CLR TR1 ;关闭T1

CLR ET1 ;关T1中断

MOV 66H,#1

SETOUT2:LCALL DISPLAY

JNB P1.7,SETOUT2

LJMP START1

;--------------------------延时1秒钟-----------------------;

DDL:MOV 18H,#36

DDL0:MOV 17H,#239

DDL1:LCALL DISPLAY

DJNZ 17H,DDL1

DJNZ 18H,DDL0

RET

;----------------------------T0中断程序------------------------;

INTT0: PUSH ACC ;打包

PUSH PSW

CLR ET0

CLR TR0

MOV A,#0B7H

ADD A,TL0

MOV TL0,A

MOV A,#3CH

ADDC A,TH0

MOV TH0,A

SETB TR0

DJNZ R4, OUTT0 ;20次中断未到中断退出

ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值

MOV R0,#71H ;指向秒计时单元(70-71H)

ACALL ADD1 ;调用加1程序(加1秒操作)

MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)

CLR C ;清进位标志

CJNE A,#60H,ADDMM

ADDMM: JC OUTT01 ;小于60秒退出

ACALL CLR0 ;等于或大于60秒清0

MOV R0,#77H ;指向分计时单元(76H-77H)

ACALL ADD1

MOV A,R3

CLR C

CJNE A,#60H,ADDHH

ADDHH: JC OUTT0

ACALL CLR0

MOV R0,#79H ;指向小时计时单元(78H-79H)

ACALL ADD1

MOV A,R3

CLR C

CJNE A,#24H,HOUR

HOUR: JC OUTT0

ACALL CLR0

OUTT0: MOV A,66H ;查询标志

CJNE A,#1,OUTT01

MOV 72H,76H ;中断退出时将分、时计时单元数据移入对应显示单元

MOV 73H,77H

MOV 74H,78H

MOV 75H,79H

OUTT01:POP PSW ;出栈

POP ACC

SETB ET0 ;开放T0

RETI ;中断返回

;---------------------------加1程序--------------------------;

ADD1: MOV A,@R0 ;取当前计时单元数据到A

DEC R0 ;指向前一地址

SWAP A ;A中数据高四位与低四位交换

ORL A,@R0 ;前一地址中数据放入A中低四位

ADD A,#01H ;A加1操作

DA A ;十进制调整

MOV R3,A ;移入R3寄存器

ANL A,#0FH ;高四位变0

MOV @R0,A ;放回前一地址单元

MOV A,R3 ;取回R3中暂存数据

INC R0 ;指向当前地址单元

SWAP A ;A中数据高四位与低四位交换

ANL A,#0FH ;高四位变0

MOV @R0,A ;数据放入当削地址单元中

RET

CLR0: CLR C

CLR A ;清累加器

MOV @R0,A ;清当前地址单元

DEC R0 ;指向前一地址

MOV @R0,A ;前一地址单元清0

RET ;子程序返回

;-------------------------调时闪烁程序----------------------;

INTT1: PUSH ACC

PUSH PSW

MOV TL1,#0B0H

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 A,R5

CJNE A,#01H,NL

JMP NNN1

NL:CJNE A,#02H,NL1

LJMP NNN1

NL1:CJNE A,#03H,NL2

LJMP NLL

NL2:CJNE A,#04H,INTT1OUT

LJMP NLL

NLL:MOV 72H,76H

MOV 73H,77H

MOV 74H,78H

MOV 75H,79H

AJMP INTT1OUT

NNN1:MOV 72H,7BH

MOV 73H,7CH

MOV 74H,7DH

MOV 75H,7EH

INTT1OUT:POP PSW ;恢复现场

POP ACC

RETI ;中断退出

FLASH1:MOV A,R5

CJNE A,#01H,ML

LJMP MNN1

ML:CJNE A,#02H,ML1

LJMP MNN2

ML1:CJNE A,#03H,MN

LJMP MLL

MN:CJNE A,#04H,INTT1OUT

LJMP MHL

MLL:MOV 72H,7AH

MOV 73H,7AH ;显示单元(72-73H),将不显示分数据

MOV 74H,78H

MOV 75H,79H

AJMP INTT1OUT

MHL:MOV 72H,76H

MOV 73H,77H

MOV 74H,7AH ;显示单元(74-75H),小时数据将不显示

MOV 75H,7AH

AJMP INTT1OUT

MNN1:MOV 72H,7AH

MOV 73H,7AH ;显示单元(72-73H),将不显示闹钟分数据

MOV 74H,7DH

MOV 75H,7EH

AJMP INTT1OUT

MNN2:MOV 72H,7BH

MOV 73H,7CH

MOV 74H,7AH

MOV 75H,7AH ;显示单元(74-75H),闹钟小时数据将不显示

AJMP INTT1OUT

;-------------------------显示-------------------------------;

DISPLAY:MOV DPTR,#DISDATA

MOV A,70H

MOVC A,@A+DPTR

MOV P3,A

CLR P1.0

NOP

NOP

NOP

SETB P1.0

MOV A,71H

MOVC A,@A+DPTR

MOV P3,A

CLR P1.1

NOP

NOP

NOP

SETB P1.1

MOV A,72H

MOVC A,@A+DPTR

MOV P3,A

CLR P1.2

NOP

NOP

查询闹钟分十位

CJNE A,7CH,BEERE

BB:CLR P1.6

LCALL DDL

SETB P1.6

LCALL DDL

JNB P1.7,BEERR

BEERE:RET

BEERR:SETB P1.6

MOV 68H,#0

LCALL DISPLAY

JNB P1.7,BEERR

JMP BEERE

DISDATA:DB 0C0H,0F9H,64H,70H,59H,52H,42H,0F8H,40H,50H,0FFH ;0123456789空白

END

热心网友 时间:2023-10-05 02:04

用4位数码管显示,用点的闪烁表示秒,就是共有5位,7段;
那么用一整个PIO口(8位)去对应7段数据,再用另外一个PIO口的部分(全部)管脚去构成个键盘,这个就是你需要画的电路图了;
至于振荡电路、复位电路等几乎是固定的结构形式,对应具体芯片就标注上对应的管脚序号就是了;

热心网友 时间:2023-10-05 02:04

1.基本要求:
(1) 显示准确的北京时间(时、分、秒),可用24小时制式;
(2) 随时可以调校时间。
(3) 增加公历日期显示功能(年、月、日),年号只显示最后两位;
(4) 随时可以调校年、月、日;
(5) 允许通过转换功能键转换显示时间或日期。
(6) 所有按键需要通过串口自发自收来调校各种功能。
2.发挥部分
(1)增加秒表功能
(2)增加闹铃功能
(3)增加整点报时功能。
这是我以前做过的课程设计,你需要的话可以发给你参考一下
只不过程序是汇编的,C语言我没调好。

你的邮箱?

热心网友 时间:2023-10-05 02:05

你的邮箱。。。?你不要程序么?呵呵~~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 房产官司律师费多少 在感情中,天秤座的女生会不会很重感情? 打算做一个4位数码管显示1到9999的计数,程序和电路图在下面,为什么做出来4位望大神指点。 在感情中,天秤座的女生是如何跟男朋友相处的? 天秤座女对感情如何 4段共阴数码管,引脚和工作原理,以及动态显示的C程序。谢谢。 在感情中,天秤座的女生会不会轻易的去辜负对方? 51单片机 四位数码管如何同时显示4位不同的数字? 天秤座的女生在感情中,会不会变得很任性? 4位数码管LED84S的工作原理 在感情中,天秤座的女生会不会总有一种患得患失的感觉? 在感情中,天秤座的女生是喜欢被动还是主动? 在感情中,天秤座的女生最容易注意哪些事情? 在感情中,天秤座女生的感情之路很难吗? 在感情中,天秤座的女生优柔寡断吗? 在感情中,天秤座的女生是不是很小心眼? 在感情中,天秤座的女生都有哪些走心的表现? 在感情中,天秤座的女生在碰到感情问题的时候,是如何处理的? 天秤座女生的感情弱点有哪些? 天秤座的女生在感情中,究竟有多么的痴情? 在感情中,天秤座的女生很重感情吗? AT89C51单片机怎么用汇编语言让4个数码管同时显示1234? 用AT89C51单片机实现四位数码管显示数据!!用c语言程序实现!!例如显 显卡 影驰这是什么意思的?到底是哪个版本? 家用落地扇,定时,调速全坏,电机是4根线的,怎么接,可以直接连电源? 影驰显卡的比较 到底哪个好 电风扇直接接电源不要开关和定时怎么接呀? 烘干玉米用锅炉有政策吗 风扇开关坏了,不要开关!直接连接电源线路!该怎么接? 秸秆气化炉有哪些优缺点? 落地扇开关坏了,现在不要开关直接接线可以吗?具体怎么接? 影驰显卡好吗 秸秆燃气炉缺点 现在能使用生物颗粒锅炉吗 玉米秸秆煤能抵得上煤吗 秸秆怎样发电? 玉米秸秆燃烧供应暖气怎么处理。 建一个玉米杆加工厂需要什么设备,需要多少钱。做饲料或者燃烧。 秸秆燃烧的详细原理 孩子吃奶把乳房吃偏了想要纠正过来怎么办 奶吃偏了怎么办