久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
LCD12864串行通信(匯編語(yǔ)言)
[打印本頁(yè)]
作者:
楊小強(qiáng)
時(shí)間:
2018-10-9 06:50
標(biāo)題:
LCD12864串行通信(匯編語(yǔ)言)
LCD12864.jpg
(354.49 KB, 下載次數(shù): 46)
下載附件
2018-10-9 06:32 上傳
;================================================
;LCD12864串行通信例程(匯編語(yǔ)言)
;楊小強(qiáng) 2018年10月
;MCU:STC15F104W,內(nèi)部R/C時(shí)鐘,頻率11.0492MHz
;LCM:帶中文字庫(kù)的LCD12864(控制芯片為ST7920)
;
;LCM字符顯示RAM的地址與字符顯示區(qū)域的對(duì)應(yīng)關(guān)系
;第一行 80H 81H 82H 83H 84H 85H 86H 87H
;第二行 90H 91H 92H 93H 94H 95H 96H 97H
;第三行 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH
;第四行 98H 99H 9AH 9BH 9CH 9DH 9EH 9FH
;
;接線(xiàn)方法,共4根線(xiàn):VCC、VSS、R/W(SID)、E(SCK)
;PSB接電源地(H:并口方式,L:串口方式)
;CS(RS)接電源正(片選,高電平有效)
;/RESET復(fù)位懸空
;背光電源A和K分別接到VCC、VSS
;R/W:接P3.2
; E:接P3.3
;
;==============LCD接口定義==============
SID EQU P3.2 ;第5根線(xiàn),串行數(shù)據(jù) RW
SCK EQU P3.3 ;第6根線(xiàn),串行同步時(shí)鐘 E
ORG 0000H
LJMP START
ORG 0100H ;程序代碼開(kāi)始地址安排在100H
START: MOV SP,#050H ;設(shè)置堆棧指針
LCALL LcmInit ;LCM初始化
LCALL LcmClearTXT ;清屏
MOV R4,#80H ;LCM屏幕地址,第一行第一個(gè)
MOV DPTR,#DAB1 ;顯示DAB1處的字符串
LCALL Display ;調(diào)用顯示子程序
MOV R4,#90H ;LCM屏幕地址,第二行第一個(gè)
MOV DPTR,#DAB2 ;顯示DAB2處的字符串
LCALL Display
MOV R4,#88H ;LCM屏幕地址,第三行第一個(gè)
MOV DPTR,#DAB3 ;顯示DAB3處的字符串
LCALL Display
MOV R4,#98H ;LCM屏幕地址,第四行第一個(gè)
MOV DPTR,#DAB4 ;顯示DAB4處的字符串
LCALL Display
;**** 在屏幕右下角顯示數(shù)字從0到9,間隔一秒 ****
START1: MOV R2,#30H ;把初始值0的ASCII碼30H放入R2
START2: MOV R4,#9FH ;屏幕右下角最后一個(gè)位置
LCALL WriteCommand
MOV R4,#20H ;先顯示一個(gè)空格
LCALL WriteData
MOV A,R2 ;把R2內(nèi)容傳到R4
MOV R4,A ;把R2內(nèi)容傳到R4
LCALL WriteData ;顯示R4內(nèi)容
INC R2 ;R2增1
LCALL Delay ;延時(shí)1秒
CJNE R2,#3AH,START2 ;如果R2不等于3AH則跳轉(zhuǎn)到START2
LJMP START1 ;等于3AH,跳轉(zhuǎn)到START1,又從0開(kāi)始
;================================================
;子 程 序:在屏幕指定位置顯示字符串一行(16個(gè)字符)
;入口參數(shù):R4=LCM屏幕地址,DPTR=字符串地址
;出口參數(shù):無(wú)
;================================================
Display:
LCALL WriteCommand
MOV R3,#0
Display1:
CLR A
MOVC A,@A+DPTR
INC R3
INC DPTR
MOV R4,A
LCALL WriteData
CJNE R3,#16,Display1
RET
;===================================
;子 程 序:接收一個(gè)字節(jié)
;入口參數(shù):無(wú)
;出口參數(shù):R7=接收到的內(nèi)容
;===================================
ReceiveByte:
CLR A
MOV R7,A
MOV R6,A
MOV R5,A
ReB1: MOV A,R7
ADD A,ACC
MOV R7,A
CLR SCK
SETB SCK
CLR SCK
JNB SID,ReB2
INC R7
ReB2: INC R5
CJNE R5,#08H,ReB1
CLR A
MOV R5,A
ReB3: MOV A,R6
ADD A,ACC
MOV R6,A
CLR SCK
SETB SCK
CLR SCK
JNB SID,ReB4
INC R6
ReB4: INC R5
CJNE R5,#08H,ReB3
MOV A,R6
ANL A,#0FH
MOV R6,A
MOV A,R7
ANL A,#0F0H
ADD A,R6
MOV R7,A
RET
;===================================
;子 程 序:讀數(shù)據(jù) ReadData
;入口參數(shù):無(wú)
;出口參數(shù):R7=接收到的數(shù)據(jù)
;===================================
ReadData:
LCALL CheckBusy ;忙狀態(tài)檢測(cè)
MOV R7,#0FEH ;FE(讀數(shù)據(jù))
LCALL _SendByte
LJMP ReceiveByte
;===========忙狀態(tài)檢測(cè)==============
CheckBusy:
MOV R7,#0FCH ;FC(讀狀態(tài))
LCALL _SendByte ;發(fā)送R7內(nèi)容到LCM
LCALL ReceiveByte ;從LCM讀出一個(gè)字節(jié)到R7
MOV A,R7
JB ACC.7,CheckBusy ;忙檢測(cè)
RET
;===================================
;子 程 序:寫(xiě)指令 WriteCommand
;入口參數(shù):R4=待傳輸?shù)闹噶?li>;出口參數(shù):無(wú)
;===================================
WriteCommand:
LCALL CheckBusy ;忙狀態(tài)檢測(cè)
MOV R7,#0F8H ;F8(寫(xiě)指令)
LJMP SendByte
;===================================
;子 程 序:寫(xiě)數(shù)據(jù) WriteData
;入口參數(shù):R4=待傳輸?shù)臄?shù)據(jù)
;出口參數(shù):無(wú)
;===================================
WriteData:
LCALL CheckBusy ;忙狀態(tài)檢測(cè)
MOV R7,#0FAH ;FA(寫(xiě)數(shù)據(jù))
;******** 向LCM發(fā)送串行數(shù)據(jù) SendByte ********
;發(fā)送方法:每次都由三個(gè)字節(jié)組成,
;第一個(gè)字節(jié)(放在R7)向控制器發(fā)送命令控制字(寫(xiě)指令F8,寫(xiě)數(shù)據(jù)FA,讀狀態(tài)FC,讀數(shù)據(jù)FE),
;第二個(gè)字節(jié)(放在R4)的高4位為發(fā)送指令或數(shù)據(jù)的高4位,低4位補(bǔ)0
;第三個(gè)字節(jié)(放在R4)的低4位為發(fā)送指令或數(shù)據(jù)的高4位,高4位補(bǔ)0
SendByte:
LCALL _SendByte ;發(fā)送R7內(nèi)容到LCM(第一個(gè)字節(jié))
MOV A,R4
ANL A,#0F0H ;"與"操作,執(zhí)行完后高4位不變,低4位為0
MOV R7,A
LCALL _SendByte ;(發(fā)送第二個(gè)字節(jié))
MOV A,R4 ;(以下發(fā)送第三個(gè)字節(jié))
SWAP A ;高4位與低4位交換
ANL A,#0F0H ;位與運(yùn)算
MOV R7,A
_SendByte:
CLR A ;發(fā)送R7內(nèi)容到LCM
MOV R6,A
Se1: CLR SCK
MOV A,R7
ADD A,ACC
MOV R7,A
MOV SID,C
SETB SCK
CLR SCK
INC R6
CJNE R6,#08H,Se1
RET
;=============== LCM初始化 LcmInit ================
LcmInit:
MOV R4,#030H ;功能設(shè)置,一次送8位數(shù)據(jù),基本指令集
LCALL WriteCommand
MOV R4,#03H ;地址歸位
LCALL WriteCommand
MOV R4,#0CH ;0000,1100 整體顯示,游標(biāo)off,游標(biāo)位置
LCALL WriteCommand
MOV R4,#01H ;0000,0001 清DDRAM
LCALL WriteCommand
MOV R4,#06H ;光標(biāo)右移,畫(huà)面不移動(dòng),AC加1
LJMP WriteCommand
;============ 清屏 ============
LcmClearTXT:
MOV R4,#30H
LCALL WriteCommand
MOV R4,#80H
LCALL WriteCommand
CLR A
MOV R3,A
LCT1: MOV R4,#20H
LCALL WriteData
INC R3
CJNE R3,#64,LCT1
RET
;============ 延時(shí)1秒(11.0592MHz) ===============
Delay: PUSH 30H
PUSH 31H
PUSH 32H
MOV 30H,#34
MOV 31H,#159
MOV 32H,#56
NEXT: DJNZ 32H,NEXT
DJNZ 31H,NEXT
DJNZ 30H,NEXT
POP 32H
POP 31H
POP 30H
RET
;========== 要顯示的字符串 ==========
DAB1: DB 04CH,043H,044H,031H,032H,038H,036H,034H,0B4H,0AEH,0D0H,0D0H,0CDH,0A8H,0D0H,0C5H
DAB2: DB 0C0H,0FDH,0B3H,0CCH,0A3H,0A8H,0BBH,0E3H,0B1H,0E0H,0D3H,0EFH,0D1H,0D4H,0A3H,0A9H
DAB3: DB 020H,020H,020H,020H,0D1H,0EEH,0D0H,0A1H,0C7H,0BFH,020H,020H,020H,020H,020H,020H
DAB4: DB 020H,020H,032H,030H,031H,038H,0C4H,0EAH,031H,030H,0D4H,0C2H,020H,020H,020H,020H
END
LCD12864串行通信匯編程序.zip
(2.84 KB, 下載次數(shù): 38)
2018-10-9 06:33 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
lanhua520
時(shí)間:
2020-4-18 10:51
感謝貢獻(xiàn)!
值得學(xué)習(xí)!
作者:
lanhua520
時(shí)間:
2020-4-18 11:16
并行通訊的液晶屏可以當(dāng)串口使用么?
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产精品视频
|
久久机热
|
中文字幕视频在线观看免费
|
亚洲成年影院
|
av日韩在线播放
|
国产精品久久久久久久久久免费看
|
国产女人精品视频
|
一区在线观看视频
|
天天精品在线
|
亚洲精品综合一区二区
|
精品一区二区三区av
|
色婷婷综合久久久中字幕精品久久
|
欧美99久久精品乱码影视
|
在线一区二区三区
|
日韩在线一区二区三区
|
一区精品在线观看
|
最新中文字幕在线播放
|
亚洲午夜精品久久久久久app
|
九九伦理片
|
日韩欧美一区二区三区四区
|
精品一区二区三区四区
|
欧美视频成人
|
都市激情亚洲
|
欧美一区二区视频
|
亚洲综合无码一区二区
|
久久免费精品
|
国产婷婷在线视频
|
日韩欧美中文在线
|
国产乱码精品1区2区3区
|
亚洲欧美中文日韩在线v日本
|
有码在线
|
自拍偷拍第一页
|
欧美一区二区在线免费观看
|
日本在线播放一区二区
|
欧美激情精品久久久久久变态
|
欧美一区二区三区免费电影
|
久久9999久久
|
国产精品成人一区二区三区
|
国产欧美一区二区三区久久
|
成人一区二区三区在线
|
91麻豆精品国产91久久久更新资源速度超快
|