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

正文內(nèi)容

基于單片機(jī)與pc機(jī)串口通信的低功耗溫度記錄儀畢業(yè)設(shè)計(jì)(已改無錯(cuò)字)

2022-09-03 08:45:10 本頁面
  

【正文】 口技術(shù)及應(yīng)用》 華中科技大學(xué)出版社 2022 年[19] 先鋒工作室 . 單片機(jī)程序?qū)嵗齕M].北京:清華大學(xué)出版社,2022.[20] 付家才. 單片機(jī)控制工程實(shí)踐技術(shù)[M]. 北京:化學(xué)工業(yè)出版社,[21] Atmel Microcontroller Handbook,2022 [22] STC Microcontroller Handbook,2022 [23] John F. Wakerly[M] DIGITAL DESIGN 北京:高等教育出版社 2022 23 附錄附錄 1:總體電路圖:附錄 2:單片機(jī)程序:include include define uchar unsigned charbit Tflag。//溫度正負(fù)標(biāo)志sbit DQ=P3^7。 //溫度輸入口sbit DIN=P0^7。 //LED小數(shù)點(diǎn)控制uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}。//溫度小數(shù)部分用查表法unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x00,0x40}。 //共陰 led段碼 24表 0x40 負(fù)unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7, }。 uchar data temp_data[2]={0x00,0x00}。 // 讀出溫度暫放unsigned char dispbuf[5]={0,0,0,0,0}。 void digitalshow(unsigned char a3,unsigned char a2,unsigned char a1,unsigned char a0){unsigned char i。dispbuf[0]=a0。 dispbuf[1]=a1。dispbuf[2]=a2。dispbuf[3]=a3。for(i=0。i4。i++) { P2=0xff。 //關(guān)閉所有顯示P0=dispcode[dispbuf[i]]。 P2=dispbitcode[i]。 if(i==1){DIN=1。}} }/********** 該程序?yàn)榭偩€上只有一個(gè)器件 **********///毫秒延時(shí) Mhzvoid dmsec (unsigned int count) { unsigned int i。 // 1ms延時(shí)while (count) {for (i=0。i125。i++){}}}void Delay(unsigned int num)// 延時(shí)函數(shù){while( num )。 25}//復(fù)位脈沖void tmreset (void) { DQ = 0。Delay(90)。 // 精確延時(shí) 大于 480usDQ = 1。Delay(4)。 // 90,4 可以小范圍變化}//存在脈沖void tmpre (void) { while (DQ)。while (~DQ)。Delay(4)。 }//讀一個(gè)位bit tmrbit (void) { unsigned int i。bit dat。DQ = 0。 i++。 // i++。大概 1usDQ = 1。 i++。 i++。 dat = DQ。Delay(8)。 return (dat)。}//讀一個(gè)比特unsigned char tmrbyte (void) { unsigned char i,j,dat。dat = 0。for (i=1。i=8。i++) 26{j = tmrbit ()。dat = (j 7) | (dat 1)。}return (dat)。}//寫一個(gè)比特void tmwbyte (unsigned char dat) { unsigned int i。unsigned char j。bit testb。for (j=1。j=8。j++) {testb = dat amp。 0x01。dat = dat 1。 // 從低位開始?if (testb) {// Write 1DQ = 0。 // 先拉低 i++。 i++。 // 1us DQ = 1。Delay(4)。 }else {// Write 0DQ = 0。 Delay(4)。 // 大一點(diǎn) 沒影響,但不能太大,寫一個(gè)位在 30us內(nèi) DQ = 1。i++。 i++。 // 再拉高 }}}//ds1820開始轉(zhuǎn)換 27void tmstart (void) { dmsec(1)。 tmreset ()。 tmpre ()。 dmsec (1)。 tmwbyte (0xcc)。 // skip rom tmwbyte (0x44)。 // 轉(zhuǎn)換}//讀取溫度read_temp(){ tmreset ()。tmpre ()。dmsec (1)。tmwbyte (0xcc)。 // skip romtmwbyte (0xbe)。 // 轉(zhuǎn)換temp_data[0] = tmrbyte ()。 // LSB低 8位temp_data[1]= tmrbyte ()。 // MSB高 8位if((temp_data[1] amp。 0x80)==0x80) //判斷溫度正負(fù){temp_data[1]=~temp_data[1]。temp_data[0]=~temp_data[0]+1。 //負(fù)溫度處理(DS18B20 的負(fù)溫度是正的反碼,即將它取反+1,就得到正的溫度)Tflag=0。}else{Tflag=1。}} 28/********** MAIN **********/void main (void) { uchar last。 uchar lsb,msb。uchar i。tmstart()。dmsec(450)。 // 初始化 ds18b20 while(1){tmstart()。 // ds1820開始轉(zhuǎn)換dmsec(2)。 read_temp()。 // 讀取溫度dispbuf[4]=temp_data[0]amp。0x0f。dispbuf[0]=ditab[dispbuf[4]]。dispbuf[4]=((temp_data[0]amp。0xf0)4)|((temp_data[1]amp。0x0f)4)。dispbuf[3]=dispbuf[4]/100。dispbuf[1]=dispbuf[4]%100。dispbuf[2]=dispbuf[1]/10。dispbuf[1]=dispbuf[1]%10。msb=last/10。lsb=last%10。for(i=255。i0。i){if(Tflag==1) //正溫 if(dispbuf[4]126) { if(dispbuf[4]100) {digitalshow(10,dispbuf[2],dispbuf[1],dispbuf[0])。} //溫度小于100度,則百位不顯示 else {msb=msb%10。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1