;LCD 設定(命令模式字的低8位數(shù)據(jù)) BIAS EQU 52H 1/3 偏壓4背極 RC256 EQU 30H 系統(tǒng)時鐘選用片 內(nèi)RC振蕩器 SYSEN EQU 02H 打開系統(tǒng)時鐘 LCDON EQU 06H 打開偏壓發(fā)生器 SYSDIS EQU 00H 關(guān)閉系統(tǒng)時鐘和 偏壓發(fā)生器 X32K EQU 28H 系統(tǒng)時鐘選擇為 片外晶振 ToneOn EQU 12H 打開音頻輸出 ToneOff EQU 10H 關(guān)閉音頻輸出 Tone4k EQU 80H 音頻輸出頻率為 4K Tone2k EQU 0C0H 音頻輸出頻率為2K TIMEREN EQU 0CH 時基輸出使能 TIMERDIS EQU 08H 時基輸出禁能 CLRtime EQU 18H 清零進基發(fā)生器 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控制位(液晶模塊接口定義,用戶根據(jù)自已的需要更改) CS BIT P0.1 HT1621B片選 WRITE BIT P0.3 HT1621B寫控制位 SDATA BIT P0.5 HT1621B數(shù)據(jù)線
;顯示緩沖區(qū)(用戶根據(jù)自已的需要更改變量的存儲地址) DISBUFFER EQU 34H 顯示緩沖區(qū)地址34H--43H(16 字節(jié))
;臨時變量定義(不會破壞這些資源,只是臨時占用,用戶不要自行修改) lcdbitcnt EQU 03H 發(fā)送位計數(shù)器 lcdcommand EQU 02H 發(fā)送命令緩沖器 lcdadr EQU 01H lcd顯存指針 LCDBYTECNT EQU 04H 發(fā)送字節(jié)數(shù)記數(shù)器
;=============================================================================== ==== ; 向HT1621B發(fā)送命令和數(shù)據(jù)模塊 ;軟件包面向用戶的界面程序: ; Send1621Com 發(fā)送命令子程序,命令I(lǐng)D為100+0型式 + 命令字 ; Send1621ComB 發(fā)送命令子程序(B),命令I(lǐng)D為100+1型式 + 命令字 ; HT1621DOWN 設置1621進行掉電工作方式 ; INTI1621 初化1621,并打開LCD顯示,用戶可更改相應初化字,進行1621的不同設 置。 ; BrushLcd 刷新LCD顯示,即將顯示緩沖區(qū)的16字節(jié)數(shù)據(jù)發(fā)送到1621,從SEG0 段開始。 ; DISDPTR 將DPTR指向的程序存儲器的數(shù)據(jù)(連續(xù)16字節(jié))發(fā)送到1621顯示。 ;這此子程序都會自動保護所需的臨時單元,所以占用較多的堆棧,用戶要注意這一點。 ;=============================================================================== ====
;發(fā)送命令程序 ;名稱: Send1621Com ;描述: 向HT1621B發(fā)送控制命令,命令內(nèi)容在LCDCOMMAND中。 ;所發(fā)的命令類型為ID=100+0+命令,占用堆棧。 Send1621Com: PUSH ACC PUSH LCDBITCNT ACALL INTI 起動1621(即初 化) MOV LCDBITCNT,#04h MOV A,#80h 發(fā)送ID值100+0 ACALL sendb0 MOV A,LCDCOMMAND 取得命令字 ACALL send1621byte 發(fā)送到1621 SETB write SETB cs SETB sdata |