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

正文內容

基于單片機數字溫度計-資料下載頁

2025-06-27 19:35本頁面
  

【正文】 t[1]=*pt。 if(t[1]0x07) //判斷正負溫度 { TempBuffer1[0]=0x2d。 //0x2d 為的 ASCII 碼t[1]=~t[1]。 /*下面幾句把負數的補碼 */第 39 頁t[0]=~t[0]。 /* 換算成絕對值*********/x=t[0]+1。 /***********************/t[0]=x。 /***********************/if(x255) /**********************/t[1]++。 /*********************/ } else TempBuffer1[0]=0x2b。 //0xfe 為變+的 ASCII 碼 t[1]=4。 //將高字節(jié)左移 4 位 t[1]=t[1]amp。0x70。 //取出高字節(jié)的 3 個有效數字位 x=t[0]。 //將 t[0]暫存到 X,因為取小數部分還要用到它 x=4。 //右移 4 位 x=xamp。0x0f。 //和前面兩句就是取出 t[0]的高四位 t[1]=t[1]|x。 //將高低字節(jié)的有效值的整數部分拼成一個字節(jié) TempBuffer1[1]=t[1]/100+0x30。 //+0x30 為變 0~9 ASCII 碼 if( TempBuffer1[1]==0x30) TempBuffer1[1]=0xfe。 //百位數消隱 TempBuffer1[2]=(t[1]%100)/10+0x30。 //分離出十位 TempBuffer1[3]=(t[1]%100)%10+0x30。 //分離出個位 t[0]=t[0]amp。0x0c。 //取有效的兩位小數 t[0]=2。 //左移兩位,以便查表 x=t[0]。 y=dotcode[x]。 //查表換算成實際的小數 TempBuffer1[5]=y/10+0x30。 //分離出十分位 TempBuffer1[6]=y%10+0x30。 //分離出百分位}/*********鍵盤命令處理函數*************功能:把鍵盤值轉化成相應的功能標志位*備注:為了提高程序的健壯性,在功能標志位無效時 ,**up_one 和 down_one 都無效,并且各功能標志之間**采用互鎖處理,雖然這樣麻煩,特別是功能標志較多時第 40 頁**更是麻煩,但各功能標志之間是同級別的。**也可采用多重 if else 方法,雖然簡單,**但各功能標志之間有了明顯的優(yōu)先級差別**************************************/void key_mand(unsigned char x) {switch(x){case 1: up_one=1。break。 case 2: down_one=1。break。case 5: alarm_up_flag=!alarm_up_flag。break。case 6: alarm_down_flag=!alarm_down_flag。break。case 7: set_temper_flag=!set_temper_flag。break。case 8: alarm_switch=!alarm_switch。break。default: break。}if(!(alarm_up_flag||alarm_down_flag||set_temper_flag)){up_one=0x00。 //在沒有相應功能標志有效時down_one=0x00。 //up_one 和 down_one 都被鎖定}if(alarm_up_flagamp。amp。(!alarm_down_flag)amp。amp。(!set_temper_flag))//設置上限報警{if(up_one)//上限報警加 1{TH++。up_one=0。if(TH=100)//超過 100 度,回零到 20 度TH=20。}if(down_one)//上限報警減 1第 41 頁{TH。down_one=0。if(TH=20)//小于 20 度,回零到 20 度TH=20。}}if((!alarm_up_flag)amp。amp。(alarm_down_flag)amp。amp。(!set_temper_flag))//設置下限報警{if(up_one){TL++。up_one=0。if(TL=20)//高于 20 度,回零到 0 度TL=0。}if(down_one){TL。down_one=0。if(TL=0)//低于 0 度,回零到 0 度TL=0。}}if((!alarm_up_flag)amp。amp。(!alarm_down_flag)amp。amp。(set_temper_flag))//設置用戶標定溫度{if(up_one){user_temper++。up_one=0。if(user_temper=60)//高于 60 度,回零到 0 度user_temper=0。}if(down_one)第 42 頁{user_temper。down_one=0。if(user_temper=0)//低于 0 度,回零到 0 度user_temper=0。}}//if(alarm_switch)}main(){ setds18b20(TH,TL,RS)。 //設置上下限報警溫度和分辨率 delay(100)。 while(1) { pt=ReadTemperature()。 //測溫函數返回這個數組的頭地址//讀取溫度,溫度值存放在一個兩個字節(jié)的數組中,temper_LCD()。 //實測溫度轉化為 ACSII 碼,并送液晶顯示緩沖區(qū)user_temper_LCD(user_temper)。 //用戶設定溫度轉化為 ACSII 碼,并送液晶顯示緩沖區(qū)alarm_LCD(TH,TL)。 //上下限報警溫度轉化為 ASCII 碼,并送液晶顯示緩沖區(qū)LCD_Initial()。 //第一個參數列號,第二個為行號,為 0 表示第一行//為 1 表示第二行,第三個參數為顯示數據的首地址LCD_Print(0,0,TempBuffer0)。LCD_Print(0,1,TempBuffer1)。 scan_full()。 //看有無鍵按下第 43 頁if(key_ok) //如有鍵按下則看到底哪個鍵按下{key_value=key_scan()。 //調用鍵盤掃描程序key_mand(key_value)。 //鍵盤命令處理函數} }} //include include //用華邦 W78E58B 時必須用這個頭文件include //此函數為庫函數 ,里面有_nop_ 函數,相當于匯編中的 NOP//Port Definitions**********************************************************sbit LcdRs = P2^0。sbit LcdRw = P2^1。sbit LcdEn = P2^2。sfr DBPort = 0x80。 //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.void LCD_Wait(void){LcdRs=0。 //RS=0 表示選擇指令寄存器LcdRw=1。 _nop_()。 //RW=1 表示進行讀操作LcdEn=1。 _nop_()。 //在 EN 為下降沿的時候鎖存數據while(DBPortamp。0x80){LcdEn=0。_nop_()。 _nop_()。LcdEn=1。_nop_()。 _nop_()。}LcdEn=0。第 44 頁}//向 LCD 寫入命令或數據************************************************************define LCD_COMMAND //Commanddefine LCD_DATAdefine LCD_CLEAR_SCREEN //清屏define LCD_HOMING //光標返回原點void LCD_Write(bit style, unsigned char input){LcdEn=0。LcdRs=style。LcdRw=0。 _nop_()。DBPort=input。 _nop_()。 //注意順序LcdEn=1。 _nop_()。 //注意順序LcdEn=0。 _nop_()。LCD_Wait()。}//設置顯示模式************************************************************define LCD_SHOW //顯示開define LCD_HIDE //顯示關 define LCD_CURSOR //顯示光標define LCD_NO_CURSOR //無光標 define LCD_FLASH //光標閃動define LCD_NO_FLASH //光標不閃動void LCD_SetDisplay(unsigned char DisplayMode){LCD_Write(LCD_COMMAND, 0x08|DisplayMode)。}//設置輸入模式第 45 頁define LCD_AC_UPdefine LCD_AC_DOWN define LCD_MOVE define LCD_NO_MOVE void LCD_SetInput(unsigned char InputMode){LCD_Write(LCD_COMMAND, 0x04|InputMode)。}//初始化 LCD************************************************************void LCD_Initial(){LcdEn=0。LCD_Write(LCD_COMMAND,0x38)。 //8 位數據端口LCD_Write(LCD_COMMAND,0x38)。LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR)。 //開啟顯示LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN)。 //清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE)。 //AC 遞增, 畫面不動}void GotoXY(unsigned char x, unsigned char y){if(y==0)LCD_Write(LCD_COMMAND,0x80|x)。if(y==1)LCD_Write(LCD_COMMAND,0x80|(x0x40))。}void Print(unsigned char *str){while(*str!=39。\039。){LCD_Write(LCD_DATA,*str)。str++。第 46 頁}}void LCD_Print(unsigned char x, unsigned char y, unsigned char *str){ GotoXY(x,y)。Print(str)。第 47 頁項目代號 名稱 型號、規(guī)格 數量 備注 更改電阻器 3R1 RT― ――177。5% 1R2 RT― ―b―10kΩ ―177。10% 1RP1 A103J 1U1 單片機 AT89C51 1U2 溫度傳感器 DS18B20DS18B20 1LCD1 夜晶顯示器 LM016L 1X1 晶振 CRYSTAL 1電容C1 CC30PF50v 1C2 CC30PF50v 1C3 CD10UF10V 1按鍵開關 16VSS 接地 3VCC 電源 4舊底圖總號更改標記數量更改單號簽名日期底圖總號 擬 制審 校日期 簽名 等級標記 第 2 張 共 2 張標準化2022712 趙昌福 批 準基于單片機的數字溫度計第 48 頁附錄 2 元器件明細表附錄 3 仿真電路圖袁節(jié)膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈羋膁蚈羀肁蒀蚇蝕襖莆蚇螂肀莂蚆羅袂羋蚅蚄膈膄蚄螇羈蒂蚃衿膆莈螞羈罿芄螁蟻膄膀螁螃羇葿螀裊膃蒅蝿肈
點擊復制文檔內容
范文總結相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1