歡迎您光臨本站 登入註冊首頁

1621驅動程序

admin @ 2014-03-14 , reply:0

概述

LCD設定(命令模式字的低8位數據)BIASEQU52H1/3偏壓4背極RC256EQU30H系統時鐘選用片內RC振蕩器SYSENEQU02H打開系統時鐘LCDONEQU06H打開偏壓發生器SYSDI……

LCD 設定(命令模式字的低8位數據)
BIAS EQU 52H 1/3 偏壓4背極
RC256 EQU 30H 系統時鐘選用片
內RC振蕩器
SYSEN EQU 02H 打開系統時鐘
LCDON EQU 06H 打開偏壓發生器
SYSDIS EQU 00H 關閉系統時鐘和
偏壓發生器
X32K EQU 28H 系統時鐘選擇為
片外晶振       
ToneOn EQU 12H 打開音頻輸出
ToneOff EQU 10H 關閉音頻輸出
Tone4k EQU 80H 音頻輸出頻率為
4K
Tone2k EQU 0C0H         音頻輸出頻率為2K
TIMEREN EQU 0CH   時基輸出使能
TIMERDIS EQU 08H 時基輸出禁能
CLRtime         EQU 18H 清零進基發生器
WDTEN EQU 0EH 使能WDT溢出標誌
輸出
WDTDIS EQU 0AH 禁止WDT溢出標誌
輸出
CLRWDT EQU 1CH 清零WDT
IRQEN EQU 10H 使能IRQ輸出
IRQDIS EQU 00H 禁止IRQ輸出
FR1 EQU 40H 設置時基輸出
1HZ,WDT溢出時間4s

;HT1621B控制位(液晶模塊介面定義,用戶根據自已的需要更改)
CS BIT P0.1 HT1621BƬѡ
WRITE BIT P0.3 HT1621B寫控制位
SDATA BIT P0.5 HT1621B數據線

;顯示緩衝區(用戶根據自已的需要更改變數的存儲地址)
DISBUFFER EQU 34H 顯示緩衝區地址34H--43H(16
位元組)

;臨時變數定義(不會破壞這些資源,只是臨時佔用,用戶不要自行修改)
lcdbitcnt EQU 03H 發送位計數器
lcdcommand EQU 02H 發送命令緩衝器
lcdadr EQU 01H lcd顯存指針
LCDBYTECNT EQU 04H 發送位元組數記數器

;===============================================================================
====         
;                              向HT1621B發送命令和數據模塊
;軟體包面向用戶的界面程序:
; Send1621Com    發送命令子程序,命令ID為100+0型式 + 命令字
; Send1621ComB    發送命令子程序(B),命令ID為100+1型式 + 命令字
; HT1621DOWN    設置1621進行掉電工作方式
; INTI1621    初化1621,並打開LCD顯示,用戶可更改相應初化字,進行1621的不同設
置。
; BrushLcd 刷新LCD顯示,即將顯示緩衝區的16位元組數據發送到1621,從SEG0
段開始。
; DISDPTR    將DPTR指向的程序存儲器的數據(連續16位元組)發送到1621顯示。
;這此子程序都會自動保護所需的臨時單元,所以佔用較多的堆棧,用戶要注意這一點。
;===============================================================================
====

;發送命令程序
;名稱: Send1621Com
;描述: 向HT1621B發送控制命令,命令內容在LCDCOMMAND中。
;所發的命令類型為ID=100+0+命令,佔用堆棧。
Send1621Com:
PUSH ACC
PUSH LCDBITCNT
ACALL INTI 起動1621(即初
化)
MOV LCDBITCNT,#04h
MOV A,#80h        發送ID值100+0
ACALL sendb0
MOV A,LCDCOMMAND 取得命令字
ACALL send1621byte 發送到1621
SETB write
SETB cs
SETB sdata
POP LCDBITCNT
POP ACC
RET

;發送命令程序(B)
;名稱: Send1621ComB
;描述: 向HT1621B發送控制命令,命令內容在LCDCOMMAND中。
;所發的命令類型為ID=100+1+命令,佔用堆棧。
Send1621ComB:
PUSH ACC
PUSH LCDBITCNT
ACALL INTI 起動1621(即初
化)
MOV LCDBITCNT,#04h
MOV A,#90h 發送ID值100+1
ACALL sendb0
MOV A,LCDCOMMAND
ACALL send1621byte
SETB write 將SPI介面均置為
高電平
SETB cs
SETB sdata
POP LCDBITCNT
POP ACC
RET

;HT1621B掉電模式
;使1621進行掉電模式,以降低功耗
HT1621DOWN:
PUSH LCDCOMMAND
MOV LCDCOMMAND,#SYSDIS 關閉系統振蕩器即進行掉電
方式
ACALL Send1621Com                 
POP LCDCOMMAND
RET

;1621設置
;描述:進行1621的基本設置,偏壓、背極、系統工作方式
;用戶添加初化內容或更改設置內容。
INTI1621:
PUSH LCDCOMMAND
MOV LCDCommand,#bias                   
ACALL  Send1621Com 工作於1/3偏壓,
4背極                
MOV LCDCommand,#X32K      
ACALL Send1621Com 系統時鐘選擇為
外部時鐘
MOV LCDCommand,#wdtdis         
ACALL Send1621Com 關閉看門狗
MOV LCDCommand,#timerdis       
ACALL Send1621Com                                 
MOV LCDCommand,#sysen 啟動1621系統振蕩器
ACALL Send1621Com                

[admin via 研發互助社區 ] 1621驅動程序已經有3035次圍觀

http://cocdig.com/docs/show-post-388.html