1、123456789ABCDEF实验程序如下:RS BIT P2.0 ;定义液晶显示端口标号RW BIT P2.1E BIT P2.2;*L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H*org 0000hljmp mainORG 000BHLJMP TT0ORG 001BHLJMP T1INTorg 1000hmain: -;液晶初始化MOV SP,#70HMOV P0,#01H ;清屏CALL ENABLEMOV P0,#38H8位,2行显示lCALL ENABLEMOV P0,#0FH屏显on,
2、光标on,闪烁onMOV P0,#06H计数地址加1,显示幕on-内存初始化lcall initil-key1:lcall keylcall moddljmp key1-键盘扫描key:noplcall ksjnz k1有按键转到K1lcall kaijilcall SOPxn:ljmp keyk1:lcall moddjnz k2k2:mov R2,#0feh读键盘mov R4,#00hk3:mov A,R2mov P1,Amov A,P1JB ACC.4,L1为1跳转,第一行无按键mov a,#00hljmp lkL1:jb acc.5,L2mov a,#04hL2:jb acc.6,L3
3、mov a,#08hL3:jb acc.7,next1mov a,#0ch-lk:add a,R4push acck4:lcall delay1若同时有其他按键,则等待jnz k4-mov r3,#07hclr amov r0,#30hmov r1,#31hmm1:mov a,r1mov r0,ainc r0inc r1djnz r3,mm1pop accmov r0,a RET-next1:inc R4-列扫描mov a,R2JNB acc.3,n2ljmp n1n2:n1:rl amov R2,aljmp k3-ks:mov a,#0f0h判断P1口mov P1,amov a,P1cpl
4、aanl a,#0f0h-DELAY1:SETB RS0dl:mov R5,#0ahdl2:mov R6,#63dl3:nop djnz R6,dl3djnz R5,dl2 CLR RS0- 30H-37H初值为零-initil:mov r3,#08hm1:mov r0,#00hdjnz r3,m1显示-modd:MOV P0,#8EHlCALL ENABLEmov A,37Hmov DPTR,#TABLE3MOVC A,A+DPTRlCALL WRITE2开机提示字-kaiji:mov a,37hcjne a,#0fh,DFFMOV P0,#80H设光标地址 MOV DPTR,#TABLE1
5、;写数据lCALL WRITE1DFF:按键值播放歌曲SOP:cjne a,#01h,A11LCALL MODDMOV 52H,#HIGH TABLE10MOV 53H,#LOW TABLE10LCALL INITILE2lcall MAIN0A11:CJNE A,#02H,A22MOV 52H,#HIGH TABLE20MOV 53H,#LOW TABLE20 LCALL INITILE2A22:CJNE A,#03H,A33MOV 52H,#HIGH TABLE30MOV 53H,#LOW TABLE30 lcall MAIN0A33:CJNE A,#04H,A44MOV 52H,#HIG
6、H TABLE40MOV 53H,#LOW TABLE40 A44:CJNE A,#05H,A55MOV 52H,#HIGH TABLE50MOV 53H,#LOW TABLE50 A55:CJNE A,#06H,A66MOV 52H,#HIGH TABLE60MOV 53H,#LOW TABLE60 A66:CJNE A,#07H,A77MOV 52H,#HIGH TABLE70MOV 53H,#LOW TABLE70 A77:CJNE A,#08H,A88MOV 52H,#HIGH TABLE80MOV 53H,#LOW TABLE80 A88:CJNE A,#09H,A99MOV 52H
7、,#HIGH TABLE90MOV 53H,#LOW TABLE90 A99:CJNE A,#0AH,AAAMOV 52H,#HIGH TABLE100MOV 53H,#LOW TABLE100 AAA:RET*INITILE2:MOV L50MS,#20MOV L1MS,#00HMOV L250MS,#00HMOV SEC,#00HMOV MIN,#00HMOV HOU,#00HMOV A,HOUMOV B,#10DIV ABADD A,#30H将BCD吗转化为ASIIC码MOV P0,#0C8H显示小时十位CALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H显示
8、小时个位MOV A,#3AHMOV P0,#0DH显示冒号MOV A,MINMOV P0,#0CBH显示分十位MOV P0,#0CCH显示分个位MOV P0,#0CDHMOV A,SECADD A,#30H MOV P0,#0CEH显示秒十位MOV P0,#0CFH显示秒个位MOV P0,#0C0HMOV DPTR,#TABLE2;CALL WRITE1*写指令ENABLE:CLR RSCLR RWCLR ELCALL DELAYSETB E*写数据WRITE1:MOV R1,#00HA1:MOV A,R1INC R1CJNE A,#0FEH,A1未到字符串末尾继续WRITE2:MOV P0,
9、ASETB RSCALL DELAY*DELAY:MOV R4,#05D1:MOV R5,#0FFHDJNZ R5,$DJNZ R4,D1TAB:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0a1h,86h,8ehTAB1:db 89h,86h,0c7h,0c7h,0c0hTAB2:db 0c6h,88h,0c0hTABLE1:DBWELCOM HERE,0FEHTABLE2:DBDFF WB ,0FEHTABLE4:DB CAU,0FEHTABLE3:DB 30H,31H,32H,33hDB 34H,35H,3
10、6H,37HDB 38h,39H,41H,42HDB 43H,44H,45H,46H-播放歌曲程序MAIN0:MOV TMOD,#11HMOV IE,#8aH MOV TH1,#3cHMOV TL1,#0b0Hjnz TTM12MOV 40H,#00H-NEXT20:MOV A,40HMOV DPH,52HMOV DPL,53HMOV R2,AJZ STOPANL A,#0FHMOV R1,AMOV A,R2SWAP AJNZ SINGCLR TR0JMP W1-SING:DEC AMOV 22H,ARL AMOV DPTR,#TABLE00MOV TH0,AMOV 21H,AMOV A,22
11、HINC AMOV TL0,AMOV 20H,ASETB TR0SETB TR1W1:LCALL DELAY30INC 40HLCALL KS -有键跳出JNZ STOPLJMP NEXT20-STOP:CLR TR1LJMP MAIN0 TTM12:LCALL K2MOV A,37HCJNE A,#0EH,TTM13LCALL DELAY1TTM120:LCALL KSJZ TTM120CJNE A,#0EH,TTM120SETB TR1TTM13:CJNE A,#0CH,TTM14MOV A,52HMOV 52H,AMOV A,53HMOV 53H,AMOV A,36HMOV 37H,AL
12、JMP TTM2TTM14:CJNE A,#0DH,TTM2-TTM2:*定时器中断子程序0TT0:PUSH ACCPUSH PSWMOV TL0,20HMOV TH0,21HCPL P3.7POP PSWPOP ACCRETI定时器中断子程序1T1INT:MOV TH1, #3cHMOV TL1, #0b0HDJNZ L50MS,X4*-每秒种时钟刷新秒显示一次SECSET:lCALL WRITE2MOV SEC,AXRL A,#60X4:JNZ OUTMINSET:MOV SEC,#00H*每分钟刷新分显示一次MOV MIN,A MOV P0,#0CBH P0,#0CCHMOV A,MIN
13、 MOV B,#3MUL ABMOV B,#100MOV A,#10XCH A,BHOUSET:MOV MIN,#00H*每小时刷新小时显示一次MOV HOU,AXRL A,#10SJMP OVERFLOWOUT:*溢出处理OVERFLOW:DELAY30:MOV R7,#2W2:MOV R4,#125W3:MOV R3,#248DJNZ R3,$DJNZ R4,W3DJNZ R7,W2DJNZ R1,DELAY30TABLE00:DW 64580,64684,64777,64820DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021-第一首精忠报国TABLE10:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1