單片機(jī)課程設(shè)計(jì)-- 單片機(jī)之間的雙向通信演示_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p>  課程 單片機(jī)課程設(shè)計(jì) </p><p>  題目 單片機(jī)之間的雙向通信演示 </p><p>  專

2、業(yè) 姓名 學(xué)號(hào) </p><p><b>  一、任務(wù)</b></p><p>  以AT89C51單片機(jī)為控制核心,利用串行通信技術(shù)實(shí)現(xiàn)兩個(gè)單片機(jī)之間的數(shù)據(jù)傳輸。</p><p><b>  二、設(shè)計(jì)要求</b></p><p>  [1] 單片機(jī)甲機(jī)向單片機(jī)乙機(jī)發(fā)送控制命令

3、符,甲機(jī)同時(shí)接收乙機(jī)發(fā)送的數(shù)字,并顯示在數(shù)碼管上</p><p>  [2] 基本電路包括:?jiǎn)纹瑱C(jī)最小系統(tǒng),串口通信電路,LED顯示電路等。</p><p>  [3] 提交設(shè)計(jì)報(bào)告、電路圖及程序源碼。</p><p><b>  三、參考資料</b></p><p>  [1] 萬(wàn)光毅.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程[M]. 北

4、京:北京航空航天大學(xué)出版社.2005.1.</p><p>  [2] 張毅剛.單片機(jī)原理及應(yīng)用[M]. 北京:高等教育出版社.2003:160-190.</p><p>  [3] 張小波, 徐航.基于MCS—51單片機(jī)的串行通信技術(shù).[M].北京:北京航空航天大學(xué)出版社.2006</p><p>  [4] 胡漢才.單片機(jī)原理與其接口技術(shù)(第二版)[M].北京:

5、清華大學(xué)出版社,2004.</p><p>  [5] 何文才,杜鵬.基于VB.NET的PC機(jī)和MCS-51單片機(jī)之間的串行通信 [J]. 北京電子科技學(xué)院學(xué)報(bào). 2006.4期</p><p>  [6] 李秀忠.基于單片機(jī)的LED顯示屏控制電路設(shè)計(jì).[J].現(xiàn)代電子技術(shù). 2010 .15期</p><p>  完成期限 2012.6.29 至 2012.7

6、.8 </p><p>  指導(dǎo)教師 </p><p>  專業(yè)負(fù)責(zé)人 </p><p>  2012年 6月 29 日</p><p><b>  目 錄</b></p>

7、<p><b>  第1章 緒論1</b></p><p>  1.1 單片機(jī)AT89C51概述1</p><p>  1.2 LED顯示屏控制技術(shù)狀況2</p><p>  1.3 MAX232概述2</p><p>  1.4 本設(shè)計(jì)任務(wù)3</p><p>  第

8、2 章 總體方案論證與設(shè)計(jì)3</p><p>  2.1 LED驅(qū)動(dòng)模塊3</p><p>  2.2 總體硬件組成框圖4</p><p>  第3章 系統(tǒng)硬件設(shè)計(jì)4</p><p>  3.1 單片機(jī)最小系統(tǒng)硬件設(shè)計(jì)4</p><p>  3.2 串行通信電路5</p><

9、;p>  3.3 LED顯示電路6</p><p>  第4章 系統(tǒng)的軟件設(shè)計(jì)7</p><p>  4.1 甲單片機(jī)程序設(shè)計(jì)7</p><p>  4.2 乙單片機(jī)程序設(shè)計(jì)8</p><p>  第5章 系統(tǒng)調(diào)試與測(cè)試結(jié)果分析8</p><p>  5.1 使用的儀器儀表9</p>

10、<p>  5.2 系統(tǒng)調(diào)試9</p><p>  5.3 測(cè)試結(jié)果9</p><p><b>  結(jié) 論9</b></p><p><b>  參考文獻(xiàn)11</b></p><p><b>  附錄1 程序12</b></p>&l

