|
本帖最后由 mentooo 于 2021-12-29 12:23 編輯
《實(shí)例解讀51單片機(jī)完全學(xué)習(xí)與應(yīng)用》程序8-15
目標(biāo):數(shù)碼管顯示1和5
1.jpg (146.64 KB, 下載次數(shù): 38)
下載附件
2021-12-29 12:22 上傳
原代碼如下:Keil調(diào)試不正確!新手求解
- ORG 00H
- START:
- MOV 30H,#1 ; 低位七段數(shù)碼管DS0顯示數(shù)據(jù)
- MOV 31H,#5 ; 高位七段數(shù)碼管DS1顯示數(shù)據(jù)
- MOV R0,#30H ; R0=30H
- MOV R1,#40H ; R1=40H
- MOV R2,#2 ; R2=2
- DP10:
- MOV DPTR,#TABLE ; 裝表
- MOV A,@R0 ; 將R0所指的數(shù)據(jù)載入A
- MOVC A,@A+DPTR ; 取表
- MOV @R1,A ; 把數(shù)據(jù)暫時(shí)保存在R1所指的地址中
- INC R1 ; R1自增1
- INC R0 ; R0自增1
- DJNZ R2,DP10 ; 如果R2不等于0,說明沒有取完兩個(gè)段碼,跳回DP10循環(huán)
- MOV R0,#40H ; R0=40H,指向剛才保存段碼的空間
- MOV R1,#2 ; R1=2,段碼共有2個(gè)字節(jié)數(shù)
- DP11:
- MOV R2,#8 ; R2=8,每位顯示數(shù)據(jù)共有8個(gè)段碼,R2作計(jì)數(shù)器
- MOV A,@R0 ; 把R0指向的段碼數(shù)據(jù)載入A
- DP12:
- RLC A ; 段碼數(shù)據(jù)向左移動(dòng)一位
- MOV P2.0,C ; 串行輸出一位段碼數(shù)據(jù)
- CLR P2.1 ; 發(fā)送位移脈沖
- SETB P2.1 ; 形成上升沿
- DJNZ R2,DP12 ; 判斷是否輸出8位段碼
- INC R0 ; R0自增1
- DJNZ R1,DP11 ; 判斷是否輸出兩個(gè)顯示數(shù)據(jù)
- JMP $
- TABLE: ;七段數(shù)碼管顯示數(shù)據(jù)表(段碼)
- DB 40H,79H,24H,30H,19H ;0,1,2,3,4
- DB 12H,02H,78H,00H,10H ;5,6,7,8,9
- END
復(fù)制代碼
|
|