




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項目六溫度檢測報警系統(tǒng)設(shè)計項目任務(wù)本項目的任務(wù)是以51單片機(jī)為核心,將溫度傳感器DS18B20所采集的溫度,在液晶屏上實時顯示并可實現(xiàn)報警。串口概述任務(wù)一用串口擴(kuò)展I0口(1)任務(wù)二用串口擴(kuò)展I0口(2)任務(wù)三單片機(jī)雙機(jī)通信任務(wù)四
PC與單片機(jī)通信任務(wù)五DS18B20溫度采集報警系統(tǒng)設(shè)計任務(wù)六項目目標(biāo)●了解:基本通信知識●熟悉:單片機(jī)串口結(jié)構(gòu)及作用●掌握:串口通信工作原理及使用方法任務(wù)一串口概述任務(wù)描述了解單片機(jī)串口基礎(chǔ)知識,掌握串口相關(guān)寄存器的初始化方法以及步驟。知識鏈接一串行通信基礎(chǔ)知識二串口結(jié)構(gòu)概述一串行通信基礎(chǔ)知識計算機(jī)與外界的信息交換稱為通信。通信的基本方式可分為并行通信和串行通信兩種。所謂并行通信是指數(shù)據(jù)的各位同時在多根數(shù)據(jù)線上發(fā)送或接收。串行通信是數(shù)據(jù)的各位在同一根數(shù)據(jù)線上依次逐位發(fā)送或接收。1.概述
并行通信示意圖P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0P2.7RDWRRDWRCSD7D6D5D4D3D2D1D0825589C51
串行通信示意圖89C51外設(shè)TXDTXDRXDRXD發(fā)送接收你能由圖發(fā)現(xiàn)兩種通信方式各自的優(yōu)缺點(diǎn)嗎?串行通信可分為同步和異步兩種方式(1)同步通信同步通信中雙方使用頻率一致的時鐘,稱為一個數(shù)據(jù)幀,通過獨(dú)特的bit串作為啟停標(biāo)識。發(fā)送方要以固定的節(jié)奏去發(fā)送數(shù)據(jù),而接收方要時刻做好接收數(shù)據(jù)的準(zhǔn)備,識別到前導(dǎo)碼后馬上要開始接收數(shù)據(jù)了。同步這種方式中因為分組很大,很長一段數(shù)據(jù)才會有額外的輔助位負(fù)載,所以效率更高,更加適合對速度要求高的傳輸,當(dāng)然這種通信對時序的要求也更高。(2)異步通信在異步通信中,數(shù)據(jù)通常是以字符或字節(jié)為單位組成數(shù)據(jù)幀進(jìn)行傳送的。收、發(fā)端各有一套彼此獨(dú)立,互不同步的通信機(jī)構(gòu),由于收發(fā)數(shù)據(jù)的幀格式相同,因此可以相互識別接收到的數(shù)據(jù)信息。同步字符數(shù)據(jù)字符1數(shù)據(jù)字符2…數(shù)據(jù)字符n-1數(shù)據(jù)字符n校驗字符(校驗字符)同步通信的數(shù)據(jù)幀格式異步通信的數(shù)據(jù)幀格式D0D1D2D3D4D5D6D70/11111D70/1100D0D1第n字符幀空閑位停止位奇偶校驗停止位8位數(shù)據(jù)8位數(shù)據(jù)起始位起始位奇偶校驗第n-1字符幀第n+1字符幀8位數(shù)據(jù)
----起始位在沒有數(shù)據(jù)傳送時,通信線上處于邏輯“1”狀態(tài)。當(dāng)發(fā)送端要發(fā)送1個字符數(shù)據(jù)時,首先發(fā)送1個邏輯“0”信號,這個低電平便是幀格式的起始位。其作用是向接收端表示發(fā)送端開始發(fā)送一幀數(shù)據(jù)。接收端檢測到這個低電平后,就準(zhǔn)備接收數(shù)據(jù)信號。D0D1D2D3D4D5D6D70/11111D70/1100D0D1第n字符幀空閑位停止位奇偶校驗停止位8位數(shù)據(jù)8位數(shù)據(jù)起始位起始位奇偶校驗第n-1字符幀第n+1字符幀8位數(shù)據(jù)----數(shù)據(jù)位在起始位之后,發(fā)送端發(fā)出(或接收端接收)的是數(shù)據(jù)位,數(shù)據(jù)的位數(shù)沒有嚴(yán)格的限制,5~8位均可。由低位到高位逐位傳送。D0D1D2D3D4D5D6D70/11111D70/1100D0D1第n字符幀空閑位停止位奇偶校驗停止位8位數(shù)據(jù)8位數(shù)據(jù)起始位起始位奇偶校驗第n-1字符幀第n+1字符幀8位數(shù)據(jù)----奇偶校驗位數(shù)據(jù)位發(fā)送完(接收完)之后,可發(fā)送一位用來檢驗數(shù)據(jù)在傳送過程中是否出錯的奇偶校驗位。奇偶校驗是收發(fā)雙方預(yù)先約定好的有限差錯檢驗方式之一,有時也可不用奇偶校驗。D0D1D2D3D4D5D6D70/11111D70/1100D0D1第n字符幀空閑位停止位奇偶校驗停止位8位數(shù)據(jù)8位數(shù)據(jù)起始位起始位奇偶校驗第n-1字符幀第n+1字符幀8位數(shù)據(jù)----停止位字符幀格式的最后部分是停止位,邏輯“1”電平有效,它可占1/2位、1位或2位。停止位表示傳送一幀信息的結(jié)束,也為發(fā)送下一幀信息作好準(zhǔn)備。D0D1D2D3D4D5D6D70/11111D70/1100D0D1第n字符幀空閑位停止位奇偶校驗停止位8位數(shù)據(jù)8位數(shù)據(jù)起始位起始位奇偶校驗第n-1字符幀第n+1字符幀8位數(shù)據(jù)
波特率(BaudRate)是串行通信中一個重要概念,它是指傳輸數(shù)據(jù)的速率,亦稱比特率。波特率的定義是每秒傳輸二進(jìn)制數(shù)碼的位數(shù)。
如:波特率為1200bps是指每秒鐘能傳輸1200位二進(jìn)制數(shù)碼。2.串行通信的波特率
波特率的倒數(shù)即為每位數(shù)據(jù)傳輸時間。例如:波特率為1200bps,每位的傳輸時間為:Td=1/1200=0.833(ms)
二串口結(jié)構(gòu)概述AT89C51內(nèi)部有一個可編程全雙工串行通信接口。該部件不僅能同時進(jìn)行數(shù)據(jù)的發(fā)送和接收,也可作為一個同步移位寄存器使用。下面將對其內(nèi)部結(jié)構(gòu)、工作方式以及波特率進(jìn)行介紹。1.串行接口的結(jié)構(gòu)及功能AT89C51串行口結(jié)構(gòu)框圖發(fā)送SBUF(99H)接收SBUF(99H)同步時鐘門電路發(fā)送控制器接收控制器輸入移位寄存器串行口控制寄存器(98H)內(nèi)部總線≥1串行口中斷TIRITXD(P3.1)RXD(P3.0)
發(fā)送數(shù)據(jù)過程:CPU通過內(nèi)部總線將并行數(shù)據(jù)寫入發(fā)送SBUF,在發(fā)送控制電路的控制下,按設(shè)定好的波特率,每來一次移位脈沖,通過引腳TXD向外輸出一位。一幀數(shù)據(jù)發(fā)送結(jié)束后,向CPU發(fā)出中斷申請,TI位置1。CPU響應(yīng)中斷后,開始準(zhǔn)備發(fā)送下一幀數(shù)據(jù)。發(fā)送SBUF(99H)接收SBUF(99H)同步時鐘門電路發(fā)送控制器接收控制器輸入移位寄存器串行口控制寄存器(98H)內(nèi)部總線≥1串行口中斷TIRITXD(P3.1)RXD(P3.0)發(fā)送SBUF(99H)接收SBUF(99H)同步時鐘門電路發(fā)送控制器接收控制器輸入移位寄存器串行口控制寄存器(98H)內(nèi)部總線≥1串行口中斷TIRITXD(P3.1)RXD(P3.0)
接收數(shù)據(jù)過程:CPU不停地檢測引腳RXD上的信號,當(dāng)信號中出現(xiàn)低電平時,在接收控制電路的控制下,按設(shè)定好的波特率,每來一次移位脈沖,讀取外部設(shè)備發(fā)送的一位數(shù)據(jù)到移位寄存器。一幀數(shù)據(jù)結(jié)束后,數(shù)據(jù)被存入接收SBUF,同時向CPU發(fā)出中斷申請,RI位1。CPU響應(yīng)中斷后,開始接收下一幀數(shù)據(jù)。
(1)串行數(shù)據(jù)緩沖器SBUF
SBUF是串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器,以便能以全雙工方式進(jìn)行通信。此外,在接收寄存器之前還有移位寄存器,從而構(gòu)成了串行接收的雙緩沖結(jié)構(gòu),這樣可以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯誤。發(fā)送數(shù)據(jù)時,由于CPU是主動的,不會發(fā)生幀重疊錯誤,因此發(fā)送電路不需要雙重緩沖結(jié)構(gòu)。在邏輯上,SBUF只有一個,它既表示發(fā)送寄存器,又表示接收寄存器,具有同一個單元地址99H。但在物理結(jié)構(gòu)上,則有兩個完全獨(dú)立的SBUF,一個是發(fā)送緩沖寄存器SBUF,另一個是接收緩沖寄存器SBUF。如果CPU寫SBUF,數(shù)據(jù)就會被送入發(fā)送寄存器準(zhǔn)備發(fā)送;如果CPU讀SBUF,則讀入的數(shù)據(jù)一定來自接收緩沖器。即CPU對SBUF的讀寫,實際上是分別訪問上述兩個不同的寄存器。(2)串行控制寄存器SCON串行控制寄存器SCON用于設(shè)置串行口的工作方式、監(jiān)視串行口的工作狀態(tài)、控制發(fā)送與接收的狀態(tài)等。它是一個既可以字節(jié)尋址又可以位尋址的8位特殊功能寄存器。其格式如下圖所示:串行口控制寄存器SCONRITIRB8TB8RENSM2SM1SM0SCON98H99H9AH9BH9CH9DH9EH9FH位地址0:雙機(jī)1:多機(jī)多機(jī)通信0:禁止1:允許接收控制發(fā)送數(shù)據(jù)第9位接收數(shù)據(jù)第9位發(fā)送中斷標(biāo)志接收中斷標(biāo)志----SM0SM1
串行口工作方式選擇位。其狀態(tài)組合所對應(yīng)的工作方式如表所示。SM0SM1工作方式功能說明000同步移位寄存器輸入/輸出,波特率固定為fosc/1201110位異步收發(fā),波特率可變(T1溢出率/n,n=32或16)10211位異步收發(fā),波特率固定為f0sc/n,n=64或32)11311位異步收發(fā),波特率可變(T1溢出率/n,n=32或16)串行口工作方式----SM2多機(jī)通信控制器位。在方式0中,SM2必須設(shè)成0。在方式1中,當(dāng)處于接收狀態(tài)時,若SM2=1,則只有接收到有效的停止位“1”時,RI才能被激活成“1”(產(chǎn)生中斷請求)。在方式2和方式3中,若SM2=0,串行口以單機(jī)發(fā)送或接收方式工作,TI和RI以正常方式被激活并產(chǎn)生中斷請求;若SM2=1,RB8=1時,RI被激活并產(chǎn)生中斷請求。----REN串行接受允許控制位。該位由軟件置位或復(fù)位。當(dāng)REN=1,允許接收;當(dāng)REN=0,禁止接收。----TB8方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。該位由軟件置位或復(fù)位。在方式2和方式3時,TB8是發(fā)送的第9位數(shù)據(jù)。在多機(jī)通信中,以TB8位的狀態(tài)表示主機(jī)發(fā)送的是地址還是數(shù)據(jù):TB8=1表示地址,TB8=0表示數(shù)據(jù)。TB8還可用作奇偶校驗位。----RB8接收數(shù)據(jù)第9位。在方式2和方式3時,RB8存放接收到的第9位數(shù)據(jù)。RB8也可用作奇偶校驗位。在方式1中,若SM2=0,則RB8是接收到的停止位。在方式0中,該位未用。----TI
發(fā)送中斷標(biāo)志位。TI=1,表示已結(jié)束一幀數(shù)據(jù)發(fā)送,可由軟件查詢TI位標(biāo)志,也可以向CPU申請中斷。
注意:TI在任何工作方式下都必須由軟件清0。----RI接收中斷標(biāo)志位。RI=1,表示一幀數(shù)據(jù)接收結(jié)束??捎绍浖樵僐I位標(biāo)志,也可以向CPU申請中斷。
注意:RI在任何工作方式下也都必須由軟件清0。
在AT89C51中,串行發(fā)送中斷TI和接收中斷RI的中斷入口地址是同是0023H,因此在中斷程序中必須由軟件查詢TI和RI的狀態(tài)才能確定究竟是接收還是發(fā)送中斷,進(jìn)而作出相應(yīng)的處理。單片機(jī)復(fù)位時,SCON所有位均清0。2.電源控制寄存器PCON
SMOD:串行口波特率倍增位。在工作方式1~工作方式3時,若SMOD=1,則串行口波特率增加一倍。若SMOD=0,波特率不加倍。系統(tǒng)復(fù)位時,SMOD=0。PCOND7D6D5D4D3D2D1D0位名稱SMOD---GF1GF0PDIDL任務(wù)實施程序設(shè)計#include<reg51.h> //包含單片機(jī)寄存器的頭文件SCON=0x00;//設(shè)定串口工作于方式0PCON=0x00;//波特率不加倍知識總結(jié)1.串行通信的概念;2.單片機(jī)串行口的結(jié)構(gòu);3.串行口使用時的程序設(shè)置。綜合評價課后作業(yè)請設(shè)定串口工作于方式1,給出C語言代碼。謝謝觀看《單片機(jī)技術(shù)與應(yīng)用》課程項目六溫度檢測報警系統(tǒng)設(shè)計串口概述任務(wù)一用串口擴(kuò)展I0口(1)任務(wù)二用串口擴(kuò)展I0口(2)任務(wù)三單片機(jī)雙機(jī)通信任務(wù)四
PC與單片機(jī)通信任務(wù)五DS18B20溫度采集報警系統(tǒng)設(shè)計任務(wù)六任務(wù)二用串口擴(kuò)展I0口(1)任務(wù)描述本次任務(wù)要求用單片機(jī)的串口擴(kuò)展出8個IO口,實現(xiàn)數(shù)碼管顯示效果。知識鏈接串行口工作方式0串行口工作方式0
AT89C51串行通信共有4種工作方式,它們分別是方式0、方式1、方式2和方式3,由串行控制寄存器SCON中的SM0SM1決定。在方式0下,串行口作為同步移位寄存器使用。此時SM2、RB8、TB8均應(yīng)設(shè)置為0。
---發(fā)送:TI=0時,執(zhí)行“MOVSBUF,A”啟動發(fā)送,8位數(shù)據(jù)由低位到高位從RXD引腳送出,TXD發(fā)送同步脈沖。發(fā)送完后,由硬件置位TI。
---接收:RI=0,REN=1時啟動接收,數(shù)據(jù)從RXD輸入,TXD輸出同步脈沖。8位數(shù)據(jù)接收完,由硬件置位RI??赏ㄟ^“MOVA,SBUF”讀取數(shù)據(jù)。說明:(1)方式0的波特率為fosc/12,即一個機(jī)器周期發(fā)送或接收一位數(shù)據(jù)。(2)方式0并非是同步通信方式。它的主要用途是外接同步移位寄存器,以擴(kuò)展并行I/O口。
----數(shù)據(jù)發(fā)送TI=0,發(fā)送數(shù)據(jù)前,先由軟件設(shè)置TB8,可使用如下指令完成:
TB8=1;將TB8位置1
TB8=0;將TB8位置0
然后再向SBUF寫入8位數(shù)據(jù),并以此來啟動串行發(fā)送。一幀數(shù)據(jù)發(fā)送完畢后,CPU自動將TI置1,其過程與方式1相同。----數(shù)據(jù)接收
REN=1,RI=0時,啟動接收。①若SM2=0,接收到的8位數(shù)據(jù)送SBUF,第9位數(shù)據(jù)送RB8。②若SM2=1,接收到的第9位數(shù)據(jù)為0,數(shù)據(jù)不送SBUF;接收到的第9位數(shù)據(jù)為1,數(shù)據(jù)送SBUF,第9位送RB8。任務(wù)實施1.硬件電路2.程序設(shè)計1.硬件電路2.程序設(shè)計#include<reg51.h> //包含單片機(jī)寄存器的頭文件unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰段碼/**********延時程序***********/voiddelay(){intm,n;for(m=0;m<400;m++)for(n=0;n<400;n++);}/***********************主程序*************************///功能:將串口發(fā)送的數(shù)據(jù)通過74LS164串并轉(zhuǎn)換送數(shù)碼管顯示/*****************************************************/voidmain(){inti=0;//循環(huán)變量
SCON=0x00;//設(shè)定串口工作于方式0for(i=0;i<10;i++){SBUF=dispcode[i];
//將dispcode數(shù)組中的段碼依次發(fā)送出去
delay();
//延時
while(TI==0);//等待發(fā)送完畢
TI=0;
//發(fā)送完畢清除發(fā)送中斷標(biāo)志位
if(i==10)//10個數(shù)據(jù)發(fā)送完畢就清為0 { i=0; }}}知識總結(jié)當(dāng)發(fā)送使用時,就采用SBUF=XXX;
(XXX為需要傳送的數(shù)據(jù));當(dāng)接收使用時,采用XXX=SBUF;串行的傳輸都是一位一位進(jìn)行的。綜合評價課后作業(yè)利用串行口設(shè)計4位數(shù)碼管的顯示,畫出電路圖并編寫程序,要求4位數(shù)碼管每間隔1s交替顯示“1234”和“5678”。謝謝觀看《單片機(jī)技術(shù)與應(yīng)用》課程項目六溫度檢測報警系統(tǒng)設(shè)計串口概述任務(wù)一用串口擴(kuò)展I0口(1)任務(wù)二用串口擴(kuò)展I0口(2)任務(wù)三單片機(jī)雙機(jī)通信任務(wù)四
PC與單片機(jī)通信任務(wù)五DS18B20溫度采集報警系統(tǒng)設(shè)計任務(wù)六任務(wù)三用串口擴(kuò)展I0口(2)任務(wù)描述通過指撥開關(guān)動作產(chǎn)生高低電平,作為74ls165的輸入,74ls165將接收到的數(shù)據(jù)發(fā)往串口,串口負(fù)責(zé)接收,串口將接收到的數(shù)據(jù)送P0口顯示。知識鏈接74ls164的基本使用(回顧)74ls165的基本使用74ls164的基本使用74ls165的基本使用
74ls165是8位并入串出移位寄存器。當(dāng)74LS165的SH/LD端由高到低跳變,并行輸入端的數(shù)據(jù)被置入寄存器;當(dāng)SH/LD=1,且時鐘禁止端(15腳)為低時,允許TXD(P3.1)移位時鐘輸入,在該脈沖作用下,數(shù)據(jù)由右向左方向移動。任務(wù)實施1.硬件電路2.程序設(shè)計1.硬件電路2.程序設(shè)計/***********延時函數(shù)***********/voidDelayMS(uintms){uchari;while(ms--)for(i=0;i<120;i++);}#include<reg51.h>//包含單片機(jī)寄存器的頭文件#defineucharunsignedchar //宏定義,定義uchar為無符號字符型#defineuintunsignedint//宏定義,定義int為無符號整型sbitSPL=P2^5;//shift/load
/***********串口初始化函數(shù)***********/voidInit(){SCON=0x10;//串口工作于方式0,允許接收
EA=1;//CPU開中斷
ES=1; //允許串口中斷}/***********串口中斷服務(wù)函數(shù)***********/voidDateGet()interrupt4{SPL=0;//數(shù)據(jù)載入位設(shè)為低電平,將按鍵數(shù)據(jù)存入74LS165寄存器
DelayMS(50);//延時一會等待存入完成
P0=SBUF;//將串口收到的數(shù)據(jù)送P0口
SPL=1;//數(shù)據(jù)載入位設(shè)為高電平,將74LS165寄存器數(shù)據(jù)寫入串口寄存器
RI=0;//復(fù)位串口開始接收74LS165寄存器數(shù)據(jù)}知識總結(jié)當(dāng)發(fā)送使用時,就采用SBUF=XXX;
(XXX為需要傳送的數(shù)據(jù));當(dāng)接收使用時,采用XXX=SBUF;串行傳輸都是一位一位進(jìn)行的。綜合評價課后作業(yè)利用串行口設(shè)計4位靜態(tài)LED顯示,畫出電路圖并編寫程序,要求4位LED每間隔1s交替顯示“1234”和“5678”。謝謝觀看《單片機(jī)技術(shù)與應(yīng)用》課程項目六溫度檢測報警系統(tǒng)設(shè)計串口概述任務(wù)一用串口擴(kuò)展I0口(1)任務(wù)二
用串口擴(kuò)展I0口(2)任務(wù)三單片機(jī)雙機(jī)通信任務(wù)四
PC與單片機(jī)通信任務(wù)五DS18B20溫度采集報警系統(tǒng)設(shè)計任務(wù)六任務(wù)四單片機(jī)雙機(jī)通信雙機(jī)通訊就是:
兩個單片機(jī)之間或單片機(jī)與PC之間的通訊。
什么是雙機(jī)通信呢?任務(wù)描述甲機(jī)發(fā)送信息,乙機(jī)就將接收到的信息送數(shù)碼管顯示,反之,乙機(jī)發(fā)送信息,甲機(jī)就將接收到的信息同樣送數(shù)碼管顯示出來。知識鏈接一工作方式1、2、3二多機(jī)通信基礎(chǔ)一工作方式1、2、3方式1是一幀10位的異步串行通信方式,包括1個起始位(0),8個數(shù)據(jù)位和一個停止位(1),其幀格式如下:1.工作方式1
起始位0D0D1D2D3D4D5D6D7
停止位1(1)數(shù)據(jù)發(fā)送過程當(dāng)TI=0時,執(zhí)行“SBUF=0xxx”指令后開始發(fā)送,由硬件自動加入起始位和停止位,構(gòu)成一幀數(shù)據(jù),然后由TXD端串行輸出。發(fā)送完后,TXD輸出線維持在“1”狀態(tài)下,并將SCON中的TI置1,表示一幀數(shù)據(jù)發(fā)送完畢。(2)數(shù)據(jù)接收過程
RI=0,REN=1時,接收電路以波特率的16倍速度采樣RXD引腳,如出現(xiàn)由“1”變“0”跳變,認(rèn)為有數(shù)據(jù)正在發(fā)送。在接收到第9位數(shù)據(jù)(即停止位)時,必須同時滿足以下兩個條件:RI=0和SM2=0或接收到的停止位為“1”,才把接收到的數(shù)據(jù)存入SBUF中,停止位送RB8,同時置位RI。若上述條件不滿足,接收到的數(shù)據(jù)不裝入SBUF被舍棄。在方式1下,SM2應(yīng)設(shè)定為0。(3)波特率波特率=2SMOD×(T1溢出率)/32T1溢出率=1/T1定時時間=1/((M-T初)·T機(jī))波特率=2SMOD·fosc/(32·12·(M-T初))工作方式2和方式3都是11位異步收發(fā)串行通信方式,兩者的差異僅在波特率上有所不同。2.工作方式2、3方式2:波特率=2SMOD·fosc/64(SMOD=0或1)方式3:波特率=2SMOD·fosc/(32·12·(M-T初))(與方式1相同)二雙機(jī)通信基礎(chǔ)當(dāng)要使用單片機(jī)的串口進(jìn)行雙機(jī)通信時,需要保證通信雙方使用同樣的波特率。單片機(jī)串口初始化需完成單片機(jī)串口工作方式選擇、波特率設(shè)置、波特率發(fā)生器設(shè)置等基本的設(shè)置。
如設(shè)置單片機(jī)晶振頻率為11.0592MHz,串口波特率為9600b/s,串口選擇工作方式1,定時器配置為工作方式2。初始化程序如下:
voidUartInit(void){ TMOD=(TMOD&0x0f)|0x20;
//設(shè)置定時器T1為定時方式2 TH1=110592001/12/32/9600;
//求波特率為9600時定時器初值 TL1=TH1; TR1=1;
//啟動T1計數(shù)器 SCON=0x70;
//設(shè)置串行工作方式1,允許接收 PCON=0x80;}任務(wù)實施1.硬件電路2.程序設(shè)計1.硬件電路2.程序設(shè)計#include<reg51.h> //包含單片機(jī)寄存器的頭文件#defineucharunsignedchar //宏定義,定義uchar為無符號整型#defineuintunsignedint
//宏定義,定義uint為無符號整型#definekey_portP1
//P1=key_port#definedis_portP2 //P2=dis_port2.程序設(shè)計/***********主函數(shù)***********/voidmain(void){ ucharkey_in=0xff; SCON=0x50;
//方式1,允許接收
TMOD=0x20;
//定時器1工作于方式2 TH1=0xf3;
//波特率2400波特
TL1=0xf3; ET1=1;
//開放定時器1中斷
TR1=1; //啟動定時器中斷
EA=1;
//中斷允許
ES=1;
//開放串行中斷while(1) {if(key_in!=key_port)//P1狀態(tài)不等于0xff { key_in=key_port;//把P1狀態(tài)送給key_in SBUF=key_in;// 將P1的值發(fā)給串口
}}/***********串口中斷服務(wù)函數(shù)***********/voidget_disp(void)interrupt4using0{ if(RI) //如果是串口輸入引起中斷
{dis_port=SBUF;
//將串口值送P2口
RI=0;//清除接收中斷標(biāo)志,便于下一次接收
} elseTI=0; //否則就是串口輸出引起的中斷}2.程序設(shè)計知識總結(jié)雙機(jī)通信一般要求通信速率要相同。綜合評價課后作業(yè)利用單片機(jī)雙機(jī)通信,假如乙機(jī)在P1.0引腳接有一按鍵,每次按鍵執(zhí)行加1操作,把加一的結(jié)果送甲機(jī),甲機(jī)收到以后驅(qū)動數(shù)碼管后顯示出來。謝謝觀看《單片機(jī)技術(shù)與應(yīng)用》課程項目六溫度檢測報警系統(tǒng)設(shè)計串口概述任務(wù)一用串口擴(kuò)展I0口(1)任務(wù)二
用串口擴(kuò)展I0口(2)任務(wù)三
單片機(jī)雙機(jī)通信任務(wù)四
PC與單片機(jī)通信任務(wù)五DS18B20溫度采集報警系統(tǒng)設(shè)計任務(wù)六任務(wù)五PC與單片機(jī)通信任務(wù)描述
PC機(jī)鍵盤輸入的1個字符發(fā)送給51單片機(jī),單片機(jī)接收到PC機(jī)發(fā)來的數(shù)據(jù)后,回送同一數(shù)據(jù)給PC機(jī),并在PC機(jī)屏幕上顯示出來。只要PC機(jī)屏幕上顯示的字符與鍵入的字符相同,即表明PC機(jī)與單片機(jī)間通信正常。知識鏈接串行通信接口標(biāo)準(zhǔn)串行通信接口標(biāo)準(zhǔn)RS-232定義的是DTE(數(shù)據(jù)終端設(shè)備與)DCE(數(shù)據(jù)通信設(shè)備或者數(shù)據(jù)電路終端設(shè)備)間的接口標(biāo)準(zhǔn)。1.機(jī)械特性DB-25(陽頭)連接器DB-9(陰頭)連接器陽頭通常用于計算機(jī)側(cè),陰頭用于連接線側(cè)
2.功能特性插針序號信號名稱功能信號方向1PGND保護(hù)接地2(3)TXD發(fā)送數(shù)據(jù)(串行輸出)DTE→DCE3(2)RXD接收數(shù)據(jù)(串行輸入)DTE←DCE4(7)RTS請求發(fā)送DTE→DCE5(8)CTS允許發(fā)送DTE←DCE6(6)DSRDCE就緒(數(shù)據(jù)建立就緒)DTE←DCE7(5)SGND信號接地8(1)DCD載波檢測DTE←DCE20(4)DTRDTE就緒(數(shù)據(jù)終端準(zhǔn)備就緒)DTE→DCE22(9)RI振鈴指示DTE←DCERS-232采用負(fù)邏輯電平,規(guī)定(-3~-25V)為邏輯“1”,(+3~+25V)為邏輯“0”。-3V~+3V是未定義的過渡區(qū)。3.電氣特性RS-232規(guī)定的電平和一般微處理器的邏輯電平不一致,使用時必須進(jìn)行電平轉(zhuǎn)換---早期常用MC1488、MC1489---近期常用MAXM232
片內(nèi)帶有自升壓電路
僅需+5V電源
內(nèi)含2個發(fā)送器,2個接收器遠(yuǎn)程通信,需要調(diào)制解調(diào)器。4.過程特性(1)接口的信號電平值較高,易損壞接口電路的芯片。
(2)傳輸速率較低,在異步傳輸時,波特率為20Kbps。
(3)接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。
(4)傳輸距離有限,最大傳輸距離實際在50米左右。5.
RS-232的不足新標(biāo)準(zhǔn)RS-485改善了傳輸特性,應(yīng)用廣泛!任務(wù)實施1.硬件電路2.程序設(shè)計1.硬件電路2.程序設(shè)計#include<reg51.h> //包含單片機(jī)寄存器的頭文件#defineucharunsignedchar //宏定義,定義uchar為無符號整型#defineuintunsignedint
//宏定義,定義uint為無符號整型#definekey_portP1
//P1=key_port#definedis_portP2 //P2=dis_port/***********主函數(shù)***********/voidmain(void){ ucharkey_in=0xff; SCON=0x50;
//方式1,允許接收
TMOD=0x20;
//定時器1工作于方式2 TH1=0xf3;
//波特率2400波特
TL1=0xf3; ET1=1;
//開放定時器1中斷
TR1=1; //啟動定時器中斷
EA=1;
//中斷允許
ES=1;
//開放串行中斷while(1) { if(key_in!=key_port)//P1狀態(tài)不等于0xff { key_in=key_port;//把P1狀態(tài)送給key_in SBUF=key_in;// 將P1的值發(fā)給串口
}}}/***********串口中斷服務(wù)函數(shù)***********/voidget_disp(void)interrupt4using0{ if(RI) //如果是串口輸入引起中斷
{dis_port=SBUF;
//將串口值送P2口
RI=0;//清除接收中斷標(biāo)志,便于下一次接收
} elseTI=0; //否則就是串口輸出引起的中斷}知識總結(jié)PC與單片機(jī)的通信同樣要求通信速率要相同,RS-232使用時必須進(jìn)行電平轉(zhuǎn)換。綜合評價課后作業(yè)編程實現(xiàn)甲乙兩個單片機(jī)進(jìn)行點(diǎn)對點(diǎn)通信,甲機(jī)每間隔1s發(fā)送一次“A”字符,乙機(jī)接收到以后,在LCD上顯示出來。謝謝觀看《單片機(jī)技術(shù)與應(yīng)用》課程項目六溫度檢測報警系統(tǒng)設(shè)計串口概述任務(wù)一用串口擴(kuò)展I0口(1)任務(wù)二
用串口擴(kuò)展I0口(2)任務(wù)三單片機(jī)雙機(jī)通信任務(wù)四
PC與單片機(jī)通信任務(wù)五DS18B20溫度采集報警系統(tǒng)設(shè)計任務(wù)六任務(wù)六DS18B20溫度采集報警系統(tǒng)設(shè)計任務(wù)描述使用數(shù)字溫度傳感器DS18B20,將采集到的溫度信息送單片機(jī),單片機(jī)處理該實時溫度信息后,通過串口送PC進(jìn)行顯示。知識鏈接溫度傳感器DS18B20溫度傳感器DS18B20
DS18B20是美國DALLAS半導(dǎo)體公司推出的第一片支持“一線總線”接口的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號供單片機(jī)處理,可實現(xiàn)溫度的精度測量與控制。DS18B20封裝外形如圖所示。
值得一提的是DQ引腳的I/O為數(shù)據(jù)輸入/輸出端(即單總線),該引腳為漏極開路輸出,常態(tài)下呈高電平。DS18B20引腳功能描述序號名稱描述1GND地信號2DQ數(shù)據(jù)輸入輸出引腳3Vdd(Vcc)電源輸入引腳,當(dāng)工作于寄生電源模式時,此引腳必須接地1、內(nèi)部結(jié)構(gòu)
DS18B20的內(nèi)部框圖如圖所示,主要包括寄生電源、溫度傳感器、存放中間數(shù)據(jù)的高速貯存器、用于存儲用戶設(shè)定的溫度上下限值、觸發(fā)器存儲與控制邏輯、8位循環(huán)冗余校驗碼發(fā)生器和64位編號ROM等7部分。下面重點(diǎn)說明高速貯存器。高速寄存器RAM由9個字節(jié)的存儲器組成。其中,第0、1字節(jié)是溫度轉(zhuǎn)換有效位,第0字節(jié)的低3位存放了溫度的高位,高5位存放溫度的正負(fù)值;第1字節(jié)的高4位存放溫度的低位,后4位存放溫度的小數(shù)部分;第2和第3個字節(jié)是DS18B20的與內(nèi)部E2PROM的有關(guān)的TH和TL,用來存儲溫度上限和下限,可以通過程序設(shè)計把溫度的上下限從單片機(jī)中讀到TH和TL中,并通過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國企人力資源規(guī)劃崗招聘考試模擬卷(含崗位定編計算)精講
- 學(xué)校舉旗活動方案
- 學(xué)習(xí)部活動策劃方案
- 幼兒園教師階段總結(jié)報告流程他
- 學(xué)校普法宣傳活動方案
- 學(xué)校黨建聯(lián)盟活動方案
- 婦女節(jié)開展刺繡活動方案
- 婦女拓展活動方案
- 嬰兒洗手液促銷活動方案
- 奧體元宵活動方案
- 2024年中國燈影牛肉市場調(diào)查研究報告
- 2024年高中生物學(xué)業(yè)水平合格考及答案
- 車給別人開的協(xié)議書
- 離散裝配行業(yè)MES案例
- 1.3探索三角形全等的條件第7課時 蘇科版八年級數(shù)學(xué)上冊
- 蘇教版四年級科學(xué)下冊復(fù)習(xí)方法
- 壯族文化宣傳介飲食服飾建筑風(fēng)俗習(xí)慣特點(diǎn)傳統(tǒng)節(jié)日課件
- 牛津譯林版英語八年級下冊期末復(fù)習(xí)各單元話題寫作范文背誦
- 2024CSCO胃腸間質(zhì)瘤診療指南解讀
- FZ∕T 61002-2019 化纖仿毛毛毯
- GB/T 3880.3-2024一般工業(yè)用鋁及鋁合金板、帶材第3部分:尺寸偏差
評論
0/150
提交評論