學(xué)習(xí)情境8創(chuàng)建原理圖報表和兩臺單片機數(shù)據(jù)互傳_第1頁
學(xué)習(xí)情境8創(chuàng)建原理圖報表和兩臺單片機數(shù)據(jù)互傳_第2頁
學(xué)習(xí)情境8創(chuàng)建原理圖報表和兩臺單片機數(shù)據(jù)互傳_第3頁
學(xué)習(xí)情境8創(chuàng)建原理圖報表和兩臺單片機數(shù)據(jù)互傳_第4頁
學(xué)習(xí)情境8創(chuàng)建原理圖報表和兩臺單片機數(shù)據(jù)互傳_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、學(xué)習(xí)情境8 創(chuàng)建原理圖報表和兩臺單片機數(shù)據(jù)互傳 知識點:1.了解電路原理圖的ERC報表;2.掌握電路原理圖網(wǎng)絡(luò)表的產(chǎn)生及修改方法;3.了解原理圖的元件列表;4.了解單片機串行口的結(jié)構(gòu)及工作方式。技能點:1.運用Protel 99 SE 創(chuàng)建電路原理圖的各種報表,并能夠根據(jù)報表的信息分析、修改電路原理圖;2.能熟練運用單片機串行口方式0擴展并行口;3.能熟練運用單片機串行口方式1實現(xiàn)雙機通信。學(xué)習(xí)情境目標(biāo) 通過本學(xué)習(xí)情境的學(xué)習(xí),創(chuàng)建電路原理圖的各種報表,并能夠根據(jù)報表的信息分析、修改電路原理圖;了解單片機串行口的結(jié)構(gòu)及工作方式;能熟練運用單片機串行口的各種方式完成并行口擴展和實現(xiàn)通信。 任務(wù)一

2、創(chuàng)建原理圖各種報表圖8.1 放大整形電路任務(wù)目標(biāo)如圖8.1所示為放大整形電路原理圖,要求在此電路原理圖基礎(chǔ)上產(chǎn)生電路的ERC報表、產(chǎn)生及修改電路網(wǎng)絡(luò)表、產(chǎn)生電路的元件列表。相關(guān)知識1、ERC報表:Protel 99 SE 電路原理圖設(shè)計服務(wù)器提供了一個電氣規(guī)則檢查功能(ERC:Electrical Rule Check),可檢查電路中是否有電氣特性不一致情況。如:某個輸出引腳連接到另一個輸出引腳就會造成輸出信號沖突,未連接完整的網(wǎng)絡(luò)標(biāo)號會造成信號斷線,元件重復(fù)編號會使軟件無法區(qū)別不同元件等,這些不合理的電氣沖突現(xiàn)象,ERC會按照設(shè)計者設(shè)置和問題嚴(yán)重性,分別以錯誤(Error)、警告(Warni

3、ng)信息來提醒設(shè)計者注意。 2、元件封裝型號:元件封裝是指元件在電路板上的實際外觀、尺寸及管腳間距等信息,每種尺寸在元件封裝庫中(PCB Footprints.lib)對應(yīng)著重一種元件封裝型號,電路中對每個元件的描述都必須包含該元件的封裝型號信息,即在元件屬性對話框的Footprint欄必須填元件封裝型號,如圖8.2所示,選取元件封裝型號時可以在印刷板設(shè)計環(huán)境中執(zhí)行菜單命令Design/Browse Components去瀏覽封裝庫PCB Footprints.lib。圖8.2 填寫元件封裝3、原理圖網(wǎng)絡(luò)表 由電路原理圖所產(chǎn)生的各種報表中,網(wǎng)絡(luò)表(Netlist)是最為重要的報表。繪制電路原

4、理圖最主要的目的,就是由所設(shè)計的電路原理圖輸出一個對應(yīng)網(wǎng)絡(luò)表,以供后續(xù)處理程序(如制作印刷電路板或仿真)使用。在由電路原理圖產(chǎn)生網(wǎng)絡(luò)表時,采用邏輯連通原則,即只要通過網(wǎng)絡(luò)標(biāo)號連接的網(wǎng)絡(luò)就被認(rèn)為是有效連接,電路中用戶沒有放置網(wǎng)絡(luò)標(biāo)號的網(wǎng)絡(luò)由系統(tǒng)自動給定。Protel 原理圖網(wǎng)絡(luò)表文件是一個簡單ASCII碼文本文件,是描述電路元件的編號、封裝和元件引腳之間關(guān)系的列表,在格式上大致可分為元件描述部分和網(wǎng)絡(luò)連接描述兩部分。(1)元件描述部分 開始描述一個元器件C 元件編號RAD0.2 元件封裝型號0.1uF 元件類型或標(biāo)稱值 以下三行為元件附加說明 元件描述結(jié)束注意:元件描述從“”開始,到“”結(jié)束,每

