HT1621B通用程序集錦_第1頁(yè)
HT1621B通用程序集錦_第2頁(yè)
HT1621B通用程序集錦_第3頁(yè)
HT1621B通用程序集錦_第4頁(yè)
HT1621B通用程序集錦_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、* *AT89C51單片機(jī)控制 HT1621B 驅(qū)動(dòng) LCD*(全顯示程序)*/#in elude <reg51.h>#in elude vintrin s.h>#defi neBIAS 0X501/2偏壓,4背極/#defi neRC256 0X30II系統(tǒng)時(shí)鐘選擇為片內(nèi)RC振蕩器#defi neRC2560X38#defi neWDTDIS1 0X0A/禁止WDT溢出標(biāo)志輸出#defi neTIMERDIS 0X08/時(shí)基輸出禁能#defi neSYSEN 0X02/打開(kāi)系統(tǒng)時(shí)鐘#defi neLCDON 0X06/打開(kāi)偏壓發(fā)生器#defi neSYSDIS 0X00/關(guān)

2、閉系統(tǒng)時(shí)鐘和偏壓發(fā)生器#defi ne_NOP() _nop_()sbit LED=P2A0;sbit CS=P2A7;sbit WRD=P2A6;sbit DATA=P2A5;#define uehar unsigned char#define uint unsigned intvoid SENDBYTE (uehar dat);void SENDBIT (uehar dat,ueharbitent);/*延時(shí)子函*/void delay1s()/ 延時(shí) 1Suchar i;uint j;for(i=0;i<10;i+)for(j=0;j<1300;j+);void delay1

3、s()/ 延時(shí) 1Svoid delay1s()/ 延時(shí) 1S*HT1621B初始化*void delay1s()/ 延時(shí) 1Svoid delay1s()/ 延時(shí) 1S/ 初始化 HT1621void START_HT1621()CS=1;WRD=1;DATA=1;/delay();_NOP();CS=0;CS=0;WRD=0;WRD=0;void delay1s()/ 延時(shí) 1Svoid delay1s()/ 延時(shí) 1S/*發(fā)送命令子函數(shù) A*/void delay1s()/ 延時(shí) 1Svoid delay1s()/ 延時(shí) 1Svoid SENDCOMA(uchar com)/發(fā)送命令 A

4、, ID=100+0void delay1s()/ 延時(shí) 1Svoid delay1s()/ 延時(shí) 1SSTART_HT1621();SENDBIT(0X80,4);SENDBYTE(com);void delay1s()/ 延時(shí) 1Svoid delay1s()/ 延時(shí) 1S/*發(fā)送命令子函數(shù) B*/void delay1s()/ 延時(shí) 1Svoid delay1s()/ 延時(shí) 1Svoid SENDCOMB(uchar adr)/發(fā)送命令B,發(fā)送顯示數(shù)據(jù)void delay1s()/ 延時(shí) 1SSTART_HT1621();/HT1621 初始化SENDBIT(0XA0,4);/發(fā)送寫(xiě)數(shù)據(jù)

5、ID: 101+6位LCD之RAM地址第1位SENDBIT(adr,5);/ 然后發(fā)送地址后 5 位*發(fā)送命令子函數(shù)C*/ 發(fā)送命令 C, ID=100+1void SENDCOMC(uchar com)START_HT1621();SENDBIT(0X90,4);SENDBYTE(com);*按位發(fā)送數(shù)據(jù)子函數(shù)*/ 從最高位發(fā)送/ 在 WRD 的上升沿,數(shù)據(jù)寫(xiě)入 HT1621Bvoid SENDBIT (uchar dat,uchar bitcnt) / 按位發(fā)送數(shù)據(jù)uchar i;for(i=0;i<bitcnt;i+)if(dat&0x80)=0X00)DATA=0;els

