谁能给我一个用89C51单片机控制的带整点报时的时钟的汇编语言啊????需要实现,时分秒,整点报时,谢谢

作者&投稿:施扶 (若有异议请与网页底部的电邮联系)
单片机89C51汇编语言实现时钟电路~

五一单片来机会给你帮助so下巴

只写中间,开头结尾你懂的MAIN:MOV SP #30H SETB 00# MOV OUT5S,#00H MOV SDATE ,#00H MOV MDATE ,#00H MOV HDATE,#00H MOV TMOD,#21H MOV THO,#3CH MOV TL1,#OFDH MOV TH1,#OFDH MOV SCON,#OCOH MOV PCON ,#00H SETB TR1

KEYVAL EQU 30H
KEYTM EQU 31H
TICK EQU 32H
DAT EQU 33H
SCANLED EQU 39H
CLK EQU 77H
SEC EQU 78H
MIN EQU 79H
HOUR EQU 7AH
PAUSE BIT 00H
DOT BIT 01H
OPENSPEAK BIT 02H
SPEAK BIT P1.6
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 KEYVAL,#0
MOV SCANLED,#0
CLR P1.6
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
CLR OPENSPEAK
SETB EA
SETB ET1
SETB TR1
LOOP:
LCALL GETKEY
MOV A,KEYVAL
CJNE A,#00H,LOOP1
SJMP LOOP
LOOP1:
CJNE A,#1,LOOP2 ;启动
SETB TR0
SETB ET0
SETB PAUSE
SJMP LOOP
LOOP2:
CJNE A,#2,LOOP3 ;修改小时
CLR TR0
CLR ET0
MOV A,HOUR
INC A
CJNE A,#24,LOOP21
MOV A,#0
LOOP21:
MOV HOUR,A
LCALL DISCHG
SETB TR0
SETB ET0
SJMP LOOP
LOOP3:
CJNE A,#3,LOOP4 ;修改分钟
CLR TR0
CLR ET0
MOV A,MIN
INC A
CJNE A,#60,LOOP31
MOV A,#0
LOOP31:
MOV MIN,A
LCALL DISCHG
SETB TR0
SETB ET0
SJMP LOOP
LOOP4:
CJNE A,#4,LOOP5 ;修改秒
CLR TR0
CLR ET0
MOV A,SEC
INC A
CJNE A,#60,LOOP41
MOV A,#0
LOOP41:
MOV SEC,A
LCALL DISCHG
SETB TR0
SETB ET0
LOOP5:
LJMP 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
;--------------------
GETKEY:
MOV KEYVAL,#00H
MOV A,P1
ORL A,#0FH
MOV P1,A
LCALL DELAY
MOV A,P1
ANL A,#0FH
MOV KEYTM,A
CJNE A,#0FH,GETKEY1
SJMP NOKEY
GETKEY1:
MOV A,P1
ANL A,#0FH
CJNE A,KEYTM,GETKEY11
SJMP GETKEY1
GETKEY11:
MOV A,KEYTM
JB ACC.0,GETKEY2
MOV KEYVAL,#1
RET
GETKEY2:
JB ACC.1,GETKEY3
MOV KEYVAL,#2
RET
GETKEY3:
JB ACC.2,GETKEY4
MOV KEYVAL,#3
RET
GETKEY4:
JB ACC.3,NOKEY
MOV KEYVAL,#4
NOKEY: RET
;--------------------
DELAY:
MOV R3,#50
DELAY1:
MOV R4,#100
DJNZ R4,$
DJNZ R3,DELAY1
RET
;--------------------
T0ISR:
PUSH ACC
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
LCALL SPEAKER
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
LCALL BAOSHI
INC HOUR
MOV A,HOUR
CJNE A,#24,T0ISRE
MOV SEC,#0
MOV MIN,#0
MOV HOUR,#0
T0ISRE:
LCALL DISCHG
POP ACC
RETI
;--------------------
BAOSHI:
SETB OPENSPEAK
MOV TICK,#6
RET
SPEAKER:
JNB OPENSPEAK,SKEND
MOV A,TICK
JNZ SKDEAL
CLR OPENSPEAK
RET
SKDEAL:
DEC A
MOV TICK,A
CPL SPEAK
SKEND:
RET
;--------------------
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 P3,#01H
CLR DOT
SJMP T1DIS
T101:
DEC A
JNZ T102
MOV P3,#02H
SETB DOT
SJMP T1DIS
T102:
DEC A
JNZ T103
MOV P3,#04H
CLR DOT
SJMP T1DIS
T103:
DEC A
JNZ T104
MOV P3,#08H
SETB DOT
SJMP T1DIS
T104:
DEC A
JNZ T105
MOV P3,#10H
CLR DOT
SJMP T1DIS
T105:
MOV P3,#20H
CLR DOT
T1DIS:
MOV A,@R0
MOVC A,@A+DPTR
JNB DOT,T1DIS1
ANL A,#7FH
T1DIS1:
; CPL A
MOV P0,A
INC SCANLED
MOV A,SCANLED
CJNE A,#6,T1END
MOV SCANLED,#0
T1END:
POP ACC
RETI
;--------------------
LEDTAB:
DB 0C0H ;"0" 00H
DB 0F9H ;"1" 01H
DB 0A4H ;"2" 02H
DB 0B0H ;"3" 03H
DB 99H ;"4" 04H
DB 92H ;"5" 05H
DB 82H ;"6" 06H
DB 0F8H ;"7" 07H
DB 80H ;"8" 08H
DB 90H ;"9" 09H
DB 88H ;"A" 0AH
DB 83H ;"B" 0BH
DB 0C6H ;"C" 0CH
DB 0A1H ;"D" 0DH
DB 86H ;"E" 0EH
DB 8EH ;"F" 0FH
DB 0FFH ;" " 10H
;--------------------
END

