C语言显示相位的程序,【图片】求助大佬用c语言帮忙编写下程序【c程序吧】_百度贴吧...
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
PSR_LAX:
RET
//子程序名稱:PUTCHAR(A).;
PUTCHAR: //;在(CXPOS,CYPOS)字符位置寫字符子程序
CALL CHARLCDPOS //;設置(CXPOS,CYPOS)字符位置的DDRAM地址
CALL LCDWD // ;寫字符
RET
//子程序名稱:GETCHAR(A).
GETCHAR: //;在(CXPOS,CYPOS)字符位置讀字符子程序
CALL CHARLCDPOS //;設置(CXPOS,CYPOS)字符位置的DDRAM地址
CALL LCDRD ;讀字符
RET;
//子程序名稱:CHARLCDPOS().;
CHARLCDPOS: // ;設置(CXPOS,CYPOS)字符位置的DDRAM地址
PUSH ACC
ANL CXPOS,#0FH // ;X位置范圍(0到15)
ANL CYPOS,#03H // ;Y位置范圍(0到3)
MOV A,CYPOS // ;(CXPOS,CYPOS)對應DDRAM地址
CJNE A,#00,LPS_LA1 // ;(第一行)X: 第0----15個字符
MOV A,CXPOS // ; DDRAM: 0----0FH
JMP LPS_LAX
LPS_LA1:CJNE A,#01,LPS_LA2
MOV A,CXPOS // ;(第二行)X: 第0----15個字符
ADD A,#40H // ; DDRAM: 40----4FH
JMP LPS_LAX
LPS_LA2:CJNE A,#02,LPS_LAY
MOV A,CXPOS // ;(第三行)X: 第0----15個字符
ADD A,#10H // DDRAM: 10----1FH
JMP LPS_LAX
LPS_LAY:MOV A,CXPOS //;(第四行)X: 第0----15個字符
ADD A,#50H //;DDRAM: 50----5FH
LPS_LAX:ORL A,#80H //;設置DDRAM地址
CALL LCDWC
POP ACC
RET;
//子程序名稱:CHARCURSORNEXT().;
CHARCURSORNEXT: //;置字符位置為下一個有效位置子程序
INC CXPOS //;字符位置加1
ANL CXPOS,#0FH //;字符位置CXPOS的有效范圍為(0到15)
MOV R0,CXPOS
CJNE R0,#0,CSN_LAX //;CXPOS為0表示要換行
INC CYPOS
ANL CYPOS,#03H //;字符位置CYPOS的有效范圍為(0到3)
CSN_LAX:
RET;
//子程序名稱:LCDRESET().;
LCDRESET: //;SMC1604系列液晶顯示控制器初始化子程序
MOV A,#38H // ;1604的顯示模式字為38H
CALL LCDWC //;顯示模式設置第一次
CALL DELAY3MS //;延時3MS
CALL LCDWC // ;顯示模式設置第二次
CALL DELAY3MS //;延時3MS
CALL LCDWC //;顯示模式設置第三次
CALL DELAY3MS //;延時3MS
CALL LCDWC //;顯示模式設置第四次
CALL DELAY3MS //;延時3MS
MOV A,#08H //;顯示關閉
CALL LCDWC
MOV A,#01H //;清屏
CALL LCDWC
CALL DELAY3MS //;延時3MS
MOV A,#06H //;顯示光標移動設置
CALL LCDWC
MOV A,#0CH //;顯示開及光標設置
CALL LCDWC
RET
RET
DELAY3MS: //;延時3MS子程序
MOV R1,#15
DL3_PA: MOV R2,#100
DJNZ R2,$
DJNZ R1,DL3_PA
RET;
//LCDWC,LCDWD,LCDRD為HD44780兼容芯片的MCS51模擬口線方式的基本子程序
//LCDWAITIDLE為內部子程序.//子程序名稱:LCDWC(A).
LCDWC: //;送控制字子程序
CALL LCDWAITIDLE //;HD44780液晶顯示控制器忙檢測
CLR RSPIN //;RS=0 RW=0 E=高脈沖
CLR RWPIN
MOV P1,A
SETB EPIN
NOP
CLR EPIN
RET;
//子程序名稱:LCDWD(A).;
LCDWD: //;送數據子程序
CALL LCDWAITIDLE //;HD44780液晶顯示控制器忙檢測
SETB RSPIN // ;RS=1 RW=0 E=高脈沖
CLR RWPIN
MOV P1,A
SETB EPIN
NOP
CLR EPIN
RET;
//子程序名稱:LCDRD().;
LCDRD: //;讀數據子程序
CALL LCDWAITIDLE //;HD44780液晶顯示控制器忙檢測
MOV P1,#0FFH
SETB RSPIN //;RS=1 RW=0 E=高脈沖
SETB RWPIN
SETB EPIN
NOP
MOV A,P1
CLR EPIN
RET;
//子程序名稱:LCDWAITIDLE().
LCDWAITIDLE: //;忙檢測子程序
PUSH ACC //;正常讀寫操作之前必須檢測LCD控制器狀態
MOV P1,#0FFH //;狀態字的D7位為0表示LCD控制器空閑,可以
//;進行讀寫操作
CLR RSPIN //;RS=0 RW=1 E=高電平
SETB RWPIN
SETB EPIN
MOV R0,#20
WTD_PA: NOP ;
JNB P1.7,WTD_LAX //;D7=0 表示LCD控制器空閑,則退出檢測
DJNZ R0,WTD_PA //;D7=1 表示LCD控制器忙,則繼續檢測
//;若忙時間超過100uS,則表示LCD控制器硬件;出錯,退出檢測
NOP // ;用戶可在此設置錯誤代碼,或仿真時設置斷點
WTD_LAX:
CLR EPIN
POP ACC
RET
總結
以上是生活随笔為你收集整理的C语言显示相位的程序,【图片】求助大佬用c语言帮忙编写下程序【c程序吧】_百度贴吧...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dos系统功能调用的屏幕显示字符是( )
- 下一篇: OpenJudge NOI 1.8 24