6、eDATA=1;/delay();_NOP();WRD=1;/delay();_NOP();WRD=0;dat=dat<<1;/*發(fā)送字節(jié)數(shù)據(jù)子函數(shù) */ 發(fā)送字節(jié)數(shù)據(jù)void SENDBYTE (uchar dat)SENDBIT(dat,8);/*LCD顯示子函數(shù) */void display(uchar dat)/LCD 顯示uchar i;SENDCOMB(0X00);/ 從 RAM 的 0X00 地址開(kāi)始放入數(shù)據(jù)SENDBYTE(dat);SENDBYTE(dat);for (i=0;i<2;i+)SENDBYTE(dat);/從 SEG0 開(kāi)始顯示數(shù)據(jù)/*HT16

7、21B 初始化設(shè)置 */void SETUP_HT1621()/HT1621 偏壓、背極、工作方式設(shè)置SENDCOMA(BIAS);SENDCOMA(RC256);SENDCOMA(SYSEN);delay1s();SENDCOMA(LCDON);SENDCOMA(WDTDIS1);SENDCOMA(TIMERDIS);/*主函數(shù) */main()/ 主函數(shù)LED=1;SETUP_HT1621();while(1)display(0XFF);/ 全顯示各位大牛下午好,我用STC12C520單片機(jī)控制1621驅(qū)動(dòng)液晶 程序調(diào)了幾天都沒(méi)進(jìn)展, 顯示的不知道什么亂七八糟的東西, 好像命令根本寫(xiě)不 進(jìn)

8、去,COM和 coml是個(gè)1v不到的電平,com3為3點(diǎn)幾V的電平,com4有時(shí)有 波形刷我自己寫(xiě)的程序就是這個(gè)樣子,SEGMENT部分有波形,其余就是一個(gè)電平打電話咨詢合泰技術(shù),讓我搞他們的范例,于是我修改了下,還是老樣子 大家?guī)臀铱纯词鞘裁磫?wèn)題,謝謝了 下面的就是從合泰網(wǎng)上下的范例,我稍微修改了下,基本是原封不動(dòng)的/STC12C5204AD單片機(jī)控制 HT1621B驅(qū)動(dòng) LCD#include <STC12C52XXAD.h> #include <stdio.h> #include <intrins.h>#define BIAS 0X52/1/3#def

9、ine RC256K 0X30/#define WDTDIS1 0X0A/#define TIMERDIS 0X08/#define SYSEN 0X02/#define SYSDIS 0X00/#define LCDON 0X06/#define LCDOFF 0X04/#define TONEON 0X12/#define TONEOFF 0X10/#define CS P3_2#define WR P3_4 #define DATA P3_5偏壓, 4背極系統(tǒng)時(shí)鐘選擇為片內(nèi)RC振蕩器 禁止 WD溢出標(biāo)志輸出 時(shí)基輸出禁止 打開(kāi)系統(tǒng)時(shí)鐘 關(guān)閉系統(tǒng)時(shí)鐘和偏壓發(fā)生器 打開(kāi)LCD偏壓發(fā)生器 關(guān)閉

10、LCD偏壓發(fā)生器 打開(kāi)音頻輸出 關(guān)閉音頻輸出延時(shí)子函數(shù)/j=12延時(shí)約 4.3us#define uchar unsigned char #define uint unsigned int /* void delay(uchar i)while(i-)uchar j=0;while(j<8)j+;void SendBit_1621(uchar dat ,uchar cnt)uchar i;for(i =0; i <cnt; i +)if(dat&0x80)=0)DATA=0;else DATA=1;WR=0;delay(2);WR=1;dat=dat<<1;vo

11、id SendDataBit_1621(uchar dat,uchar cnt) uchar i;for(i =0; i <cnt; i +)if(dat&0x01)=0) DATA=0;else DATA=1;WR=0;delay(2);WR=1;dat=dat>>1;void SendCmd(uchar command)CS=0;_nop_();_nop_();SendBit_1621(0x80,4);SendBit_1621(command,8);CS=1;void Write_1621(uchar addr,uchar dat)CS=0;_nop_();_no

