




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include <AT89x51.H>/器件配置文件#include <intrins.h>#define RX P2_7#define TX P2_6#define LCM_RW P3_4 /定義LCD引腳#define LCM_RS P3_3#define LCM_E P3_5#define LCM_Data P1#define Key_Data P2_0 /定義Keyboard引腳#define Key_CLK P3_2#define Busy 0x80 /用于檢測(cè)LCM狀態(tài)字中的Busy標(biāo)識(shí)void LCMInit(void);void DisplayOneC
2、har(unsigned char X, unsigned char Y, unsigned char DData);void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);void Delay5Ms(void);void Delay400Ms(void);void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM);void WriteCommandLCM(unsigned char WCLCM,B
3、uysC);unsigned char ReadDataLCM(void);unsigned char ReadStatusLCM(void);unsigned char code mcustudio ="mcustudio "unsigned char code email = "fhwxaoo163 "unsigned char code Cls = " "unsigned char code ASCII15 = '0','1','2','3','4'
4、,'5','6','7','8','9','.','-','M'static unsigned char DisNum = 0; /顯示用指針 unsigned int time=0; unsigned long S=0; bit flag =0; unsigned char disbuff4 = 0,0,0,0,;/寫數(shù)據(jù)void WriteDataLCM(unsigned char WDLCM) ReadStatusLCM(); /檢測(cè)忙LCM_Data = WD
5、LCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; /若晶振速度太高可以在這后加小的延時(shí)LCM_E = 0; /延時(shí)LCM_E = 1;/寫指令void WriteCommandLCM(unsigned char WCLCM,BuysC) /BuysC為0時(shí)忽略忙檢測(cè)if (BuysC) ReadStatusLCM(); /根據(jù)需要檢測(cè)忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;/讀數(shù)據(jù)unsigned char ReadDataLCM(void)LCM_RS = 1; LCM
6、_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);/讀狀態(tài)unsigned char ReadStatusLCM(void)LCM_Data = 0xFF; LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Busy); /檢測(cè)忙信號(hào)return(LCM_Data);void LCMInit(void) /LCM初始化LCM_Data = 0;WriteCommandLCM(0x38,0); /三次顯示模式設(shè)置,不檢測(cè)忙信號(hào)Delay5M
7、s(); WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,1); /顯示模式設(shè)置,開始要求每次檢測(cè)忙信號(hào)WriteCommandLCM(0x08,1); /關(guān)閉顯示W(wǎng)riteCommandLCM(0x01,1); /顯示清屏WriteCommandLCM(0x06,1); / 顯示光標(biāo)移動(dòng)設(shè)置WriteCommandLCM(0x0F,1); / 顯示開及光標(biāo)設(shè)置/按指定位置顯示一個(gè)字符void DisplayOneChar(unsigned char X,
8、unsigned char Y, unsigned char DData)Y &= 0x1;X &= 0xF; /限制X不能大于15,Y不能大于1if (Y) X |= 0x40; /當(dāng)要顯示第二行時(shí)地址碼+0x40;X |= 0x80; /算出指令碼WriteCommandLCM(X, 1); /發(fā)命令字WriteDataLCM(DData); /發(fā)數(shù)據(jù)/按指定位置顯示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)unsigned char ListLe
9、ngth; ListLength = 0;Y &= 0x1;X &= 0xF; /限制X不能大于15,Y不能大于1while (DDataListLength>0x19) /若到達(dá)字串尾則退出if (X <= 0xF) /X坐標(biāo)應(yīng)小于0xFDisplayOneChar(X, Y, DDataListLength); /顯示單個(gè)字符ListLength+;X+;/5ms延時(shí)void Delay5Ms(void)unsigned int TempCyc = 5552;while(TempCyc-);/400ms延時(shí)void Delay400Ms(void)unsigne
10、d char TempCycA = 5;unsigned int TempCycB;while(TempCycA-)TempCycB=7269;while(TempCycB-);/*/ void Conut(void) time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/100; /算出來(lái)是CM if(S>=700)|flag=1) /超出測(cè)量范圍顯示“-” flag=0; DisplayOneChar(0, 1, ASCII11); DisplayOneChar(1, 1, ASCII10);/顯示點(diǎn) DisplayOneChar(2, 1, AS
11、CII11); DisplayOneChar(3, 1, ASCII11); DisplayOneChar(4, 1, ASCII12);/顯示M else disbuff0=S%1000/100; disbuff1=S%1000%100/10; disbuff2=S%1000%10 %10; DisplayOneChar(0, 1, ASCIIdisbuff0); DisplayOneChar(1, 1, ASCII10);/顯示點(diǎn) DisplayOneChar(2, 1, ASCIIdisbuff1); DisplayOneChar(3, 1, ASCIIdisbuff2); Displa
12、yOneChar(4, 1, ASCII12);/顯示M /*/ void zd0() interrupt 1 /T0中斷用來(lái)計(jì)數(shù)器溢出,超過(guò)測(cè)距范圍 flag=1; /中斷溢出標(biāo)志 /*/ void StartModule() /啟動(dòng)模塊 TX=1; /啟動(dòng)一次模塊 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _no
13、p_(); _nop_(); _nop_(); TX=0; /*/ void delayms(unsigned int ms)unsigned char i=100,j;for(;ms;ms-)while(-i)j=10;while(-j);/*/void main(void)unsigned char TempCyc;Delay400Ms(); /啟動(dòng)等待,等LCM講入工作狀態(tài)LCMInit(); /LCM初始化Delay5Ms(); /延時(shí)片刻(可不要)DisplayListChar(0, 0, mcustudio);DisplayListChar(0, 1, email);ReadDataLCM();/測(cè)試用句無(wú)意義for (TempCyc=0; TempCyc<10; TempCyc+)Delay400Ms(); /延時(shí)DisplayListChar(0, 1, Cls);while(1) TMOD=0x01;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)食堂從業(yè)管理制度
- 公司稅務(wù)安全管理制度
- 寵物寄養(yǎng)門店管理制度
- 工程項(xiàng)目預(yù)算管理制度
- 公司送飲用水管理制度
- 公司現(xiàn)場(chǎng)綜合管理制度
- 數(shù)據(jù)加密技術(shù)的種類與應(yīng)用試題及答案
- 解析軟件測(cè)試工程師考試重點(diǎn)考點(diǎn)及試題及答案
- 提升測(cè)試可追溯性的有效策略與實(shí)踐研究試題及答案
- 2025年JAVA面試常見題目試題及答案
- 2024年廣東省廣州市市中考英語(yǔ)試卷真題(含答案)
- 注射泵操作使用課件
- DL∕T 5362-2018 水工瀝青混凝土試驗(yàn)規(guī)程
- CB-Z-806-2016船舶動(dòng)力定位模型試驗(yàn)規(guī)程
- 《馬克思主義政治經(jīng)濟(jì)學(xué)》教案
- 因精神健康問(wèn)題休學(xué)證明范本
- 化工設(shè)計(jì)智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
- 國(guó)開機(jī)考答案-工程數(shù)學(xué)(本)(閉卷)
- 初中語(yǔ)文++病句專題++課件+八年級(jí)統(tǒng)編版語(yǔ)文下冊(cè)
- 寵物用藥市場(chǎng)細(xì)分與競(jìng)爭(zhēng)分析
- DZ∕T 0248-2014 巖石地球化學(xué)測(cè)量技術(shù)規(guī)程(正式版)
評(píng)論
0/150
提交評(píng)論