5、一個元件的描述都必須在一對方括號內(nèi),并且都必須描述完整。除左方括號和右方括號各占一行外,每一個元件的描述文字占據(jù)6行,且6行內(nèi)容順序不能顛倒 (2)網(wǎng)絡(luò)連接描述 ( 描述開始一條網(wǎng)絡(luò)NetR1_1 計算機自動給予或人工給予的網(wǎng)絡(luò)標(biāo)號R1-1 網(wǎng)絡(luò)連接的第一個分支,格式為元件編號及其引腳號C1-2 網(wǎng)絡(luò)連接的第二個分支,格式為元件編號及其引腳號Q-B 網(wǎng)絡(luò)連接的第三個分支,格式為元件編號及其引腳號R2-2 網(wǎng)絡(luò)連接的第四個分支,格式為元件編號及其引腳號) 網(wǎng)絡(luò)描述結(jié)束注意:網(wǎng)絡(luò)連接描述從“(”開始,到“)”結(jié)束,將一個網(wǎng)絡(luò)所有分支都包含在“( )”內(nèi)(如以上“NetR1_1”網(wǎng)絡(luò)分支數(shù)為4),

6、一個網(wǎng)絡(luò)有多少個分支,網(wǎng)絡(luò)描述中就有多少行“元件編號及引腳號”,相同元件引腳號碼不能重復(fù)。4、元件列表元件列表主要是用于整理一個電路或一個項目文件中所有元件,它主要包括元件編號、類型、封裝名等內(nèi)容。任務(wù)實施過程1、 創(chuàng)建電路原理圖的ERC報表(1) 打開已經(jīng)設(shè)計好的 “放大整形電路.ddb”數(shù)據(jù)庫,并進(jìn)入放大整形電路原理圖(文件名為tt.sch),將信號Vo1、Vi離開所在的導(dǎo)線(仿制三處錯誤)。(2) 執(zhí)行菜單命令Tools/ERC后,系統(tǒng)進(jìn)入Setup選項卡對話框,根據(jù)需要設(shè)置電氣規(guī)則檢查各選項,如圖8.3所示。其中Multiple net names on net:檢測項中將包含“同一網(wǎng)

7、絡(luò)被命名多個網(wǎng)絡(luò)名稱”的錯誤檢測。Unconnected net labels:檢測項中將包含“未實際連接的網(wǎng)絡(luò)標(biāo)號”的錯誤檢測。Unconnected power objects:檢測項中將包含“未實際連接的電源或地元件”的錯誤檢測。Duplicate sheet numbers:檢測項中將包含“電路圖編號重號”的錯誤檢測。Duplicate component designators:檢測項中將包含“元件編號重號”的錯誤檢測。Bus label format errors: 檢測項含中將包含“總線標(biāo)號格式錯誤”的錯誤檢測。Floating input pins:檢測項中將包含“輸入引腳浮空

8、”的錯誤檢測。Suppress warnings:忽略所有的錯誤檢測,也不顯示測試的錯誤報告。(3) 點擊OK按鈕后,程序自動進(jìn)入文本編輯器并生成相應(yīng)的規(guī)則檢查報告。如圖8.4所示為圖8.1放大整形電路的ERC檢查報告。 圖8.3 本例中Setup選項卡設(shè)置(4) 系統(tǒng)在發(fā)生錯誤位置放置錯誤(紅色)符號,如圖8.5所示。圖8.4 電氣規(guī)則檢查報告圖8.5 進(jìn)行ERC檢查后的放大整形電路2、創(chuàng)建原理圖網(wǎng)絡(luò)表(1) 回到圖8.1,執(zhí)行菜單命令Design/Create Netlist。(2) 系統(tǒng)彈出創(chuàng)建網(wǎng)絡(luò)表對話框,該對話框設(shè)置如圖8.6和圖8.7所示。(3) 設(shè)置完對話框后,點擊OK按鈕,系統(tǒng)

