




已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄1設計任務12設計方案13硬件設計131AT89C51簡介132MAX232芯片簡介433串行通信電路54軟件設計641BIOS串行通信口功能642單片機串行口控制寄存器及波特率的計算743程序流程圖10431PC機部分程序流程圖10432單片機部分125心得體會13參考文獻14附錄一15附錄二17計算機通信系統設計1設計任務1畫出簡要的硬件原理圖,編寫通信程序。2程序運行后,實現PC機和單片機之間的串行通信。2設計方案PC機與單片機之間最簡單的連接是零調制3線經濟型,所謂三線就是指發(fā)送數據線TXD、接收數據線RXD以及信號地線GND。連接時,雙方的地線直接相連,收發(fā)數據線交叉相連。這是進行全雙工通信所必需的最少數目的線路。由于單片機的輸入、輸出、均為TTL電平,而PC機配置的是RS232標準串行接口,二者的電氣規(guī)范不一致,因此要完成PC機與單片機之間的串行通信,必須進行電平轉換。本次課程設計我們選用AT89C51單片機,電平轉換芯片選用MAXIM公司生產的MAX232芯片。3硬件設計31AT89C51簡介AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低電壓,高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。以下是AT89C51芯片的引腳圖圖31AT89C51引腳圖接下來對單片機個管教進行簡要說明VCC供電電壓。GND接地。P0口P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口P3口管腳是帶8個內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示管腳備選功能P30RXD(串行輸入口)P31TXD(串行輸出口)P32INT0(外部中斷0)P33INT1(外部中斷1)P34T0(記時器0外部輸入)P35T1(記時器1外部輸入)P36WR(外部數據存儲器寫選通)P37RD(外部數據存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。/EA/VPP當/EA保持低電平時,則在此期間外部程序存儲器(0000HFFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2來自反向振蕩器的輸出。32MAX232芯片簡介MAX232芯片是MAXIM公司生產的、包含兩路接收器和驅動器的IC芯片,適用于各種EIA232C和V28/V24的通信接口。MAX232芯片內部有一個電源電壓變換器,可以把輸入的5V電源電壓變換成RS232C輸出所需要的正負10V電壓。所以,采用此芯片的接口串行通信系統只需要單一的5V電源就可以了。以下是MAX232芯片的引腳圖圖32MAX232引腳MAX232典型工作電路圖圖33MAX232典型工作電路圖在MAX232工作電路中,電容C1、C2、C3、C4、以及V_、V是電源變換電路部分。在實際應用中,期間對電源噪聲很敏感。因此,VCC必須要對地加去耦電容,其他電容同樣是用以提高抗干擾能力,在連接時必須盡量靠近器件。下半部分是發(fā)送和接收部分,實際應用中,INT1和I2可直接接TTL/CMOS點評的89C51單片機的串行發(fā)送端TXD;OUR和可直接接TTL/CMOS電平的89C51單片機的串行接收端RXD;T1和T2可直接接PC機的RS232串口接收端RXD;INR1和I2可直接接PC機的RS232串口發(fā)送端TXD33串行通信電路通過以上對AT89C51和MAX232兩個芯片的介紹,接下來設計串行通信電路?,F從MAX232芯片中兩路發(fā)送接收中任選一路作為接口。應注意其發(fā)送、接受的引腳要對應。以下為接口電路圖圖34PC機與單片機通信電路4軟件設計編寫程序,實現單片機與PC機之間的串行通信。程序實現以下功能單片機向PC機發(fā)送數據,PC機接收后將接收到的數據反饋給單片機,由單片機檢測發(fā)送的數據是否正確,正確則繼續(xù)發(fā)送并由數碼管顯示該數字,否則重新發(fā)送,直至數據發(fā)送完畢。41BIOS串行通信口功能PC機提供比較靈活的關于串行口的BIOS中斷調用方法,即通過”INT14”調用ROMBIOS串行通信口例行程序。該例行程序包括將串口初始化為指定的字節(jié)結構和傳輸速率,檢查控制器的狀態(tài)、讀寫字符等功能。下面介紹”INT14”中斷調用功能。1初始化串行通信口(AH0)調用參數AL初始化參數DX通信口號,0COM1,2COM2返回參數AH通信口狀態(tài)AL調制解調器狀態(tài)2向串行通信口寫字符(AH1)輸入參數AL所寫字符DX通信口號,0COM1,2COM2輸出參數寫字符成功AH70,AL已寫入字符寫字符失敗AH71,AH06通信口狀態(tài)3從串行通信口讀字符(AH2)輸入參數DX通信口號,0COM1,2COM2輸出參數讀字符成功AH70,AL讀入字符讀字符失敗AH71,AH06通信口狀態(tài)4取通信口狀態(tài)(AH3)輸入參數DX通信口號,0COM1,2COM2輸出參數AH通信口狀態(tài)AL調制解調器狀態(tài)42單片機串行口控制寄存器及波特率的計算89C51串行通信的方式選擇、接收和發(fā)送控制以及串行口的狀態(tài)標志等均由特殊功能寄存器SCON控制和指示。SCON串行口控制寄存器通常在芯片或設備中為了監(jiān)視或控制接口狀態(tài),都會引用到接口控制寄存器。SCON就是51芯片的串行口控制寄存器。它的尋址地址是98H,是一個可以位尋址的寄存器,作用就是監(jiān)視和控制51芯片串行口的工作狀態(tài)。51芯片的串口可以工作在幾個不同的工作模式下,其工作模式的設置就是使用SCON寄存器。它的各個位的具體定義如下SM0SM1SM2RENTB8RB8TIRISM0、SM1為串行口工作模式設置位,這樣兩位可以對應進行四種模式的設置。串行口工作模式設置。SM0SM1模式功能波特率000同步移位寄存器FOSC/120118位UART由定時器設置1029位UARTFOSC/32或FOSC/641139位UART由定時器設置在這里只說明最常用的模式1,其它的模式也就一一略過。表中的FOSC代表振蕩器的頻率,也就是晶振的頻率。UART為UNIVERSALASYNCHRONOUSRECEIVER)的英文縮寫。SM2在模式2、模式3中為多處理機通信使能位。在模式0中要求該位為0。REN為允許接收位,REN置1時串口允許接收,置0時禁止接收。REN是由軟件置位或清零。如果在一個電路中接收和發(fā)送引腳P30,P31都和上位機相連,在軟件上有串口中斷處理程序,當要求在處理某個子程序時不允許串口被上位機來的控制字符產生中斷,那么可以在這個子程序的開始處加入REN0來禁止接收,在子程序結束處加入REN1再次打開串口接收。TB8發(fā)送數據位8,在模式2和3是要發(fā)送的第9位。該位可以用軟件根據需要置位或清除,通常這位在通信協議中做奇偶位,在多處理機通信中這一位則用于表示是地址幀還是數據幀。RB8接收數據位8,在模式2和3是已接收數據的第9位。該位可能是奇偶位,地址/數據標識位。在模式0中,RB8為保留位沒有被使用。在模式1中,當SM20,RB8是已接收數據的停止位。TI發(fā)送中斷標識位。在模式0,發(fā)送完第8位數據時,由硬件置位。其它模式中則是在發(fā)送停止位之初,由硬件置位。TI置位后,申請中斷,CPU響應中斷后,發(fā)送下一幀數據。在任何模式下,TI都必須由軟件來清除,也就是說在數據寫入到SBUF后,硬件發(fā)送數據,中斷響應(如中斷打開),這時TI1,表明發(fā)送已完成,TI不會由硬件清除,所以這時必須用軟件對其清零。RI接收中斷標識位。在模式0,接收第8位結束時,由硬件置位。其它模式中則是在接收停止位的半中間,由硬件置位。RI1,申請中斷,要求CPU取走數據。但在模式1中,SM21時,當未收到有效的停止位,則不會對RI置位。同樣RI也必須要靠軟件清除。常用的串口模式1是傳輸10個位的,1位起始位為0,8位數據位,低位在先,1位停止位為1。它的波特率是可變的,其速率是取決于定時器1或定時器2的定時值(溢出速率)。AT89C51和AT89C2051等51系列芯片只有兩個定時器,定時器0和定時器1,而定時器2是89C52系列芯片才有的。波特率在使用串口做通訊時,一個很重要的參數就是波特率,只有上下位機的波特率一樣時才可以進行正常通訊。波特率是指串行端口每秒內可以傳輸的波特位數。如果波特率為9600,它是指每秒可以傳送9600個二進位,而一個字節(jié)要8個二進位,如用串口模式1來傳輸那么加上起始位和停止位,每個數據字節(jié)就要占用10個二進位,9600波特率用模式1傳輸時,每秒傳輸的字節(jié)數是960010960字節(jié)。51芯片的串口工作模式0的波特率是固定的,為FOSC/12,以一個12M的晶振來計算,那么它的波特率可以達到1M。模式2的波特率是固定在FOSC/64或FOSC/32,具體用那一種就取決于PCON寄存器中的SMOD位,如SMOD為0,波特率為FOCS/64,SMOD為1,波特率為FOCS/32。模式1和模式3的波特率是可變的,取決于定時器1或2(52芯片)的溢出速率。那么我們怎么去計算這兩個模式的波特率設置時相關的寄存器的值呢可以用以下的公式去計算。波特率(SMOD32)定時器1溢出速率上式中如設置了PCON寄存器中的SMOD位為1時就可以把波特率提升2倍。通常會使用定時器1工作在定時器工作模式2下,這時定時值中的TL1做為計數,TH1做為自動重裝值,這個定時模式下,定時器溢出后,TH1的值會自動裝載到TL1,再次開始計數,這樣可以不用軟件去干預,使得定時更準確。在這個定時模式2下定時器1溢出速率的計算公式如下溢出速率(計數速率)/256TH1上式中的“計數速率”與所使用的晶體振蕩器頻率有關,在51芯片中定時器啟動后會在每一個機器周期使定時寄存器TH的值增加一,一個機器周期等于十二個振蕩周期,所以可以得知51芯片的計數速率為晶體振蕩器頻率的1/12,一個12M的晶振用在51芯片上,那么51的計數速率就為1M。通常用110592M晶體是為了得到標準的無誤差的波特率,那么為何呢計算一下就知道了。如我們要得到9600的波特率,晶振為110592M和12M,定時器1為模式2,SMOD設為1,分別看看那所要求的TH1為何值。代入公式110592M9600232110592M/12/256TH1TH125012M960023212M/12/256TH1TH124949上面的計算可以看出使用12M晶體的時候計算出來的TH1不為整數,而TH1的值只能取整數,這樣它就會有一定的誤差存在不能產生精確的9600波特率。當然一定的誤差是可以在使用中被接受的,就算使用110592M的晶體振蕩器也會因晶體本身所存在的誤差使波特率產生誤差,但晶體本身的誤差對波特率的影響是十分之小的,可以忽略不計。43程序流程圖431PC機部分程序流程圖開始串口初始化接收字符數據是否就緒接收成功取回發(fā)送保持器是否空發(fā)送字符是否成功NYNYNYNY接收完畢結束N圖35PC機通信程序流程圖432單片機部分等待反饋數據NYY圖36單片機通信程序流程圖開始串口初始化發(fā)送數據是否正確發(fā)送出錯重新發(fā)送發(fā)送完畢結束N5心得體會這學期學習了微機原理與接口技術,接觸匯編語言,開始對其有一定的了解,以前編寫程序用的都是C語言,基本上不涉及硬件方面的東西,而匯編語言則不同,它需要對硬件電路有一定的了解,這樣在學習匯編語言的時候,就需注意硬件方面的知識的掌握。本次課程設計我所做的題目是實現單片機與PC機之間的串行通信,對于這個題目,在微機原理與接口技術這門課程里曾學過關于PC機的串行通信的知識,而對于單片機,在以前也曾經自學過,所以最初看到這個題目的時候,并沒有感到無從下手,接下來需要做的事情就是通過查找資料確定硬件電路,然后再通過硬件電路編寫實現功能的程序。通過查找資料,最終確定下來硬件電路圖,進而根據要求編寫程序。由于對此類題目以前沒有做過,所以本次課程設計,無論是硬件電路方面,還是軟件方面,難免會有些不足之處,比如硬件電路可以嘗試其他的實現方法,而軟件方面,則可以修改程序使其實現更加復雜的功能等。雖然如此,通過此次課程設計還是感覺獲益匪淺,首先是對匯編語言和微機的串行通信知識有了進一步的了解和鞏固,為以后更加系統的學習和應用奠定了一定的基礎;其次是對單片機知識有了很好的認識,以前只是很粗淺的學習了單片機,經過這幾天的學習和應用,有了很大程度的提高;最后一點就是提高了自己分析和解決問題的能力,面對我們未知的問題,我們應該知道如何下手,如何解決??傊?,通過此次課程設計,讓我收獲了很多。參考文獻1周佩玲微機原理與接口技術電子工業(yè)出版社,20052周堅單片機C語言輕松入門北京航空航天大學出版社,20063李朝青單片機原理及接口技術(第三版)北京航空航天大學出版社,20054潘超群單片機控制技術在通信中的應用MCS51系列電子工業(yè)出版社,20085程學先匯編語言程序設計武漢理工大學出版社,2002附錄一PC機通信程序DATASEGMENTRBUFDB10DUP0COUNTDB10DATAENDSCODESEGMENTASSUMECSCODE,DSDATA,STARTPROCFARPUSHDSPUSHAXMOVAX,DATAMOVDS,AXLEADI,RBUF置接收數據塊首地址MOVCL,COUNT置接收數據塊長度MOVAH,00H0號功能MOVAL,0E3H串口初始化波特率9600,無校驗,1位停止位,8位數據位MOVDX,00H指定COM1端口INT14HREPT1MOVAH,02H2號功能接收字符MOVDX,00H指定COM1端口INT14H出口參數AL中為接收到的參數,AH中為線路狀態(tài)MOVBX,AXAX中的內容暫存于BX中MOVAL,AH取線路狀態(tài)至ALTESTAL,80H接收是否成功(D70)JNZREPT1不成功,重接TESTAL,01H數據是否準備就緒JNZREPT1未就緒,重接MOVAL,BL就緒,取回字符MOVDI,AL保存INCDI指向下一個地址單元REPT2MOVAH,03H3號功能檢查串口狀態(tài)MOVDX,00H指定COM1端口INT14HMOVAL,AH取線路狀態(tài)至ALTESTAL,20H發(fā)送保持器是否空(D51)JZREPT2REPT3MOVAL,BL將接收到的字符存至ALMOVAH,0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 濾料增補施工方案
- 東莞買賣合同范例
- 2024-2025學年高中歷史第四單元19世紀以來的世界文化第19課電影與電視課時作業(yè)岳麓版必修3
- 代租車協議合同范例
- 書包店鋪轉讓合同范例
- 供應機油合同范例
- 會議展會運營合同范例
- 農民黃豆收購合同范例
- 市政施工機械施工方案
- 農村建筑協議合同范本
- 《中藥注射劑大全》課件
- 2024年全國職業(yè)院校技能大賽高職組(社區(qū)服務實務賽項)考試題庫(含答案)
- 中醫(yī)治療男科疾病的方法
- 墨子的《非攻》課件
- YY 0790-2024血液灌流設備
- 《基于STM32的公交車智能終端設計與實現》
- DB13-T 6021.3-2024 節(jié)水型企業(yè)評價導則 第3部分:石油化工業(yè)
- 護-學-崗-簽-到-簿
- 2025年日歷(日程安排-可直接打印)
- 易能變頻器edsv300說明書
- 2024年下半年杭州黃湖鎮(zhèn)招考編外工作人員易考易錯模擬試題(共500題)試卷后附參考答案
評論
0/150
提交評論