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

正文內(nèi)容

基于單片機控制的數(shù)字溫度計課程設(shè)計(參考版)

2025-03-02 11:25本頁面
  

【正文】 } } 附錄 4 實物圖 。 while(1) { SetHighTem()。 j++)。 i++) for(j=0。 for(i=0。dula = 0xff。 dula = table[forth]。 dula = 0xff。 dula = table[third]。 dula = 0xff。 dula = table1[second]。 dula = 0xff。 dula = table[first]。 //16是“ ” ,17是“ H”, 18是“ L” uchar code table1[]={ //第三個數(shù)碼管有小數(shù)點,所以不一樣 0x40,0x79,0x24,0x30, 0x19,0x12,0x02,0x78, 0x00,0x10,0x08,0x03, 0x46,0x21,0x06,0x0e}。buzzer = 1。led2 = 0。 buzzer = 0。led1 = 0。buzzer = 0。led1 = 0。 Tem=Tem/10。buzzer = 1。led2 = 0。 } } } ShowTem()。 //按鍵消抖 if(k4 == 0) { while(!k4)。 //等待按鍵釋 放 HNum。 } if(k3 == 0) delay_ms(50)。 //按鍵消抖 if(k2 == 0) { while(!k2)。 //設(shè)置低溫報警溫度 break。 //按鍵消抖 if(k1 == 0) { while(!k1)。 //等待按鍵釋放 while(1) { display((HNum*10)%10,HNum%10,(HNum%100)/10,17)。 } } } /*************** * 函 數(shù):設(shè)置高溫溫度報警值函數(shù) * 參 數(shù):無 * 返 回 : 無 ****************/ void SetHighTem() { if(k1 == 0) //按鍵消抖 delay_ms(10)。 //按鍵消抖 if(k4 == 0) { while(!k4)。 //等待按鍵釋放 LNum。 } if(k3 == 0) delay_ms(50)。 //按鍵消抖 if(k2 == 0) { while(!k2)。 } /*************** * 函 數(shù):設(shè)置低溫溫度報警值函數(shù) * 參 數(shù):無 * 返 回 : 無 ****************/ void SetLowTem() { while(1) { display((LNum*10)%10,LNum%10,(LNum%100)/10,18)。 /* 讀取 18b20溫度 */ if(flag == 1) //顯示負溫度 display(Tem%10,Tem%100/10,(Tem%1000)/100,16)。 //報警溫度的高低值 uint Tem。 } extern unsigned char idata flag。 tp = temp**10+。 tp=~tp。 tp =temp**10+。 flag = show[1] 7。 init1820()。 show[0]=read1820()。 write1820(0xcc)。 write1820(0x44)。 write1820(0xcc)。 float temp。 //恢復(fù) One Wire Bus; } return tmp。 //延時 55us; DQ = 1。 if(DQ) //在 12us處讀取數(shù)據(jù); tmp |= 0x80。 //必須寫 1,否則讀出來的將是不預(yù)期的數(shù)據(jù); delay_us(2)。 //Read init; _nop_()。i++) { tmp = 1。 //準備讀; for(i=0。 DQ = 1。 } } //*******read************ unsigned char read1820(void) { unsigned char i。 //Recovery Time Start。 //Recovery。 } //發(fā)送數(shù)據(jù); delay_us(30)。_nop_()。 //結(jié)束 Rec time; _nop_()。 } //發(fā)送數(shù)據(jù) 。_nop_()。 //結(jié)束 Recovery time; _nop_()。i++) {if(a amp。 for(i=0。 //延時 125us; DQ = 1。 //延時 35us; while(DQ) //等待 Slave 器件 Ack 信號; { _nop_()。 DQ = 1。 //拉低數(shù)據(jù)線,準備 Reset OneWire Bus; delay_us(125)。 _nop_()。void delay_us(uchar a) { while(a)。unsigned char idata flag。unsigned char read1820(void)。void init1820()。void alarm()。void SetHighTem()。 void ShowTem()。 void display(uint first,uint second,uint third,uint forth)。 sbit led1 = P2^2。 sbit led3 = P2^0。 sbit k3 = P2^6。 sbit k1 = P2^4。以后做事一定要小心認真,可以為后期節(jié)省很多時間。通過這次動手調(diào)試,掌握了一定的調(diào)試電路的方法。通過檢修,原來是數(shù)碼管裝反了。板子剛做好的時候,通上電后什么都不顯示,自己也很著急,弄了半天效果依舊。程序流程圖如圖 11所示 圖 11 報警電路流程圖 開始 溫度零下 ? 溫度值取補碼置“ — ”標 志 計算小數(shù)位溫度 BCD值 計算整數(shù)位溫度 BCD值 結(jié)束 置“ +”標志 N Y 得到溫度 是否超過 上下限 報警 不報警 N Y 4 結(jié)束語 經(jīng)過將近三周的單片機課程設(shè)計,終于完成了我的數(shù)字溫度計的設(shè)計,雖然沒有完全達到設(shè)計要求,但是還是很高興的。 圖 10 計算溫度流程圖 報警電路子程序 通過 18b20得到溫度以后,因為需要保留一位小數(shù),所以返回的溫度值是其實際值得十倍。其程序流程圖如圖 8示 溫度轉(zhuǎn)換命令子程序 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當采用 12位分辨率時轉(zhuǎn)換時間約為 750ms,在本程序設(shè)計中采用 1s 顯示程序延時法等待轉(zhuǎn)換的完成。 主程序流程圖如圖 7所示。 主程序里面先給單片機各個端口賦初值,然后執(zhí)行芯片初始 化程序,再讀取溫度并計算,最后送給數(shù)碼管顯示并和上下限溫度比較來決定是否報警。 12345678RST/VPD91011121314151617XTAL218XTAL119GND202122232425262728PSEN29ALE/PROG30EA/VPP313233343536373839VCC40AT89C52GNDS2S3S4S5LED3LED1LED2330Ra330Rb330Rc1kReBUZ1Q12N3906VCCGND 圖 6 報警電路 系統(tǒng)軟件算法分析 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等,顯示子程序,設(shè)置高低溫子程序,報警子程序 ,顯
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1