11、t;p>  附錄2 仿真效果圖17</p><p><b>  緒論</b></p><p>  隨著科學(xué)技術(shù)的發(fā)展,單片機(jī)在各個(gè)領(lǐng)域的應(yīng)用越來(lái)越廣泛,計(jì)算機(jī)領(lǐng)域,航天領(lǐng)域,電子技術(shù)領(lǐng)域等,都離不開單片機(jī)的使用。其中,串行通信技術(shù)是單片機(jī)的一個(gè)重要應(yīng)用。 在串行通信中,參與通信的兩臺(tái)或多臺(tái)設(shè)備通常共享一條物理通路。發(fā)送者依次逐位發(fā)送一串?dāng)?shù)據(jù)信號(hào),按一定的約定規(guī)

12、則為接收者所接收。由于串行端口通常只是定義了物理層的接口規(guī)范,所以為確保每次傳送的數(shù)據(jù)報(bào)文能準(zhǔn)確到達(dá)目的地,使每一個(gè)接收者能夠接收到所有發(fā)向它的數(shù)據(jù),必須在通信連接上采取相應(yīng)的措施。 </p><p>  由于借助串行通信端口所連接的設(shè)備在功能、型號(hào)上往往互不相同,其中大多數(shù)設(shè)備出了等待接收數(shù)據(jù)之外還會(huì)有其他的任務(wù),例如,一個(gè)數(shù)據(jù)采集單元需要周期性地收集和存儲(chǔ)數(shù)據(jù);一個(gè)控制器需要負(fù)責(zé)控制計(jì)算機(jī)或向其他設(shè)備發(fā)送報(bào)文

13、;一臺(tái)設(shè)備可能會(huì)在接收方正在進(jìn)行其他任務(wù)時(shí)向它發(fā)送信息。因此,必須有能應(yīng)對(duì)多種不同工作狀態(tài)的一系列規(guī)則來(lái)保證通信的有效性。這里所講的保證串行通信的有效性的方法包括:使用輪詢或者中斷來(lái)檢測(cè)、接收信息;設(shè)置通信幀的起始、停止位;建立連接握手;實(shí)行對(duì)接收數(shù)據(jù)的確認(rèn)、數(shù)據(jù)緩存以及錯(cuò)誤檢查等。 </p><p>  本次課程設(shè)計(jì)就是要利用單片機(jī)來(lái)完成一個(gè)系統(tǒng),實(shí)現(xiàn)單片機(jī)之間的雙向通信演示,通信的結(jié)果使用LED數(shù)碼管進(jìn)行顯示

14、。</p><p>  1.1 單片機(jī)AT89C51概述</p><p>  AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反

15、復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。 </p><p>  AT89C51 提供以下標(biāo)準(zhǔn)功能:4k 字節(jié)Flash 閃速存儲(chǔ)器

16、,128字節(jié)內(nèi)部RAM,32 個(gè)I/O 口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。 </p><p>  

17、1.2 LED顯示屏控制技術(shù)狀況</p><p>  顯示屏的控制系統(tǒng)包括輸入接口電路、信號(hào)控制、轉(zhuǎn)換和數(shù)字化處理電路及輸出接口電路等,涉及的具體技術(shù)很多,其關(guān)鍵技術(shù)包括串行傳輸與并行傳輸技術(shù)、動(dòng)態(tài)掃描與靜態(tài)鎖存技術(shù)、自動(dòng)檢測(cè)及遠(yuǎn)程控制技術(shù)等。</p><p>  1.2.1 串行傳輸與并行傳輸技術(shù)</p><p>  LED顯示屏的數(shù)據(jù)傳輸方式主要有串行和并行兩

18、種。日前普遍采用串行控制技術(shù),顯示屏每個(gè)單元內(nèi)部的不同驅(qū)動(dòng)電路和各級(jí)聯(lián)單元之間,每個(gè)時(shí)鐘僅傳送一位數(shù)據(jù)。采用這種方式的驅(qū)動(dòng)IC種類較多,不同顯示單元之間的聯(lián)線較少,可減少顯示單元的數(shù)據(jù)傳輸驅(qū)動(dòng)元件,從而提高整個(gè)系統(tǒng)的可靠性和性價(jià)比,具體工程實(shí)現(xiàn)也較為容易。</p><p>  1.2.2 動(dòng)態(tài)掃描與靜態(tài)鎖存技術(shù)</p><p>  LED顯示屏控制系統(tǒng)實(shí)現(xiàn)顯示信息的刷新技術(shù)有動(dòng)態(tài)掃描和靜態(tài)

