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

正文內(nèi)容

基于labview和ds18b20的多點溫度測量系統(tǒng)—下位機部分-資料下載頁

2025-06-26 10:49本頁面
  

【正文】 時后 如果x=0則初始化成功 x=1則初始化失敗 delay_18B20(20)。} 當(dāng)主機總線從高電平拉至低電平時就產(chǎn)生寫時隙,DS18B20在檢測到下降沿后15us時刻開始采樣總線上的電平,所以15us之內(nèi)應(yīng)將所需寫的位送到總線上,DS18B20在15us~60us間對總線采樣,每寫一位總時間必須在60~120us之間完成。若低電平寫入的位是0,高電平寫入的位是1,連續(xù)寫時位間的間隙應(yīng)大于1us。void WriteOneChar(unsigned char dat){ unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。0x01。 delay_18B20(5)。 DQ = 1。 dat=1。 }} 單片機主動產(chǎn)生一個下降沿的啟動信號,并維持低電平大于1us后釋放總線,15us后DS18B20占主動權(quán),DS18B20會將數(shù)據(jù)按位放在總線上(低位在先,當(dāng)讀取兩個字節(jié)的溫度值時,低字節(jié)在先),這時單片機可讀取信號,讀取一位的時間應(yīng)在60us內(nèi)完成。當(dāng)需要讀取下一位時再產(chǎn)生下降沿啟動信號。 unsigned char ReadOneChar(void){ unsigned char i=0。 unsigned char dat = 0。 for (i=8。i0。i) { DQ = 0。 // 給脈沖信號 dat=1。 DQ = 1。 // 給脈沖信號 if(DQ) dat|=0x80。 delay_18B20(4)。 } return(dat)。}DS18B20通過調(diào)用初始化和讀寫DS18B20的子函數(shù)輸入功能命令完成獲取攝氏溫度信息的過程。在此獲取溫度的程序中完成的功能有溫度數(shù)字信息的采集和轉(zhuǎn)換成液晶能顯示的字符數(shù)據(jù)。 /**************讀取ds18b20當(dāng)前溫度************/void ReadTemp(void){ unsigned char m=0。 unsigned char n=0。 unsigned int t,tflag。 float tt。 Init_DS18B20()。 WriteOneChar(0xCC)。 // 跳過讀序號列號的操作 WriteOneChar(0x44)。 // 啟動溫度轉(zhuǎn)換 delay_18B20(100)。 // this message is very important Init_DS18B20()。 WriteOneChar(0xCC)。 //跳過讀序號列號的操作WriteOneChar(0xBE)。 //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度 delay_18B20(100)。 m=ReadOneChar()。 //讀取溫度值低位 n=ReadOneChar()。 //讀取溫度值高位 t=n。 t=8。 //溫度值的高8位放在t的高8位 t=t|m。 //溫度值的低8位放在t的低8位 if(t0x0fff) //判斷溫度值得正負(fù)值 tflag=0。 //tflag=0溫度值為正 else { t=~t+1。 //溫度值為負(fù),負(fù)值以補碼形式存放,這里要將其還原成原碼 tflag=1。 //tflag=1溫度值為負(fù) } tt=t*。 t = tt*100 。 //溫度數(shù)據(jù)轉(zhuǎn)換成液晶字符顯示if(tflag==0) temp[0]=39。+39。elsetemp[0]=39。39。 temp[1]=t/1000+39。039。 //十位 temp[2]=t%1000/100+39。039。 //個位 temp[3]=39。.39。 temp[4]=t%100/10+39。039。 //小數(shù)十位 temp[5]=t%10+39。039。//小數(shù)百位 temp[6]=39。\0 39。}對LCD1602的顯示模式設(shè)置等的初始化操作完成后,就可以通過將需要顯示的字符的ASCII寫入LCD1602顯示緩沖區(qū)RAM的操作進(jìn)行顯示了??刂破鲀?nèi)部帶有80*8位(80字節(jié))的RAM緩沖區(qū),地址為00H~27H和40H~67H。void xianshi1(unsigned char n[]) //在顯示器的第一行顯示字符串{ BYTE i。lcd_wcmd(0x01)。 delay(10)。lcd_wcmd(0x06)。 //向右移動光標(biāo)lcd_pos(0)。 //設(shè)置顯示位置為第一行的第1個字符i = 0。while(n[ i ] != 39。\039。){ lcd_wdat(n[ i ])。i++。delay(30)。 //控制兩字之間顯示速度} delay(800)。 }void xianshi2(unsigned char n[]) //在顯示器的第二行顯示字符串{ BYTE i。lcd_wcmd(0x01)。 delay(10)。lcd_wcmd(0x06)。 //向右移動光標(biāo)lcd_pos(0x40)。 //設(shè)置顯示位置為第二行的第1個字符i = 0。while(n[ i ] != 39。\039。){ lcd_wdat(n[ i ])。i++。delay(30)。 //控制兩字之間顯示速度}delay(800)。 }將以上程序根據(jù)總程序流程圖()整體進(jìn)行連接,就完成了總程序的編寫。通過Keil uVision2調(diào)試軟件進(jìn)行調(diào)試,最終調(diào)試結(jié)果如下圖。 調(diào)試結(jié)果圖將調(diào)試好的程序燒入單片機,上電復(fù)位后,液晶顯示器將會在第一行和第二行分別顯示姓名學(xué)號“weiruiyun”“200540503131”,然后將測得的溫度值進(jìn)行顯示。顯示的溫度值包括正負(fù)號為6位字符數(shù)據(jù),如“+”。如果接收到來自上位機的字符“A”,則將6位的字符數(shù)據(jù)通過串口上傳給上位機,且發(fā)送中顯示提示“sending...”,完畢顯示提示“Send pleted”??偝绦蛟斠姼戒汢。第五章 設(shè)計總結(jié) 意識勝過能力。比爾蓋茨能夠從能人輩出的工業(yè)時代脫穎而出,正是因為他先看到了未來計算機世界的主流離不開軟件,從而搶先占領(lǐng)軟件領(lǐng)域的制高點成為世界首富。但是也不能就說有了意識就足夠了,還要有知識底蘊。假如比爾蓋茨沒有扎實的軟件知識也沒有他的今天。做設(shè)計從選題到實施的過程反映了自己的意識和能力。在整個做設(shè)計的過程中,耐心是非常重要的。從資料的查詢到軟件的調(diào)試。比如說資料的查詢,這是一個比較繁瑣的過程,但是它對后續(xù)的軟硬件設(shè)計是非常重要的,自己所查找的資料決定了自己做設(shè)計的方向。有了耐心還要有方法,一種學(xué)習(xí)的方法。好的學(xué)習(xí)方法首先是要有計劃、有步驟的去實施每一階段的任務(wù)。計劃越詳細(xì),學(xué)習(xí)越有效率??傊覀兛梢赃@樣說,在可以預(yù)見的未來,網(wǎng)絡(luò)虛擬化技術(shù)、嵌入式儀器和數(shù)字傳感器技術(shù)的發(fā)展將進(jìn)入一個全新的時代。如果我們堅持不斷地、有計劃地去學(xué)習(xí),很好地掌握了這些相關(guān)的技術(shù)和動態(tài),我們將大有可為。參考文獻(xiàn),[M],北京:科技出版社,2005[M],北京:機械工業(yè)出版社,2007,[M],北京:電子工業(yè)出版社,20064. 胡偉. 單片機C程序設(shè)計及應(yīng)用實例[M],北京:人民郵電出版社,2003,466—4815. 先鋒工作室. 單片機設(shè)計程序?qū)嵗齕M],北京:清華大學(xué)出版社,200,244—2506. 靳達(dá). 單片機應(yīng)用系統(tǒng)開發(fā)實例導(dǎo)航[M],北京:人民郵電出版社,9—457. 鄧紅. 單片機試驗與應(yīng)用設(shè)計教程[M],北京:冶金工業(yè)出版社,121—1308. 趙亮. 單片機C語言編程與實例[M],北京:人民郵電出版社,2003年9月9. 李廣飛. 單片機課程設(shè)計實例指導(dǎo)[M],北京:北京航空航天大學(xué)出版社,2004,游鳳荷,周景霞. 由單片機和多片DS1820組成的多點溫度測控系統(tǒng)[J], 國外電子元器,2001年6卷2期[J],吉林工學(xué)院學(xué)報,2001年2期——DS1820一線數(shù)字溫度傳感器[J],水利水文自動化,2001年2卷3期[J],計算機技術(shù)與自動化,2003年4卷1期[J],蘭州石化職業(yè)技術(shù)學(xué)院學(xué)報,2006年2期[J],中國儀器儀表,2006年8期,姜久春,[J],科技創(chuàng)新導(dǎo)報,2007年3期 Faule Diagnosis for Military Electronic Equipment,ICEMI, 2005《Ds18B20使用說明書》,2008/11/25/09:24 ,趙金,[J],河北工業(yè)科技,2002年[J],石油儀器,2002年2期,企業(yè)科技與發(fā)展,2008年16期.?dāng)?shù)字溫度傳感器DS18B20的原理與應(yīng)用[J].世界電子元器件,2002年1期附錄A附錄Binclude //包含頭文件include sbit DQ=P2^0。define DATA P1typedef unsigned char BYTE。typedef bit BOOL。 sbit LCD_RS = P1^0。 sbit LCD_RW = P1^1。sbit LCD_EP = P1^2。unsigned char temp[7]。 //存放測得溫度信息unsigned char a[]=weiruiyun。unsigned char b[]=200540503131。unsigned char c[]=temperature。unsigned char d[]=sending...。unsigned char e[]=Send pleted。/***********LCD1602液晶顯示子程序*****************//***********LCD1602延遲子函數(shù)(晶振12MHz )*******/ delay(int ms){ int i。while(ms){ for(i = 0。 i i++) { _nop_()。 _nop_()。 _nop_()。 _nop_()。 }}}/***********測試LCD忙碌狀態(tài)*******/ BOOL lcd_bz(){ BOOL result。 LCD_RS = 0。 //RS為數(shù)據(jù)/命令選擇端,L選擇命令(指令),H選擇數(shù)據(jù)讀寫 LCD_RW = 1。 LCD_EP = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 result = (BOOL)(DATA amp。 0x80)。 //取最高位 LCD_EP = 0。 return result。 }/***********寫入指令數(shù)據(jù)到LCD*******/ lcd_wcmd(BYTE cmd){ BYTE m=cmd4。 while(lcd_bz())。 LCD_RS = 0。 LCD_RW = 0。 LCD_EP = 0。 _nop_()。 _nop_()。 cmd=(cmdamp。0xF0)。 //把高四位送到數(shù)據(jù)總線 DATA=(DATAamp。0x0F)。 DATA=(DATA|cmd)。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 LCD_EP = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 LCD_EP = 0。 while(lcd_bz())。 LCD_RS = 0。 LCD_RW = 0。 LCD_EP = 0。 _nop_()。 _nop_()。 DATA=(DATAamp。0x0F)。 //把低四位送到數(shù)據(jù)總線 DATA=(DATA|m)。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 LCD_EP = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 LCD_EP = 0。 }/***********設(shè)定顯示位置*******/ lcd_pos(BYTE pos){ lcd_wcmd(pos | 0x80)。}/***********寫入字符顯示數(shù)據(jù)到LCD*******/ lcd_wdat(BYTE dat) { BYTE m=dat4。 while(lcd_bz())。 LCD_RS = 1。 L
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1