9、以記事本方式自動打開網(wǎng)絡(luò)表文件,內(nèi)容見表8-1所示。圖8.1電路中有15個元件,13條網(wǎng)絡(luò);對應(yīng)表8-1就有15對中括號、13對圓括號。 圖8.6 “Preferences”的設(shè)置 圖8.7 “Trace Options”的設(shè)置 (4) 保存網(wǎng)絡(luò)表文件到自己的文件夾中。(5) 原理圖網(wǎng)絡(luò)表的檢查。電路自動產(chǎn)生網(wǎng)絡(luò)表或多或少會有些問題,此時需要人工修改網(wǎng)絡(luò)表,修改時必須對照電路圖進(jìn)行以下兩個方面檢查。(1)元件描述部分: 檢查電路中元器件個數(shù)和網(wǎng)絡(luò)表的方括號對數(shù)是否相等。 檢查網(wǎng)絡(luò)表每對方括號里是否均包括元件編號和封裝名。 檢查網(wǎng)絡(luò)表每對方括號里元件編號和封裝位置。(2)

10、網(wǎng)絡(luò)連接描述 檢查電路中網(wǎng)絡(luò)個數(shù)和網(wǎng)絡(luò)表的圓括號對數(shù)是否相等。 檢查網(wǎng)絡(luò)表每對圓括號第一行是否都為網(wǎng)絡(luò)名。 檢查網(wǎng)絡(luò)表每對圓括號中網(wǎng)絡(luò)分支個數(shù)。技巧:網(wǎng)絡(luò)表若有錯誤,修改方法有:(1)修改原理圖后再一次產(chǎn)生網(wǎng)絡(luò)表。(2)直接在網(wǎng)絡(luò)表記事本里修改。表8-1 網(wǎng)絡(luò)表文件C1RAD0.20.5uFC2RAD0.210uFD1DIODE0.42CK5D2DIODE0.42CK5D3DIODE0.42CK5D4DIODE0.42CK5D5DIODE0.42CK5JSIP5CON5R1AXIAL0.44.8KR2AXIAL0.42KR3AXIAL0.45.1KSSIP2SW-SPSTQTO-5

11、3DG4AU1DIP14SN74LS04U2DIP14SN74LS00(GNDD2-2D4-1J-4 R2-1Q-3 U1-7 U2-7) (NetC1_2C1-2R1-1R2-2Q-1)(NetC2_1C2-1R3-1Q-2)(NetC2_2C2-2S-1)(NetD1_1D1-1D3-2D5-2S-2U1-1)(NetD1_2D1-2D2-1)(NetD3_1D3-1D4-2)(NetD5_1D5-1U2-5)(NetU1_2U1-2U2-1)(Vo1U2-3U2-4J-2)(VccJ-5R1-2R3-2U1-14U2-14)(ViJ-3C1-1)(Vo2J-1U2-2U2-6)3、創(chuàng)建元

12、件列表(1)在圖8.1所示的原理圖中,執(zhí)行菜單命令Reports/Bill of Material,進(jìn)入圖8.8。圖8.8 元件列表向?qū)е粓D8.9 元件列表向?qū)е?)點擊Next按鈕,進(jìn)入圖8.9,設(shè)置元件報表中所包含的內(nèi)容,選用默認(rèn)值。(3)點擊Next按鈕,進(jìn)入圖8.10,選擇需要加入元件報表中的文字欄,選用默認(rèn)值。(4)點擊Next按鈕,進(jìn)入圖8.11,選擇最終的元件報表輸出格式。系統(tǒng)提供了三種格式:Protel Format、CSV Format、Client Spreadsheet,選擇 Protel Format格式。(5)點擊Next按鈕,進(jìn)入圖8.12,結(jié)束列表向?qū)υ捒?/p>

13、,點擊Finish按鈕。(7)程序自動進(jìn)入圖8.13所示的元件列表中,并形成后綴為*.BOM元件列表文本文件。該元件列表文件中Used列為所用某種元件個數(shù),Part Type列為該元件類型,Designator列為元件編號,F(xiàn)ootPrint列為元件封裝類型。圖8.10 元件列表向?qū)е龍D8.11 元件列表向?qū)е膱D8.12 元件列表向?qū)е鍒D8.13 元件列表實訓(xùn)練習(xí)實訓(xùn)題1 畫出如實訓(xùn)圖8.1所示的放大電路,請輸出其網(wǎng)絡(luò)表和元件列表。實訓(xùn)圖8.1實訓(xùn)題2帶通濾波器電路如實訓(xùn)圖8.2所示,創(chuàng)建電路原理圖的網(wǎng)絡(luò)表和元件列表。實訓(xùn)圖8.2實訓(xùn)題3 對實訓(xùn)圖8.3電路原理圖進(jìn)行電氣規(guī)則檢查,請做元

