版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、#include#include/#include#defineuintunsignedint#defineucharunsignedchar#defineNack_number10/端口定義sbitP_RS=P3八5;sbitP_RW=P3A6;sbitP_E=P3A7;sbitSCK=P3A2;sbitSDA=P3A3;/時鐘線/數(shù)據(jù)定義intbit_out=0,bit_in=0;uchartempH,tempL,err;#definein_mode0 x06/輸入方式顯示不移動)voidstart();voidstop();ucharReadByte(void);voidsend_bit
2、(void);voidSendByte(ucharnumber);voidread_bit(void);voiddelay(uintN);uintreadtemp(void);uintwreadtemp(void);voiddisplay(uintTem);voiddisplayw(uintTem);/MLX90614發(fā)起始位子程序/MLX90614發(fā)結(jié)束位子程序/MLX90614接收字節(jié)子程序/MLX90614發(fā)送位子程序/MLX90614接收字節(jié)子程序/MLX90614接收位子程序/延時程序/讀溫度數(shù)據(jù)/讀溫度數(shù)據(jù)/顯示子程序/顯示子程序unsignedcharltable6;#defin
3、eclear#definehome#definedis_on0 x01/清除顯示0 x02/地址歸位0 x0f/打開顯示:顯示控制00001DCB,D=1整體顯示開,即打開/開關(guān)讓屏顯示C=1游標開,/B=1游標位置反白允許(此處不允許)進入點設(shè)置:000001I/DSI/D=1光標右移,AC自動加1,S=0,整體/函數(shù)聲明voidscreen_delay1(uintx);/延時函數(shù)voidscreen_initial();/液晶初始化函數(shù)voidscreen_instruct(uintdat);/液晶發(fā)送控制指令voidscreen_bit8_serial_input(uintix);液晶輸
4、入字節(jié)函數(shù)voiddis_str(ucharx,uchary,uchar*str);/液晶寫入函數(shù)voidscreen_write_abyte(uintdat);/發(fā)送數(shù)據(jù)函數(shù)/voidscreen_delay_ms();/延時函數(shù)/以下是12864液晶顯示函數(shù)/延時函數(shù)!/voidscreen_delay1(uintx)/51+17x(us)uinti,j;for(i=0;i1;i+)for(j=0;jx;j+);/液晶初始化函數(shù),通過去掉OxOc,可以實時顯示光標位置!/voidscreen_initial()P_RS=0;/RS為低電平,進行控制指令screen_instruct(dis
5、_on);/發(fā)送打開顯示指令screen_delay1(70);screen_delay1(3000);screen_instruct(in_mode);screen_delay1(7);screen_instruct(0 x0c);screen_delay1(7);screen_instruct(home);screen_delay1(3000);screen_instruct(clear);/發(fā)送清屏指令/發(fā)送輸入方式指令/顯示狀態(tài)的游標和游標位置不顯示/發(fā)送地址歸位指令/發(fā)送控制指令函數(shù)/voidscreen_instruct(uintdat)uintch;P_RS=1;ch=0 xf8
6、;screen_bit8_serial_input(ch);ch=dat&0 xf0;screen_bit8_serial_input(ch);ch=dat4;screen_bit8_serial_input(ch);P_RS=0;/輸入字節(jié)函數(shù)/voidscreen_bit8_serial_input(uintix)uinti;P_E=0;for(i=0;i8;i+)if(ix&0 x80)=0)P_RW=0;elseP_RW=1;ix=1;P_E=1;P_E=0;/使能端發(fā)出一個負跳變沿脈沖,詳見MPU寫資料模塊/寫入函數(shù)/voiddis_str(ucharx,uchary,uchar*s
7、tr)/16*4dataucharloc,*p;codeucharxline5=0,1,3,2,4;p=str;x=xlinex;screen_instruct(home);loc=(16*(x-1)+y-1);if(loc&0 x01)loc/=2;screen_instruct(loc|0 x80);screen_write_abyte();elseloc/=2;screen_instruct(loc|0 x80);while(*p)screen_write_abyte(*p+);screen_instruct(0 x9e);screen_write_abyte();/發(fā)送數(shù)據(jù)/voids
8、creen_write_abyte(uintdat)uintch;P_RS=1;ch=0 xfa;screen_bit8_serial_input(ch);ch=dat&0 xf0;screen_bit8_serial_input(ch);ch=dat4;screen_bit8_serial_input(ch);P_RS=0;/voidscreen_delay_ms()unsignedinti,j;for(i=0;i500;i+)for(j=0;j=27315)/溫度為正T=T-27315;a=T/100;b=T-a*100;ltable0=a/100+0;ltable1=a%100/10+0
9、;ltable2=a%10+0;ltable3=.;ltable4=b/10+0;ltable5=b%10+0;dis_str(2,7,ltable);else/溫度整數(shù)/溫度小數(shù)/溫度為負T=27315-T;a=T/100;b=T-a*100;ltable0=-;ltable1=a/10+0;ltable2=a%10+0;ltable3=.;ltable4=b/10+0;ltable5=b%10+0;dis_str(2,7,ltable);voiddisplayw(uintTem)uintT,a,b;T=Tem*2;if(T=27315)/溫度為正T=T-27315;a=T/100;b=T-
10、a*100;ltable0=a/100+0;ltable1=a%100/10+0;ltable2=a%10+0;ltable3=.;ltable4=b/10+0;ltable5=b%10+0;dis_str(3,7,ltable);else/溫度整數(shù)/溫度小數(shù)/溫度為負T=27315-T;a=T/100;b=T-a*100;ltable0=-;ltable1=a/10+0;ltable2=a%10+0;ltable3=.;ltable4=b/10+0;ltable5=b%10+0;dis_str(3,7,ltable);voidstart(void)停止條件是SCK=1時,SDA由1到0SDA
11、=1;delay(4);SCK=1;停止條件是SCK=1時,SDA由0/可以重發(fā)次數(shù)/8位依次發(fā)送/取最高位/發(fā)1/發(fā)0/發(fā)送一個位/左移一位/接收1位應(yīng)答信號/無應(yīng)答時重發(fā)delay(4);SDA=0;delay(4);SCK=0;delay(4);/voidstop(void)到1SCK=0;delay(4);SDA=0;delay(4);SCK=1;delay(4);SDA=1;/發(fā)送一個字節(jié)voidSendByte(ucharnumber)uchari,n,dat;n=Nack_number;Send_again:dat=number;for(i=0;i8;i+)if(dat&0 x8
12、0)bit_out=1;elsebit_out=0;send_bit();dat=dat1;read_bit();if(bit_in=1)stop();if(n!=0)n-;gotoRepeat;elsegotoexit;elsegotoexit;Repeat:start();gotoSend_again;exit:;/發(fā)送一個位voidsend_bit(void)if(bit_out=1)SDA=1;elseSDA=0;_nop_();SCK=1;delay(4);delay(4);SCK=0;delay(4);delay(4);/接收一個字節(jié)ucharReadByte(void)uchar
13、i,dat;dat=0;for(i=0;i8;i+)dat=dat1;read_bit();if(bit_in=1)/可以重發(fā)Nack_number=10次/重發(fā)/退出/重新開始/重發(fā)/退出/發(fā)1/發(fā)0/上升沿/初值為0/左移/接收一位dat=dat+1;/為1時對應(yīng)位加1/發(fā)送應(yīng)答信號0/帶回接收數(shù)據(jù)/數(shù)據(jù)端先置1/上升沿/讀數(shù)據(jù)SDA=0;send_bit();returndat;/接收一個位voidread_bit(void)SDA=1;bit_in=1;SCK=1;delay(4);delay(4);bit_in=SDA;_nop_();SCK=0;delay(4);delay(4);
14、/uintreadtemp(void)/開始條件/發(fā)送從地址00/發(fā)送命令/開始條件/讀從地址00/讀數(shù)據(jù)低字節(jié)/讀數(shù)據(jù)高字節(jié)/讀錯誤信息碼/停止條件SCK=0;start();SendByte(0 x00);SendByte(0 x07);start();SendByte(0 x01);bit_out=0;tempL=ReadByte();bit_out=0;tempH=ReadByte();bit_out=1;err=ReadByte();stop();return(tempH*256+tempL);uintwreadtemp(void)SCK=0;/開始條件/發(fā)送從地址00/發(fā)送命令/開始條件/讀從地址00/讀數(shù)據(jù)低字節(jié)/讀數(shù)據(jù)高字節(jié)/讀錯誤信息碼/停止條
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度鋁灰處理廢棄物安全處置合同4篇
- 二零二四年合同審查常年法律顧問合同3篇
- 2025年度路燈照明設(shè)備綠色供應(yīng)鏈采購合同4篇
- 年度智能手表市場分析及競爭策略分析報告
- 二零二五版環(huán)保設(shè)施采購合同范本參考3篇
- 2025年度高校創(chuàng)新創(chuàng)業(yè)基地共建合同3篇
- 2025年度鋁材產(chǎn)品安全檢測與認證合同4篇
- 二零二四年幼兒園蔬菜配送及食品安全責任合同3篇
- 二零二五年度高端別墅房產(chǎn)買賣合同樣本3篇
- 2025預(yù)拌混凝土行業(yè)標準化建設(shè)與認證合同示范文本3篇
- 2024電子商務(wù)平臺用戶隱私保護協(xié)議3篇
- 安徽省蕪湖市2023-2024學年高一上學期期末考試 英語 含答案
- 電力工程施工安全風險評估與防控
- 醫(yī)學教程 常見體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關(guān)系
- 智聯(lián)招聘在線測評題
- DB3418T 008-2019 宣紙潤墨性感官評判方法
- 【魔鏡洞察】2024藥食同源保健品滋補品行業(yè)分析報告
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗人員理論考試題及答案
- 鋼筋桁架樓承板施工方案
- 2024年駐村第一書記工作總結(jié)干貨3篇
評論
0/150
提交評論