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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于51單片機(jī)的遠(yuǎn)程溫度顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁(yè)

2024-12-03 19:40本頁(yè)面

【導(dǎo)讀】處理爐、反應(yīng)爐和鍋爐的溫度進(jìn)行控制。但是,用常規(guī)的操作方法,滿足不了對(duì)較高。利用單片機(jī)對(duì)它們來(lái)進(jìn)行操作控制不但具有控制方便、靈活性大和簡(jiǎn)單。因此,單片機(jī)對(duì)溫度的控制問(wèn)題是一個(gè)工業(yè)生產(chǎn)中經(jīng)常會(huì)遇到的控制問(wèn)題。性,用蜂鳴器實(shí)現(xiàn)高低溫報(bào)警,報(bào)警溫度可用按鍵調(diào)節(jié)。最后用12864液晶顯示屏完

  

【正文】 TMOD=0x20。 //定時(shí)器 T1 工作方式 2 TH1=0xf3。 TL1=0xf3。 TR1=1。 //T1 允許 PCON=0x80。 //波特率加倍 SCON=0x50。 //串口工作方式 1,允許接受 波特率 4800 EA=0。 } 接收端的接受子程序 unsigned char recvdata(unsigned char *buf) { unsigned char i,tmp,len,ecc。 RI=0。 while(!RI)。 len=SBUF。 RI=0。 ecc=len。 for(i=0。ilen。i++) { while(!RI)。 *buf=SBUF。 ecc=ecc^(*buf)。 //進(jìn)行字節(jié)校驗(yàn) RI=0。 buf++。 } *buf=0。 while(!RI)。 tmp=SBUF。 25 RI=0。 ecc=tmp^ecc。 if(ecc!=0) //如果校驗(yàn)錯(cuò)誤 { *(buflen)=0。 //清空數(shù)據(jù)緩沖區(qū) /*發(fā)送校驗(yàn)錯(cuò)誤信號(hào) ERR*/ TI=0。 SBUF=ERR。 while(!TI)。 TI=0。 return 0xff。 //返回 0xff 表示校驗(yàn)錯(cuò)誤 } TI=0。 //如果正確,發(fā)送 SUCC SBUF=SUCC。 while(!TI)。 TI=0。 return 0。 } 發(fā)送端的發(fā)送子程序 void senddata(unsigned char *buf) { unsigned char i,len,ecc。 len=strlen(buf)。 //計(jì)算要發(fā)送的數(shù)據(jù)長(zhǎng)度 ecc=len。 //開(kāi)始進(jìn)行校驗(yàn)字節(jié)計(jì)算 TI=0。 //發(fā)送數(shù)據(jù)長(zhǎng)度 SBUF=len。 while(!TI)。 TI=0。 for(i=0。ilen。i++) { ecc=ecc^(*buf)。 //異或運(yùn)算 SBUF=*buf。 //發(fā)送數(shù)據(jù) buf++。 while(!TI)。 TI=0。 } 26 SBUF=ecc。 //發(fā)送校驗(yàn)字節(jié) while(!TI)。 TI=0。 } 顯示模塊 LCD1602 的基礎(chǔ)知識(shí) 1602是指顯示的內(nèi)容為 16*2,即可以顯示兩行,每行 16個(gè)字符。目前市面上字符液晶絕大多數(shù)是基于 HD44780液晶芯片的,控制原理是完全相同的,因此基于 HD44780寫(xiě)的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。 字符型 LCD1602通常有 14條引腳線或 16條引腳線的 LCD,多出來(lái)的 2條線是背光電源線 VCC(15腳 )和地線 GND(16腳 ),其控制原理與 14腳的 LCD完全一樣。引腳定義如表 38: 表 38 LCD1602引腳表 硬件電路設(shè)計(jì) 電路設(shè)計(jì)中,使用單片機(jī)的 P0口與液晶顯示器的 DB口相連作為數(shù)據(jù)、指令的輸入輸出口,為了提高 P0口的負(fù)載能力,這里加上了 10K的上拉電阻。用 ~晶屏的 RS、 RW、 E三個(gè)引腳,用于控制液晶顯示器,具體電路設(shè)計(jì)原理圖如圖 312所示 。 引腳號(hào) 引腳名 電平 輸入 /輸出 作用 1 Vss 電源地 2 Vcc 電源( +5V) 3 Vee 對(duì)比調(diào)整電壓 4 RS 0/1 輸入 0=輸入指令; 1=輸入數(shù)據(jù) 5 R/W 0/1 輸入 0=寫(xiě)指令或數(shù)據(jù); 1=讀信息 6 E 1,10 輸入 使能信號(hào) 7 DB0 0/1 輸入 /輸出 數(shù)據(jù)總線 line0 8 DB1 0/1 輸入 /輸出 數(shù)據(jù)總線 line1 9 DB2 0/1 輸入 /輸出 數(shù)據(jù)總線 line2 10 DB3 0/1 輸入 /輸出 數(shù)據(jù)總線 line3 11 DB4 0/1 輸入 /輸出 數(shù)據(jù)總線 line4 12 DB5 0/1 輸入 /輸出 數(shù)據(jù)總線 line5 13 DB6 0/1 輸入 /輸出 數(shù)據(jù)總線 line6 14 DB7 0/1 輸入 /輸出 數(shù)據(jù)總線 line7 15 A +Vcc LCD 電源正極 16 K 接地 LCD 電源負(fù)極 27 圖 312 LCD1602 連線圖 軟件設(shè)計(jì) HD44780內(nèi)置了 DDRAM、 CGROM和 CGRAM。 DDRAM就是顯示數(shù)據(jù) RAM,用來(lái)寄存待顯示的字符代碼。共 80個(gè)字節(jié),其地址和屏幕的對(duì)應(yīng)關(guān)系如表 39。 因?yàn)樵?1602,每行只有 16個(gè)字符,因此第一行中的地址只用前 16個(gè)就行了。第二行也一樣用前 16個(gè)地址。 表 39 HD44780地址屏幕對(duì)應(yīng)表 事實(shí)上往 DDRAM里的 00H地址處送一個(gè)數(shù)據(jù),譬如 0x31(數(shù)字 1的代碼 )并不能顯示 1出來(lái)。這是一個(gè)令初學(xué)者很容易出錯(cuò)的地方,原因就是如果你要想在 DDRAM的 00H地址處顯示數(shù)據(jù),則必須將 00H加上 80H,即 80H,若要在 DDRAM的 01H處顯示數(shù)據(jù),則必須將01H加上 80H即 81H。依次類推。大家看一下控制指令的的 8條: DDRAM地址的設(shè)定,即可以明白是怎么樣的一回事了。 LCD1602液晶顯示模塊內(nèi)部字符發(fā)生存儲(chǔ)器( CGROM)已經(jīng)儲(chǔ)存了 160個(gè)不一樣的點(diǎn)陣圖形,如表 310所示,這類字符有:英文字母的大小寫(xiě)、常用的符號(hào)和日文假名等。每個(gè)字符具有一個(gè)特定的代碼,比如大寫(xiě)的英文字母“ A”的代碼是 01000001B( 41H),顯示時(shí)模塊把地址 41H中的點(diǎn)陣字符圖形顯示出來(lái),就能看到字母“ A”。 上表中的字符代碼與 PC中的字符代碼是基本一 致的。因此在向 DDRAM寫(xiě) C51字符代碼程序時(shí)甚至可以直接用 P1= 39。A39。這樣的方法。 PC在編譯時(shí)就把“ A”先轉(zhuǎn)為 41H代碼了。 表 310 CGROM 字符碼與字字符模關(guān)系對(duì)照表 顯示位置 1 2 3 4 5 6 7 ? 40 DDRAM地址 第一行 00H 01H 02H 03H 04H 05H 06H ? 27H 第二行 40H 41H 42H 43H 44H 45H 46H ? 67H 28 字符代碼 0x00~ 0x0F為用戶自定義的字符圖形 RAM(對(duì)于 5X8點(diǎn)陣的字符,可以存放8組, 5X10點(diǎn)陣的字符,存放 4組 ),就是 CGRAM了。后面我會(huì)詳細(xì)說(shuō)的。 0x20~ 0x7F為標(biāo)準(zhǔn)的 ASCII碼, 0xA0~ 0xFF為日文字符和希臘文字符,其余字符碼(0x10~ 0x1F及 0x80~ 0x9F)沒(méi)有定義。 下面先說(shuō)說(shuō) HD44780的指令集及其設(shè)置說(shuō)明,請(qǐng)瀏覽該指令集,并找出對(duì) DDRAM的內(nèi)容和地址進(jìn)行操作的指令。共 11條指令,如表 311。 表 311 HD44780指令表 由表 311可知,當(dāng)向 LCD寫(xiě)數(shù)據(jù)時(shí), RS為 1, RW為 0,如果是些指令,則 RS為 0, RW為序號(hào) 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清顯示 0 0 0 0 0 0 0 0 0 1 2 光標(biāo)返回 0 0 0 0 0 0 0 0 1 * 3 輸入模式 0 0 0 0 0 0 0 1 I/D S 4 顯 示開(kāi) /關(guān)控制 0 0 0 0 0 0 1 D C B 5 光標(biāo)或字符移位 0 0 0 0 0 1 S/C R/D * * 6 功能 0 0 0 0 1 DL N F * * 7 字符發(fā)生存儲(chǔ)器地址 0 0 0 1 字符發(fā)生存儲(chǔ)器地址 8 數(shù)據(jù)存儲(chǔ)器地址 0 0 1 顯示數(shù)據(jù)存儲(chǔ)器地址 9 讀忙標(biāo)志和地址 0 1 BF 計(jì)時(shí)器地址 10 寫(xiě)數(shù)據(jù) 1 0 要寫(xiě)的數(shù)據(jù)內(nèi)容 11 讀數(shù)據(jù) 1 1 讀出數(shù)據(jù)內(nèi)容 29 0,該指令執(zhí)行的時(shí)間為 40us,具體時(shí)序如圖 313所示 。 圖 313 LCD1602 指令時(shí)序圖時(shí)序圖 具體代碼如下: void write_(unsigned char ) // 寫(xiě)入指令數(shù)據(jù)到 lcd { RW=0。 RS=0。 P0=。 delay(550)。 E=1。 delay(550)。 E=0。 } void write_data(unsigned char date) // 寫(xiě)入字符顯示數(shù)據(jù)到 lcd { RW=0。 RS=1。 P0=date。 delay(550)。 E=1。 delay(550)。 E=0。 } 初始化過(guò)程(復(fù)位過(guò)程) 30 初始化過(guò)程如下: ①寫(xiě)指令 38H 顯示模式設(shè)置(不檢測(cè)忙信號(hào))。 ②寫(xiě)指令 0CH(開(kāi)顯示)。 ③寫(xiě)指令 06H 顯示光標(biāo)移動(dòng)設(shè)置。 ④寫(xiě)指令 01H 顯示清屏。 void init1602() // 初始化設(shè)定 { RW=0。 E=0。 write_(0x38)。 write_(0x0c)。 // 00001100 開(kāi)顯示 write_(0x06)。 // 00000110 當(dāng)讀寫(xiě)一個(gè)字節(jié)時(shí) 地址指針加 1 且光標(biāo)加 1 write_(0x01)。 // 00000001 顯示清屏 write_(0x80)。 } 因?yàn)檫@里設(shè)置了每輸入一個(gè)字符,光標(biāo)就自動(dòng)加 1,所以要顯示字符串時(shí),只需要連續(xù)調(diào)用寫(xiě)數(shù)據(jù)函數(shù)既可以,可以方便地寫(xiě)出輸入字符串的函數(shù)。 void write_string(unsigned char word[]) //寫(xiě)一個(gè)字符串 { int i。 for(i=0。i16。i++) write_data(word[i])。 } 31 第 4 章 仿真與實(shí)現(xiàn) 軟件編程環(huán)境 單片機(jī)研發(fā)中除了必須的硬件之外,同樣需要軟件,我們可以通過(guò)兩種方式來(lái)實(shí)現(xiàn)匯編語(yǔ)言源程序轉(zhuǎn)變?yōu)?CPU能夠執(zhí)行的機(jī)器碼。一種 Keil軟件圖標(biāo)作為手工匯編;另一種便為機(jī)器匯編。近幾年基本上不使用手工匯編方式了。機(jī)器匯編則是采用匯編軟件把源程序轉(zhuǎn)換成機(jī)器碼。用于 MCS51單片機(jī)軟件匯 編有早年的 A51。由于單片機(jī)研發(fā)技術(shù)迅猛發(fā)展,隨著人們逐漸采用高級(jí)語(yǔ)言開(kāi)發(fā)軟件,單片機(jī)的軟件開(kāi)發(fā)同樣也在持續(xù)發(fā)展。 Keil軟件是當(dāng)前最常用的開(kāi)發(fā) MCS51系列單片機(jī)的軟件。運(yùn)用 Keil軟件需要Pentium或以上的 CPU, 16MB或更多 RAM, 20M以上多余的硬盤(pán)存儲(chǔ)空間、 WIN9 WINXP等操作系統(tǒng)。掌握這一軟件的使用對(duì)于使用 51系列單片機(jī)的愛(ài)好者來(lái)說(shuō)是十分必要的,如果你使用 C語(yǔ)言編程,那么 Keil幾乎就是你的不二之選(目前在國(guó)內(nèi)你只能買(mǎi)到該軟件、而你買(mǎi)的仿真機(jī)也很可能只支持該軟件),即使不使用 C語(yǔ) 言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。 Keil C51 開(kāi)發(fā)系統(tǒng)基本知識(shí) 1. 系統(tǒng)概述 Keil C51是美國(guó) Keil Software公司出品的 51系列兼容單片機(jī) C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比, C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用 C來(lái)開(kāi)發(fā),體會(huì)更加深刻。 Keil C51軟件提供豐富的庫(kù)函數(shù)和功能完善的集成研發(fā)測(cè)試工具,全新的 Windows界面。另外重要的一點(diǎn),只要看一次編譯后產(chǎn)生 的匯編程序,就能體會(huì)到 Keil C51生成的代碼效率非常之高,大多數(shù)語(yǔ)句的匯編代碼簡(jiǎn)單
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1