歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

武漢理工大學(xué)《單片機應(yīng)用實習(xí)》報告.doc

  • 資源ID:9021894       資源大?。?span id="kbxibhz" class="font-tahoma">1.03MB        全文頁數(shù):44頁
  • 資源格式: DOC        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

武漢理工大學(xué)《單片機應(yīng)用實習(xí)》報告.doc

目錄摘 要Abstract1設(shè)計任務(wù)及要求12 基本原理32.1基本原理及原理框圖32.2 STC89C52結(jié)構(gòu)功能介紹33 硬件電路原理與設(shè)計53.1復(fù)位電路53.1.1上電復(fù)位53.1.2按鍵復(fù)位53.2振蕩電路63.3單片機最小系統(tǒng)單片機73.4數(shù)碼管顯示電路73.5 矩陣鍵盤電路93.6 串口通信電路103.7 總設(shè)計電路114 軟件設(shè)計124.1 軟件介紹124.1.1 設(shè)計軟件Protel124.1.2 程序編寫軟件Keil124.1.3 仿真軟件Proteus134.2 數(shù)碼管顯示設(shè)計134.3串行通信接收程序145 仿真結(jié)果與分析155.1 矩陣鍵盤功能仿真155.1.1 數(shù)據(jù)輸入155.1.2 數(shù)據(jù)顯示156 實物展示177 心得體會198.參考文獻20附錄:元件清單21附錄:總程序設(shè)計22附錄:實習(xí)日記32摘 要單片微型計算機簡稱單片機,又稱為微型控制器,是微型計算機的一個重要分支。隨著電子技術(shù)的發(fā)展,大規(guī)模及超大規(guī)模集成電路和制造工藝的進一步提高,單片機以其高可靠性、高性價比、低電壓、低功耗等一系列優(yōu)點,廣泛應(yīng)用于控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器表等領(lǐng)域。本次課程設(shè)計包括單片機最小系統(tǒng)(包括復(fù)位和時鐘電路)及供電系統(tǒng)、4*4矩陣鍵盤、獨立6個8段LED數(shù)碼管顯示電路。利用Protel電路設(shè)計軟件進行原理圖設(shè)計,利用keil軟件編程以及proteus軟件仿真,借此鞏固單片機應(yīng)用、模擬電路、數(shù)字電路課程及學(xué)會各種工程軟件的使用。關(guān)鍵字:單片機、數(shù)碼管顯示、矩陣鍵盤掃描AbstractSingle chip microcomputer short chip, also known as the micro controller, is a microcomputer is an important branch of. With the development of electronic technology, large-scale and ultra large scale integrated circuit and manufacturing process to further improve, chip for its high reliability, high cost, low voltage, low power consumption and a series of advantages, widely used in control system, data acquisition system, intelligent instrument and meter etc.The curriculum design, including the smallest single-chip system ( including a reset and clock circuit and power supply system ), 4*4 matrix keyboard, the independent 6 8 LED digital tube display circuit . Using Protel circuit design software schematic design, using keil software and Proteus Software simulation, to consolidate the SCM application, analog circuit, digital circuit course and learn all kinds of engineering software use.Keyword: microcontroller, digital display, matrix keyboard scanning1設(shè)計任務(wù)及要求1)利用上述材料完成包含如下系統(tǒng)功能組件的單片機最小系統(tǒng)的設(shè)計、焊接、調(diào)試(1)鍵盤一個4X4的矩陣鍵盤,其中,10個按鍵是09數(shù)字鍵;另外6個是功能鍵,用于功能選擇和控制,如“數(shù)據(jù)輸入”、“數(shù)據(jù)顯示”、“串行通信”功能選擇鍵,以及“回車”、“清除”、控制鍵。(2)顯示電路由6個7段LED數(shù)碼管組成的顯示電路。(3)串口串行通信利用51的串口實現(xiàn)串行通信接口電路。2)完成ISP下載電路的設(shè)計、焊接3)完成系統(tǒng)軟件的設(shè)計,包括程序結(jié)構(gòu)設(shè)計、流程圖繪制、程序設(shè)計,實現(xiàn)如下功能(1)功能選擇通過功能選擇鍵,使得單片機處于不同的工作狀態(tài)并通過LED顯示相應(yīng)的內(nèi)容;可選擇的功能包括:數(shù)據(jù)輸入;數(shù)據(jù)顯示;串口通信(2)數(shù)據(jù)輸入通過功能選擇鍵選擇“數(shù)據(jù)輸入”后,可分次輸入10個4位十進制數(shù)據(jù),并將輸入的數(shù)據(jù)保存在內(nèi)部RAM中。數(shù)據(jù)輸入要求:第一步輸入序號09,表明輸入的是第幾個4位十進制數(shù)據(jù);第二步按下回車鍵,完成序號輸入;第三步輸入最多4位的十進制數(shù)據(jù);第四步按下回車鍵,完成數(shù)據(jù)輸入;重復(fù)第一步,開始新數(shù)據(jù)的輸入;輸入數(shù)據(jù)的顯示格式是:最左邊是序號,然后是空格,之后是從右到左的最多4位十進制數(shù);若在輸入過程中(第一步或第三步)出現(xiàn)錯誤,按“清除”鍵,重新從第一步開始輸入數(shù)據(jù)。或者,自己設(shè)計10個十進制數(shù)的輸入及顯示方式。(3)數(shù)據(jù)顯示通過功能選擇鍵選擇“數(shù)據(jù)顯示”后,可顯示之前輸入的10個4位十進制數(shù)據(jù)中的任一個,要求:第一步輸入序號09,表明顯示的是第幾個4位十進制數(shù)據(jù);第二步顯示相應(yīng)的數(shù)據(jù);重復(fù)第一步、第二步,顯示其他的數(shù)據(jù);數(shù)據(jù)的顯示格式是:最左邊是序號,然后是空格,之后是要顯示的數(shù)據(jù),從右到左最多4位十進制數(shù)?;蛘?,自己設(shè)計數(shù)據(jù)的顯示方式。(4)數(shù)據(jù)通信將兩個單片機最小系統(tǒng)通過串口連接起來,其中一個作為主系統(tǒng),另一個作為輔系統(tǒng)。當(dāng)通過功能選擇鍵選擇“串行通信”后,當(dāng)在主系統(tǒng)上按下數(shù)字鍵后主系統(tǒng)的LED按從左向右移東的方式顯示按鍵輸入的數(shù)字,同時輔系統(tǒng)的LED上顯示與主系統(tǒng)同樣的內(nèi)容。4)利用仿真軟件完成系統(tǒng)仿真工作5)在單片機最小系統(tǒng)硬件上實現(xiàn)任務(wù)3中規(guī)定的功能2 基本原理2.1基本原理及原理框圖單片機最小系統(tǒng),是指用最小的元件組成的單片機可以工作的系統(tǒng)。對51系列單片機來說,最小系統(tǒng)一般應(yīng)該包括:單片機、晶振電路、復(fù)位電路。單片機接口電路主要用來連接計算機和其他外部設(shè)備。本次設(shè)計主要完成的擴展電路包括鍵盤電路、數(shù)碼管顯示、串行通信三大模塊。其原理框圖如下圖2.1所示:數(shù)碼管顯示顯示顯示STC89C52震蕩電路路復(fù)位電路路數(shù)據(jù)通信矩陣鍵盤 圖2.1總原理框圖2.2 STC89C52結(jié)構(gòu)功能介紹STC89C52片內(nèi)集成256字節(jié)程序運行空間、8K字節(jié)Flash存儲空間,支持最大64K外部存儲擴展。根據(jù)不同的運行速度和功耗的要求,時鐘頻率可以設(shè)置在0-33M之間。片內(nèi)資源有4組I/O控制端口、3個定時器、8個中斷、軟件設(shè)置低能耗模式、看門狗和斷電保護??梢栽?V到5.5V寬電壓范圍內(nèi)正常工作。不斷發(fā)展的半導(dǎo)體工藝也讓該單片機的功耗不斷降低。同時,該單片機支持計算機并口下載,簡單的數(shù)字芯片就可以制成下載線,僅僅幾塊錢的價格讓該型號單片機暢銷10年不衰。根據(jù)不同場合的要求,這款單片機提供了多種封裝,本次設(shè)計根據(jù)最小系統(tǒng)有時需要更換單片機的具體情況,使用雙列直插DIP-40的封裝。STC89C52引腳圖如圖2.2: 圖2.2 STC89C52引腳圖STC89C52芯片共40引腳,各引腳功能如下:VCC(40引腳):電源電壓VSS(20引腳):接地RST復(fù)位端P0端口(P0.0P0.7,3932引腳):P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅(qū)動8個TTL負載,對端口P0寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲器時,P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線。P0端口需要外加上拉電阻。P1端口(P1.0P1.7,18引腳):P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。P2端口(P2.0P2.7,2128引腳):P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。在訪問外部程序存儲器和16位地址的外部數(shù)據(jù)存儲器(如執(zhí)行“MOVX DPTR”指令)時,P2送出高8位地址。P3端口(P3.0P3.7,1017引腳):P3是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3做輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸入一個電流。P3口除作為一般I/O口外,還有其他一些復(fù)用功能。3 硬件電路原理與設(shè)計硬件電路主要由復(fù)位電路、振蕩電路、數(shù)碼管顯示電路、矩陣鍵盤電路和串口電路等組成。3.1復(fù)位電路單片機的置位和復(fù)位,都是為了把電路初始化到一個確定的狀態(tài),一般來說,單片機復(fù)位電路作用是把一個例如狀態(tài)機初始化到空狀態(tài),而在單片機內(nèi)部,復(fù)位的時候單片機是把一些寄存器以及存儲設(shè)備裝入廠商預(yù)設(shè)的一個值。單片機復(fù)位電路原理是在單片機的復(fù)位引腳RST上外接電阻和電容,實現(xiàn)上電復(fù)位。當(dāng)復(fù)位電平持續(xù)兩個機器周期以上時復(fù)位有效。復(fù)位電平的持續(xù)時間必須大于單片機的兩個機器周期。具體數(shù)值可以由RC電路計算出時間常數(shù)。復(fù)位電路由按鍵復(fù)位和上電復(fù)位兩部分組成。3.1.1上電復(fù)位STC89系列單片及為高電平復(fù)位,通常在復(fù)位引腳RST上連接一個電容到VCC,再連接一個電阻到GND,由此形成一個RC充放電回路保證單片機在上電時RST腳上有足夠時間的高電平進行復(fù)位,隨后回歸到低電平進入正常工作狀態(tài),這個電阻和電容的典型值為10K和10uF。3.1.2按鍵復(fù)位按鍵復(fù)位就是在復(fù)位電容上并聯(lián)一個開關(guān),當(dāng)開關(guān)按下時電容被放電、RST也被拉到高電平,而且由于電容的充電,會保持一段時間的高電平來使單片機復(fù)位。電路圖如圖3.1。 圖3.1 復(fù)位電路3.2振蕩電路單片機系統(tǒng)里都有晶振在單片機系統(tǒng)里晶振作用非常大全稱叫晶體振蕩器他結(jié)合單片機內(nèi)部電路產(chǎn)生單片機所需的時鐘頻率單片機晶振提供的時鐘頻率越高那么單片機運行速度就越快單片接的一切指令的執(zhí)行都是建立在單片機晶振提供的時鐘頻率。 在通常工作條件下普通的晶振頻率絕對精度可達百萬分之五十。高級的精度更高。有些晶振還可以由外加電壓在一定范圍內(nèi)調(diào)整頻率稱為壓控振蕩器VCO。晶振用一種能把電能和機械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作以提供穩(wěn)定精確的單頻振蕩。 單片機晶振的作用是為系統(tǒng)提供基本的時鐘信號。通常一個系統(tǒng)共用一個晶振便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振而通過電子調(diào)整頻率的方法保持同步。 晶振通常與鎖相環(huán)電路配合使用以提供系統(tǒng)所需的時鐘頻率。如果不同子系統(tǒng)需要不同頻率的時鐘信號可以用與同一個晶振相連的不同鎖相環(huán)來提供。 STC89C51使用11.0592MHz的晶體振蕩器作為振蕩源由于單片機內(nèi)部帶有振蕩電路所以外部只要連接一個晶振和兩個電容即可電容容量一般在15pF至50pF之間。其電路原理圖如3.2所示。圖3.2 振蕩電路3.3單片機最小系統(tǒng)單片機最小系統(tǒng)包括晶振時鐘電路和復(fù)位電路。原理圖如圖 3.3 所示:圖3.3 單片機最小系統(tǒng)圖3-3 單片機最小系統(tǒng) 在單片機引腳 XTAL1 和 XTAL2 外接晶體整蕩器或陶瓷振蕩器,就構(gòu)成了內(nèi)部震蕩方式,由于單片機內(nèi)部有一個高增益反向放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器,并產(chǎn)生振蕩時鐘脈沖,晶振通常選擇 6MHz、12MHz 或 24MHz,這里取晶振為12MHz。與晶振連接的電容起穩(wěn)定振蕩頻率、快速起振的作用。電容值一般為 530pf。 復(fù)位操作完成單片機片內(nèi)電路初始化,復(fù)位結(jié)束后,單片機從一種確定狀態(tài)開始運行。當(dāng)單片機復(fù)位引腳 RST 出現(xiàn) 5ms 以上高電平時,單片機就完成復(fù)位操作。復(fù)位操作通常有兩種形式:上電復(fù)位和開關(guān)復(fù)位。常用上電開關(guān)復(fù)位電路如上圖所示,上電后,由于電容 C1 充電,時 RST 持續(xù)一段時間高電平。當(dāng)單片機已在運行中時,按下復(fù)位鍵也能使 RST 持續(xù)一段時間高電平,從而實現(xiàn)開關(guān)復(fù)位操作。3.4數(shù)碼管顯示電路LED數(shù)碼管顯示是利用半導(dǎo)體發(fā)光制成條形的發(fā)光二極管,封裝在一起組成數(shù)字或其他符號形狀。數(shù)碼管根據(jù)公共端不同,分為共陰極和共陽極兩種形式。圖3.4.1為共陰極數(shù)碼管內(nèi)部電路,圖3.4.2為共陽極數(shù)碼管內(nèi)部電路。圖3.4.1為共陰極數(shù)碼管內(nèi)部電路 圖3.4.2為共陽極數(shù)碼管內(nèi)部電路。本次需要采用6個數(shù)碼管,若單獨采用數(shù)碼管連線時比較麻煩,故設(shè)計采用 6 位一體的共陽極數(shù)碼管,若使 6 個數(shù)碼管顯示正常時間,必須采用數(shù)碼管的動態(tài)掃描方式,即每一時刻只有一個數(shù)碼管點亮,采用軟件延時和人眼的視覺暫留效果, 使人眼看到的數(shù)碼管是同時點亮的。因此需要用6個端口控制數(shù)碼管的位選,即決定哪個數(shù)碼管點亮。而六個數(shù)碼管的位選端則分別接到單片機的P1.0P1.5口,此位選端用來控制哪個數(shù)碼管亮。每個數(shù)碼管的8個數(shù)據(jù)口控制數(shù)碼管的段選,即決定數(shù)碼管顯示什么字符??紤]到數(shù)碼管采用動態(tài)掃描方式,即循環(huán)掃描數(shù)碼管的 6 位,并將顯示字符送入段選位,我們采用P0口控制數(shù)碼管的8個段選位,并采用 74HC04 實現(xiàn)數(shù)碼管驅(qū)動及數(shù)據(jù)鎖存功能。Protues上數(shù)碼管顯示電路設(shè)計如下圖3.4.3所示:圖3.4.3 數(shù)碼管顯示電路設(shè)計3.5 矩陣鍵盤電路在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P2口)就可以構(gòu)成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。下面介紹一種按鍵被按下的識別方法行掃描法。首先將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列均為高電平,則鍵盤中無鍵按下。然后判斷閉合鍵所在的位置,在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。該系統(tǒng)采用4*4矩陣鍵盤,而且用到了全部按鍵,每個按鍵都實現(xiàn)了獨立的功能, Protues上矩陣鍵盤顯示電路設(shè)計如下圖3.5所示:圖3.5 矩陣鍵盤顯示電路設(shè)計3.6 串口通信電路串口是計算機上一種非常通用設(shè)備通信的協(xié)議不要與通用串行總線Universal Serial Bus或者USB混淆。大多數(shù)計算機包含兩個基于RS232的串口。串口同時也是儀器儀表設(shè)備通用的通信協(xié)議很多GPIB兼容的設(shè)備也帶有RS-232口。同時串口通信協(xié)議也可以用于獲取遠程采集設(shè)備的數(shù)據(jù)。 串口通信的概念非常簡單串口按位bit發(fā)送和接收字節(jié)。盡管比按字節(jié)byte的并行通信慢但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠距離通信。比如IEEE488定義并行通行狀態(tài)時規(guī)定設(shè)備線總常不得超過20米并且任意兩個設(shè)備間的長度不得超過2米而對于串口而言長度可達1200米。 典型地串口用于ASCII碼字符的傳輸。通信使用3根線完成1地線2發(fā)送3接收。由于串口通信是異步的端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗。 MAX232是電平轉(zhuǎn)換芯片。1970年美國電氣學(xué)會規(guī)定“RS232”串口通信協(xié)議。規(guī)定邏輯“1”-5 -15V邏輯“0”5 15V 。噪聲容限為2V。要實現(xiàn)利用串口與單片機進行通信就要進行電平轉(zhuǎn)換把標(biāo)準(zhǔn)轉(zhuǎn)化成單片機可以識別的。MAX220MAX249都是電平轉(zhuǎn)換芯片在單片機最小系統(tǒng)中使用MAX232。Protues上串口通信電路設(shè)計如下圖3.6所示:圖3.6 串口通信電路設(shè)計3.7 總設(shè)計電路圖3.7 總設(shè)計電路4 軟件設(shè)計4.1 軟件介紹4.1.1 設(shè)計軟件ProtelPROTEL是Altium公司在80年代末推出的EDA軟件,在電子行業(yè)的CAD軟件中,它當(dāng)之無愧地排在眾多EDA軟件的前面,是電子設(shè)計者的首選軟件,它較早就在國內(nèi)開始使用,在國內(nèi)的普及率也最高,有些高校的電子專業(yè)還專門開設(shè)了課程來學(xué)習(xí)它,幾乎所有的電子公司都要用到它,許多大公司在招聘電子設(shè)計人才時在其條件欄上常會寫著要求會使用PROTEL。Protel 99采用全新的管理方式,即數(shù)據(jù)庫的管理方式。Protel 99 是在桌面環(huán)境下第一個以獨特的設(shè)計管理和團隊合作技術(shù)為核心的全方位的印制板設(shè)計系統(tǒng)。所有Protel99設(shè)計文件都被存儲在唯一的綜合設(shè)計數(shù)據(jù)庫中,并顯示在唯一的綜合設(shè)計編輯窗口。Protel 99軟件沿襲了Protel以前版本方便易學(xué)的特點,內(nèi)部界面與Protel 98大體相同,新增加了一些功能模塊。Protel公司引進了德國INCASES公司的先進技術(shù),在Protel99中集成了信號完整性工具,精確的模型和板分析,幫助你在設(shè)計周期里利用信號完整性分析可獲得一次性成功和消除盲目性。本次設(shè)計采用的是Altium Dsigner進行電路原理圖的繪制。4.1.2 程序編寫軟件KeilKeil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。本次設(shè)計編程主要使用Keil軟件進行編程。4.1.3 仿真軟件ProteusProteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。使用Proteus軟件進行單片機系統(tǒng)仿真設(shè)計,是虛擬仿真技術(shù)和計算機多媒體技術(shù)相結(jié)合的綜合運用,有利于培養(yǎng)學(xué)生的電路設(shè)計能力及仿真軟件的操作能力.實踐證明,在使用 Proteus 進行系統(tǒng)仿真開發(fā)成功之后再進行實際制作,能極大提高單片機系統(tǒng)設(shè)計效率。本次采用的是Proteus進行仿真。4.2 數(shù)碼管顯示設(shè)計該程序分為鍵盤掃描和數(shù)碼管顯示兩部分,其程序流程圖如4.1所示:開始鍵盤掃描 NY是否有鍵按是否是切換數(shù)字顯示返回模式選擇Y 否 是 是 否圖4.1數(shù)據(jù)輸入流程圖4.3串行通信接收程序由于要實現(xiàn)兩個單片機之間的通信,在接收單片機上要寫與發(fā)送程序相對應(yīng)的接收程序,兩者應(yīng)設(shè)定相同的波特率。對應(yīng)的接收程序流程圖如圖4.2所示。T1初始化,啟動T1工作設(shè)定串行通信方式并設(shè)定允許接收RI=1接收數(shù)據(jù)清RI全部數(shù)據(jù)完全接收完結(jié)束圖4.2 接收程序流程圖5 仿真結(jié)果與分析5.1 矩陣鍵盤功能仿真5.1.1 數(shù)據(jù)輸入根據(jù)實驗任務(wù)可知,需要數(shù)據(jù)輸入10個四位十進制數(shù)。圖5.1(a,b,c,d,e,f)為實驗中輸入序號為6的4321四位十進制數(shù)的過程: 圖5.1(a) 序號輸入 圖5.1(b) 序號輸入后按確定鍵圖5.1(c) 輸入第一個數(shù)據(jù) 圖5.1(d) 輸入第二個數(shù)據(jù)圖5.1(e)輸入第三個數(shù)據(jù) 圖5.1(f) 輸入第四個數(shù)據(jù)5.1.2 數(shù)據(jù)顯示圖5.2 (a,b)為序號為6的數(shù)據(jù)顯示過程: 圖5.2(a)選擇數(shù)據(jù)顯示功能鍵 圖5.2(b)按下6鍵和確定鍵后的顯示仿真結(jié)果分析:從數(shù)據(jù)輸入與數(shù)據(jù)顯示的步驟可知,實驗的設(shè)計滿足任務(wù)要求的數(shù)據(jù)輸入和數(shù)據(jù)顯示的功能。其余的清除功能,確定功能,功能鍵選擇功能在Protues軟件上都能正確體現(xiàn)。故得出相關(guān)軟件與程序的設(shè)計是正確的。6 實物展示 單片機上電后,數(shù)碼管的初始顯示狀態(tài)如圖6.1:圖6.1 實物數(shù)碼管初始狀態(tài)顯示 鍵盤按下數(shù)據(jù)輸入功能鍵,并輸入序號與鍵入數(shù)據(jù)后數(shù)碼管的顯示狀態(tài)如圖6.2: 圖6.2 實物數(shù)碼管數(shù)據(jù)鍵入狀態(tài)顯示鍵盤按下數(shù)據(jù)顯示功能鍵后,序號為6的數(shù)據(jù)顯示如下圖6.3:圖6.3實物數(shù)碼管數(shù)據(jù)顯示功能展示整個實物完整展示如下圖6.4:圖6.4 完整實物展示7 心得體會一轉(zhuǎn)眼間,為期兩周的單片機實習(xí)已落下帷幕,在本次實習(xí)學(xué)到了很多,也有了很多的感觸。本次實習(xí)是對所學(xué)的單片機知識的一次綜合運用,本次設(shè)計要求完成鍵盤掃描顯示,數(shù)據(jù)輸入與數(shù)據(jù)顯示,串口通信等內(nèi)容。首先,要求能夠熟練的運用Protues進行單片機的仿真,由于以前沒用過這個軟件,仿真一開始就碰了很多釘子,這對于沒怎么用過這個軟件的我來說是一大挑戰(zhàn)。不過,通過一兩天的摸索,總算是把它的一些基本操作弄清楚了,最終也成功繪制出具有基本擴展電路的單片機系統(tǒng)。接下來是在Keil上進行程序的編寫,由于本次所要求實現(xiàn)的功能比較多,涉及到到的內(nèi)容也多,所以對于程序的編寫有很大的挑戰(zhàn),經(jīng)過兩天的資料查詢和不段的調(diào)試,程序基本編寫完成。但是由于對單片機知識沒有很好的掌握,所以程序的編寫變成了整個實習(xí)的難處。所以串口通信部分的程序沒能順利編寫出來,這成了實習(xí)唯一的遺憾。接下來是在Proteus中仿真,這個步驟比想象中的順利,下進去直接就可以運行了。通過仿真的結(jié)果和自己的操作,發(fā)現(xiàn)對于數(shù)據(jù)的輸入和數(shù)據(jù)的顯示模塊設(shè)計成功。在本次實習(xí)中學(xué)到了很多,首先熟悉了Protues軟件的使用,其次對于程序的編寫讓我對單片機的認識又加深了一步,不切對與C語言又有了更深一部的學(xué)習(xí)。通過本次實習(xí)讓我對以前所學(xué)知識有了一個更深刻的認識,學(xué)會了將所學(xué)的知識運用到實際中去,同時也讓我意識到了理論與實際的差距,在實習(xí)中遇到了各種各樣的問題,往往看是簡單的一件事到實際去做的時候才發(fā)現(xiàn)有好多的東西沒考慮過。由于實驗中沒能實現(xiàn)串行通信的功能,讓我認識到自己知識的薄弱,讓我認識到自己還有很多不足,在以后的學(xué)習(xí)中,我定會戒躁戒躁,努力學(xué)習(xí),彌補不足,讓自己的編程能力有所提高。8.參考文獻1 尹勇 撒繼銘等,單片計算機原理及應(yīng)用(第1版), 科學(xué)出版社, 2013年2 謝自美.電子線路設(shè)計實驗測試(第三版).武漢:華中科技大學(xué)出版社3 李群芳. 單片微型計算機與接口技術(shù)(第3版).電子工業(yè)出版社,20084 劉教瑜. 單片機原理及應(yīng)用.武漢理工大學(xué)出版社,20115 張東亮. 單片機原理與應(yīng)用.人民郵電出版社,2009附錄:元件清單序號名稱數(shù)量1銅板 1塊2單片機STC89C521只3晶振12MHz1只430PF瓷片電容2只510k/0.25W電阻1只610uF/16V電解電容1只72k/0.25W電阻1只810k/9腳排阻1只95V/500mA直流電源1個10排針、按鈕、LED、導(dǎo)線等若干11電烙鐵1個12MAX232 1片130.1uF瓷片電容 4只14DB9插座 1只15RS-232C串口電纜(9針)1根16四角開關(guān)16個17共陽極數(shù)碼管6個附錄:總程序設(shè)計#include"reg52.h"void delay(unsigned char s);void keyscan(void);void keydown(void);void input(void);void screen(int smode);int test = 0;unsigned char int_on = 0; /用于剛進入通信模式時的初始化 只有在通信模式下需要打開中斷1為中斷已開化unsigned char temp; /讀按鍵用的測試變量 unsigned char key;/按鍵序號 unsigned char MODE = 3; /模式選擇,0為輸入模式,1為顯示模式,2為串口通信模式 unsigned char FUNC = 0;/功能選擇,1為回車,2為清除 unsigned char reg104; /輸入內(nèi)容存放的數(shù)組 unsigned char dis_buf6;/顯示緩存 unsigned char inputmode;/通過回車鍵來判斷輸入模式,0為輸入序號,1為輸入4位十進制數(shù)據(jù) unsigned char group,datpos;/分別存儲數(shù)據(jù)的組數(shù)和十進制數(shù)據(jù)位數(shù) unsignedcharLedNum=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x84 ;void delay(unsigned char s) /延時函數(shù) int i,j;for(j=s;j>=0;j-)for(i=125;i>0;i-);void screen(int smode) /對數(shù)碼管操作的函數(shù) 1為清空顯示0號位光標(biāo) 2為移位 int p; if(smode=1)for(p=0;p<6;p+) dis_bufp = 0xff; /清屏 dis_buf0 = 0x08;/帶輸入光標(biāo) else if(smode=2)for(p=5;p>0;p-)/顯示緩存移位 dis_bufp = dis_bufp-1;void keyscan(void)/按鍵掃描函數(shù) /int p;/for循環(huán)變量 用于置空顯示緩存 P2=0xF0; /低四位輸入行為低電平,高四位為列高電平 temp=P2; /讀P2口 temp=temp&0xF0;temp=(temp>>4|0xF0);switch(temp)case 1: key = 0; break; / p1.4 被拉低 case 2: key = 1; break; / p1.5 被拉低 case 4: key = 2; break; / p1.6 被拉低 case 8: key = 3; break; / p1.7 被拉低 default: key = 16;temp = 0;P2=0x0F; /高四位輸入行為高電平列為低電平 /delay(1);temp=P2; /讀P1口 temp=temp&0x0F; /屏蔽低四位temp=(temp|0xF0);switch(temp)case 1:break; / p1.0 被拉低 case 2:key = key+4; break; / p1.1被拉低 case 4:key = key+8; break; /p1.2 被拉低 case 8:key = key+12;break; / p1.3 被拉低 default:key = 16;switch(key)case 10: /模式選擇為輸入 MODE = 0;inputmode=0; /從數(shù)據(jù)序號開始輸入 key=16; /鍵盤序號置空 FUNC=0; /功能鍵置空 screen(1);break; case 11: /模式選擇為顯示 MODE = 1;key=16; /鍵盤序號置空 screen(1);break;case 12: MODE = 2;break;case 13: FUNC = 1;break;/按鍵功能選擇 case 14: FUNC = 2;break;case 15: MODE = 3;break; /模式3為空余模式,可自定義或歡迎界面 default: datpos+; /存數(shù)位數(shù)加一 if(datpos=4) datpos = 0; P2 = 0x0f;while(P2!=0x0f); /保證按鍵彈起后再跳出程序 void keydown(void) P2=0x0F;/delay(1);if(P2!=0x0F) /判斷按鍵是否按下 如果按鈕按下 會拉低P1其中的一個端口 keyscan(); /調(diào)用按鍵掃描程序 void input(void) if(FUNC=1) /回車時 輸入模式切換 if(inputmode=1)screen(1);/清屏并在0號位輸入光標(biāo)else dis_buf2 = 0x08;/在2號位輸入光標(biāo) inputmode=1-inputmode;FUNC = 0; /切換完成 功能變量置空 if(FUNC=2) inputmode = 0; /重新從數(shù)據(jù)組數(shù)開始輸入 reggroup0 = 0; /清空已輸入的錯誤數(shù)據(jù) reggroup1 = 0;reggroup2 = 0;reggroup3 = 0;screen(1);FUNC = 0; if(key<10) if(inputmode=0) group = key;/序號確認 dis_buf0 = LedNumgroup;datpos = -1;/數(shù)據(jù)鍵入位置歸零 else if(inputmode=1) /對應(yīng)組數(shù)據(jù)輸入 dis_bufdatpos+2 = LedNumkey; reggroupdatpos = key; delay(1); void main()unsigned char LedSele=0x01,0x02,0x04,0x08,0x10,0x20;unsigned char roll;SCON =0x50; /REN=1允許串行接受狀態(tài),串口工作模式2 TMOD|=0x20; /定時器工作方式2 PCON|=0x80; /波特率提高一倍 TH1=0xF3; /波特率4800、數(shù)據(jù)位8、停止位1、效驗位無 (12M)TL1=0xF3;while(1) keydown(); /調(diào)用按鍵判斷檢測程序if(MODE=0) /輸入模式 if(int_on=1) /若中斷未關(guān)TR1=0; /關(guān)啟定時器1 ES=0; /關(guān)串口中斷 EA=0; /關(guān)總中斷 int_on = 0; /中斷已關(guān)標(biāo)志 input(); /開始數(shù)據(jù)輸入程序 else if(MODE=1) /顯示模式 if(int_on=1) /若中斷未關(guān)TR1=0; /關(guān)啟定時器1 ES=0; /關(guān)串口中斷 EA=0; /關(guān)總中斷 int_on = 0; /中斷已關(guān)標(biāo)志 if(key<10) /若輸入的是數(shù)字 group = key; /選定輸出組數(shù) dis_buf0 = LedNumgroup;/先顯示數(shù)據(jù)組數(shù) dis_buf1 = 0xff; /空格 dis_buf2 = LedNumreggroup0; /四位十進制數(shù) dis_buf3 = LedNumreggroup1;dis_buf4 = LedNumreggroup2;dis_buf5 = LedNumreggroup3;else if(MODE=2) /通信模式 if(int_on=0) /若中斷未開 TR1=1; /開啟定時器1 ES=1; /開串口中斷 EA=1; /開總中斷 int_on = 1; /中斷已開標(biāo)志 screen(1);/清屏 if (key<10)SBUF = key; /SUBF接受/發(fā)送緩沖器 while(TI=0); /當(dāng)發(fā)送標(biāo)志位為0,即未完成發(fā)送,則一直等待,直到發(fā)送完成 TI=0; /發(fā)送完成之后,將發(fā)送中斷標(biāo)志TI置0screen(2); /右移 dis_buf0 = LedNumkey;/最左為剛輸入的數(shù)字 elseif(int_on=1) /若中斷未關(guān)TR1=0; /關(guān)啟定時器1 ES=0; /關(guān)串口中斷 EA=0; /關(guān)總中斷 int_on = 0; /中斷已關(guān)標(biāo)志 dis_buf0 = 0x01;dis_buf1 = 0x40;dis_buf2 = 0x08;dis_buf3 = 0x08;dis_buf4 = 0x40;dis_buf5 = 0x01;for(roll=0;roll<6;roll+)P1=LedSeleroll; /通過循環(huán)使對應(yīng)選通的數(shù)碼管顯示相應(yīng)的數(shù)值 P0=dis_bufroll; /通過循環(huán)逐個選通數(shù)碼管 delay(1); void ser_int (void) interrupt 4 using 1if(RI=1) /若RI接受中斷標(biāo)志為1,即收到數(shù)據(jù) RI=0; /清除RI接受中斷標(biāo)志test+;if(test=10)test = 0;dis_buf5 = LedNumtest;/screen(2);dis_buf0 = LedNumSBUF; /delay(1);概 況實習(xí)單位: 武漢理工大學(xué)信息工程學(xué)院 參觀考察單位:(1)武漢理工大學(xué)信息工程學(xué)院國創(chuàng)課題小組 (2) 武漢理工大學(xué)信息工程學(xué)院開放實驗室 (3) 武漢理工大學(xué)電工電子實習(xí)中心 (4) (5) (6) 實習(xí)開始時間:20 13 年 12 月 30 日,實習(xí)時間共 14 天。 完成實習(xí)報告時間:20 14 年 1 月 日。附錄:實習(xí)日記實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日實 習(xí) 日 記 年 月 日 實習(xí)成績表一、成績評定所占比例(%)成 績實習(xí)表現(xiàn)實習(xí)報告質(zhì)量考試或其他總成績二、對實習(xí)表現(xiàn)及實習(xí)報告質(zhì)量的綜合評價(評語) 指導(dǎo)老師(簽字): 2013 年 月 日

注意事項

本文(武漢理工大學(xué)《單片機應(yīng)用實習(xí)》報告.doc)為本站會員(wux****ua)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!