14、件表和網(wǎng)絡(luò)表。實訓(xùn)圖8.3實訓(xùn)題4對實訓(xùn)圖8.4電路原理圖進(jìn)行ERC檢測并修改錯誤,最后輸出該電路原理圖的網(wǎng)絡(luò)表和元件列表。實訓(xùn)題5 對實訓(xùn)圖8.5電路原理圖進(jìn)行ERC檢測,輸出實訓(xùn)圖8.5的網(wǎng)絡(luò)表和元件列表。實訓(xùn)圖8.4實訓(xùn)圖8.5圖8.14 雙機通信硬件電路任務(wù)二 兩臺單片機數(shù)據(jù)互傳任務(wù)目標(biāo)通過本任務(wù)的學(xué)習(xí)、完成,掌握單片機硬件資源串行通訊接口的使用。任務(wù)描述兩臺單片機之間,要求將對方單片機的按鍵值(S1=1)通過串口傳送給另外一方,并在發(fā)光二極管顯示。單片機掃描到S1(P3.2)鍵合上后,即啟動串行發(fā)送,將01H這個數(shù)發(fā)送給對方單片機,對方單片機收到數(shù)據(jù)后,再從P1口送出來顯示。硬件電路

15、如圖8.14所示。源程序 發(fā)送機和接收機程序框圖如圖8.15所示。 a) 發(fā)送機程序框圖 b) 接收機程序框圖 圖8.15 雙機通信程序框圖/*發(fā)送機程序*/#include reg51.h#define uchar unsigned charsbit FLAG=P32; void delay() uchar i,j; for(i=0;i40;i+) for(j=0;j250;j+); void main() SCON=0x40; PCON=0x80; TMOD=0x20; TH1=0xfa; TR1=1; while(1) dg:while(FLAG=1) ; delay(); if(FLA

16、G=1) goto dg; SBUF=0x01; while(TI=0) ; TI=0; /*接收機程序*/ #include reg51.hvoid main() SCON=0x40; PCON=0x80; TMOD=0x20; TH1=0xfa; TR1=1; REN=1; while(1) while(RI=0) ; RI=0; P1=SBUF; 任務(wù)實施1.利用PROTEL軟件繪制如圖8.14硬件電路圖,生成元件清單和網(wǎng)絡(luò)報表。2.利用proteus仿真軟件繪制電路原理圖3. C51程序的編譯按照情景一Keil C51編譯軟件的操作步驟對源程序進(jìn)行編譯和調(diào)試。4.執(zhí)行程序觀察效果將編譯

17、成功后的.HEX文件加載到CPU執(zhí)行程序并按動按鈕觀察效果。相關(guān)知識1. 數(shù)據(jù)通信的傳輸方式一般把計算機與外界的信息交換稱為通信。最基本的通信方法有串行通信和并行通信兩種,如圖8.16所示。圖8.16 并行通信與串行通信并行通信是指一個數(shù)據(jù)的各位同時進(jìn)行傳送的通信方式。其優(yōu)點傳送速度很快。缺點是一個并行數(shù)據(jù)有多少個位,就需要多少根傳輸線,只適用于近距離傳送,太遠(yuǎn)距離的成本太高,一般不采用。串行通信是指一個數(shù)據(jù)的各位逐位順序傳送的通信方式。其優(yōu)點是僅需單線傳輸信息,特別是數(shù)據(jù)位很多和遠(yuǎn)距離數(shù)據(jù)傳送時,這一優(yōu)點更為突出。串行通信方式的主要缺點是傳送速度較低。l 串行通信的分類按照串行數(shù)據(jù)的時鐘控制

18、方式,串行通信可分為同步通信和異步通信兩類。1)同步通信同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,它將數(shù)據(jù)分塊傳送。在傳送每一個數(shù)據(jù)塊開始處要用12個同步字符,使發(fā)送與接收雙方取得同步,如圖8.17所示。圖8.17 同步通信的格式在同步通信中,由同步時鐘來實現(xiàn)發(fā)送和接收的同步。在發(fā)送時要插入同步字符,接收端接收到同步字符后,開始接收串行數(shù)據(jù)位。發(fā)送端在發(fā)送數(shù)據(jù)流過程中,若出現(xiàn)沒有準(zhǔn)備好數(shù)據(jù)的情況,便用同步字符來填充,一直到下一字符準(zhǔn)備好為止。數(shù)據(jù)流由一個個數(shù)據(jù)組成,稱為數(shù)據(jù)塊。每一個數(shù)據(jù)可選58個數(shù)據(jù)位和一個奇偶校驗位。此外整個數(shù)據(jù)流還可進(jìn)行奇偶校驗或循環(huán)冗余校驗(CRC)。同步字符可以采用統(tǒng)