12、p_();SendBit_1621(0xa0,3);SendBit_1621(addr,6);SendDataBit_1621(dat,4);CS=1;void WriteAll_1621(uchar addr,uchar *p,uchar cnt) uchar i;CS=0;_nop_();_nop_();SendBit_1621(0xa0,3);SendBit_1621(addr,6); for(i =0; i <cnt; i +,p+) SendDataBit_1621(*p,8);CS=1;主函數(shù) */* main()uchar a10;a0=0xFF;a1=0xFF;a2=0x

13、FF;a3=0xFF;a4=0xFF;a5=0xFF;a6=0xFF;a7=0xFF;a8=0xFF;a9=0xFF; a10=0xFF;a11=0xFF;a12=0xFF;a13=0xFF;a14=0xFF;a15=0xFF;SendCmd(BIAS);SendCmd(SYSEN);SendCmd(LCDON); / SendCmd(RC256K); WriteAll_1621(0,a,16); / SendCmd(LCDOFF);LCD驅(qū)動(dòng)程序 適用于HT1621/= #define Lcd_Delay _nop_();_nop_();_nop_();_nop_();_nop_();_no

14、p_() void Lcd_Data(uchar Start,uchar cData)/將數(shù)據(jù)當(dāng)中的字節(jié)與LCD上的進(jìn)行同步/ Start -要開(kāi)始同頁(yè)面地址,每個(gè)頁(yè)面為4個(gè)有效位,總其為32X4字節(jié)/ Length - 要同步的頁(yè)面數(shù)量uchar i;LCD_CS=0;Lcd_Delay;Lcd_Delay;Lcd_Delay; /Send ID 101BLCD_CLK=0;Lcd_Delay;LCD_IO=1;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LCD_CLK=0;Lcd_Delay;LCD_IO=0;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LC

15、D_CLK=0;Lcd_Delay;LCD_IO=1;Lcd_Delay;LCD_CLK=1;Lcd_Delay; /Send Address 6bitStart=Start*2; for(i=0;i<6;i+) if(Start&0x20) LCD_IO=1; else LCD_IO=0; Lcd_Delay;LCD_CLK=0;Lcd_Delay;Start=Start<<1;LCD_CLK=1;Lcd_Delay;/Send data 8bit for(i=0;i<8;i+) if(cData&0x01) LCD_IO=1; else LCD_IO

16、=0; Lcd_Delay; LCD_CLK=0; Lcd_Delay; cData=cData>>1; LCD_CLK=1; Lcd_Delay;LCD_CS=1;Lcd_Delay;/= void Lcd_Command(uchar Command)/向指定的LCD當(dāng)中寫(xiě)入一個(gè)命令/每個(gè)命令應(yīng)以 100三個(gè)位為起始 , 命令長(zhǎng)度為 9位,實(shí)際有效位為 8位, 因此在 最后補(bǔ)一個(gè) 0/ LcdSelect-LCD 的片選確定,取值為 0,1,2/ Command 要寫(xiě)入的 8 位命令uchar i;LCD_CS=0;Lcd_Delay;Lcd_Delay;Lcd_Delay;/S

17、end ID 100BLCD_CLK=0;Lcd_Delay;LCD_IO=1;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LCD_CLK=0;Lcd_Delay;LCD_IO=0;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LCD_CLK=0;Lcd_Delay;LCD_IO=0;Lcd_Delay;LCD_CLK=1;Lcd_Delay;for(i=0;i<8;i+)LCD_CLK=0;Lcd_Delay;if(Command&0x80) LCD_IO=1;else LCD_IO=0;Command=Command<<1;Lcd_D

18、elay;LCD_CLK=1;Lcd_Delay;/ 最后補(bǔ)一個(gè) 0LCD_CLK=0;Lcd_Delay;LCD_IO=0;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LCD_CS=1;Lcd_Delay;/=void Lcd_Refresh(void) /重新對(duì) LCD進(jìn)行刷屏uchar i;for(i=0;i<LCD_BUFF_MAX;i+)Lcd_Data(i,lcd.buffi);/= void Lcd_Cls(void) / 清空 LCD顯示區(qū)/功能:清空LCD顯示區(qū)/返值:無(wú)/ 入口: cSelectlc LCD 的片選,取值為 0,1,2 uchar i;for(i=0;i<LCD_BUFF_MAX;i+)lcd.buffi=0;Lcd_Refresh();/=void

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論