freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

本科:遠程溫度監(jiān)控系統的設計-資料下載頁

2024-12-04 10:59本頁面

【導讀】DS18B20對現場水阻試驗用水溫數據進行遠程無線測量與控制。實驗表明,系統具有。其他生產領域,特別是人體無法接近的高溫或危險場所的溫度控制.

  

【正文】 =P2^7。 sbit v1=P1^1。 //傳送數據口 sbit v2=P1^2。 sbit v3=P1^3。 sbit v4=P1^4。 sbit p33=P3^3。 define D_port P2 //顯示的數據口是 P2 /***********************************************************************/ void delay1(uchar MS)。 unsigned char ReadTemperature(void)。 void Init_DS18B20(void)。 unsigned char ReadOneChar(void)。 void WriteOneChar(unsigned char dat)。 void delay(unsigned int i)。 /************************************************************************/ void delay1ms(unsigned int t)//延時 {unsigned int i,j。 for(i=0。it。i++) for(j=0。j50。j++)。 } 遠程溫度監(jiān) 控系統 的設計 29 Checkbusy() //液晶檢測忙信號 { // //P0 全部置 1,可以查詢判斷 P0 口狀態(tài),讀取液晶的命令 RS=0。 RW=1。 EN=1。 _nop_()。 //讀液晶命令時各控制位的狀態(tài)幾時序 while(1) //判斷最高位狀態(tài),最高位是液晶忙的狀態(tài)位 { { P2=0xff。 EN=1。 // +++ 要不停地檢測 +++ _nop_ ()。 _nop_ ()。 _nop_ ()。 if (!busy) // LCD 空閑則退出 { EN=0。 break。 } EN=0。 } } //如果液晶忙,則循環(huán)查詢 } void wr_(unsigned char )//寫指令 // { delay1ms(1)。 Checkbusy()。 RS=0。 RW=0。 EN=0。 P2=。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 EN=1。 廣東技術師范學院本科畢業(yè)設計(論文) 30 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 EN=0。 } void wr_dat(unsigned char dat)//寫數據 // { delay1ms(1)。 Checkbusy()。 RS=1。 RW=0。 EN=0。 D_port=dat。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 EN=1。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 _nop_ ()。 EN=0。 } void lcd_init()//初始化設置 // {delay1ms(15)。 wr_(0x3C)。delay1ms(5)。 //8 位數據,兩行字符, 5*10 點陣字符體 wr_(0x0F)。delay1ms(5)。 //開顯示,開光標,光標閃爍 } void display(unsigned char *p)//顯示字符串 // { while(*p!=39。\039。) { wr_dat(*p)。 p++。 遠程溫度監(jiān) 控系統 的設計 31 delay1ms(1)。 } } setpos(uchar posx,uchar posy) //顯示位置 { // posx=posxamp。0xf。 //將顯示在第幾位置轉為二十六進制,每行總共 16 個位置 // posy=posyamp。0x1。 //設置顯示在第幾行 wr_(posx+posy*0x40+0x80)。 //設置位置命令最高位必須為一,所以要加0x80 ,顯示的位置 //wr_(posx)。 } /***************顯示一個字符子程序 **********************/ displaychar(uchar x,uchar y,uchar a) //顯示字符 { //Checkbusy()。 //檢查忙標志位 setpos(x,y)。 //設置顯示位置 wr_dat(a)。 //將要顯示的數據寫到液晶 } displaystring(uchar x,uchar y,unsigned char *string) //顯示字符串 { setpos(x,y)。 while(*string) //字符串是以 39。\039。結束的,因此只要每結束就顯示下一字符 { wr_dat(*string)。 //顯示一個字符子程序 string++。 // length++。//液晶顯示的位置 +1 } } unsigned char read_dat()//dushuju//讀數據字節(jié) { unsigned char g1。 delay1ms(1)。 Checkbusy()。 RS=1。 RW=1。 EN=0。 delay1ms(1)。 EN=1。 廣東技術師范學院本科畢業(yè)設計(論文) 32 delay1ms(1)。 g1=D_port。 return(g1)。 } unsigned char readchar(uchar x,uchar y) //讀字符 { unsigned char g2。 //Checkbusy()。 //檢查忙標志位 setpos(x,y)。 //設置顯示位置 g2=read_dat()。 //將要顯示的數據寫到液晶 } /***********************************************************************/ wendu() { delay(100)。 temp=ReadTemperature()。 } /***************溫度程序 **********************/ void delay(unsigned int i)//延時函數 { while(i)。 } /*************************************************************************/ //18b20 初始化函數 void Init_DS18B20(void) { unsigned char s=0。 DQ = 1。 //DQ 復位 delay(8)。 //稍做延時 DQ = 0。 //單片機將 DQ 拉低 delay(80)。 //精確延時 大于 480us DQ = 1。 //拉高總線 delay(10)。 s=DQ。 //稍做延時后 如果 x=0 則初始化成功 x=1 則初始化失敗 delay(5)。 } //讀一個字節(jié) unsigned char ReadOneChar(void) { unsigned char i=0。 unsigned char dat = 0。 for (i=8。i0。i) 遠程溫度監(jiān) 控系統 的設計 33 { DQ = 0。 // 給脈沖信號 dat=1。 DQ = 1。 // 給脈沖信號 if(DQ) dat|=0x80。 delay(5)。 } return(dat)。 } //寫一個字節(jié) void WriteOneChar(unsigned char dat) { unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。0x01。 delay(5)。 DQ = 1。 dat=1。 } delay(5)。 } //讀取溫度 unsigned char ReadTemperature(void) { unsigned char a=0。 unsigned char b=0。 unsigned char t=0。 // float tt=0。 Init_DS18B20()。 WriteOneChar(0xCC)。 // 跳過讀序號列號的操作 WriteOneChar(0x44)。 // 啟動溫度轉換 delay(200)。 Init_DS18B20()。 WriteOneChar(0xCC)。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 //讀取溫度寄存器等(共可讀 9 個寄存器) 前兩個就是溫度 a=ReadOneChar()。 b=ReadOneChar()。 廣東技術師范學院本科畢業(yè)設計(論文) 34 b=4。 b+=(aamp。0xf0)4。 t=b。 //tt=t*。 // t= tt*10+。 //放大 10 倍輸出并四舍五入 return(t)。 } code1(int m1,int m2,int m3,int m4,int m5) //代碼 , 用來設置數字、字母、符號等 { time1=span1。 //延時時間 switch(m1) {case 1: v1=0。 //數據口 1 為 高電平 delay1ms(time1)。 v1=1。 //數據口為低電平 delay1ms(time1)。 break。 case 2: v2=0。 delay1ms(time1)。 v2=1。 delay1ms(time1)。 break。 case 3: v3=0。 delay1ms(time1)。 v3=1。 delay1ms(time1)。 break。 case 4: v4=0。 delay1ms(time1)。 v4=1。 delay1ms(time1)。 break。 } switch(m2) {case 1: v1=0。 delay1ms(time1)。 v1=1。 遠程溫度監(jiān) 控系統 的設計 35 delay1ms(time1)。 break。 case 2: v2=0。 delay1ms(time1)。 v2=1。 delay1ms(time1)。 break。 case 3: v3=0。 delay1ms(time1)。 v3=1。 delay1ms(time1)。 break。 case 4: v4=0。 delay1ms(time1)。 v4=1。 delay1ms(time1)。 break。 } switch(m3) {case 1: v1=0。 delay1ms(time1)。 v1=1。 delay1ms(time1)。 break。 case 2: v2=0。 delay1ms(time1)。 v2=1。 delay1ms(time1)。 break。 case 3: v3=0。 delay1ms(time1)。 v3=1。 delay1ms(time1)。 break。 case 4: v4=0。 delay1ms(time1)
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1