19、一的標(biāo)準(zhǔn)格式,也可自由約定。同步通信的數(shù)據(jù)傳送速率較高,一般適合于傳送大量的數(shù)據(jù)。 2)異步通信在異步通信中,傳送的數(shù)據(jù)通常是不連續(xù)的,數(shù)據(jù)通常是以一個字(也稱為字符)為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一幀數(shù)據(jù)均是低位在前,高位在后,通過傳輸線被接收端一幀一幀地接收。發(fā)送端和接收端可以由各自獨立的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘彼此獨立,互不同步。在異步通信中,接收端是依靠字符幀格式來判斷發(fā)送端是何時開始發(fā)送,何時結(jié)束發(fā)送的。字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、校驗位和停止位等四部分組成,其典型的格式如Error! Reference source not foun

20、d.所示。圖8.18 異步通信的格式在上述幀格式中,一個字符的傳送由起始位開始,至停止位結(jié)束。起始位:位于字符幀開頭,為邏輯低電平信號,只占一位,用于向接收端表示發(fā)送端開始發(fā)送一幀信息,應(yīng)準(zhǔn)備接收。數(shù)據(jù)位:緊跟起始位之后,通常為58位字符編碼。發(fā)送時低位在前,高位在后。奇偶校驗位:位于數(shù)據(jù)位之后,僅占一位,用來表征通信中采用奇校驗還是偶校驗。停止位:位于字符幀最后,表示字符結(jié)束。其為邏輯高電平信號,可以占1位或2位。接收端接收到停止位,就表示這一字符的傳送已結(jié)束。在異步通信中,兩相鄰字符幀可以通過空閑位來間隔,使用中可以沒有空閑位,也可以有若干空閑位。由于異步通信每幀都要加上起始位和停止位,所

21、以通信速度相對同步來說較慢,但是它的間隔時間可以任意改變,使得它的使用非常自由。在小數(shù)據(jù)量且間隔時間不定的通信中,往往采用異步串行通信。在一幀信息中,每一位的傳送時間(位寬)是一定的,用Td表示,Td的倒數(shù)稱為波特率。波特率是串行通信中的一個重要概念,只有當(dāng)通信雙方采用相同的波特率時,通信才不會發(fā)生混亂。波特率表示每秒傳送的位數(shù)。例如當(dāng)我們采用位數(shù)據(jù)的異步串行通信(這時每個字符加上起始位和停止位,一共為10位),且每秒發(fā)送120個字符時,波特率為:10位/字符120字符/秒=1200位/秒;每一位的傳送時間Td =1/1200=0.833ms。波特率用于表征數(shù)據(jù)傳輸?shù)乃俣?,波特率越高,?shù)據(jù)傳輸

22、速度越快。但波特率和字符的實際傳輸速率不同,字符的實際傳輸速率是每秒內(nèi)所傳字符幀的幀數(shù),和字符幀格式有關(guān)。通常,異步通信的波特率為509600位/秒。l 串行通信制式在串行通信中數(shù)據(jù)是在發(fā)送站和接收站之間進(jìn)行傳送的,按照信息傳送的方向,可以分為單工、半雙工和全雙工三種制式。在單工制式下,通信線的一端接發(fā)送器,一端接接收器,只能單方向傳送信息,如圖8.19(a)所示。在半雙工制式下,每個站都由一個發(fā)送器和一個接收器組成,如圖8.19 (b)所示。在這種制式下,信息能從甲站傳送到乙站,也可以從乙站傳送到甲站,即能雙向傳送信息;但在同一時間,信息只能向一個方向傳送,而不能同時在兩個方向上傳送。全雙工

23、通信系統(tǒng)的每端都有發(fā)送器和接收器,能同時實現(xiàn)信息的雙向傳送,如圖8.19(c)所示。圖8.19 串行通信的數(shù)據(jù)傳送方向2.串行口結(jié)構(gòu)串行口結(jié)構(gòu)如圖8.20所示。圖8.20 串行口內(nèi)部結(jié)構(gòu)串行口主要由發(fā)送數(shù)據(jù)緩沖器、發(fā)送控制器、輸出控制門、接收數(shù)據(jù)緩沖器、接收控制器、輸人移位寄存器等組成。發(fā)送緩沖器和接收緩沖器共用一個特殊寄存器空間99H,且共用一個符號SBUF表示,可同時發(fā)送、接收數(shù)據(jù)。向SBUF中寫數(shù)據(jù),就是修改發(fā)送寄存器;從SBUF中讀數(shù)據(jù),便是讀接收寄存器。發(fā)送緩沖器只能寫入發(fā)送的數(shù)據(jù),但不能讀出;接收緩沖器只能讀出接收的數(shù)據(jù),但不能寫入,故對它們的操作不會出現(xiàn)混亂。80C51單片機接收