stc90c516rd 单片机与89C51单片机内部差别是什么啊 89C51与89C52的差别...
答:一、存储器ROM不同 1、89C51:89C51的存储器ROM为片内4KROM。2、89C52:89C52的存储器ROM为片内8KROM。二、内部RAM不同 1、89C51:89C51的内部RAM为128*8位。2、89C52:89C52的内部RAM为256*8位。三、定时器不同 1、89C51:89C51只有两个16位定时器/计数器。2、89C52:89C52有3个16位可编程...

用89C51单片机设计4*4矩阵式键盘计算器程序 要汇编的 求解!
答:CJNE A,#0FFH,LOOP1 SJMP LOOP LOOP1:CJNE A,#11,LOOP2 ;“=”MOV A,33H MOV B,#10 MUL AB ADD A,34H MOV D_DAT,A LCALL DEALDAT LCALL HB2 MOV A,R5 ANL A,#0FH MOV 34H,A MOV A,R5 SWAP A ANL A,#0FH MOV 33H,A MOV A,R4 ANL A,#0FH MOV 36H,A MOV A,R4 ...

基于89c51单片机的电阻电感电容测试仪,谁有电路图啊,能发给我一下吗...
答:阿莫论坛里面有这个东西,开源的,精度还不错,你可以过去搜索试试看。

如何利用89C51单片机与8279实现键盘接口电路显示
答:如何利用89C51单片机与8279实现键盘接口电路显示 30 因为最大长度为10000mm。因此,显示器的最小位数应为五位,且用2*8的键盘,另还有7407驱动器以及译码器最好用两片等器件连接而成,如谁有这方面的请发到我邮箱内:liushang310@163.co... 因为最大长度为10000mm。因此,显示器的最小位数应为五位,且用2*8的...

用单片机AT89C51制作电子秒表,需要用什么元器件。
答:元件:89c51,四位共阴极数码管,非自锁按键,10K电阻,10uf电解电容,30pf瓷片电容,10k排阻,晶振 留个邮箱,我把Proteus仿真图发给你,以下是程序,临时写的,Proteus测试正常,不知道符不符合你的要求,你可以自己再稍作修改。用的是12M晶振 include<reg51.h> define uchar unsigned char define uint...

能帮我编1个89C51单片机的汇编暂停程序吗
答:利用外部中断0,即可:ORG 0000H SJMP START ORG 0003H JNB P3.2, $ ;等待P3.2置位.RETI ;中断返回.ORG 0030H START:SETB EA SETB EX0 ;开中断,以后一旦P3.2为0,都会自动转去0003H处 ;……..SJMP END ...

使用单片机89c51 ds18b20 温度传感器 单片机产生pwm波控制功率电阻 我...
答:用 设定温度 与 实际温度 进行比较,设定温度 越接近 实际温度,使输出的 PWM 的占空比越小 就可以,可以根据 实际加热电阻功率 的 加热速度,来进行调节。

可以通过89c51单片机控制输出电阻的数字电位器,最大输出50K,最好给出...
答:使用美信公司的MAX5432芯片。50k欧姆最大电阻,32抽头。电路很简单,iic两线接口。在网上随便都能搜到iic接口的程序。希望你能有用。

高分!!!求89c51单片机控制继电器开关电源的电路图!!继电器用什么型号...
答:继电器型号JZC-22F,220V交流电压的话最多是7A;LED的话,需要加驱动电路;按键控制定时时间。 (刚发现,图错了,数码管的abcdefg与dp反过来接)

求基于89C51单片机的秒表设计,用LCD1602显示。程序代码
答:lcd1602_rs=1;lcd1602_rw=0;lcd1602_e=1;LCD1602_PORT=c;lcd1602_e=0;} / 函数名称:lcd1602_Init()函数功能:初始化LCD 入口参数:无 出口参数:无 / void lcd1602_Init(){ lcd1602_WriteCmd(0x38);//显示模式为8位2行5*7点阵 lcd1602_WriteCmd(0x0c); //display enable,flag enable,...