深圳市佳顯電子技術有限公司

10年專注LCD、LCM中文字庫液晶研發生產

全國咨詢服務熱線: 0760-85884496

聯系方式
LCM中文字庫液晶聯系我們

傳真:0760-855884496
座機:0760-85884496  0760-85884486
郵箱:jxdlx107@goodview-lcd.com
地址:廣東省深圳市寶安區福永鎮塘尾富華工業區第11棟3樓


電話:0755-29769890  0755-27315661  

工廠地址:廣東省中山市三鄉鎮萬里路1號平鋪工業區B棟








段碼LCD液晶屏參考程序

來源:lcd液晶模塊,lcd液晶屏定制,lcm液晶模組廠家   發布時間:2017-12-04   點擊量:2198

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液晶模塊,lcd液晶屏定制,lcm液晶模組廠家

傳真:  0760-85884486    0755-29769890
座機:  0760-85884496    0755-27315661
郵箱:jxdlx107@goodview-lcd.com

工廠地址:廣東省中山市三鄉鎮萬里路1號平鋪工業區B棟

辦公地址:深圳市寶安區福永塘尾富華工業區11棟3樓






Copyrights©2017 深圳市佳顯電子技術有限公司 All Rights Reserved
備案號: 粵ICP備17051216號

阿里巴巴二維碼

阿里巴巴二維碼

網站二維碼

網站二維碼

伏枫网-小松千春,日本三级片,日本小松千春极品a级片&