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

正文內(nèi)容

畢業(yè)設(shè)計-基于51單片機的遠(yuǎn)程溫度顯示系統(tǒng)的設(shè)計與實現(xiàn)(文件)

2024-12-27 19:40 上一頁面

下一頁面
 

【正文】 RxD引腳連接。 能夠?qū)崿F(xiàn) RS232C電平轉(zhuǎn)換的專用芯片有很多,本例選用常用的 Maxim公司的MAX3232集成芯片。供電范圍: ~ 圖 310 MAX3232芯片引腳圖 硬件電路設(shè)計 電路原理圖如圖 311所示 ,省去了 DB9的連接器, 口接收端和發(fā)送端。數(shù)據(jù)傳輸?shù)碾p方均使用 4800kbps的速率傳送數(shù)據(jù),使用主從式通信,主機發(fā)送數(shù)據(jù),從機接收數(shù)據(jù),雙方在發(fā)送數(shù)劇和接收數(shù)據(jù)時使用查詢方式。主機接收到握手信號之后,如果同意發(fā)送數(shù)據(jù),則回發(fā)回應(yīng)信號 00H,表示可以發(fā)送,要不然就會發(fā)送回應(yīng)信號 15H說明目前無法接收信號數(shù)據(jù)。從機在接受完數(shù)據(jù)后,將根據(jù)最后的檢驗結(jié)果判斷數(shù)據(jù)接受是否正確,假如校驗正確,就會給主機發(fā)送 2AH信號,表示接受成功;如果校驗錯誤,則發(fā)送 F0H信號,表示錯誤,并請求重發(fā)。 表 36 握手協(xié)議信號定義表 數(shù)據(jù)傳輸?shù)膸Y(jié)構(gòu)如表 37: 表 37 數(shù)據(jù)幀結(jié)構(gòu) 數(shù)據(jù)長度字節(jié)的值為由主機發(fā)送的數(shù)據(jù)字節(jié)的個數(shù) N,數(shù)據(jù)幀最后一個字節(jié)為奇偶校驗字節(jié)。 //定時器 T1 工作方式 2 TH1=0xf3。 //波特率加倍 SCON=0x50。 while(!RI)。 for(i=0。 ecc=ecc^(*buf)。 while(!RI)。 if(ecc!=0) //如果校驗錯誤 { *(buflen)=0。 TI=0。 while(!TI)。 len=strlen(buf)。 while(!TI)。i++) { ecc=ecc^(*buf)。 TI=0。 } 顯示模塊 LCD1602 的基礎(chǔ)知識 1602是指顯示的內(nèi)容為 16*2,即可以顯示兩行,每行 16個字符。用 ~晶屏的 RS、 RW、 E三個引腳,用于控制液晶顯示器,具體電路設(shè)計原理圖如圖 312所示 。 因為在 1602,每行只有 16個字符,因此第一行中的地址只用前 16個就行了。依次類推。 上表中的字符代碼與 PC中的字符代碼是基本一 致的。 PC在編譯時就把“ A”先轉(zhuǎn)為 41H代碼了。 下面先說說 HD44780的指令集及其設(shè)置說明,請瀏覽該指令集,并找出對 DDRAM的內(nèi)容和地址進(jìn)行操作的指令。 RS=0。 delay(550)。 P0=date。 E=0。 ④寫指令 01H 顯示清屏。 write_(0x0c)。 } 因為這里設(shè)置了每輸入一個字符,光標(biāo)就自動加 1,所以要顯示字符串時,只需要連續(xù)調(diào)用寫數(shù)據(jù)函數(shù)既可以,可以方便地寫出輸入字符串的函數(shù)。i++) write_data(word[i])。機器匯編則是采用匯編軟件把源程序轉(zhuǎn)換成機器碼。運用 Keil軟件需要Pentium或以上的 CPU, 16MB或更多 RAM, 20M以上多余的硬盤存儲空間、 WIN9 WINXP等操作系統(tǒng)。 Keil C51軟件提供豐富的庫函數(shù)和功能完善的集成研發(fā)測試工具,全新的 Windows界面。 Keil C51 開發(fā)系統(tǒng)基本知識 1. 系統(tǒng)概述 Keil C51是美國 Keil Software公司出品的 51系列兼容單片機 C語言軟件開發(fā)系統(tǒng),與匯編相比, C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。由于單片機研發(fā)技術(shù)迅猛發(fā)展,隨著人們逐漸采用高級語言開發(fā)軟件,單片機的軟件開發(fā)同樣也在持續(xù)發(fā)展。一種 Keil軟件圖標(biāo)作為手工匯編;另一種便為機器匯編。 for(i=0。 // 00000110 當(dāng)讀寫一個字節(jié)時 地址指針加 1 且光標(biāo)加 1 write_(0x01)。 E=0。 ②寫指令 0CH(開顯示)。 E=1。 } void write_data(unsigned char date) // 寫入字符顯示數(shù)據(jù)到 lcd { RW=0。 delay(550)。 表 311 HD44780指令表 由表 311可知,當(dāng)向 LCD寫數(shù)據(jù)時, RS為 1, RW為 0,如果是些指令,則 RS為 0, RW為序號 指令 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 顯 示開 /關(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ā)生存儲器地址 0 0 0 1 字符發(fā)生存儲器地址 8 數(shù)據(jù)存儲器地址 0 0 1 顯示數(shù)據(jù)存儲器地址 9 讀忙標(biāo)志和地址 0 1 BF 計時器地址 10 寫數(shù)據(jù) 1 0 要寫的數(shù)據(jù)內(nèi)容 11 讀數(shù)據(jù) 1 1 讀出數(shù)據(jù)內(nèi)容 29 0,該指令執(zhí)行的時間為 40us,具體時序如圖 313所示 。后面我會詳細(xì)說的。A39。 LCD1602液晶顯示模塊內(nèi)部字符發(fā)生存儲器( CGROM)已經(jīng)儲存了 160個不一樣的點陣圖形,如表 310所示,這類字符有:英文字母的大小寫、常用的符號和日文假名等。 表 39 HD44780地址屏幕對應(yīng)表 事實上往 DDRAM里的 00H地址處送一個數(shù)據(jù),譬如 0x31(數(shù)字 1的代碼 )并不能顯示 1出來。 DDRAM就是顯示數(shù)據(jù) RAM,用來寄存待顯示的字符代碼。 字符型 LCD1602通常有 14條引腳線或 16條引腳線的 LCD,多出來的 2條線是背光電源線 VCC(15腳 )和地線 GND(16腳 ),其控制原理與 14腳的 LCD完全一樣。 //發(fā)送校驗字節(jié) while(!TI)。 //發(fā)送數(shù)據(jù) buf++。 for(i=0。 //開始進(jìn)行校驗字節(jié)計算 TI=0。 return 0。 //返回 0xff 表示校驗錯誤 } TI=0。 SBUF=ERR。 25 RI=0。 buf++。i++) { while(!RI)。 RI=0。 } 接收端的接受子程序 unsigned char recvdata(unsigned char *buf) { unsigned char i,tmp,len,ecc。 TR1=1。主機將待發(fā)送數(shù)據(jù)的長度字節(jié)和 N個數(shù)據(jù)字節(jié)共 N+1個字節(jié)相異或,將異或后的結(jié)果與受到的數(shù)據(jù)幀的最后一個字節(jié)(奇偶校驗字節(jié))比較來 進(jìn)行無碼判斷。主機接收到 2AH字節(jié)后,通信結(jié)束,否則主機將重新發(fā)送這組數(shù)據(jù)。從機發(fā)送完呼叫訊號之后等待,直至接收到主機的回應(yīng)訊號 00H時,才能夠確認(rèn)實現(xiàn)握手過程,開始發(fā)送數(shù)據(jù),否則,主機將持續(xù)向從機發(fā)起呼叫。雙機開始數(shù)據(jù)傳輸時,從機發(fā)出呼叫信號 24H啟動握手過程,詢問主機是否能夠發(fā)送數(shù)據(jù)。在實際應(yīng)用中,很多時候單片機之間的通信環(huán)境都是比較好的,協(xié)議往往不是很復(fù)雜。其引腳圖分布( SO/DP)封裝如圖 310所示。由于 RS232C標(biāo)準(zhǔn)規(guī)定的邏輯電平與 TTL等數(shù)字電路的邏輯電平不兼容,因此兩者之間進(jìn)行相互連接時必須先進(jìn)行那個接口電平的轉(zhuǎn)換,即必須將單片機的 TTL電平和 RS232C標(biāo)準(zhǔn)進(jìn)行轉(zhuǎn)換。為了使系統(tǒng)能夠可靠、穩(wěn)定地通信,有效地保證數(shù)據(jù)的傳輸,防止錯誤帶來的影響,一般在通信時,采取數(shù)據(jù)校驗的方法。后來為了簡化串口的線路連接,出現(xiàn)了簡化的 9芯 DB9連接器,其引腳分布如圖 39所示 。 51單片機的串口是 RS232C標(biāo)準(zhǔn)的串口, RS232C標(biāo)準(zhǔn)時在 RS232標(biāo)準(zhǔn)上經(jīng)過改進(jìn)形成的。異步通信通過幀的格式來發(fā)送數(shù)據(jù),所有幀信息由起始位,數(shù)據(jù)位,奇偶檢驗位以及停止位組成。假如在某一時刻,線路上可以存在從 A、 B間的雙向訊號傳輸,這時雙向的信號采用不一樣的信號,二者不會互相干擾,這類傳輸方式被稱之為全雙工。假如在通訊過程中的某一時間,信息即能從 A傳到 B,又能從 B傳到 A,但因為兩個通訊方式采用同一條通訊信道。 串行通信是指通信雙方的信息(二進(jìn)制編碼)一位接一位傳送的通信方式,與并 20 行通行相比,這種通信方式雖然速度較慢,但傳送距離長,而且使用的數(shù)據(jù)線少(最簡單的串行通信只需要兩根信號線和地線即可),節(jié)約通信成本,因此常用于需要長距離通信而且對速度要求不高的場合。C39。 word1[9]+=48。 word1[9]=(unsigned char)(tt*100word1[8]*10)。 tem=t+tt。 temp=readdata[0]。 t=4。+39。 word1[12]=39。 word1[8]+=48。 word1[8]=(unsigned char)(tt*10)。 tt=temp*。 temp=temp1。 word1[4]=t/100+48。 t=t|readdata[0]。0x80)!=0) { word1[3]=39。具體代碼如下: float Tempprocess() { 18 unsigned int t。 //跳過讀序列號的操作 WriteOneChar(0xBE)。 //跳過讀序列號的操作 WriteOneChar(0x44)。 //讀時隙不低于 60us } return(dat)。 //給脈沖信號 保持低至少 1us dat=1。 17 unsigned char dat=0。 DS18B20讀時隙。 } } 表 34 RAM的操作命令 命令類型 命令字節(jié) 功能說明 Write Scratchpad (寫暫存器 ) 4EH 此命令寫暫存器中的地址 2地址 4的 3個字節(jié)( TH、TL和配置寄存器)在發(fā)起復(fù)位脈沖之前, 3個字節(jié)都必須要寫 Read Scratchpad (寫暫存器 ) BEH 此命令讀取暫存器內(nèi)容,從字節(jié) 0一直讀取到字節(jié)8(第 9個字節(jié))。0x01。 for(i=8。所有寫時隙必須在 60us以上。其中除了回應(yīng)脈沖之外,均由主機產(chǎn)生。 RAM的操作命令 當(dāng) ROM的操作命令成功執(zhí)行之后,才能夠使用 RAM的操作命令,主機能夠提供 6種 RAM的操作命令,如表 34。 delay(3)。 //拉低約 900us DQ=1。當(dāng)單線器件 DS18B20監(jiān)測到上升沿后,延時 15~60us,通過降低總線 60~240us來產(chǎn)生回應(yīng)脈沖。 電路如圖 38所示 。 21 22 23 24 S S S S S 26 25 24 溫度 數(shù)字輸出(二進(jìn)制) 數(shù)字輸出(十六進(jìn)制) +125℃ 0000 0111 1101 0000 07D0H +85℃ 0000 0101 0101 0000 0550H +℃ 0000 0001 1001 0001 0191H +℃ 0000 0000 1010 0010 00A2H +℃ 0000 0000 0000 1000 0008H 0℃ 0000 0000 0000 0000 0000H ℃ 1111 1111 1111 1000 FFF8H ℃ 1111 1111 0101 1110 FF5EH ℃ 1111 1110 0110 1111 FF6FH 55℃ 1111 1100 1001 0000 FC90H 14 電路原理圖 為了使 DS18B20能完成準(zhǔn)確的溫度變換,當(dāng)溫度發(fā)生變化時, DQ線上必須提供足夠的功率。 表
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1