簡單溫度控制完整程序_第1頁
簡單溫度控制完整程序_第2頁
簡單溫度控制完整程序_第3頁
簡單溫度控制完整程序_第4頁
簡單溫度控制完整程序_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、簡單溫度控制完整程序#include #include #define uchar unsigned char#define uint unsigned int sbit rs = P3A4 ;sbit rw = P3A5 ;sbit ep = P3A7 ;unsigned int set1=30,set2=10;unsigned char flag=0;sbit DQ =P1A7;/定義通信端口sbit fengmingqi=P1A1;sbit jidianqi=P1A5;codeucharmayuan=0,T,2,3,4;5,6,7,8,9; code uchar aa=wendu is:

2、; code uchar bb=sheding :;typedef bit BOOL ;unsigned char k,dat_wr8,dat_rd8;void putchar(uchar weizhi,uchar da);void delay(uchar);void lcd_wcmd(uchar);BOOL lcd_bz();void lcd_pos(uchar);void lcd_wdat(uchar);void display(uchar,uchar *);void lcd_init();void longdelay(uchar s);void keyscan(void);BOOL lc

3、d_bz() II測試LCD忙碌狀態(tài)BOOL result ;rs = 0 ;rw = 1 ;ep = 1 ;result = (BOOL)(P2 & 0 x80);ep = 0 ;return result ;void lcd_wcmd(uchar cmd)寫入指令數(shù)據(jù)到LCDwhile(lcd_bz();rs = 0 ;rw = 0 ;ep = 0 ;P2 = cmd ;ep = 1 ;ep = 0 ;void lcd_pos(uchar pos)設定顯示位置lcd_wcmd(pos | 0 x80);void lcd_wdat(uchar dat)/寫入字符顯示數(shù)據(jù)到LCDwhile(l

4、cd_bz();rs = 1 ;rw = 0 ;ep = 0 ;P2 = dat ;ep = 1 ;ep = 0 ; void lcd_init() /LCD初始化設定lcd_wcmd(0 x38);delay(1);lcd_wcmd(0 x38);delay(1);lcd_wcmd(0 x08);delay(1);lcd_wcmd(0 x01);delay(1);lcd_wcmd(0 x06);delay(1) ;lcd_wcmd(0 x0c);/function set/function set/display on/off清除LCD的顯示內(nèi)容/entry mode set/entry m

5、ode setdelay(1);函數(shù)名稱:display()功能:在LCD上顯示數(shù)組的數(shù)據(jù)說明:先寫顯示地址,后寫顯示數(shù)據(jù)調(diào)用:lcd_wcmd(), lcd_pos()入口參數(shù):pos寫入的位置,q指向要寫入的數(shù)據(jù)所在的數(shù)組返回值:無*/void display(uchar pos, uchar *q)uchari ;/lcd_wcmd(0 x01) ; /cleardelay(10);lcd_pos(pos);for(i=0 ;i9;i+)lcd_wdat(*q);q+ ;void putchar(uchar weizhi,uchar da)delay(2);lcd_pos(weizhi)

6、;lcd_wdat(da);延時函數(shù)void delay(uchar ms) / 延時子程序 uchari ;while(ms-)for(i = 0 ; i0;i-)DQ = 1;delay2(5);DQ = 0; /給脈沖信號dat=1;DQ = 1; /給脈沖信號if(DQ)dat|=0 x80;delay2(5);DQ = 1;return(dat);業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)/*業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè) 不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不

7、不不不不不業(yè)業(yè)業(yè)業(yè)業(yè)逢業(yè)業(yè)逢業(yè)業(yè)業(yè)業(yè)逢業(yè)/*/寫一個字節(jié)void WriteOneChar(unsigned char dat)unsigned char i=0;for (i=8; i0; i-)DQ = 1;delay2(5);DQ = 0;DQ = dat&0 x01;delay2(5);DQ = 1;dat=1;delay(5);業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)業(yè),1 /*/讀取溫度unsigned int ReadTemperature(void) unsigned int a=0;unsigned int b=0;unsigned int t=0;Ini

8、t_DS18B20();WriteOneChar(0 xCC); 跳過讀序號列號的操作WriteOneChar(0 x44); II 啟動溫度轉換 delay2(200);Init_DS18B20();WriteOneChar(0 xCC); 跳過讀序號列號的操作WriteOneChar(0 xBE); 讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度=Ja=ReadOneChar(); 讀低八位數(shù)據(jù)b=ReadOneChar();讀最高四位,一共十二位b=8;/b4;/b與a組成最高的八位c ,算時舍去了最低四位,只保留5到12位(c*2*2*2*2*0.0625=c*1=c),所 以 c 的值就是實測溫度t=b+a;return(t); main()uint bai,shi,ge;float v;int j;unsigned int i;fengmingqi=1;jidianqi=1;delay(10);lcd_init() ;/ 初始化 LCDdisplay(0 x00,aa);display(0 x40,bb);while(1)i

溫馨提示

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

評論

0/150

提交評論