版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、* *AT89C51單片機控制 HT1621B 驅(qū)動 LCD*(全顯示程序)*/#in elude <reg51.h>#in elude vintrin s.h>#defi neBIAS 0X501/2偏壓,4背極/#defi neRC256 0X30II系統(tǒng)時鐘選擇為片內(nèi)RC振蕩器#defi neRC2560X38#defi neWDTDIS1 0X0A/禁止WDT溢出標(biāo)志輸出#defi neTIMERDIS 0X08/時基輸出禁能#defi neSYSEN 0X02/打開系統(tǒng)時鐘#defi neLCDON 0X06/打開偏壓發(fā)生器#defi neSYSDIS 0X00/關(guān)
2、閉系統(tǒng)時鐘和偏壓發(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);/*延時子函*/void delay1s()/ 延時 1Suchar i;uint j;for(i=0;i<10;i+)for(j=0;j<1300;j+);void delay1
3、s()/ 延時 1Svoid delay1s()/ 延時 1S*HT1621B初始化*void delay1s()/ 延時 1Svoid delay1s()/ 延時 1S/ 初始化 HT1621void START_HT1621()CS=1;WRD=1;DATA=1;/delay();_NOP();CS=0;CS=0;WRD=0;WRD=0;void delay1s()/ 延時 1Svoid delay1s()/ 延時 1S/*發(fā)送命令子函數(shù) A*/void delay1s()/ 延時 1Svoid delay1s()/ 延時 1Svoid SENDCOMA(uchar com)/發(fā)送命令 A
4、, ID=100+0void delay1s()/ 延時 1Svoid delay1s()/ 延時 1SSTART_HT1621();SENDBIT(0X80,4);SENDBYTE(com);void delay1s()/ 延時 1Svoid delay1s()/ 延時 1S/*發(fā)送命令子函數(shù) B*/void delay1s()/ 延時 1Svoid delay1s()/ 延時 1Svoid SENDCOMB(uchar adr)/發(fā)送命令B,發(fā)送顯示數(shù)據(jù)void delay1s()/ 延時 1SSTART_HT1621();/HT1621 初始化SENDBIT(0XA0,4);/發(fā)送寫數(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ù)寫入 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 地址開始放入數(shù)據(jù)SENDBYTE(dat);SENDBYTE(dat);for (i=0;i<2;i+)SENDBYTE(dat);/從 SEG0 開始顯示數(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單片機控制1621驅(qū)動液晶 程序調(diào)了幾天都沒進展, 顯示的不知道什么亂七八糟的東西, 好像命令根本寫不 進
8、去,COM和 coml是個1v不到的電平,com3為3點幾V的電平,com4有時有 波形刷我自己寫的程序就是這個樣子,SEGMENT部分有波形,其余就是一個電平打電話咨詢合泰技術(shù),讓我搞他們的范例,于是我修改了下,還是老樣子 大家?guī)臀铱纯词鞘裁磫栴},謝謝了 下面的就是從合泰網(wǎng)上下的范例,我稍微修改了下,基本是原封不動的/STC12C5204AD單片機控制 HT1621B驅(qū)動 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)時鐘選擇為片內(nèi)RC振蕩器 禁止 WD溢出標(biāo)志輸出 時基輸出禁止 打開系統(tǒng)時鐘 關(guān)閉系統(tǒng)時鐘和偏壓發(fā)生器 打開LCD偏壓發(fā)生器 關(guān)閉
10、LCD偏壓發(fā)生器 打開音頻輸出 關(guān)閉音頻輸出延時子函數(shù)/j=12延時約 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ū)動程序 適用于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上的進行同步/ Start -要開始同頁面地址,每個頁面為4個有效位,總其為32X4字節(jié)/ Length - 要同步的頁面數(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)中寫入一個命令/每個命令應(yīng)以 100三個位為起始 , 命令長度為 9位,實際有效位為 8位, 因此在 最后補一個 0/ LcdSelect-LCD 的片選確定,取值為 0,1,2/ Command 要寫入的 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;/ 最后補一個 0LCD_CLK=0;Lcd_Delay;LCD_IO=0;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LCD_CS=1;Lcd_Delay;/=void Lcd_Refresh(void) /重新對 LCD進行刷屏uchar i;for(i=0;i<LCD_BUFF_MAX;i+)Lcd_Data(i,lcd.buffi);/= void Lcd_Cls(void) / 清空 LCD顯示區(qū)/功能:清空LCD顯示區(qū)/返值:無/ 入口: cSelectlc LCD 的片選,取值為 0,1,2 uchar i;for(i=0;i<LCD_BUFF_MAX;i+)lcd.buffi=0;Lcd_Refresh();/=void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大米專用冰箱產(chǎn)品供應(yīng)鏈分析
- 帶有時鐘的收音機產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 醫(yī)療影像技術(shù)行業(yè)相關(guān)項目經(jīng)營管理報告
- 樂器修理或維護行業(yè)營銷策略方案
- 美容霜項目營銷計劃書
- 幼兒園行業(yè)經(jīng)營分析報告
- 不動產(chǎn)出租服務(wù)行業(yè)營銷策略方案
- 含藥物的護膚液產(chǎn)品供應(yīng)鏈分析
- 礦物絕緣電纜產(chǎn)品供應(yīng)鏈分析
- 云計算法務(wù)服務(wù)行業(yè)營銷策略方案
- 北京市城鄉(xiāng)居民養(yǎng)老保險發(fā)展評估研究報告
- 節(jié)能標(biāo)識使用管理規(guī)定
- 戴姆勒產(chǎn)品開發(fā)質(zhì)量體系
- 通過全球化與世界空間學(xué)習(xí)的收獲
- GB 17675-2021汽車轉(zhuǎn)向系基本要求
- 窗邊的小豆豆-好書推薦
- 決策理論7-多目標(biāo)決策的基本概念課件
- 交互設(shè)計-課件
- 酒店式公寓-課件
- 一年級看圖寫話(教學(xué))課件
- 《功能材料》課程教學(xué)大綱
評論
0/150
提交評論