日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
ht1621 LCD通用驅(qū)動(dòng)實(shí)例
ht1621 LCD通用驅(qū)動(dòng)實(shí)例
 更新時(shí)間:2008-7-26 19:51:28  點(diǎn)擊數(shù):3
【字體: 字體顏色

來(lái)源:HT    作者:

 

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

;HT1621B控制位(液晶模塊接口定義,用戶根據(jù)自已的需要更改)
CS BIT P0.1 ;HT1621B片選
WRITE BIT P0.3 ;HT1621B寫(xiě)控制位
SDATA BIT P0.5 ;HT1621B數(shù)據(jù)線

;顯示緩沖區(qū)(用戶根據(jù)自已的需要更改變量的存儲(chǔ)地址)
DISBUFFER EQU 34H ;顯示緩沖區(qū)地址34H--43H(16
字節(jié))

;臨時(shí)變量定義(不會(huì)破壞這些資源,只是臨時(shí)占用,用戶不要自行修改)
lcdbitcnt EQU 03H ;發(fā)送位計(jì)數(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    設(shè)置1621進(jìn)行掉電工作方式
; INTI1621    初化1621,并打開(kāi)LCD顯示,用戶可更改相應(yīng)初化字,進(jìn)行1621的不同設(shè)
置。
; BrushLcd 刷新LCD顯示,即將顯示緩沖區(qū)的16字節(jié)數(shù)據(jù)發(fā)送到1621,從SEG0
段開(kāi)始。
; DISDPTR    將DPTR指向的程序存儲(chǔ)器的數(shù)據(jù)(連續(xù)16字節(jié))發(fā)送到1621顯示。
;這此子程序都會(huì)自動(dòng)保護(hù)所需的臨時(shí)單元,所以占用較多的堆棧,用戶要注意這一點(diǎn)。
;===============================================================================
====

;發(fā)送命令程序
;名稱: Send1621Com
;描述: 向HT1621B發(fā)送控制命令,命令內(nèi)容在LCDCOMMAND中。
;所發(fā)的命令類(lèi)型為ID=100+0+命令,占用堆棧。
Send1621Com:
PUSH ACC
PUSH LCDBITCNT
ACALL INTI ;起動(dòng)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
POP LCDBITCNT
POP ACC
RET

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

;HT1621B掉電模式
;使1621進(jìn)行掉電模式,以降低功耗
HT1621DOWN:
PUSH LCDCOMMAND
MOV LCDCOMMAND,#SYSDIS ;關(guān)閉系統(tǒng)振蕩器即進(jìn)行掉電
方式
ACALL Send1621Com                  
POP LCDCOMMAND
RET

;1621設(shè)置
;描述:進(jìn)行1621的基本設(shè)置,偏壓、背極、系統(tǒng)工作方式
;用戶添加初化內(nèi)容或更改設(shè)置內(nèi)容。
INTI1621:
PUSH LCDCOMMAND
MOV LCDCommand,#bias                    
ACALL  Send1621Com ;工作于1/3偏壓,
4背極                 
MOV LCDCommand,#X32K       
ACALL Send1621Com ;系統(tǒng)時(shí)鐘選擇為
外部時(shí)鐘
MOV LCDCommand,#wdtdis          
ACALL Send1621Com ;關(guān)閉看門(mén)狗
MOV LCDCommand,#timerdis        
ACALL Send1621Com                                  
MOV LCDCommand,#sysen ;啟動(dòng)1621系統(tǒng)振蕩器
ACALL Send1621Com                 
MOV LCDCommand,#LCDON ;啟動(dòng)1621顯示偏壓發(fā)生器,啟
動(dòng)顯示
ACALL Send1621Com
POP LCDCOMMAND
RET  

;刷新顯示子程序
;名稱:BrushLcd
;描述:把顯示緩沖區(qū)DISBUFFER共16個(gè)單元的內(nèi)容送到1621中
BrushLcd:
PUSH LCDBYTECNT
PUSH LCDADR
MOV LCDBYTECNT,#16 ;發(fā)送16個(gè)數(shù)據(jù)
MOV LCDADR,#DISBUFFER ;指向顯示緩沖區(qū)
DISPLAY0:
LCALL SEND1621DATA ;調(diào)用發(fā)送數(shù)據(jù)子
程序,從SEG0段開(kāi)始
POP LCDADR
POP LCDBYTECNT
RET

;函數(shù)名:DISDPTR
;功能:    把DPTR指向的程序存貯器的16個(gè)字節(jié)內(nèi)容直接送到1621的顯示緩沖區(qū)內(nèi)
;參數(shù):    DPTR-緩沖區(qū)指針
;返回值:無(wú)
DISDPTR:
PUSH 07H
PUSH 00H
PUSH 06H
PUSH ACC
MOV R7,#10H ;設(shè)置各指針及變
量初值
MOV R0,# DISBUFFER ;先把數(shù)據(jù)讀入顯
示緩沖區(qū)
MOV R6,#00
ICERRORCON:
MOV A,R6
MOVC A,@A+DPTR ;讀取程序區(qū)的數(shù)據(jù)
MOV @R0,A ;放入顯示緩沖區(qū)
INC R0
INC R6
DJNZ R7,ICERRORCON
ACALL BrushLcd ;輸出顯示
POP ACC
POP 06H
POP 00H
POP 07H
RET

;*******************************************************************
;                 子程序
;用啟盡量不要單獨(dú)的調(diào)用這此子程序
;***********************************************

;************************************************
;發(fā)送數(shù)據(jù)程序
;名稱: Send1621Data
;描述: 向HT1621B發(fā)送BYTECNT個(gè)數(shù)據(jù)(從SEG0開(kāi)始發(fā)送)
;           數(shù)據(jù)在發(fā)送緩沖區(qū)中,緩沖區(qū)指針lcdadr.
;-----------------------------------------------
Send1621Data:
PUSH ACC
PUSH LCDBITCNT
PUSH LCDBYTECNT
PUSH LCDADR
ACALL INTI
MOV LCDBITCNT,#01H ;發(fā)送寫(xiě)1621RAM命

MOV A,#80H ;發(fā)送1位數(shù)據(jù)
ACALL SENDB0
MOV A,#40H ;1621RAM地址設(shè)置
為00H
ACALL SEND1621BYTE
MOV R1,LCDADR
SENDNEXT1:
MOV A,@R1 ;讀取數(shù)據(jù)
ACALL SEND1621BYTE ;發(fā)送數(shù)據(jù)
INC R1
DJNZ LCDBYTECNT,SENDNEXT1
SETB WRITE
SETB CS
SETB SDATA
POP LCDADR
POP LCDBYTECNT
POP LCDBITCNT
POP ACC
RET

;************************************************
;1621初始化子程序
;即起動(dòng)1621
;-----------------------------------------------
INTI:
CLR CS
SETB WRITE
NOP
CLR WRITE
NOP
RET


;******************************************************************
;發(fā)送字節(jié)數(shù)據(jù)子程序
;名稱: Send1621Byte
;描述: 向HT1621B發(fā)送一個(gè)字節(jié)數(shù)據(jù),數(shù)據(jù)在A中
;-----------------------------------------------
Send1621Byte:
PUSH LCDBITCNT
MOV lcdbitcnt,#08h ;發(fā)送8位數(shù)據(jù)位
ACALL SENDB0 ;調(diào)用發(fā)送數(shù)據(jù)位
子程序
POP LCDBITCNT
RET

;******************************************************************
;發(fā)送位數(shù)據(jù)子程序
;名稱: sendb0
;描述: 向HT1621B發(fā)送N位數(shù)據(jù),數(shù)據(jù)在A中,N在LCDBITCNT中,從高位開(kāi)始發(fā)送
;-----------------------------------------------
SENDB0:
PUSH ACC
PUSH PSW
PUSH LCDBITCNT
SENDB01:
RLC A
MOV SDATA,C ;先發(fā)送高位數(shù)據(jù)
SETB WRITE ;產(chǎn)生WR信號(hào)
NOP
NOP
CLR WRITE
NOP
NOP
DJNZ LCDBITCNT,SENDB01 ;未發(fā)送完,繼續(xù)
POP LCDBITCNT
POP PSW
POP ACC
RET

;========================================================
;表格區(qū)
;ZY886A型LCD數(shù)字顯示表(0-F),供用戶轉(zhuǎn)換使用。(以上程序不用此表)
LCDData:
DB  0EBH,60H,0C7H,0E5H,6CH,0ADH,0AFH,0E0H,0EFH,0EDH,0EEH,2FH,07H,67H,8FH,8EH
;===============================================================
;
;以上程序是HT1621的通用程序,對(duì)不同的LCD只是其字模不一樣而以。

 

  • 上一篇: 用單片機(jī)驅(qū)動(dòng)電磁式繼電器的方法
  • 下一篇: 51單片機(jī)最小系統(tǒng)原理及編程電路設(shè)計(jì)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1