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