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

正文內(nèi)容

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

2024-12-23 21:58 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 ( RXD)交叉連接,二者的地線( GND)直接相連,其它信號(hào)線如握手信號(hào)線均不用,而采用軟件握手。但由于 RS232C 的邏輯電對(duì)地是對(duì)稱的,與 TTL、 MOS 邏輯電平完全不同,邏輯 0 電平規(guī)定為 +5~ +15V 之間,邏輯1 是電平為 5~ 15V 之間,因此利用 232 芯片進(jìn)行電平轉(zhuǎn)換,電路連接如圖 11。 圖 11 RS232C 通信連接電路 電源模塊 本方案采用鋰離子手機(jī)充電電池和配套的鋰電池充電器作為電源,手機(jī)用的電池電壓充電電壓是 圖 13 程序流程圖 DS18B20 模塊程序設(shè)計(jì) 程序流程 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。i 8。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。i 8。i++ DQ 0。 u 1。 DQ 1。 if DQ 1 u| 0x80。 Delay 18 。//40us return u 。 //對(duì)從 DS18B20 讀出的溫度值( ddh, ddl)進(jìn)行處理,送顯示緩沖 區(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 。 圖 14 DS18B20 模塊程序流程圖 HS1602 驅(qū)動(dòng)程序設(shè)計(jì) 程序流程 HS1602 液晶驅(qū)動(dòng)主要完成 HS1602 的初始化以及字符和字符串的顯示,程序流程如圖 15 所示。 圖 15 HS1602 液晶驅(qū)動(dòng)程序流程圖 程序源碼 //液晶初始化 void lcd_init void delay_nms 15 。 lcd_write_mand 0x38,0 。//顯示模式設(shè)置三次 此時(shí)不管 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 。//顯示模式設(shè)置 從此之后均需 lcd 空閑 lcd_write_mand 0x08,1 。//顯示關(guān)閉 lcd_write_mand 0x01,1 。//顯示清屏 lcd_write_mand 0x06,1 。//顯示光標(biāo)移動(dòng)設(shè)置 lcd_write_mand 0x0c,1 。//顯示開及光標(biāo)設(shè)置 //寫指令函數(shù) : E 高脈沖 RS 0 RW 0 // mand 為指令, wait_en 指定是否要檢測(cè) LCD 忙信號(hào) void lcd_write_mand unsigned char mand,unsigned char wait_en uchar xdata *dig。 if wait_en wait_enable 。 //若 wait_en 為 1,則要檢測(cè) LCD 忙信號(hào),等待其空閑 dig amp。DIGPORT。 *dig mand。 //寫數(shù)據(jù)函數(shù) : E 高脈沖 RS 1 RW 0 void lcd_write_data unsigned char char_data uchar xdata *dig。 dig amp。DIGPORT1。 wait_enable 。 //等待 LCD 空閑 *dig char_data。 //正常讀寫操作之前必須檢測(cè) LCD 控制器狀態(tài) //E 1 RS 0 RW 1。DB7: 0 LCD 控制器空閑, 1 LCD 控制器忙。 //檢測(cè)忙信號(hào) ,等待 LCD 空閑函數(shù) void wait_enable void lcd_RS 0。//RS 0 lcd_RW 1。//RW 1 _nop_ 。 RD 0。//E 1 lcd_E 1。 while busy 。//等待 LCD_DB7 為 0 RD 1。//E 0 lcd_E 0。 //指定位置顯示一個(gè)字符 :第一行位置 0~15,第二行 16~31 //顯示一個(gè)字符函數(shù) //參數(shù) position 指定位置 0~31,char_data 為要顯示的字符 void display_a_char unsigned char position,unsigned char char_data unsigned char position_tem。 if position 0x10 position_tem position+0xb0。 else position_tem position+0x80。 lcd_write_mand position_tem,1 。 lcd_write_data char_data 。 //指定一行顯示連續(xù)字符串 :0 顯示在第一行 ,1 顯示在第二行 //字符串不能長(zhǎng)于 16 個(gè)字符 //顯示一行連續(xù)字符串函數(shù) //參數(shù) col 指定 行 ,*ptr 指字符串?dāng)?shù)組的首指針 void display_a_string unsigned char col,unsigned char *ptr unsigned char col_tem,i。 //若 col 為 1 即在 LCD 第二行顯示字符串 ,先把 col 左移 4 位 //使顯示字符的首位置改到第二行首位 ,即位置 16 col_tem col 4。 for i 0。i 16。i++ display_a_char col_tem++,* ptr+i 。 AT24C08 存儲(chǔ)模塊程 序設(shè)計(jì) 程序流程 圖 16 AT24C08
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1