19、鎖存兩種方式。一般室內(nèi)顯示屏多采用動(dòng)態(tài)掃描技術(shù),即一行發(fā)光二極管共用一行驅(qū)動(dòng)寄存器,根據(jù)共用一行驅(qū)動(dòng)寄存器的發(fā)光二極管像素?cái)?shù)目,分為1/4,1/16掃描等。室外顯示屏基本上采用靜態(tài)鎖存技術(shù),即每一個(gè)發(fā)光一極管都對(duì)應(yīng)有一個(gè)驅(qū)動(dòng)寄存器,無(wú)需時(shí)分工作,從而保證了每一個(gè)發(fā)光一極管的亮度占空比為100%。動(dòng)態(tài)掃描法可以大大減少控制器的I/O口,因此應(yīng)用較廣。</p><p>  1.2.3 自動(dòng)檢測(cè)及遠(yuǎn)程控制技術(shù)</

20、p><p>  LED顯示屏的構(gòu)成復(fù)雜,特別是室外顯示屏,供電、環(huán)境亮度、環(huán)境溫度條件等都直接影響顯示屏的正常運(yùn)行。在LED顯示屏的控制系統(tǒng)中,因根據(jù)需要對(duì)溫度、亮度、電源等進(jìn)行自動(dòng)檢測(cè)控制,也可根據(jù)需要,遠(yuǎn)程實(shí)現(xiàn)對(duì)顯示屏的亮度、色度調(diào)節(jié)、圖像水平和垂直位置的調(diào)節(jié)以及工作方式的轉(zhuǎn)換等。</p><p>  1.3 MAX232概述</p><p>  MAX232芯片

21、是美信(MAXIM)公司專為RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電,應(yīng)用于串行通信技術(shù)。其主要特點(diǎn)為;</p><p>  1、符合所有的RS-232C技術(shù)標(biāo)準(zhǔn)?!?lt;/p><p>  2、只需要單一 +5V電源供電。</p><p>  3、片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、V-。</p&

22、gt;<p>  4、功耗低,典型供電電流5mA。</p><p>  5、內(nèi)部集成2個(gè)RS-232C驅(qū)動(dòng)器。</p><p>  6、高集成度,片外最低只需4個(gè)電容即可工作。</p><p><b>  1.4 本設(shè)計(jì)任務(wù)</b></p><p>  串行通信技術(shù)在單片機(jī)中有重要應(yīng)用, 本設(shè)計(jì)以AT89

23、C51位核心,利用串行通信技術(shù)實(shí)現(xiàn)實(shí)現(xiàn)兩個(gè)單片機(jī)之間的數(shù)據(jù)傳輸。并包括單片機(jī)最小系統(tǒng),串口通信電路,LED顯示電路等基本電路。</p><p>  第2 章 總體方案論證與設(shè)計(jì)</p><p>  本系統(tǒng)采用單片機(jī)AT89C51為控制核心,系統(tǒng)主要包括包括單片機(jī)最小系統(tǒng),串口通信電路,LED顯示電路,下面對(duì)各模塊的設(shè)計(jì)逐一進(jìn)行論證比較。</p><p>  2.1

