通信工程12-01(郑州轻工业学院)SW2SW-SPST-MOMSW1SW-SPST-MOMSW3SW-SPST-MOMSW4SW-SPST-MOMSW5SW-SPST-MOMRP1U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161712345678910K18XTAL29RST293031PSENALEEAU2123ABCY0Y1Y2Y3Y4Y5Y6Y71514131211109712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51645E1E2E374HC138 如图用汇编语言编写的可调时钟(用定时器定时,不精准),此程序只是提供一个idea
操作:最上面的键是开始调整键,后面依次为时分秒的切换键、加键、减键、调整完成键。 程序如下:
SHI EQU R2 FEN EQU R3 MIAO EQU R4 CHANGE EQU R5 ORG 00H LJMP MAIN ORG 000BH LJMP ITOR ORG 60H
MOV TMOD,#01H //初始化定时器 MOV TH0,#3CH MOV TL0,#0B0H
//50mS
//中断入口
MAIN:
SETB ET0 SETB EA
CLR F0 //键盘设定标志位 MOV R0,#00H MOV R1,#00H MOV P0,#0FFH MOV SHI,#00H MOV FEN,#00H MOV MIAO,#00H MOV CHANGE,#00H SETB TR0
//打开定时器
//键盘扫描
M1: LJMP KEY
M2: LCALL INIT //动态显示
LJMP M1 MOV A,SHI MOV B,#0AH DIV AB MOV 40H,A MOV 41H,B
//显示函数
INIT:
CLR P2.0
CLR P2.1 CLR P2.2
JNB F0,O1
CJNE CHANGE,#00H,O1 CJNE R1,#0,O1 MOV P1,#00H CPL P2.7 LCALL DELAY LJMP O10
MOV DPTR,#TABLE
O1:
MOV A,40H MOVC A,@A+DPTR MOV P1,A LCALL DELAY MOV P1,#00H CLR P2.0 CLR P2.1 SETB P2.2 JNB F0,O2
CJNE CHANGE,#00H,O2 CJNE R1,#0,O2 MOV P1,#00H LCALL DELAY LJMP O20
O10:
O2: MOV DPTR,#TABLE MOV A,41H MOVC A,@A+DPTR MOV P1,A LCALL DELAY
MOV P1,#00H O20: CLR P2.0
SETB P2.1 CLR P2.2 MOV P1,#040H LCALL DELAY
MOV P1,#00H MOV A,FEN MOV B,#0AH DIV AB MOV 40H,A MOV 41H,B CLR P2.0 SETB P2.1 SETB P2.2 JNB F0,O3
CJNE CHANGE,#01H,O3
//显示小时
//显示分隔符
相关推荐: