
投訴熱線:13148701893
聯(lián)系人:鄧小姐
傳真:0755-27315661
0760-85884496
座機:0755-29769890-0
0760-85884486
辦公地址:深圳市寶安區(qū)福永塘尾富華工業(yè)區(qū)11棟3樓
工廠地址:廣東省中山市三鄉(xiāng)鎮(zhèn)萬里路1號平鋪工業(yè)區(qū)B棟三樓
[LCD液晶屏]段碼LCD液晶屏參考程序介紹
來源: 發(fā)布時間:2021-05-20 點擊量:4193
段碼LCD液晶屏參考程序介紹?是不是有很多人不明白是什么意思?然后也不知從而下手,有時還會盲目去接觸,然后導(dǎo)致沒必要的麻煩出現(xiàn),不過任何問題都不用擔(dān)心,接下來就由我給各位介紹一下段碼LCD液晶屏參考程序介紹,讓您能夠更加了解關(guān)于這方面的內(nèi)容,相信您看完之后會有收獲的!
段碼液晶參考程序
程序清單
文件名:CAT888.asm
項目: IC卡水表LCD顯示模塊演示程序(1.1版)
描述: 啟動程序即進入正常顯示狀態(tài)(循環(huán)顯示一系列數(shù)字0~F),并通過KEY按鍵進入全顯示狀態(tài)
(測功耗)、掉電狀態(tài)(測功耗)及關(guān)斷LCM電源(GND端),依此循環(huán)。
最后更新日期:2017/12/04
;特殊功能寄存器SFR和位地址定義
AUXR1 DATA 0A2H ;輔助功能寄存器,不可位尋址
DIVM DATA 95H ;MCU時鐘除數(shù)控制寄存器
P0M1 DATA 84H ;0口工作模式選擇寄存器1
P0M2 DATA 85H ;0口工作模式選擇寄存器1
P1M1 DATA 91H
P1M2 DATA 92H
PT0AD DATA 0F6H ;0口數(shù)字輸入功能禁止寄存器
LED1 BIT P0.0 ;狀態(tài)燈定義
LED2 BIT P1.7 ;正常顯示狀態(tài)時LED1點亮,全顯示狀態(tài)時
LED3 BIT P1.6 ;LED2點亮,掉電狀態(tài)時LED3點亮,關(guān)斷LCM電
LED4 BIT P1.4 ;源狀態(tài)時LED4點亮。
LCMC BIT P0.7 ;LCM的GND控制輸出端,實現(xiàn)LCM的電源控制
KEY BIT P1.1 ;KEY的IO定義
keyin BIT 10H ;定義有鍵盤輸出標(biāo)志位
定義顯示數(shù)據(jù)計數(shù)變量
DCONT DATA 50H ;用于顯示位的計數(shù)
狀態(tài)標(biāo)志位定義
FLAGS1 DATA 2EH ;狀態(tài)標(biāo)志寄存器1
EMI BIT FLAGS1.0;電磁干擾標(biāo)志
PASS BIT FLAGS1.2;水閥打開/關(guān)閉標(biāo)志位
OUT BIT FLAGS1.3;IC卡退出標(biāo)志位(退卡后M3才顯示)
SALEWATR BIT FLAGS1.4;剩余金額不足標(biāo)志位(顯示'請購水')
POWERDOWN BIT FLAGS1.5;電池電壓不足標(biāo)志位
CUR BIT FLAGS1.6;本次購水金額/剩余金額標(biāo)志位
XPLAN BIT FLAGS1.7;超計劃標(biāo)志位
程序開始
ORG 0000H
AJMP RESET
ORG 0080H
RESET
安全設(shè)置
MOV DIVM,#1 ;CPU工作頻率降至正常時的1/4
MOV SP,#59H ;設(shè)堆棧指針
MOV TMOD,#01H ;使能定時器0
顯示數(shù)據(jù)初化
MOV DCONT,#0
MOV FLAGS1,#00H
MAIN:
LCD工作方式設(shè)定
CLR LCMC ;打開LCM電源
MOV P1M1,#00H ;將P1.7,P1.6,P1.4置為上拉輸出
MOV P1M2,#0D0H
MOV P0M1,#00H ;將P0.7置為上拉輸出
MOV P0M2,#01H
ACALL INTI1621
MOV LCDCOMMAND,#Tone4k ;設(shè)置音頻輸出頻率為4KHZ
ACALL Send1621Com
進入正常顯示狀態(tài)
正常顯示情況下,不發(fā)送數(shù)據(jù)時,把SPI口均置為高
SETB LED1 ;點亮LED1
CLR LED2
CLR LED3
CLR LED4
ACALL RUNOK
進入全顯示狀態(tài)
LCD各段均顯示,然后SPI口設(shè)為高阻態(tài)
CLR LED1
SETB LED2
ACALL RUNALL
進入掉電狀態(tài)
掉電狀態(tài)是把HT1621設(shè)置為掉電方式,以降低功耗
CLR LED2
SETB LED3
ACALL RUNDOWN
進入關(guān)斷電源狀態(tài)
關(guān)斷HT1621電源,以降低功耗
CLR LED3
SETB LED4
ACALL RUNNOP
SJMP MAIN
;RUNOK
從0到f循環(huán)顯示LCD數(shù)位(數(shù)字右移)
顯示1秒后,所有數(shù)字均加1(即緩沖區(qū)加11H)
RUNOK: ;打開各標(biāo)志符號
SETB EMI ;電磁干擾標(biāo)志,顯示
SETB PASS ;水閥打開/關(guān)閉標(biāo)志位,顯示開
SETB OUT ;IC卡退出標(biāo)志位(退卡后M3才顯示),顯示退卡
SETB SALEWATR ;顯示'請購水'
SETB POWERDOWN ;電池電壓不足標(biāo)志位,顯示
SETB CUR ;本次購水金額/剩余金額標(biāo)志位,顯示本次金額
SETB XPLAN ;超計劃標(biāo)志位,顯示
CLR keyin ;清除keyin標(biāo)志位
ACALL LOADDAT ;裝載數(shù)據(jù)
CLR C
MOV A,#9
SUBB A,DCONT ;判斷DCONT是否大于9,大于9則打開蜂鳴器
JNC RUNOK_L1
MOV LCDCOMMAND,#ToneOn
ACALL Send1621Com
RUNOK_L1:
ACALL BrushLcd
ACALL DELAY_1S
MOV LCDCOMMAND,#ToneOff ;關(guān)閉蜂鳴器
ACALL Send1621Com
ACALL DELAY_1S ;延時并接收按鍵
ACALL DELAY_1S
ACALL DELAY_1S
INC DCONT ;計數(shù)器加1
CLR C
MOV A,#0FH ;若DCONT的值大于0FH,則復(fù)位為0
SUBB A,DCONT
JNC RUNOK_L2
MOV DCONT,#0
ACALL INTI1621 ;重新設(shè)置1621
MOV LCDCOMMAND,#Tone4k ;設(shè)置音頻輸出頻率為4KHZ
ACALL Send1621Com
RUNOK_L2:
JNB keyin,RUNOK ;判斷是否有按鍵,有則退出正常顯示方式
RET
數(shù)據(jù)裝載程序
將計數(shù)數(shù)據(jù)進行字模轉(zhuǎn)換后放入顯示緩沖區(qū),包括狀態(tài)字段。
LOADDAT:
MOV R0,#DISBUFFER ;指定顯示地址為SEG0開始
MOV R1,DCONT
MOV R7,#10 ;寫入12個數(shù)據(jù)
LOAD_L1: ;將數(shù)據(jù)填充顯示緩沖區(qū)
MOV A,R1
MOV DPTR,#LCDData
MOVC A,@A+DPTR ;字模轉(zhuǎn)換
MOV @R0,A
INC R0 ;緩沖區(qū)的下一個地址
DJNZ R7,LOAD_L1
JNB EMI,HOLD0 ;EMI=1時,
ORL DISBUFFER,#10H ;顯示電磁干擾信號
HOLD0:
JNB PASS,HOLD1
ORL DISBUFFER+1,#10H ;PASS=1時,顯示'開'
SJMP HOLD2
HOLD1:
ORL DISBUFFER+2,#10H ;否則顯示'關(guān)'
HOLD2:
JNB OUT,HOLD3 ;OUT=1時
ORL DISBUFFER+3,#10H ;顯示'退卡'
SJMP HOLD4
HOLD3:
ORL DISBUFFER+6,#10H ;否則顯示'M3'
HOLD4:
JNB SALEWATR,HOLD5
ORL DISBUFFER+4,#10H ;顯示'請購水'
HOLD5:
JNB XPLAN,HOLD6
ORL DISBUFFER+5,#10H ;'超計劃'
HOLD6:
JNB POWERDOWN,HOLD7
ORL DISBUFFER+8,#10H ;電池缺電符號
HOLD7:
ORL DISBUFFER+9,#10H ;單位'元'
JNB CUR,HOLD8
MOV DISBUFFER+10,#05H ;'本次金額'
RET
HOLD8:
MOV DISBUFFER+10,#03H ;'剩余金額'
RET
;RUNALL
;全顯示輸出,把SPI接口置為高阻態(tài),以便測量LCM功耗
RUNALL:
MOV R7,#12
MOV R0,#DISBUFFER
RUNALL_L1:
MOV @R0,#0FFH ;裝入數(shù)據(jù)0FFH
INC R0
DJNZ R7,RUNALL_L1
ACALL BrushLcd ;刷新LCD顯示
ORL P0M1,#2AH ;設(shè)置IO口為高阻態(tài)
ANL P0M2,#0D5H
MOV PT0AD,#2AH
RUNALL_L2: ;等待按鍵
JB KEY,$
MOV R7,#0FFH
DJNZ R7,$
JB KEY,RUNALL_L2
JNB KEY,$
ANL P0M1,#0D5H ;恢復(fù)IO口
MOV PT0AD,#00H
RET
RUNDOWN
掉電方式,把SPI接口置為高阻態(tài),以便測量LCM功耗
RUNDOWN:
ACALL HT1621DOWN ;進入掉電狀態(tài)
ORL P0M1,#2AH ;IO口置為高阻態(tài)
ANL P0M2,#0D5H
MOV PT0AD,#2AH
RUNDOWN_L1:
JB KEY,$ ;等待按鍵
MOV R7,#0FFH ;去抖動
DJNZ R7,$
JB KEY,RUNDOWN_L1
JNB KEY,$ ;等待按鍵放放開
RET
RUNNOP
關(guān)斷LCD電源,把SPI接口置為高阻態(tài)。
RUNNOP:
SETB LCMC ;關(guān)斷LCM電源
RUNNOP_L1: ;等待按鍵操作
JB KEY,$
MOV R7,#0FFH
DJNZ R7,$
JB KEY,RUNNOP_L1
JNB KEY,$
ANL P0M1,#0D5H ;恢復(fù)IO口設(shè)置
MOV PT0AD,#00H
CLR LCMC ;打開LCM電源
RET
延時1S子程序
在延時過程序可以判斷有無按鍵,有按鍵時置位keyin位,無按
鍵時不對keyin操作。
DELAY_1S:
SETB TR0 ;啟動定時器
MOV R0,#2
BACK:
MOV TL0,#0B0H ;置初值
MOV TH0,#3CH
DL:
JB KEY,DL_1
MOV R7,#0FFH ;有按鍵,進行去抖動處理
DJNZ R7,$
JB KEY,DL_1
SETB keyin ;是按鍵,置位keyin
DL_1:
JNB TF0,DL
CLR TF0
DJNZ R0,BACK ;等待定時時間到
JNB KEY,$ ;等待按鍵放開
RET
包含1621操作軟件包
$INCLUDE(LCD1621.INC) ;包含頭文件,頭文件內(nèi)已定義SPI,顯示緩沖區(qū),及各操作變量,ZY886A型LCD數(shù)字顯示表等
以上為各位介紹了段碼LCD液晶屏參考程序介紹,如果您感興趣和想要了解這方面的話,可以咨詢我們官網(wǎng),專業(yè)人員會立即與您溝通,為您解答!
相關(guān)產(chǎn)品
熱點資訊
- 廣州lcd液晶模組生產(chǎn)廠家2021-08-23
- 佛山lcd液晶顯示屏加工2021-08-23
- 上海12864中文字庫液晶價格2021-08-22
- 湖南LCM中文字庫液晶批發(fā)2021-08-22
- 湖北LCD液晶屏加工價格2021-08-21
- 惠州LCD液晶屏加工生產(chǎn)廠家2021-08-21
- 深圳lcd液晶顯示屏加工2021-08-20
- 杭州lcd液晶模組價格2021-08-20