24、 LED驅(qū)動(dòng)模塊</p><p>  方案一:采用靜態(tài)鎖存方式,將每一個(gè)LED發(fā)光管的一端接至單片機(jī)的一個(gè)I/O口,另一端通過(guò)電阻接電源。這種方法可以直接驅(qū)動(dòng)LED,原理簡(jiǎn)單,驅(qū)動(dòng)能力強(qiáng),LED的亮度也可以通過(guò)限流電阻調(diào)節(jié),非常方便,但此種方法太浪費(fèi)單片機(jī)的I/O口,只適合于較小的系統(tǒng)。</p><p>  方案二:采用動(dòng)態(tài)掃描方式,通過(guò)三極管驅(qū)動(dòng)并聯(lián)在一起的LED發(fā)光管的一端(共陰或共

25、2端),LED發(fā)光管的另一腳接通用I/O口,控制其亮滅。該方法能驅(qū)動(dòng)較多的LED,控制方式較靈活,而且節(jié)省單片機(jī)的資源。</p><p>  比較以上兩種方案,系統(tǒng)設(shè)計(jì)中采用方案一。</p><p>  2.2 總體硬件組成框圖</p><p>  圖2-1 總體硬件組成框圖</p><p>  系統(tǒng)框圖如圖2-1所示,系統(tǒng)主要由三大模塊

26、組成即單片機(jī)最小系統(tǒng),串口通信電路,LED顯示電路。</p><p>  第3章 系統(tǒng)硬件設(shè)計(jì)</p><p>  為使單片機(jī)雙機(jī)通信顯示系統(tǒng)具有更加方便和靈活性,我們對(duì)系統(tǒng)的硬件做了精心設(shè)計(jì)。硬件電路包括LED單片機(jī)最小系統(tǒng),串口通信電路,LED顯示電路。</p><p>  3.1 單片機(jī)最小系統(tǒng)硬件設(shè)計(jì)</p><p>  單片機(jī)

27、最小系統(tǒng)很簡(jiǎn)單,如圖3-1所示,就是能使單片機(jī)工作的最少的器件構(gòu)成的系統(tǒng)。最小系統(tǒng)雖然簡(jiǎn)單,但是卻是大多數(shù)控制系統(tǒng)所必不可少的關(guān)鍵部分。</p><p>  對(duì)于MCS-51 單片機(jī),其內(nèi)部已經(jīng)包含了一定數(shù)量的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,在外部只要增加時(shí)鐘電路和復(fù)位電路即可構(gòu)成單片機(jī)最小系統(tǒng)。</p><p>  時(shí)鐘電路 單片機(jī)系統(tǒng)中的各個(gè)部分是在一個(gè)統(tǒng)一的時(shí)鐘脈沖控制下有序地進(jìn)行工作,時(shí)鐘

28、電路是單片機(jī)系統(tǒng)最基本、最重要的電路。</p><p>  MCS-51 單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,引腳XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端,如果引腳XTAL1 和XTAL2 兩端跨接上晶體振蕩器(晶振)或陶瓷振蕩器就構(gòu)成了穩(wěn)定的自激振蕩電路,該振蕩電路的輸出可直接送入內(nèi)部時(shí)序電路。MCS-51 單片機(jī)的時(shí)鐘可由兩種方式產(chǎn)生,即內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。</p><

29、;p>  復(fù)位電路的第一功能是上電復(fù)位。一般微機(jī)電路正常工作需要供電電源為5V±5%,即4.75~5.25V。由于微機(jī)電路是時(shí)序數(shù)字電路,它需要穩(wěn)定的時(shí)鐘信號(hào),因此在電源上電時(shí),只有當(dāng)VCC超過(guò)4.75V低于5.25V以及晶體振蕩器穩(wěn)定工作時(shí),復(fù)位信號(hào)才被撤除,微機(jī)電路開始正常工作。</p><p>  圖3-1單片機(jī)最小系統(tǒng)</p><p><b>  3.2串

30、行通信電路</b></p><p>  該部分電路由芯片MAX232組成。其電路原理圖如圖3-2所示,單片機(jī)的串口通過(guò)MAX232將TTL電平轉(zhuǎn)換成EAI適合的電平,實(shí)現(xiàn)了兩個(gè)單片機(jī)之間的通信。</p><p>  圖3-2串口通信電路</p><p><b>  LED顯示電路</b></p><p>  

31、該顯示電路由LED數(shù)碼管和上拉電阻組成,如圖3-3所示:</p><p>  圖3-3 LED顯示電路</p><p>  如圖3- 3,LED數(shù)碼管接到單片機(jī)AT89C51的P0口,P0口為L(zhǎng)ED的顯</p><p><b>  示給出相應(yīng)的數(shù)據(jù)。</b></p><p>  第4章 系統(tǒng)的軟件設(shè)計(jì)</p>