24、和發(fā)送數(shù)據(jù),是通過串行口對外的兩條獨立收發(fā)信號線RXD(P3.0)、TXD(P3.1)來實現(xiàn)的,發(fā)送數(shù)據(jù)時,是由一條寫發(fā)送緩沖器的指令(SBUF=0x01)把數(shù)據(jù)寫入串行口的發(fā)送緩沖器SBUF中,然后從TXD端一位一位地向外部發(fā)送。同時,接收端RXD也可以一位一位地接收外部數(shù)據(jù),當(dāng)收到一個完整的數(shù)據(jù)后通知CPU,再由一條指令(P1=SBUF)把接收緩沖器SBUF的數(shù)據(jù)讀入累加器。3.串行口控制寄存器控制80C51單片機串行口的控制寄存器有兩個,分別是特殊功能寄存器SCON和PCON。l 串行口控制寄存器SCON80C51對串行通信方式的選擇、接收和發(fā)送控制以及串行口的狀態(tài)標(biāo)志等均由串行口控制寄

25、存器SCON控制和指示,SCON可以位尋址,字節(jié)地址98H,單片機復(fù)位時,所有位均為0,其控制字格式如圖8.21所示。圖8.21 SCON各位定義SM0、SM1:串行方式選擇位,用于設(shè)定串行口的工作方式,兩個選擇位對應(yīng)四種通信方式,如表8-1所示。表8-1 串行口工作方式SM0SM1工作方式功能說明波特率00方式0同步移位寄存器fosc/1201方式18位數(shù)據(jù)UART可變(T1溢出率/n)10方式29位數(shù)據(jù)UARTfosc/64或fosc/3211方式39位數(shù)據(jù)UART可變(T1溢出率/n)SM2:多機通信控制位,主要用于允許方式2和方式3進(jìn)行多機通信。在方式2和方式3處于接收方式時,若SM2

26、=1,且接收到的第9位數(shù)據(jù)RB8為0時,不激活RI;若SM2=1,且RB8=1時,則置RI=1。在方式2、3處于接收或發(fā)送方式時,若SM2=0,不論接收到的第9位RB8為0還是為1,TI、 RI都以正常方式被激活。在方式1處于接收時,若SM2=1,則只有收到有效的停止位后,RI置。在方式0中,SM2應(yīng)為0。REN:允許串行接收位。由軟件置位清位。REN=1時,允許接收;REN=0時,禁止接收。TB8:在方式2和方式3時將發(fā)送的第9位數(shù)據(jù)放入TB8中,根據(jù)需要由軟件置位或清位。在方式0和方式1中,該位未使用??勺銎媾夹r炍?,也可在多機通信中,作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)識位,一般約定地址幀時,TB

27、8為1,數(shù)據(jù)幀時,TB8為0。RB8:在方式2和方式3時將接收到的第9位數(shù)據(jù)放入RB8中。也可約定作為奇偶校驗位,以及在多機通信中區(qū)別地址幀或數(shù)據(jù)幀;在方式2或方式3的多機通信中,若SM2=1,如果RB8=1表示地址幀。在方式1中,若SM2=0,RB8中存放的是已收到的停止位。在方式0中,該位未使用。TI:發(fā)送中斷標(biāo)志位。在方式0中,發(fā)送完8位數(shù)據(jù)后,由硬件置位;在其它方式中,在發(fā)送停止位之初由硬件置位。因此,TI是發(fā)送完一幀數(shù)據(jù)的標(biāo)志,可由軟件來查詢TI的狀態(tài)。TI=1時,也可向CPU申請中斷,CPU響應(yīng)中斷后,必須由軟件清0。RI:接收中斷標(biāo)志位。在方式0中,接收完8位數(shù)據(jù)后,由硬件置位;

