33问答网
所有问题
基于AT89C51单片机设计一个数码管计时器,可以精确计时,并随时停止,停止后再次按键可以继续计时
基于AT89C51单片机设计一个数码管计时器,可以精确计时,并随时停止,停止后再次按键可以继续计时需要电路图以及汇编程序,求助大神啊
举报该问题
其他回答
第1个回答 2018-01-14
DAT EQU 33H
SCANLED EQU 39H
CLK EQU 77H
SEC EQU 78H
MIN EQU 79H
HOUR EQU 7AH
PAUSE BIT 00H
DOT BIT 01H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR ;50ms定时
ORG 001BH
LJMP T1ISR ;扫描显示
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#11H
MOV TH0,#03CH
MOV TL0,#0B0H
MOV TH1,#0ECH
MOV TL1,#078H
MOV SCANLED,#0
MOV 33H,#10H
MOV 34H,#10H
MOV 35H,#10H
MOV 36H,#10H
MOV 37H,#10H
MOV 38H,#10H
MOV SEC,#0
MOV MIN,#0
MOV HOUR,#0
MOV CLK,#0
CLR PAUSE
SETB EA
SETB ET1
SETB TR1
LOOP:
JB P1.0,$
JNB P1.0,$
CPL TR0
SJMP LOOP
;------------------
;BCD转换为十六进制
BCDH:
MOV B,#10H
DIV AB
MOV R7,B
MOV B,#10
MUL AB
ADD A,R7
RET
;------------------
;十六进制转换为BCD
HBCD:
MOV B,#10
DIV AB
SWAP A
ORL A,B
RET
;--------------------
T0ISR:
PUSH ACC
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC CLK
MOV A,CLK
CJNE A,#20,T0ISRE
MOV CLK,#0
INC SEC
MOV A,SEC
CJNE A,#60,T0ISRE
MOV SEC,#0
INC MIN
MOV A,MIN
CJNE A,#60,T0ISRE
MOV MIN,#0
INC HOUR
MOV A,HOUR
CJNE A,#24,T0ISRE
MOV SEC,#0
MOV MIN,#0
MOV HOUR,#0
T0ISRE:
LCALL DISCHG
POP ACC
RETI
;--------------------
DISCHG:
MOV A,HOUR
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 34H,A
POP ACC
ANL A,#0F0H
SWAP A
MOV 33H,A
MOV A,MIN
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 36H,A
POP ACC
ANL A,#0F0H
SWAP A
MOV 35H,A
MOV A,SEC
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 38H,A
POP ACC
ANL A,#0F0H
SWAP A
MOV 37H,A
RET
;--------------------
T1ISR:
PUSH ACC
CLR TR1
MOV TH1,#0ECH
MOV TL1,#78H
SETB TR1
MOV DPTR,#LEDTAB
T100:
MOV R0,#DAT
MOV A,SCANLED
ADD A,R0
MOV R0,A
MOV A,SCANLED
JNZ T101
MOV P2,#01H
CLR DOT
SJMP T1DIS
T101:
DEC A
JNZ T102
MOV P2,#02H
SETB DOT
SJMP T1DIS
T102:
DEC A
JNZ T103
MOV P2,#04H
CLR DOT
SJMP T1DIS
T103:
DEC A
JNZ T104
MOV P2,#08H
SETB DOT
SJMP T1DIS
T104:
DEC A
JNZ T105
MOV P2,#10H
CLR DOT
SJMP T1DIS
T105:
MOV P2,#20H
CLR DOT
T1DIS:
MOV A,@R0
MOVC A,@A+DPTR
JNB DOT,T1DIS1
ORL A,#01H
T1DIS1:
CPL A
MOV P0,A
INC SCANLED
MOV A,SCANLED
CJNE A,#6,T1END
MOV SCANLED,#0
T1END:
POP ACC
RETI
;--------------------
LEDTAB: DB 0FCH ;"0" 00H
DB 60H ;"1" 01H
DB 0DAH ;"2" 02H
DB 0F2H ;"3" 03H
DB 66H ;"4" 04H
DB 0B6H ;"5" 05H
DB 0BEH ;"6" 06H
DB 0E0H ;"7" 07H
DB 0FEH ;"8" 08H
DB 0F6H ;"9" 09H
DB 0EEH ;"A" 0AH
DB 3EH ;"B" 0BH
DB 9CH ;"C" 0CH
DB 7AH ;"D" 0DH
DB 9EH ;"E" 0EH
DB 8EH ;"F" 0FH
DB 00H ;" " 10H
;--------------------
END
追问
请问接线是怎么接的
本回答被提问者和网友采纳
相似回答
...程序实现:
单片机
是
AT89C51,
实现
一个计时器,数码管
为6为的,有三个...
答:
sbit SHUG_04 = P2^3; //
数码管
4 sbit SHUG_05 = P2^4; //数码管5 sbit SHUG_06 = P2^5; //数码管6 sbit KEY0_01 = P0^0; //按键 启动或停止 sbit KEY0_02 = P0^1; //按键 加 sbit KEY0_03 = P0^2; //按键减 define LED_DATA ...
急~!!用
数码管
显示60秒的
秒表设计
(
单片机AT89C51
)
答:
;fosc = 11.0592MHz SP1 BIT P3.2 LED BIT P3.4 ;--- ORG 0000H SJMP START ORG 000BH MOV TH0, #4CH JNB F0, T0_END DJNZ R5, T0_END MOV R5, #20 INC R4 CJNE R4, #60, T0_E1 ;最大为59 MOV R4, #0 CLR LED T0_E1:CALL DISP...
基于AT89C51 单片机
数字时钟如何
设计
?
答:
让我们深入探讨一项
基于AT89C51单片机
的创新设计——一个直观、易于操作的数字时钟,它由51单片机、8位共阴
数码管
和独立按键巧妙结合而成。这款时钟不仅仅是
一个计时
工具,它具备独特的功能和交互体验。功能展示 这款时钟的核心功能包括:实时显示: 51单片机通过精确计算,驱动数码管以“时-分-秒”的格式实...
大家正在搜
相关问题
用at89c51单片机的定时器设计一个倒计时报警器,并用le...
基于AT89C51单片机设计一个数码管计时器,可以精确计时,...
用AT89C51单片机的定时器设计一个倒计时报警器,并用LE...
1、 基于AT89C51单片机,利用定时器设计一个两位数码管...
用KEIL编写C语言程序实现:单片机是AT89C51,实现一...
利用51单片机,4个数码管设计一个计时器,要求在数码管上显示...
用at89c51单片机编写一个c语言程序实现2个数码管99秒...
如何利用51单片机设计计时器实现开启,暂停计时,暂停显示,复...