32、;<p>  軟件是該單片機(jī)雙向通信演示的的重要組成部分,在系統(tǒng)的軟件設(shè)計(jì)中我們也才用了模塊化設(shè)計(jì),將系統(tǒng)的各部分功能編寫成子模塊的形式,這樣增強(qiáng)了系統(tǒng)軟件的可讀性和可移植性。</p><p>  4.1 甲單片機(jī)程序設(shè)計(jì)</p><p>  本設(shè)計(jì)中甲單片機(jī)AT89C51的主要功能就是實(shí)現(xiàn)輸出控制命令符、LED顯示屏上顯示等功能。其程序流程如圖4-1所示。</p>

33、;<p>  圖4-1 甲單片機(jī)程序流程圖</p><p>  4.2 乙單片機(jī)程序設(shè)計(jì)</p><p>  本設(shè)計(jì)中乙單片機(jī)AT89C51的主要功能接收甲發(fā)出的控制命令符,并向甲發(fā)送數(shù)字使甲接收并顯示在數(shù)碼管上。</p><p>  圖4-2 乙單片機(jī)程序流程圖</p><p>  第5章 系統(tǒng)調(diào)試與測(cè)試結(jié)果分析</p

34、><p>  5.1 使用的儀器儀表 </p><p>  數(shù)字萬(wàn)用表        DT9203</p><p>  單片機(jī)仿真器       WAVE6000</p><p>  燒寫器 GF2100</p><p>  雙蹤穩(wěn)壓穩(wěn)流電源     DH1718E-5</p

35、><p><b>  5.2 系統(tǒng)調(diào)試</b></p><p>  根據(jù)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)的調(diào)試共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。由于在系統(tǒng)設(shè)計(jì)中采用模塊設(shè)計(jì)法,所以方便對(duì)各電路模塊功能進(jìn)行逐級(jí)測(cè)試:LED驅(qū)動(dòng)模塊的調(diào)試,數(shù)據(jù)存儲(chǔ)模塊的調(diào)試,PC機(jī)通信模塊的調(diào)試等,最后將各模塊組合后進(jìn)行整體測(cè)試。</p><p><b>

36、;  5.2.1硬件調(diào)試</b></p><p>  對(duì)各個(gè)模塊的功能進(jìn)行調(diào)試,主要調(diào)試各模塊能否實(shí)現(xiàn)指定的功能。</p><p><b>  5.2.2軟件調(diào)試</b></p><p>  軟件調(diào)試采用單片機(jī)仿真器WAVE6000L及微機(jī),將編好的程序進(jìn)行調(diào)試,主要是檢查語(yǔ)法錯(cuò)誤。</p><p>  5.

37、2.3硬件軟件聯(lián)調(diào)</p><p>  將調(diào)試好的硬件和軟件進(jìn)行聯(lián)調(diào),主要調(diào)試系統(tǒng)的實(shí)現(xiàn)功能。</p><p><b>  5.3 測(cè)試結(jié)果</b></p><p>  此次系統(tǒng)設(shè)計(jì)結(jié)果較好,LED數(shù)碼管能很好的顯示數(shù)字。</p><p><b>  結(jié) 論</b></p><

38、;p>  本次設(shè)計(jì)采用兩片AT89C51單片機(jī)實(shí)現(xiàn)雙向通信顯示,設(shè)計(jì)過(guò)程中,從雙機(jī)通信背景的了解,到89C51單片機(jī)具體功能的了解,到串行通信的原理的熟悉,到掌握具體串行通信在雙機(jī)之間的實(shí)現(xiàn);從硬件電路設(shè)計(jì)到程序編寫;從硬件調(diào)試到軟件模擬實(shí)現(xiàn)等。發(fā)送方的數(shù)據(jù)由串行口TXD斷輸出,經(jīng)過(guò)傳輸線將信號(hào)傳送到接收端。接收方接收電平信號(hào),對(duì)于接口電路,短距離傳送,減少抗干擾作用,如果短離遠(yuǎn)雙機(jī)串口中可以連接電平轉(zhuǎn)換器常用芯片RS232,在此

