|
源程序C語言 http://www.zg4o1577.cn/bbs/dpj-186645-1.html
匯編程序是反編譯修改后得到的
圖中圈起來的部分不明白 R5是如何被寫進(jìn)屏幕的 在寫入的部分沒找到和R5相關(guān)的程序 還有R4直接修改成04H去掉DEC R4 顯示就不正常 這是什么原因
111111.jpg (309.3 KB, 下載次數(shù): 54)
下載附件
2022-1-13 15:57 上傳
IMG_20220113_145309.jpg (344.34 KB, 下載次數(shù): 79)
下載附件
2022-1-13 15:18 上傳
IMG_20220113_145402.jpg (273.33 KB, 下載次數(shù): 78)
下載附件
2022-1-13 15:18 上傳
下面是和R4 R5相關(guān)的單片機(jī)匯編程序
COM EQU 31H; 命令
DAT EQU 32H; 數(shù)據(jù)
DIP_Y EQU 33H; 頁
DIP_L EQU 34H; 列
MOV DIP_Y,#01H; 頁 MOV DIP_L,#01H; 列
//顯示32x32點(diǎn)陣圖像
disp_blink_32x32: MOV R2,DIP_Y; 頁
MOV R5,DIP_L; 列
LCALL lcd_address; 設(shè)定頁列位置
MOV R4,#32; 32像素
MOV R3,#4; 4頁
W1_3232: CLR A
MOVC A,@A+DPTR;
INC DPTR
MOV DAT,A
LCALL transfer_data; 寫入數(shù)據(jù)
DJNZ R4,W1_3232
DJNZ R3,W2_3232
LJMP W3_3232
W2_3232: MOV R5,DIP_L; 列
INC R2; 頁加一
INC R2; 頁加一
LCALL lcd_address; 設(shè)定頁列位置
MOV R4,#32; 32像素
LJMP W1_3232
W3_3232: RET
;==========================================================================
// 頁 列
lcd_address: MOV R4,05H
DEC R4
DEC R2 // 頁減一
MOV A,R2
ADD A,#0B0H;
MOV COM,A
LCALL transfer_command; //設(shè)置頁地址。
MOV A,R4
SWAP A; //高低位互換
ANL A,#0FH
ADD A,#10H
MOV COM,A
LCALL transfer_command; //設(shè)置列地址的高4位
MOV A,R4
ANL A,#0FH
MOV COM,A
LCALL transfer_command; //設(shè)置列地址的低4位
RET;
;==========================================================================
/*寫指令到LCD模塊*/
transfer_command: CLR CS
CLR CD
MOV R5,#8
Q00B7: CLR SCL
MOV A,COM
JNB ACC.7,Q00C1
SETB SDA
SJMP Q00C3
Q00C1: CLR SDA
Q00C3: SETB SCL
MOV A,COM
ADD A,ACC
MOV COM,A
DJNZ R5,Q00B7
SETB CS
RET
|
|