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

正文內(nèi)容

基于單片機的溫濕度檢測儀的設(shè)計(編輯修改稿)

2024-11-28 10:21 本頁面
 

【文章內(nèi)容簡介】 的設(shè)置上,主要解決蜂鳴器報警間隔和流水燈閃爍的時間匹配問題,讓兩者現(xiàn)象統(tǒng)一。 步驟 5:根據(jù)查閱相關(guān) Visual Basic 的書籍后知道,只要將傳到串口助手上的數(shù)據(jù)經(jīng)過在 Visual Basic 的相關(guān)控件中編寫代碼就能將數(shù)據(jù)通過 Visual Basic 軟件顯示出來,并且能實現(xiàn)高層管理人員對工廠運作情況的一個遠程控制。在具體編寫中,學習到由于程序中的一個 MSComm 控件只能對應一個串行端口,故在繪制 VB 的界面圖時,只能在一個 MSComm 中顯示溫 度與濕度兩個數(shù)據(jù),這就使得在兩個 MSComm 中分別顯示溫度與濕度成為泡影,因為只有一個串口上傳,但又要很明顯的區(qū)分出來,而不能將兩者緊挨著顯示以免誤看,故將 MSComm 控件的 MultiLine 屬性設(shè)置為 Ture 即可,這樣方框就調(diào)整為剛好在兩行分別顯示數(shù)據(jù)的形式便達到了目的。 MSComm 的代碼: Private Sub MSComm1_OnComm() Dim rec As String Select Case Case EvReceive rec = = rec = 0 End Select End Sub TextBox 的代碼: Private Sub Form_Load() = 9600,N,8,1 16 = 3 = 8 = 2 If = True Then = False = 4 = 2 = 0 = InputModeText If = False Then = True = 0 = 溫濕度顯示 End Sub VB 界面的顯示 其中 “花屏 ”問題的原因與解決方法 : 由于 12864 這種能寫漢字的液晶顯示要在同一個位置刷新漢字就必須注意指針光標的位置,否則就會出現(xiàn)所想寫的漢字與所要顯示的漢字不匹配的情況,甚至還可能出現(xiàn)顯示一段時間后“花屏”。因為漢字是同時顯示兩個字節(jié),而 1602 是顯示一個字節(jié),這可能就是兩者的最大區(qū)別,為此我們每刷新一次漢字立即調(diào)整指針光標到之前的位置,便將棘手的問題迎刃而解。 方案二 基于 DHT11 溫 濕 度傳感器的 Visual C++上位機界面的 設(shè)計 由于 DHT11 的溫度誤差為177。 2℃, 倉庫溫度要求不高 因此我們設(shè)計了適用范圍 一般 的 DHT11 來檢測溫度 和濕度 ,避免了精度不高,提高了檢測的準確性。 遇到的問題和解決的方法: 由于要將溫度值和液晶萬年歷同時在 12864 的液晶上顯示,這就會使兩者的顯示數(shù)據(jù)出現(xiàn)混疊的現(xiàn)象,因為液晶萬年歷每一秒的刷新頻率和 DHT11 的檢測數(shù)據(jù)刷新頻率不一致所導致的,為此我們只要檢測的溫度值每一秒鐘刷新一次即可。 17 VC 界面顯示圖 18 參考文獻 [1] 侯建軍 . 電子技術(shù)基礎(chǔ)實驗、綜合設(shè)計與課程設(shè)計 .北京:高教出版社 2020, 10(第一版) [2] 童詩白,華成英 . 模擬電子技術(shù)基礎(chǔ) . 北京:清華大學教研組編 . [3] 閻石 . 數(shù)字電子技術(shù)基礎(chǔ)。 北京: 清華大學教研組編 . [4] 李朝青 . 單片機原理及接口技術(shù) 北京: 航空航天大學出版社 . 2020, 10.(第三版) [5] 蔡方凱 . 單片機原理及基于單片機的嵌入式系統(tǒng)設(shè)計 中國水利水電出版社 2020. [6] 張永楓 . 單片機應用實訓教程 . 西安電子科技大學出版, 2020. [7] 謝自美 . 電子線路設(shè)計、實驗、測試 . 華中理工大學出版社, 2020. [8] 郭天祥 . 十天學會單片機。電子工業(yè)出版社, 2020. [9] 19 附錄一 /********************************/ //遠程監(jiān)測的工廠溫濕度檢測儀 /********************************/ include define uchar unsigned char define uint unsigned int /***端口定義 ***/ sbit LCD_RS=P3^5。 //寄存器選擇輸入 sbit LCD_RW=P3^6。 //液晶讀 /寫控制 sbit LCD_EN=P3^4。 //液晶使能控制 sbit LCD_PSB=P3^7。 //串 /并方式控制 sbit s1=P2^0。 //調(diào)時開 /關(guān) sbit s2=P2^1。 //調(diào)時 + sbit s3=P2^2。 //調(diào)時 sbit buzzer=P2^7。 //蜂鳴器 sbit P2_6=P2^6。 // 口為通訊口連接 DHT11 typedef unsigned char U8。 typedef unsigned int U16。 char sec,min,hour,week,day=1,month=1,year。 uchar a,flag,flag2。 uchar s1num。 uchar code dis1[]={2020 年 01 月 01 日 }。 uchar code dis2[]={00 時 00 分 00 秒 }。 uchar code dis3[]={溫度 ::00 星期日 }。 uchar code dis4[]={濕度 ::00 上 傳 ..}。 uchar code dis5[]={0x20,0x20,0xce,0xc2,0xb1,0xa8,0xbe,0xaf}。 //空溫報警 uchar code dis6[]={0x20,0x20,0xca,0xaa,0xb1,0xa8,0xbe,0xaf}。 //空濕報警 uchar code dis7[]={0xce,0xc2,0xca,0xaa,0xb1,0xa8,0xbe,0xaf}。 //溫濕報警 uchar code dis8[]={0x20,0x20,0xc9,0xcf,0xb4,0xab,0x2e,0x2e}。 //空上傳 .. uchar code disx[]={0xc8,0xd5,0xd2,0xbb,0xb6,0xfe,0xc8,0xfd,0xcb,0xc4,0xce,0xe5,0xc1,0xf9}。//日 ,一 ,二 ,三 ,四 ,五 ,六 (兩個字節(jié)為一個漢字 ) //定義區(qū) // U8 U8FLAG,k。 U8 U8count,U8temp。 U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata,U8T_data_H1,U8T_data_L1,U8RH_data_H1,U8RH_data_L1。 U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp。 U8 U8data。 U8 outdata[5]。 //定義發(fā)送的字節(jié)數(shù) U8 indata[5]。 U8 count, count_r=0。 U8 str[5]={ZPF }。 U16 U16temp1,U16temp2。 /***延時 1ms 子函數(shù) ***/ void delay(uint z) { uint x,y。 for(x=z。x0。x) for(y=110。y0。y)。 } /***延時子函數(shù) ***/ void Delay2(U16 j) 20 { U8 i。 for(。j0。j) for(i=0。i27。i++)。 } /***延時 10us 子函數(shù) ***/ void Delay_10us(void) { U8 i。 i。 i。 i。 i。 i。 i。 } /***發(fā)送字符串子函數(shù) ***/ SendData(U8 *a) { outdata[0] = a[0]。 outdata[1] = a[1]。 outdata[2] = a[2]。 outdata[3] = a[3]。 count = 1。 SBUF=outdata[0]。 } /***寫指令子函數(shù) ***/ /*RS=0,RW=0,E=0,D0D7=指令碼 */ void write_(uchar ) { LCD_RS=0。 LCD_RW=0。 LCD_EN=0。 P0=。 delay(5)。 LCD_EN=1。 delay(5)。 LCD_EN=0。 } /***寫數(shù)據(jù)子函數(shù) ***/ /*RS=1,RW=0,E=0,D0D7=數(shù)據(jù) */ void write_dat(uchar dat) { LCD_RS=1。 LCD_RW=0。 LCD_EN=0。 P0=dat。 delay(5)。 LCD_EN=1。 delay(5)。 LCD_EN=0。 } /***設(shè)定顯示位置 ***/ void lcd_pos(uchar X,uchar Y) { uchar pos。 if(X==0) X=0x80。 else if(X==1) X=0x90。 21 else if(X==2) X=0x88。 else if(X==3) X=0x98。 pos=X+Y。 write_(pos)。 } /***LCD 初始化設(shè)定 ***/ void init() { LCD_PSB=1。 //并口方式 write_(0x30)。 //基本指令操作 delay(5)。 write_(0x0c)。 //顯示開,關(guān)光標 delay(5)。 write_(0x01)。 //清除 LCD 的顯示內(nèi)容 delay(5)。 TMOD=0x21。 TH0=0x4c。 TL0=0x00。 ET0=1。 EA=1。 TR0=1。 TH1 = 253。 // 設(shè)置初值 TL1 = 253。 TR1 = 1。 // 開始計時 SCON = 0x50。 //工作方式 1,波特率 9600bps,允許接收 ES = 1。 EA = 1。 // 打開所以中斷 TI = 0。 RI = 0。 SendData(str)。 //發(fā)送到串口 Delay2(1)。 } /***寫年月日子函數(shù) ***/ void write_ymd(uchar add,uchar dat) { uchar shi,ge。 shi=dat/10。 ge=dat%10。 write_(0x80+add)。 write_dat(0x30+shi)。 write_dat(0x30+ge)。 } /***寫時分秒子函數(shù) ***/ void write_hms(uchar add,uchar da
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1