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

正文內(nèi)容

畢業(yè)設(shè)計單片機多功能溫度計(編輯修改稿)

2024-07-26 14:59 本頁面
 

【文章內(nèi)容簡介】 L字節(jié)內(nèi)容作比較。若T>TH或T<TL,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機發(fā)出的報警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時測量溫度并進行報警搜索。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數(shù)據(jù)是否正確。DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當(dāng)計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。表2 一部分溫度對應(yīng)值表溫度/℃二進制表示十六進制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+0000 0001 1001 00000191H+0000 0000 1010 000100A2H+0000 0000 0000 00100008H00000 0000 0000 10000000H1111 1111 1111 0000FFF8H1111 1111 0101 1110FF5EH1111 1110 0110 1111FE6FH551111 1100 1001 0000FC90H另外,由于DS18B20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。 DS18B20溫度傳感器與單片機的接口電路DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖4 所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。當(dāng)DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。 圖4 DS18B20與單片機的接口電路 系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,時鐘顯示電路,按鍵電路,復(fù)位電路,晶振電路,驅(qū)動電路,主板電路等,如圖5所示 電路圖中的按鍵復(fù)位電路是上電復(fù)位加手動復(fù)位,使用比較方便,在程序跑飛時,可以手動復(fù)位,這樣就不用在重啟單片機電源,就可以實現(xiàn)復(fù)位。圖5第四章 系統(tǒng)軟件設(shè)計 源程序include includedefine uchar unsigned chardefine uint unsigned intuchar min,sec,hour,counts,flm,hsec,time[8]。unsigned int j=0。 unsigned char dispbitcode[8]={0xfe,0xfd,0xf7,0xfb}。 //位掃描unsigned char dispcode[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xa7,0xFF}。 //共陽數(shù)碼管段碼unsigned char dispbuf[4]。 sbit P1_3=P1^0。sbit P1_4=P1^4。sbit P1_1=P1^5。sbit DQ=P3^6。bit flag_P=0,flag_M=0。void delay(uint t){ for (。 t0 。 t)。}void time1(void) interrupt 3 using 0 { hsec++。 TL1=0xF3。 TH1=0xD8。 TF1=0。 if(hsec==100) { sec++。 hsec=0。} if(sec==60) { min++。 sec=0。} if(min==60) { hour++。 min=0。} if(hour==24) { hour=0。 }}void add_time(void){ switch(counts) { case 1: min++。 min=min%60。 break。 case 2: hour++。 hour=hour%24。 break。 }return。 }void sub_time(void){ switch(counts) { case 1: if(min==0) {min=60。}。 min。 break。 case 2: if(hour==0) {hour=24。}。 hour。 break。 }return。}void check_button(void){ if(P1_1==0amp。amp。flag_P==0) {delay(300)。 if(P1_1==0) { flag_P=1。 TR1=0。 counts++。 if(counts=3) {counts=0。 TR1=1。}}} if(P1_3==0amp。amp。flag_P==0) { delay(300)。 if(P1_3==0) {flag_P=1。 add_time()。}} if(P1_4==0amp。amp。flag_P==0) { delay(300)。 if(P1_4==0) {flag_P=1。 sub_time()。}}if(flag_Pamp。amp。P1_1==1amp。amp。P1_3==1amp。amp。P1_4==1) { flag_P=0。}return 。}///******************算法24小時制*******************//void calculate(void) { time[0]=hour/10。 //十時 time[1]=hour%10。 //時 time[2]=min/10。 //十分 time[3]=min%10。 //分 return。 } void LED_time(void){ if((counts==0||counts==2)||flag_M) {P0=0xfe。 //=0,選通第一位 P2=dispcode[time[3]]。 //段顯 delay(100)。 //延時 P2=0xff。 //消隱 P0=0xfd。 //=0,選通第二位 P2=dispcode[time[2]]。 //段顯 delay(100)。
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1