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

正文內(nèi)容

基于c51單片機(jī)的數(shù)字溫度報(bào)警器的設(shè)計(jì)畢業(yè)設(shè)計(jì)-文庫(kù)吧在線文庫(kù)

  

【正文】 ColHigh _at_ 0xb001。 // 讀狀態(tài)字地址 (E1) xdata unsigned char DRADD1 _at_ 0x9003。 define PD1 61 // 122/2 分成左右兩半屏 (122x32) unsigned char Column。 16經(jīng)過十天的資料查找和設(shè)計(jì),我已完成了計(jì)算機(jī)控制的課程設(shè)計(jì)。 圖 : DS18B20 溫度檢測(cè)框圖 133. 鍵盤掃描模塊 鍵盤掃描通過檢測(cè)按鍵狀態(tài),當(dāng)有按鍵按下時(shí),鍵盤掃描程序?qū)存I轉(zhuǎn)換成鍵值,將鍵值返回到主函數(shù),并記錄按鍵的數(shù)值,轉(zhuǎn)換成設(shè)定溫度。聲音的頻率由端口輸出時(shí)延時(shí)控制。地址映射如下(地址中的 X 由 LCD CS 決定,可參見地址譯碼部分說明) 0X000H 0X001H 0X002H 0X003H 0X004H 0X005 0X006H 0X007H 寫 E1 指令 寫 E1 數(shù)據(jù) 讀 E1 狀態(tài) 讀 E1 數(shù)據(jù) 寫 E2 指令 寫 E2 數(shù)據(jù) 讀 E2 狀態(tài) 讀 E2 數(shù)據(jù) 間接控制方式是計(jì)算機(jī)通過自身的或系統(tǒng)的并行接口與液晶顯示模塊連接,如 MCS51 的 P1 口和 P3 口, 8255 等并行接口芯片。例如,將 KEY/LED CS 接到 CS0上,則段碼地址為 08004H,位碼地址為 08002H。 8 位段碼、 6 位位碼是由兩片 74LS374 輸出。系統(tǒng)對(duì) DS18B20 的各種操作必須按協(xié)議進(jìn)行。 ( 2) 在 DS18B20 中的每個(gè)器件上都有獨(dú)一無(wú)二的序列號(hào)。 C,在 10~ +85176。 鍵盤在由單片機(jī)控制的溫度報(bào)警器系統(tǒng)中的主要作用是通過按鍵向單片機(jī)輸入指令,其中主要是輸入控制溫度的上下限,是人工控制單片機(jī)的主要手段。如果有鍵按下 ,則相應(yīng)行的值應(yīng)為低 ,如果無(wú)鍵按下,由于上拉的作用,行碼為高。 復(fù)位通常有 2 種基本形式:上電復(fù)位和開關(guān)復(fù)位。報(bào)警通過揚(yáng)聲器和發(fā)光二極管顯示。 同時(shí)本次設(shè)計(jì)的報(bào)警溫度采用鍵盤輸入的方式 , 確保各種報(bào)警溫度可以方便的設(shè)定和調(diào)節(jié) 。數(shù)字化控制、智能控制為現(xiàn)代人的工作、生活、科研等方面帶來(lái)方便。 3. 方案選定 本次課程設(shè)計(jì)在實(shí)驗(yàn)室進(jìn)行 , 基于現(xiàn)有的實(shí)驗(yàn)器材 , 本次選用 DS18B20 溫度傳感器作為溫度測(cè)量傳感器 ,此傳感器為單總線數(shù)字溫度傳感器,起體積小、構(gòu)成的系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,它可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)給單片機(jī)處理,即可實(shí)現(xiàn)溫度顯示。本次采用的是常用的上電且開關(guān)復(fù)位電路,電路如下圖所示: 圖:復(fù)位電路 C1R1R2SR S TV C C 5 上電后,由于電容充電,使 RST 持續(xù)一段高電平時(shí)間。地址中的 X 是由 KEY/LED CS 決定,參見地址譯碼?!耙痪€總線”獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。 C。 C 到+ 125。采用 LED 數(shù)碼管進(jìn)行顯示是因?yàn)?LED 數(shù)碼管具有以下幾個(gè)優(yōu)點(diǎn): (1)能在低電壓、小電流條件下驅(qū)動(dòng)發(fā)光,能與 CMOS、 ITL電路兼容。當(dāng)用 LPC2103 驅(qū)動(dòng)時(shí),用的是模擬總線方式,所以只需將八段管的 KEY/LED_CS 片選接到 CS0 即可。一種為直接訪問方式,一種為間接控制方式。 LCD 液晶顯示電路如下圖 : 連線 連接孔 1 連接孔 2 3 LCD_CS CS1 9 圖: LCD 液晶顯示電路 ( 3) 16x16 點(diǎn)陣顯示 16x16 點(diǎn)陣需要 32 個(gè)驅(qū)動(dòng),分別為 16 個(gè)列驅(qū)動(dòng)及 16 個(gè)行驅(qū)動(dòng)。當(dāng)溫度再次低于設(shè)定溫度上限,上述裝置取消報(bào)警狀態(tài),程序恢復(fù)正常運(yùn)行。 LCD 液晶顯示程序框圖如下所示 : 圖 : LCD 液晶屏顯示程序框圖 155. 中斷模塊 中斷采用 T0 方式 1,初始值定時(shí)為 。 縱觀整個(gè)設(shè)計(jì)系統(tǒng),我更加熟悉了對(duì) 89C51 單片機(jī)的了解與認(rèn)識(shí),深切的將課堂中所學(xué)的理論知識(shí)運(yùn)用到實(shí)踐中,這是一個(gè)非常好的機(jī)會(huì),我也很看重,如果沒有這次 的課程設(shè)計(jì),我對(duì)單片機(jī)的學(xué)習(xí)還是一直是課堂中的認(rèn)識(shí),無(wú)法真真實(shí)實(shí)的了解一個(gè)單片機(jī)的運(yùn)行狀況,這次課程設(shè)計(jì)對(duì)我以后也有很大的影響。 // 字符代碼寄存器 unsigned char Command。 // 寫顯示數(shù)進(jìn)地址 (E2) xdata unsigned char CRADD2 _at_ 0x9006。 sbit WarLed=P1^2。 unsigned int bitmask 。 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高 =8x16 */ {0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00}, 20/* 文字 : 2 */ /* 宋體 12。 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高 =8x16 */ {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00}, /* 文字 : . */ /* 宋體 12。 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高 =16x16 */ 0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A,0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,0x00, 0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00, /* 文字 : 度 */ /* 宋體 12。 //將總線拉低 480us~960us i=70。 for(j=0。 //延時(shí) 68us,持續(xù)時(shí)間最少 60us IN=1。 IN=1。 } return byte。 //跳過 ROM 操作命令 Ds18b20WriteByte(0xbe)。 temp=8。 uchar k。amp。 8) i += 3。 CWADD1 = Command。 0x80)。 } // LCD 液晶屏 初始化程序 void Init() { RUN=1。 WriteCommandE1()。 Command = 0xaf。 Command = 0x00。 // 頁(yè)內(nèi)字節(jié)清零循環(huán) }while(++i !=4)。 k = Column。 // 取漢字字模數(shù)據(jù) WriteDataE2()。 i = 0。 WriteCommandE1()。 i++。i++) { Page_ = nPage。 WriteCHN16x16()。 WriteCHN16x16()。 WriteCHN16x16()。 static unsigned char k=0。 case 1 : XBYTE[0x8002] = 0x02。break。 if(j==20amp。 RowLow = bitmask amp。 //蜂鳴器報(bào)警 } } //******************************中端函數(shù) **********************************// //******************************主函數(shù) ************************************// void main() { unsigned char x[3] = {0,0,0}。 TH0 = 0xFC。 LEDBUF[2] = 0x00。 bitmask = 0x01。 LEDBUF[0] = 0x39。 for(i=0。 if(i==0) cod2[0]=key。a0) { w = 0。 LEDBUF[5] =0x00。 LEDBUF[4] = LEDMAP[CurTemp/1000%10]。 LEDBUF[0] = 0x39。 LEDBUF[1] =LEDMAP[CurTemp%10]。 Delay(100)。 y[i] = 1。 LEDBUF[4] = 0x00。 x[2] = 0。 ColLow = 0xff。 DisplayL()。 Init()。 bitmask = 1。 RowLow = 0x00。 case 5 : XBYTE[0x8002] = 0x20。i++。 XBYTE[0x8004] = LEDBUF[i]。 WriteCHN16x16()。 WriteCHN16x16()。 WriteCHN16x16()。 j。 }。 WriteCommandE2()。 // 設(shè)置頁(yè)地址 WriteCommandE1()。 // 列地址是否超出顯示范圍 } 。 // 取漢字字模數(shù)據(jù) WriteDataE1()。 while(j2) { Command = ((Page_ + j) amp。 // 一頁(yè)清 80 個(gè)字節(jié) do { LCDData = 0x00。 i = 0。 WriteCommandE2()。 Command = 0xa4。 DWADD2 = LCDData。 } // (E1) void ReadDataE1() { while(CRADD1 amp。 // 等鍵釋放 return(KeyTable[i])。 2) i += 1。 Pos = 1。 uchar TestKey() // 檢測(cè)按鍵狀態(tài) { return (~XBYTE[0x8001] amp。 //先寫入轉(zhuǎn)換命令 Ds18b20ReadTempCom()。 //跳過 ROM 操作命令 Ds18b20WriteByte(0x44)。 //讀取數(shù)據(jù),從最低位開始讀取 /*將 byte 左移一位,然后與上右移 7 位后的 bi,注意移動(dòng)之后移掉那位補(bǔ) 0。 for(j=8。 IN=datamp。 while(IN) //等待 DS18B20 拉低總線 { i++。 i !=0。 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高 =16x16 */ 0x40,0x41,0xCE,0x04,0x00,0x80,0x40,0xBE,0x82,0x82,0x82,0xBE,0xC0,0x40,0x40,0x00, 0x00,0x00,0x7F,0x20,0x90,0x80,0x40,0x43,0x2C,0x10,0x10,0x2C,0x43,0xC0,0x40,0x00, /* 文字 : 定 */ /* 宋體 12。 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高 =8x16 */ {0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00}, /* 文字 : 6 */ /* 宋體 12。 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高 =16x16 */ 0x40,0x10,0xA0,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0xFC,
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1