28、在其它方式中,在接收停止位的中間由硬件置位。同TI一樣,也可以通過軟件來查詢是否接收完一幀數(shù)據(jù)。RI=1時,也可申請中斷,響應(yīng)中斷后,RI必須由軟件清0。l 電源控制寄存器PCONPCON主要是為CHMOS型單片機的電源控制而設(shè)置的專用寄存器,不可以位尋址,字節(jié)地址為87H。在HMOS型的單片機中,PCON除了最高位以外,其它的位均無意義。其格式如圖8.22所示。圖8.22 PCON各位定義與串行通信有關(guān)的只有SMOD位。SMOD為波特率選擇位。在方式1, 2和3時,串行通信的波特率與SMOD有關(guān)。當(dāng)SMOD=1時,通信波特率乘2,當(dāng)SMOD=0時,波特率不變。其它各位用于電源管理,此處從略。

29、3.串行口的工作方式80C51的串行口有4種工作方式,通過SCON的SM0、SM1位來決定,如表8-1所示。1)方式0方式0即串行寄存器方式。在方式0時,數(shù)據(jù)由RXD腳上發(fā)送或接收。而TXD腳作為同步移位脈沖的輸出腳,用來控制時序。一幀信息由8位數(shù)據(jù)位組成,低位在前,高位在后,波特率固定,為fosc/12(振蕩頻率的十二分之一)。這種方式常用于擴展I/O口。(1)發(fā)送方式0發(fā)送時,數(shù)據(jù)從RXD端串行輸出,TXD端輸出同步信號。當(dāng)一個數(shù)據(jù)寫入串行口發(fā)送緩沖器SBUF時,串行口將位數(shù)據(jù)以fosc/12的波特率從RXD串行輸出(低位在前),發(fā)送完置中斷標(biāo)志TI為1,請求中斷。在再次發(fā)送數(shù)據(jù)之前,必須

30、由軟件清TI為0。方式0時,CPU執(zhí)行一條寫數(shù)據(jù)到SBUF的指令,如:“SBUF=0x01;”就啟動了發(fā)送過程。發(fā)送的時序如圖8.23所示。圖8.23 方式0發(fā)送時序80C51的串行接口可外接74LS164串行輸入并行輸出寄存器,用于擴展8位并行輸出接口。其具體接線如圖8.24所示。圖8.24 方式0用于擴展I/O口輸出例1 利用串行口方式0外接74HC595串行輸入并行輸出寄存器,擴展用于擴展8位并行輸出接口。其具體接線如圖8.25所示。圖8.25 由74HC595構(gòu)成的顯示電路編寫程序如下:#include reg51.h#define uchar unsigned charsbit P1

31、_5=P15;void delay() uchar i,j,k; for(i=0;i200;i+) for(j=0;j200;j+) for(k=0;k5;k+) ;void main() uchar seg10=0x09,0x01,0x1f,0x41,0x49,0x99,0x0d,0x25,0x9f,0x03,i;/90共陽段碼值 SCON=0x00; /串行口工作方式0 i=0; for(;) SBUF=segi;/輸出顯示段碼 while(TI=0); TI=0; P1_5=0; P1_5=1; delay(); i+; if(i=10) i=0; (2)接收當(dāng)串行口定義為方式0,并滿足

32、REN=1和RI=0時,便啟動串行口以方式0接收數(shù)據(jù)。此時RXD為數(shù)據(jù)輸入端,TXD為同步脈沖信號輸出端。接收器以fosc/12的波特率從RXD端輸入數(shù)據(jù)(低位在前),當(dāng)接收完8位數(shù)據(jù)后,置中斷標(biāo)志RI為1,請求中斷。在再次接收數(shù)據(jù)之前,必須由軟件清RI為0。其時序圖如圖8.26所示。80C51的串行接口可外接74LS165并行輸入串行輸出寄存器,用于擴展8位并行輸入接口。其具體接線如Error! Reference source not found.8.27所示。串行控制寄存器SCON中的TB8和RB8在方式0中未用。值得注意的是,每當(dāng)發(fā)送或接收完8位數(shù)據(jù)后,硬件會自動置TI或RI為1, C

33、PU響應(yīng)TI或RI中斷后,必須由用戶用軟件清0。方式0時,SM2必須為0。圖8.26 方式0接收時序圖8.27 方式0用于擴展I/O口輸入例2 用單片機的串行口擴展一片74LS165,實現(xiàn)8個按鍵輸入,并將讀回的按鍵值送P1口指示燈顯示。電路如圖8.28所示。圖8.28 74LS165構(gòu)成的按鍵擴展電路編寫程序如下:#include reg51.hsbit SL=P23;void delay(unsigned int k) unsigned int i; for(i=0;ik;i+) ;void main() unsigned char m; while(1) SCON=0x10; SL=0;

