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

正文內(nèi)容

基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)論文-資料下載頁(yè)

2025-06-27 19:28本頁(yè)面
  

【正文】 MAX232 Transistors1 Q5 PNP Miscellaneous3 K1K3 1 LS1 SPEAKER 1 X1 CRYSTAL 附錄2 全部程序清單include includeinclude //_nop_()。延時(shí)函數(shù)用define dm P0 //段碼輸出口define uchar unsigned chardefine uint unsigned intsbit DQ=P1^7。 //溫度輸入口sbit L1=P2^0。 //數(shù)碼管1sbit L2=P2^1。 //數(shù)碼管2sbit L3=P2^2。 //數(shù)碼管3sbit L4=P2^3。 //數(shù)碼管4sbit beep=P3^5。 //蜂鳴器sbit set=P1^4。 //溫度設(shè)置切換鍵sbit add=P1^5。 //溫度加sbit dec=P1^6。 //溫度減int temp1=0。 //顯示當(dāng)前溫度和設(shè)置溫度的標(biāo)志位為0 時(shí)顯示當(dāng)前溫度uint h。uint temp。uchar r。uchar high=120,low=20。uchar sign。uchar q=0。uchar tt=0。uchar scale。uchar code ditab[16]={0x00,0x01,0x01,0x02, //溫度小數(shù)部分用查表法 0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07, 0x08,0x08,0x09,0x09}。uchar code table_dm[12]={0x3f,0x06,0x5b,0x4f, //小數(shù)斷碼表 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x00,0x40}。uchar table_dm1[]={0xbf,0x86,0xdb,0xcf, //共陰LED 段碼表0 1 2 3 4 5 6 7 8 9 不亮 0xe6,0xed,0xfd,0x87, 0xff,0xef}。 //個(gè)位帶小數(shù)點(diǎn)的斷碼表uchar data temp_data[2]={0x00,0x00}。 //讀出溫度暫放uchar data display[5]={0x00,0x00,0x00,0x00,0x00}。 //顯示單元數(shù)據(jù),共4 個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫用void delay(uint t) // 延時(shí)函數(shù){for (。t0。t)。}void scan(){int j。for(j=0。j4。j++){switch (j){case 0: dm=table_dm[display[0]]。L4=0。delay(50)。L4=1。//小數(shù)case 1: dm=table_dm1[display[1]]。L3=0。delay(50)。L3=1。//個(gè)位case 2: dm=table_dm[display[2]]。L2=0。delay(50)。L2=1。//十位case 3: dm=table_dm[display[3]]。L1=0。delay(50)。L1=1。//百位 //else{dm=table_dm[b3]。w3=0。delay(50)。w3=1。}}}}ow_reset(void) //DS18B20 復(fù)位函數(shù){char presence=1。while(presence){while(presence){DQ=1。 //從高拉倒低_nop_()。_nop_()。DQ=0。delay(50)。 //50 usDQ=1。delay(6)。 //6 uspresence=DQ。 //presence=0 復(fù)位成功,繼續(xù)下一步}delay(45)。 //延時(shí)45 uspresence=~DQ。}DQ=1。 //拉高電平}void write_byte(uchar val) //DS18B20 寫(xiě)命令函//向1WIRE 總線上寫(xiě)1 個(gè)字節(jié){uchar i。for(i=8。i0。i){DQ=1。_nop_()。_nop_()。 //從高拉倒低DQ=0。_nop_()。_nop_()。_nop_()。_nop_()。 //5 usDQ=valamp。0x01。 //最低位移出delay(6)。 //66 usval=val/2。 //右移1 位}DQ=1。delay(1)。}uchar read_byte(void) //DS18B20 讀1 字節(jié)函數(shù)//從總線上取1 個(gè)字節(jié){uchar i。uchar value=0。for(i=8。i0。i){DQ=1。_nop_()。_nop_()。value=1。DQ=0。_nop_()。_nop_()。_nop_()。_nop_()。 //4 usDQ=1。_nop_()。_nop_()。_nop_()。_nop_()。 //4 usif(DQ)value|=0x80。delay(6)。 //延時(shí)66 us}DQ=1。return(value)。}read_temp() //讀出溫度函數(shù){ow_reset()。 //總線復(fù)位delay(200)。write_byte(0xcc)。 //發(fā)命令write_byte(0x44)。 //發(fā)轉(zhuǎn)換命令ow_reset()。delay(1)。write_byte(0xcc)。 //發(fā)命令write_byte(0xbe)。temp_data[0]=read_byte()。 //讀溫度值的第字節(jié)temp_data[1]=read_byte()。 //讀溫度值的高字節(jié)temp=temp_data[1]。temp=8。temp=temp|temp_data[0]。 // 兩字節(jié)合成一個(gè)整型變量。return temp。 //返回溫度值}work_temp(uint tem) //溫度數(shù)據(jù)處理函數(shù)//二進(jìn)制高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié),這個(gè)字節(jié)的二進(jìn)制轉(zhuǎn)換為十進(jìn)制后,就是溫度值的百、十、個(gè)位值,而剩下的低字節(jié)的低半字節(jié)轉(zhuǎn)化成十進(jìn)制后,就是溫度值的小數(shù)部分{uchar n=0。if(tem6348) // 溫度值正負(fù)判斷{tem=65536tem。n=1。} // 負(fù)溫度求補(bǔ)碼,標(biāo)志位置1display[4]=temamp。0x0f。 // 取小數(shù)部分的值display[0]=ditab[display[4]]。 // 存入小數(shù)部分顯示值display[4]=tem4。 // 取中間八位,即整數(shù)部分的值display[3]=display[4]/100。 // 取百位數(shù)據(jù)暫存display[1]=display[4]%100。 // 取后兩位數(shù)據(jù)暫存display[2]=display[1]/10。 // 取十位數(shù)據(jù)暫存display[1]=display[1]%10。 //個(gè)位數(shù)據(jù)r=display[1]+display[2]*10+display[3]*100。if(!display[3])//符號(hào)位顯示判斷{display[3]=0x0a。 //最高位為0 時(shí)不顯示if(!display[2]){display[2]=0x0a。 //次高位為0 時(shí)不顯示}}if(n){display[3]=0x0b。} //負(fù)溫度時(shí)最高位顯示}void xianshi(int horl) //設(shè)置溫度顯示轉(zhuǎn)換{int n=0。if(horl128){horl=256horl。n=1。}display[3]=horl/100。display[3]=display[3]amp。0x0f。display[2]=horl%100/10。display[1]=horl%10。display[0]=0。if(!display[3]){display[3]=0x0a。 //最高位為0 時(shí)不顯示if(!display[2]){display[2]=0x0a。 //次高位為0 時(shí)不顯示}}if(n){display[3]=0x0b。 //負(fù)溫度時(shí)最高位顯示}}void keyscan() //按鍵查詢程序{int temp1。 //最高溫度和最低溫度標(biāo)志位if(set==0){while(1){delay(500)。//消抖if(set==0){temp1++。while(!set)scan()。}if(temp1==1){xianshi(high)。scan()。if(add==0){while(!add)scan()。high+=1。}if(dec==0){while(!dec)scan()。high=1。}}if(temp1==2){xianshi(low)。if(add==0){while(!add)scan()。low+=1。}if(dec==0){while(!dec)scan()。low=1。}scan()。}if(temp1=3){temp1=0。break。}}}}void BEEP(){if(r=high||rlow){beep=!beep。}else{beep=0。}}void main() //主函數(shù){dm=0x00。 //初始化端口L4=0。L3=0。L2=0。L1=0。for(h=0。h4。h++) //開(kāi)機(jī)顯示0000{display[h]=0。}ow_reset()。 //開(kāi)機(jī)先轉(zhuǎn)換一次write_byte(0xcc)。 //Skip ROMwrite_byte(0x44)。 //發(fā)轉(zhuǎn)換命令for(h=0。h100。h++) //開(kāi)機(jī)顯示0000{scan()。}while(1){if (temp1==0){work_temp(read_temp())。 //處理溫度數(shù)據(jù)BEEP()。scan()。 //顯示溫度值keyscan()。}elsekeyscan()。}}附錄
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1