39、不再敘述。設(shè)計(jì)中,收獲不少東西,也遇到了不少的問(wèn)題。</p><p>  首先,在完成單片機(jī)課程學(xué)習(xí)任務(wù)后,對(duì)內(nèi)容的掌握不夠,缺乏靈活運(yùn)用的能力,對(duì)于知識(shí)的擴(kuò)展也存在一定的問(wèn)題,因此,面對(duì)設(shè)計(jì)課題,無(wú)法系統(tǒng)地進(jìn)行設(shè)計(jì)思路的擬定。</p><p>  其次,理解不能更好的聯(lián)系實(shí)踐,在鞏固和學(xué)習(xí)硬件知識(shí)的同時(shí),用軟件控制協(xié)調(diào)硬件實(shí)現(xiàn)現(xiàn)實(shí)功能,通過(guò)硬件完成軟件的功能等方面的融會(huì)貫通,取得了一定的

40、效果。</p><p>  再次,硬件設(shè)計(jì)過(guò)程中,串行通信方式的選擇,波特率的計(jì)算,在查詢方式與中斷方式進(jìn)行串行通信。對(duì)于芯片的選擇,軟件編寫時(shí),對(duì)于某些指令的功能,功能模塊的連接,芯片地址選擇等都遇到了很大的障礙,在老師與同學(xué)幫助和自己查閱資料得到了解決,與此同時(shí),了解了不少的問(wèn)題。并掌握了KEIL的使用和程序調(diào)試,以及PROTUES單片機(jī)模擬仿真軟件的使用,大大提高了學(xué)習(xí)效率。</p><

41、;p>  通過(guò)本次課程設(shè)計(jì),不僅使理論知識(shí)得到了實(shí)踐,有效鞏固了知識(shí)。同時(shí)對(duì)于單片機(jī)發(fā)展歷史、強(qiáng)大功能、應(yīng)用領(lǐng)域以及系列知識(shí)得到了大概的系統(tǒng)認(rèn)識(shí),同時(shí)也初步了解了一個(gè)完整的系統(tǒng)開發(fā)的過(guò)程,增強(qiáng)了對(duì)于創(chuàng)造思維的培養(yǎng)和開發(fā)能力的鍛煉</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 萬(wàn)光毅.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程[M]. 北京:北京航空航天大學(xué)

42、出版社.2005.1.</p><p>  [2] 張毅剛.單片機(jī)原理及應(yīng)用[M]. 北京:高等教育出版社.2003:160-190.</p><p>  [3] 張小波, 徐航.基于MCS—51單片機(jī)的串行通信技術(shù).[M].北京:北京航空航天大學(xué)出版社.2006</p><p>  [4] 胡漢才.單片機(jī)原理與其接口技術(shù)(第二版)[M].北京:清華大學(xué)出版社,20

43、04.</p><p>  [5] 何文才,杜鵬.基于VB.NET的PC機(jī)和MCS-51單片機(jī)之間的串行通信 [J]. 北京電子科技學(xué)院學(xué)報(bào). 2006.4期.</p><p>  [6] 李秀忠.基于單片機(jī)的LED顯示屏控制電路設(shè)計(jì).[J].現(xiàn)代電子技術(shù). 2010 .15期.</p><p>  [7] 馬忠梅.單片機(jī)的C 語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京:北京航

44、空航天大學(xué)出版社.2006.</p><p>  [8] 周潤(rùn)景.基于Proteus的電路與單片機(jī)仿真系統(tǒng)設(shè)計(jì)與仿真[M]. 北京:北京航空航天大學(xué)出版社. 2005.</p><p>  [9] 金炯泰,金奎煥. 如何使用KEIL8051C編譯器[M ]. 北京:北京航空航天大學(xué)出版社.2002.</p><p><b>  附錄1 程序</b&g

45、t;</p><p><b>  甲機(jī)程序:</b></p><p>  //----------甲機(jī)程序代碼------------</p><p>  #include<reg52.h></p><p>  #define uint unsigned int</p><p>  

