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

正文內(nèi)容

基于ds18b20溫度傳感器的數(shù)字溫度計設計(編輯修改稿)

2024-07-24 17:53 本頁面
 

【文章內(nèi)容簡介】 00001*ADD=0時,回原位 輸入方式 00000001I/DS決定是否移動以及移動方向 顯示開關 0000001DCBD顯示,C光標,B光標閃爍 移位 000001S/CR/L**移動光標及整體顯示 功能設置 00001DLNF**DL數(shù)據(jù)位數(shù),L行數(shù),F字體CGRAM地址設置 0001A5 A4 A3 A2 A1 A0設置CGRAM的地址DDRAM地址設置 001A6 A5 A4 A3 A2 A1 A0設置DDRAM的地址忙標志/讀地址計數(shù)器 01BFAC6 AC5 AC4 AC3 AC2 AC1 AC0讀出忙標志位(BF)及AC值CGRAM/DDRAM數(shù)據(jù)寫 10寫數(shù)據(jù)將內(nèi)容寫入RAM中CGRAM/DDRAM數(shù)據(jù)讀 11讀數(shù)據(jù)將內(nèi)容從RAM中讀出HS1602液晶顯示模塊可以和單片機AT89C51直接接口,電路如圖10所示。圖10 AT89S52和HS1602液晶模塊連接電路液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表9是HS1602的內(nèi)部顯示地址。即第1行的顯示地址應為80H+顯示位置,第2行的顯示地址應為C0H+顯示位置。表9 HS1602的內(nèi)部顯示地址顯示位置12345678910111213141516第1行808182838485868788898A8B8C8D8E8F第2行C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF 串口通信模塊RS232C標準(協(xié)議)的全稱是EIARS232C標準,其中EIA(Electronic Industry Association)代表美國電子工業(yè)協(xié)會,RS(remended standard)代表推薦標準,232是標識號,C代表RS232的最新一次修改,在這之前,有RS232B、RS232A,它規(guī)定連接電纜和機械、電氣特性、信號功能及傳送過程。RS232C適合于數(shù)據(jù)傳輸速率在0~20000b/s范圍內(nèi)的通信。PC機常用DB9連接器作為提供多功能I/O卡或主板上COM1和COM2兩個串行接口的連接器,它只提供異步通信的9個信號,9針串口功能見表10,并且對電纜長度也有要求: RS232C標準規(guī)定,若不使用MODEM,在碼元畸變小于4%的情況下,DTE和DCE之間最大傳輸距離為15m(50英尺)??梢娺@個最大的距離是在碼元畸變小于4%的前提下給出的,為了保證碼元畸變小于4%的要求,接口標準在電氣特性中規(guī)定,驅(qū)動器的負載電容應小于2500pF。 表10 9針串口功能一覽表針腳功能針腳功能1載波檢測6數(shù)據(jù)準備完成2接收數(shù)據(jù)7發(fā)送請求3發(fā)送數(shù)據(jù)8發(fā)送清除4數(shù)據(jù)終端準備完成9振鈴指示5信號地線本方案對RS232C接口采用3線制(RXD、TXD、GND)軟握手的零MODEM方式進行單片機和PC之間的數(shù)據(jù)通信,即PC機和單片機的發(fā)送數(shù)據(jù)線(TXD)與接收數(shù)據(jù)(RXD)交叉連接,二者的地線(GND)直接相連,其它信號線如握手信號線均不用,而采用軟件握手。但由于RS232C的邏輯電對地是對稱的,與TTL、MOS 邏輯電平完全不同,邏輯0電平規(guī)定為+5~ +15V之間,邏輯1是電平為5~ 15V之間,因此利用MAX232芯片進行電平轉(zhuǎn)換,電路連接如圖11。圖11 RS232C通信連接電路 電源模塊本方案采用鋰離子手機充電電池和配套的鋰電池充電器作為電源,,完全滿足各模塊的工作電壓范圍。充電器在作為電源的同時也可以對鋰電池進行充電,所以系統(tǒng)在離開市電時可正常工作。充電器電路如圖12所示。圖12 充電電路4 軟件設計 主程序流程 軟件部分包括五個部分,對應著系統(tǒng)的五種模式,程序流程如圖13所示。初始化讀最新溫度讀最新溫度設定溫度值保存/刪除數(shù)據(jù)讀出數(shù)據(jù)刷新顯示緩沖區(qū)數(shù)據(jù)判斷是否刷新顯示緩沖區(qū)數(shù)據(jù)刷新顯示緩沖區(qū)數(shù)據(jù)保存數(shù)據(jù)并刷新顯示緩沖區(qū)數(shù)據(jù)刷新顯示緩沖區(qū)數(shù)據(jù)顯示模式選擇改狀態(tài)指示改狀態(tài)指示改狀態(tài)指示改狀態(tài)指示改狀態(tài)指示State=0環(huán)境溫度模式模式State=1體溫計模式State=2設定模式State=4讀出數(shù)據(jù)State=3保存/刪除數(shù)據(jù)圖13 程序流程圖 DS18B20模塊程序設計 程序流程DS18B20模塊程序主要完成DS18B20的初始化和溫度的讀去操作,程序流程如圖14所示。 程序源碼uchar DataH。uchar DataL。unsigned long Data。 void Delay (uchar us){ while (us)。}bit init_18b20() //1820初始化{ uchar n=0。 bit flag=0。 DQ=1。 _nop_()。 DQ=0。 Delay(255)。 Delay(20)。 //550us DQ=1。 Delay(55)。 if(DQ==0) flag=1。 //detect 1820 success! else flag=0。 //detect 1820 fail! Delay(100)。 DQ=1。 return flag。}void write1820_byte (uchar wr) //單字節(jié)寫入{ uchar i。 for (i=0。i8。i++) { DQ=0。 _nop_()。 DQ=wramp。0x01。 Delay(20)。//45us DQ=1。 wr=1。 } }uchar read1820_byte (void) //讀取單字節(jié){ uchar i,u=0。 for(i=0。i8。i++) { DQ=0。 u=1。 DQ=1。 if(DQ==1) u|=0x80。 Delay(18)。//40us } return(u)。 }//對從DS18B20讀出的溫度值(ddh,ddl)進行處理,送顯示緩沖區(qū)void DataCoding(unsigned char ddH , unsigned char ddL){ Data = ddH * 256 + ddL。 Data = Data * 625。}void Get_temperarue(void){ if (init_18b20 ()) { write1820_byte (0xcc)。 //skip rom write1820_byte (0x44)。 //temp convert } Delay(35)。 if (init_18b20 ()) { write1820_byte (0xcc)。 //skip rom write1820_byte (0xbe)。 //read temp DataL = read1820_byte()。 DataH = (read1820_byte()amp。0x0f)。 DataCoding( DataH, DataL )。 }}DS18B20初始化結束溫度轉(zhuǎn)換跳過ROM匹配延時DS18B20是否存在?跳過ROM匹配讀暫存器轉(zhuǎn)換為顯示碼是否圖14 DS18B20模塊程序流程圖 HS1602驅(qū)動程序設計 程序流程 HS1602液晶驅(qū)動主要完成HS1602的初始化以及字符和字符串的顯示,程序流程如圖15所示。1602液晶模塊初始化開始顯示圖15 HS1602液晶驅(qū)動程序流程圖 程序源碼//液晶初始化void lcd_init(void){ delay_nms(15)。 lcd_write_mand(0x38,0)。//顯示模式設置三次(此時不管lcd空閑與否) delay_nms(5)。 lcd_write_mand(0x38,0)。 delay_nms(5)。 lcd_write_mand(0x38,0)。 delay_nms(5)。lcd_write_mand(0x38,1)。//顯示模式設置(從此之后均需lcd空閑) lcd_write_mand(0x08,1)。//顯示關閉 lcd_write_ma
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1