34、 delay(0x10); SL=1; RI=0; while(RI=0); m=SBUF; P1=m; RI=0; 2)方式1當(dāng)SM0=0, SM1=1時,串行口以方式1工作。方式1為10位通用異步通信接口。其中TXD發(fā)送數(shù)據(jù),RXD接收數(shù)據(jù)。一幀信息包括:一個起始位,8位數(shù)據(jù)位(低位在前),1位停止位。(1)發(fā)送發(fā)送時,數(shù)據(jù)從TXD端輸出。當(dāng)向CPU執(zhí)行一條寫SBUF指令即開啟了發(fā)送過程。發(fā)送時序如Error! Reference source not found.29所示。CPU發(fā)送的“寫SBUF指令啟動發(fā)送控制器,同時將并行數(shù)據(jù)送人SBUF。經(jīng)過一個機器周期,發(fā)送控制器SEND、DAT

35、A有效,輸出控制門被打開,在發(fā)送移位脈沖(TX CLOCK)的作用下,向外逐位輸出串行信號。在發(fā)送時,串行口自動地在數(shù)據(jù)的前后分別插入一位起始位“0”和一位停止位“1”,以構(gòu)成一幀信息;在8位數(shù)據(jù)發(fā)出之后,并在停止位開始時,CPU自動使TI為1,申請發(fā)送中斷,同時發(fā)送出下一個數(shù)據(jù)。當(dāng)一幀信息發(fā)完后,自動保持TXD端的信號為“1”。方式1發(fā)送時的移位時鐘是由定時器T1送來的溢出信號經(jīng)過16分頻或32分頻(取決于PCON中的SMOD位)而取得的,因此方式1的波特率是可變的。圖8.29 方式1發(fā)送時序(2)接收串行口以方式1接收時,數(shù)據(jù)從RXD端輸入。接收時序如Error! Reference so

36、urce not found.30所示。圖8.30 方式1接收時序當(dāng)允許接收標(biāo)志REN=1后,就允許接收器接收。在沒有信號到來時,RXD端狀態(tài)保持為“1”,當(dāng)檢測到存在由“1”到“0”的變化時,就確認(rèn)是一幀信息的起始位“0”,便開始接收一幀數(shù)據(jù)。在接收移位脈沖(RX CLOCK)的控制下,把收到的數(shù)據(jù)一位一位地移入接收移位寄存器中,直到9位數(shù)據(jù)全部接收齊(包括1位停止位)。在接收操作中,接收移位脈沖的頻率和發(fā)送波特率相同,也是由定時器T1的溢出信號經(jīng)過16分頻或32分頻(由SMOD位決定)而得到的。接收器以波特率的16倍速率采樣RXD腳狀態(tài)。當(dāng)檢測到“1”到“0”的變化啟動接收控制器接收數(shù)據(jù)。

37、為了避免通信雙方波特率微小不同的誤差影響,接收控制器將一位數(shù)據(jù)的傳送時間等分為16份,并在第7、8、9三個狀態(tài)由位檢測器采樣RXD三次,取三次采樣中至少兩次相同的值作為數(shù)據(jù)。這樣可以大大減少干擾影響,保證通信準(zhǔn)確無誤。接收完一幀信息后,如果RI=0,并且SM2=0或停止位為1,則表示接收數(shù)據(jù)有效,開始裝載SBUF,8位有效數(shù)據(jù)送人SBUF,停止位送人SCON中得RB8,同時硬件置RI=1;否則接收數(shù)據(jù)無效,信息將丟失。無論數(shù)據(jù)接收有效無效,接收控制器將再次采樣RXD引腳的負(fù)跳變,以接收下一幀信息。3)方式2和方式3當(dāng)SM0=1、SM1=0時,串行口工作在方式2,為9位異步串行通信。方式2、方式3的發(fā)送接收方式與方式1基本相同,不同的是,它的數(shù)據(jù)是9位的,即它的一幀包括11位,1個開始位,9個數(shù)據(jù)位和1個停止位。其中第9位(即D8)數(shù)據(jù)是可由用戶編程,用來作奇偶校驗或作地址數(shù)據(jù)標(biāo)志位。方式2和方式3的差別僅僅在于波特率不一樣, 方式2的波特率是固定的,為fosc/32(SMOD=1時)或fosc/64(SMOD=0時);方式3的波特率可變的,可通過定時器T1或T2自由設(shè)定。(1)發(fā)送發(fā)送時,先根據(jù)通信協(xié)議由軟件設(shè)置TB8,然后用指令將要發(fā)送的數(shù)據(jù)寫入SBUF,啟動發(fā)送器。寫SBUF的指令,除了將8位數(shù)據(jù)送入SBUF外,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論