|
源程序C語(yǔ)言 http://www.zg4o1577.cn/bbs/dpj-186645-1.html
匯編程序是反編譯修改后得到的
圖中圈起來(lái)的部分不明白 R5是如何被寫(xiě)進(jìn)屏幕的 在寫(xiě)入的部分沒(méi)找到和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; 頁(yè)
DIP_L EQU 34H; 列
MOV DIP_Y,#01H; 頁(yè) MOV DIP_L,#01H; 列
//顯示32x32點(diǎn)陣圖像
disp_blink_32x32: MOV R2,DIP_Y; 頁(yè)
MOV R5,DIP_L; 列
LCALL lcd_address; 設(shè)定頁(yè)列位置
MOV R4,#32; 32像素
MOV R3,#4; 4頁(yè)
W1_3232: CLR A
MOVC A,@A+DPTR;
INC DPTR
MOV DAT,A
LCALL transfer_data; 寫(xiě)入數(shù)據(jù)
DJNZ R4,W1_3232
DJNZ R3,W2_3232
LJMP W3_3232
W2_3232: MOV R5,DIP_L; 列
INC R2; 頁(yè)加一
INC R2; 頁(yè)加一
LCALL lcd_address; 設(shè)定頁(yè)列位置
MOV R4,#32; 32像素
LJMP W1_3232
W3_3232: RET
;==========================================================================
// 頁(yè) 列
lcd_address: MOV R4,05H
DEC R4
DEC R2 // 頁(yè)減一
MOV A,R2
ADD A,#0B0H;
MOV COM,A
LCALL transfer_command; //設(shè)置頁(yè)地址。
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;
;==========================================================================
/*寫(xiě)指令到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
|
|