46、#define uchar unsigned char</p><p>  sbit led1=P1^0;</p><p>  sbit led2=P1^3;</p><p>  sbit key=P1^7;</p><p>  //------共陽(yáng)極數(shù)碼管段碼---------</p><p>  uchar cod

47、e table[]={0xC0,0xF9,0xA4,0xB0,0x99,</p><p>  0x92,0x82,0xF8,0x80,0x90,0xff};</p><p>  uchar num;</p><p>  //------延時(shí)------</p><p>  void delay(uint z)</p><p

48、><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p>&

49、lt;p>  //------串行口發(fā)送函數(shù)------</p><p>  void transfer(uchar c)</p><p><b>  {</b></p><p><b>  SBUF=c;</b></p><p>  while(TI==0);</p><

50、p><b>  TI=0;</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  num=0;</b></p><p>

51、<b>  P0=0x00;</b></p><p>  SCON=0x50;//串行口工作在方式1,既可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)</p><p>  TMOD=0x20;//定時(shí)器T1工作在方式2</p><p>  PCON=0x00;</p><p>  TH1=(256-253)/32;<

52、/p><p>  TL1=(256-253)%32;</p><p><b>  RI=0;</b></p><p><b>  TI=0;</b></p><p><b>  TR1=1;</b></p><p>  IE=0x90;//串行口中斷

53、打開</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(key==0)</p><p><b>  {</b></p><p>  while(key==0);</p>

54、<p>  num=(num+1)%4;</p><p><b>  }</b></p><p>  switch(num)</p><p><b>  {</b></p><p>  case 0: transfer('D');</p><p> 

55、 led1=1; led2=1;</p><p><b>  break;</b></p><p>  case 1: transfer('A');</p><p>  led1=0; led2=1;</p><p><b>  break;</b></p><p

56、>  case 2: transfer('B');</p><p>  led1=1; led2=0;</p><p><b>  break;</b></p><p>  case 3: transfer('C');</p><p>  led1=0; led2=0;</p&

57、gt;<p><b>  break;</b></p><p>  //delay(100);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

58、<p>  void recieve() interrupt 4</p><p><b>  {</b></p><p><b>  if(RI==1)</b></p><p><b>  {</b></p><p><b>  RI=0;</b&g

59、t;</p><p>  P0=~table[SBUF];</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  乙機(jī)程序:</b></p><p>  //----------乙機(jī)程序代碼-----

60、-------</p><p>  #include<reg52.h></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  sbit led1=P1^0;</p><p>  sbit le

61、d2=P1^3;</p><p>  sbit key=P1^7;</p><p>  uchar num=10;</p><p>  void delay(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;</b><

62、/p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p

63、>  SCON=0x50;</p><p>  TMOD=0x20;</p><p>  PCON=0x00;</p><p>  TH1=(256-253)/32;</p><p>  TL1=(256-253)%32;</p><p><b>  RI=0;</b></p>

64、<p><b>  TI=0;</b></p><p><b>  TR1=1;</b></p><p><b>  IE=0x90;</b></p><p>  led1=led2=1;</p><p><b>  while(1)</b>&

65、lt;/p><p><b>  {</b></p><p>  if(key==0)</p><p><b>  {</b></p><p>  while(key==0);</p><p>  num=(num+1)%11;</p><p><b&

66、gt;  SBUF=num;</b></p><p>  while(TI==0);</p><p><b>  TI=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b&

67、gt;  }</b></p><p>  void recieve() interrupt 4</p><p><b>  {</b></p><p><b>  if(RI==1)</b></p><p><b>  {</b></p><p&

68、gt;<b>  RI=0;</b></p><p>  switch(SBUF)</p><p><b>  {</b></p><p>  case 'A': led1=0; led2=1;</p><p><b>  break;</b></p>

69、;<p>  case 'B': led1=1; led2=0;</p><p><b>  break;</b></p><p>  case 'C': led1=0; led2=0;</p><p><b>  break;</b></p><p>

70、  case 'D': led1=1; led2=1;</p><p>  //delay(100);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p>&l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論