版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、. . . . MCS-51單片機實驗指導書成 都 理 工 大 學通信工程系2011年9月34 / 38前 言單片機技術(shù)的出現(xiàn)給現(xiàn)代測控領(lǐng)域帶來了一次新的技術(shù)革命。目前,單片機以其高可靠性,在工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表等領(lǐng)域得到極其廣泛的應(yīng)用。因此對于在校的大學生來說,熟練的掌握和使用單片機具有深遠的意義。通過本實驗的學習,可以讓學生掌握單片機原理、接口技術(shù)與自動控制技術(shù),并能設(shè)計一些小型的、綜合性的控制系統(tǒng),以達到真正對單片機應(yīng)用的理解。本實驗箱可以實現(xiàn)的實驗容:(1)單片機開發(fā)軟件與仿真器的使用和P1口實驗;(2)I/O口實驗(交通燈實驗、溫度傳感器、蜂鳴器、I2C);(3
2、)定時器實驗(流水燈、交通燈、數(shù)碼管等);(4)總線實驗(流水燈LED、外部RAM);(5)系統(tǒng)擴展(包括:LCD、ADC、DAC、RAM等);(6)通信實驗(RS232與計算機之間的串口實驗);(7)傳感器實驗(1-Wire溫度實驗);(8)鍵盤實驗(掃描接口);(9)電機實驗(四相六線式步進電機);(10)時鐘實驗(RTCPCF8563);(11)軟件實驗(多個數(shù)求和、排序等);(12)中斷實驗(外部中斷、定時器、UART);目 錄前言1目錄2實驗一單片機集成開發(fā)環(huán)境應(yīng)用1一、實驗?zāi)康?二、實驗容1三、實驗步驟7四、實驗程序7五、思考問題8實驗二單片機I/O口實驗9一、實驗?zāi)康?二、實驗容
3、9三、實驗步驟9四、思考問題10實驗三定時器中斷11一、實驗?zāi)康?1二、實驗容11三、實驗步驟15四、思考問題15實驗四通信實驗16一、實驗?zāi)康?6二、實驗容16三、實驗步驟18四、思考問題20實驗五鍵盤接口與顯示(未完)21一、實驗?zāi)康?1二、實驗容21三、實驗步驟24四、思考問題24實驗六系統(tǒng)外設(shè)擴展(未完)25一、實驗?zāi)康?5二、實驗容25三、實驗步驟25四、思考問題25實驗七(未完)26一、實驗?zāi)康?6二、實驗容26三、實驗步驟26四、思考問題26實驗八(未完)27一、實驗?zāi)康?7二、實驗容27三、實驗步驟27四、思考問題27實驗一 單片機集成開發(fā)環(huán)境應(yīng)用一、實驗?zāi)康?、熟悉單片機集成
4、開發(fā)軟件(Keil);2、掌握單片機仿真器的使用;3、掌握單片機P1口使用;二、實驗容1、集成開發(fā)環(huán)境Keil介紹與開發(fā)流程KEIL uVISION2是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),是眾多單片機開發(fā)軟件之一,它支持眾多不同公司的MCS51架構(gòu)的芯片,它集編輯,編譯,仿真于一體,同時還支持PLM(產(chǎn)品全生命周期管理)、匯編和C語言的程序設(shè)計,它的界面和常用的微軟VC+的界面相似,界面友好,易學易用,在調(diào)試程序,軟件仿真方面也有很強大的功能。以上簡單介紹了KEIL51軟件,要使用KEIL51軟件,必需先要安裝它。KEIL51是一個商業(yè)的軟件,對于普通
5、愛好者可以到KEIL中國代理周立功公司的上下載一份能編譯2K的DEMO版軟件,基本可以滿足一般的個人學習和小型應(yīng)用的開發(fā)。安裝好后,讓我們一起來建立一個小程序項目吧。即使你手中還沒有一塊實驗板,甚至沒有一塊單片機,不過沒有關(guān)系我們可以通過KEIL軟件仿真看到程序運行的結(jié)果。首先當然是運行KEIL51軟件。運行幾秒后,出現(xiàn)如圖1-1的屏幕。圖1-1 啟動時的屏幕2、建立項目1)建立您的第一個項目點擊Project 菜單,選擇彈出的下拉式菜單中的New Project,如圖1-2。接著彈出一個標準Windows 文件對話窗口,如圖1-3,用法技巧也不是這里要說的,以后的章節(jié)中出現(xiàn)類似情況將不再說明
6、。在“文件名”中輸入您的第一個C 程序項目名稱,這里我們用“test”,這是筆者慣用的名稱,大家不必照搬就是了,只要符合Windows 文件規(guī)則的文件名都行?!氨4妗焙蟮奈募U展名為uv2,這是KEIL uVision2 項目文件擴展名,以后我們可以直接點擊此文件以打開先前做的項目。圖1-2 New Project菜單圖1-3 文件窗口2)選擇所要的單片機選擇所要的單片機,這里我們選擇常用的Ateml 公司的AT89C51。此時屏幕如圖14 所示。AT89C51 有什么功能、特點呢?請看圖中右邊有簡單的介紹,是英文的。稍后的章節(jié)會作較詳細的介紹。完成上面步驟后,我們就可以進行程序的編寫了。圖1
7、-4 選取芯片3)在項目中創(chuàng)建新的程序文件或加入已經(jīng)存在的程序文件首先我們要在項目中創(chuàng)建新的程序文件或加入已經(jīng)存在的程序文件。如果您沒有現(xiàn)成的程序,那么就要新建一個程序文件。在KEIL中有一些程序的Demo,在這里我們還是以一個C程序為例介紹如何新建一個C程序和如何加到您的第一個項目中吧。點擊圖1-5 中1的新建文件的快捷按鈕,在2中出現(xiàn)一個新的文字編輯窗口,這個操作也可以通過菜單FileNew 或快捷鍵CTRL+N 來實現(xiàn)。圖1-5 新建文件4)如果沒有已經(jīng)存在的程序文件,就新建、保存點擊圖1-5 中的3 保存新建的程序,也可以用菜單FileSave 或快捷鍵CTRL+S進行保存。因是新文件
8、所以保存時會彈出類似圖1-3 的文件操作窗口,我們把第一個程序命名為test1.c,保存在項目所在的目錄中,這時您會發(fā)現(xiàn)程序單詞有了不同的顏色,說明KEIL 的C語法檢查生效了。如圖1-6 鼠標在屏幕左邊的Source Group1 文件夾圖標上右擊彈出菜單,在這里可以作在項目中增加減少文件等操作。我們選“ Add File to Group SourceGroup 1”彈出文件窗口,選擇剛剛保存的文件,按ADD 按鈕,關(guān)閉文件窗,程序文件已加到項目中了。這時在Source Group1 文件夾圖標左邊出現(xiàn)了一個小+號說明,文件組中有了文件,點擊它可以展開查看。圖1-6 把文件加入到項目文件組
9、中5)編譯調(diào)試C 程序文件已被我們加到了項目中了,下面就剩下編譯運行了。這個項目我們只是用做學習新建程序項目和編譯運行仿真的基本方法,所以使用軟件默認的編譯設(shè)置,它不會生成用于芯片燒寫的HEX 文件。要生成用于芯片燒寫的HEX 文件,應(yīng)進行如下設(shè)置:在Creat HEX File前打選擇。圖1-7中1、2、3都是編譯按鈕,不同的是1 是用于編譯單個文件。2是編譯當前項目,如果先前編譯過一次之后文件沒有做動編輯改動,這時再點擊是不會再次重新編譯的。3是重新編譯,每點擊一次均會再次編譯一次,不管程序是否有改動。在3右邊的是停止編譯按鈕,只有點擊了前三個中的任一個,停止按鈕才會生效。5是菜單中的編譯
10、按鈕。這個項目只有一個文件,按1、2、3中的一個都可以編譯。在4 中可以看到編譯的錯誤信息和使用的系統(tǒng)資源情況等,以后我們就依靠它來進行查錯。6 是有一個小放大鏡的按鈕,這就是開啟關(guān)閉調(diào)試模式的按鈕,它也存在于菜單DebugStartStop Debug Session中,快捷鍵為Ctrl+F5。圖1-7 編譯程序6)調(diào)試 、生成HEX文件進入調(diào)試模式,軟件窗口樣式大致如圖1-8 所示。圖中1 為運行,當程序處于停止狀態(tài)時才有效,2 為停止,程序處于運行狀態(tài)時才有效。3 是復位,模擬芯片的復位,程序回到最開頭處執(zhí)行。圖1-8 調(diào)試運行程序3、下載到單片機的部運行1)用KEIL (或用TOPIC
11、E52)生成的HEX文件步驟: 點擊Project 菜單,選擇彈出的下拉式菜單中的New Project; 選擇所要的單片機,如選擇常用的Ateml 公司的AT89C51; 在項目中創(chuàng)建新的程序文件或加入已經(jīng)存在的程序文件; 如果沒有已經(jīng)存在的程序文件,新建、保存; 編譯; 調(diào)試 、生成HEX文件。2)下載本實驗箱提供ISP方式的下載,將KEIL生成的HEX文件下載到單片機的部flash。連接ISP下載器和單片機的ISP下載口。注意:單片機的P1.5 P1.6 P1.7不能被短接。3)ISP下載方法使用Easy 51Pro.exe軟件,運行界面如圖1-9所示。圖1-9 Easy 51Pro.e
12、xe軟件運行界面4)ISP下載步驟 選擇器件 裝載HEX文件 擦除器件 寫器件5)運行將KEIL生成的HEX文件下載到單片機的部flash后,按REST鍵和關(guān)機后再開機即可運行單片機的部的程序。三、實驗步驟依照實驗容開始進行實驗,熟悉Keil軟件的使用,自行建立工程,并新建一個文件(匯編文件為.ASM擴展名,C文件為.C擴展名),編寫自己的程序,再把此文件添加到工程當中,最后進行編譯,如果沒有錯誤,則進行在線軟件的仿真調(diào)試。仿真調(diào)試分為兩種:軟件仿真和硬件仿真,前者不使用仿真器,后者使用硬件仿真器。本實驗箱提供ISP方式的下載,將KEIL生成的HEX文件下載到單片機的部flash,重復此部分容
13、,直到熟練掌握開發(fā)環(huán)境的使用。四、實驗程序1、匯編程序ORG0000HSJMPSTARTORG0030H;()START:MOVP1,00000010B ;將P1.0與P1.1分別置低電平、高電平NOP;空指令,不執(zhí)行任何操作NOPNOPLJMPSTART;跳轉(zhuǎn)到STAEND;程序結(jié)束2、C程序附:關(guān)于此程序的C51實現(xiàn)#include#includevoid main()while(1)P1 = 0x02;/置位P1.1,清零P1.0五、思考問題1) ()處0030H其作用是什么?如果改變,應(yīng)注意哪些?2) 如果二極管的陰、陽極插反,怎么改進程序,使之發(fā)光?3) 用軟件延時的辦法實現(xiàn)指示燈的
14、閃爍。實驗二 單片機I/O口實驗一、實驗?zāi)康?、熟悉單片機I/O口的特點;2、掌握單片機I/O口的編程。二、實驗容1、P1口交通燈程序編寫(調(diào)試時連接JP3的8個跳線);2、 蜂鳴器發(fā)聲程序。圖2-1 LED發(fā)光二極管連接電路三、實驗步驟調(diào)試時連接JP3的8個跳線。LED發(fā)光二極管連接電路如圖2-1所示。 1、蜂鳴器發(fā)聲ORG0000HLJMPMAIN ORG 0030HMAIN:SETB P1.2CALL DELAYCLR P1.2CALL DELAYSJMP MAINDELAY: MOV R7,#255 ;延時子程序D1: MOV R6,#255 DJNZ R6,$ DJNZ R7,D1
15、RET ;子程序返回 END ;程序結(jié)束2、流水燈ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV DPTR,#2000HMOV R0,#0FEHMOV A,R0MOVX DPTR,A ACALL DELAY ;延時 MOV R3,#07H ;設(shè)置左移7次LOOP: RL A ;左移一位 MOVX DPTR,A ACALL DELAY ;延時 DJNZ R3,LOOP ;R3是否為0,不為0轉(zhuǎn)LOOP繼續(xù)執(zhí)行 AJMP MAIN ;返回主程循環(huán)執(zhí)DELAY: MOV R7,#255 ;延時子程序D1: MOV R6,#255D2: DJNZ R6,D2 DJNZ R
16、7,D1 RET ;子程序返回END ;程序結(jié)束 同學們可自編。四、思考問題1、用C51編流水燈程序2、用C51編蜂鳴器發(fā)聲程序?qū)嶒炄?定時器中斷一、實驗?zāi)康?、熟悉單片機中斷的概念;2、熟悉單片機部定時器的硬件結(jié)構(gòu);3、掌握單片機定時器的編程;4、掌握單片機的時序與鎖存器的使用;5、掌握用定時器實現(xiàn)交通燈和流水燈顯示。二、實驗容1、中斷是指CPU正在處理某些事務(wù)的時候,外部又發(fā)生了某一事件,請求CPU與時處理。于是,CPU暫時中斷當前的工作,轉(zhuǎn)而處理所發(fā)生的事件。處理完畢,再回到原來被中斷的地方,繼續(xù)原來的工作。這樣的過程,稱為中斷。圖3-1為中斷方式流程圖。圖3-2為中斷系統(tǒng)結(jié)構(gòu)圖3-1
17、中斷方式流程2、單片機共有5個中斷源,兩個優(yōu)先級,并可以實現(xiàn)兩級中斷嵌套。MCS-51單片機響應(yīng)中斷有四個條件:1) 中斷源有請求;2) 寄存器IE的總允許位EA=1,且IE相應(yīng)的中斷允許位為1;3) 無同級或高級中斷正在服務(wù);4) 現(xiàn)行指令執(zhí)行完最后一個機器周期。圖3-2 中斷系統(tǒng)結(jié)構(gòu)3、單片機有兩個16位的硬件定時器/計數(shù)器,分別稱為Timer0和Timer1。每個定時器都有四種工作方式,稱為方式0、方式1、方式2和方式3。工作方式有軟件控制。其結(jié)構(gòu)如圖3-3所示。圖3-3 定時器/計數(shù)器結(jié)構(gòu)單片機的定時器/計數(shù)器都統(tǒng)稱為定時器,定時器是對機器周期進行計數(shù),而計數(shù)器是對外部的脈沖進行計數(shù)。
18、通常情況下,都稱為定時器。定時器的四種工作方式是由軟件來控制的,如表3-1所示,定時器工作方式寄存器TMOD中的M0、M1兩為決定了它的工作方式。4、使用單片機的定時器T0產(chǎn)生100mS的定時信號,使實驗箱主板上的流水燈(8只紅色發(fā)光二極管)依次發(fā)光,并循環(huán)。設(shè)此時系統(tǒng)的時鐘頻率為6MHz,再根據(jù)它來決定定時器T0的初始值。由于時鐘頻率為6MHz,所以,機器周期為2S。初始值計算有以下公式得出,t=(216-T0初值)機器周期,就可以計算出初始值,公式是依據(jù)定時器的工作原理得出的,51單片機的定時器是加法計數(shù)的,從設(shè)置的初始值開始,每一個機器周期加一,直至溢出。表3-1 定時器的四種工作方式M
19、1 M0工作方式說明0 0方式013位定時/計數(shù)器0 1方式116位定時/計數(shù)器1 0方式2自動再裝入8位定時/計數(shù)器1 1方式3定時器0:分為兩個8位定時/計數(shù)器定時器1:對外部停止定時/計數(shù)5、實驗主板上的8只紅色發(fā)光二極管的亮/滅是由8位鎖存器74HC573進行鎖存。電路如圖3-4。圖3-4 流水燈電路由圖可以看出,鎖存器是掛在系統(tǒng)總線上的,有外部地址進行統(tǒng)一編址,是外部地址64K地址空間的一部分。74HC573的鎖存信號由譯碼電路產(chǎn)生,又因為573在控制端C引腳為高電平時,數(shù)據(jù)通道打開,從高變到低時,數(shù)據(jù)被鎖存,所以,C端門控信號是由74HC138譯碼器的輸出端(譯碼地址:2000H)
20、在加一個反相器得到的。程序設(shè)計:由系統(tǒng)總線擴展I/O口,實現(xiàn)流水燈的程序設(shè)計。示例1:用軟件延時實現(xiàn)流水燈的延時。ORG 0000HAJMP MAINMAIN: MOV DPTR,#2000HMOV R0,#0FEHMOV A,R0MOVX DPTR,A ACALL DELAY ;延時 MOV R3,#07H ;設(shè)置左移7次LOOP: RL A ;左移一位MOVX DPTR,A ACALL DELAY ;延時 DJNZ R3,LOOP ;R3是否為0,不為0轉(zhuǎn)LOOP繼續(xù)執(zhí)行 AJMP MAIN ;返回主程循環(huán)執(zhí)DELAY: MOV R7,#255 ;延時子程序D1: MOV R6,#255D
21、2: DJNZ R6,D2DJNZ R7,D1 RET ;子程序返回 END ;程序結(jié)束示例2:給出定時器的中斷服務(wù)程序,同學可以進行修改,形成由中斷完成的流水燈程序設(shè)計。ORG0000HLJMPMAINORG000BHLJMPTIMEMAIN:MOVTH0,#0D8HMOVTL0,#0A0HMOVTMOD,#01H;定時器工作方式1SETBET0;開定時中斷SETBEA;開總中斷SETBTR0;定時器開始計時中斷服務(wù)程序:TIME:MOVTH0,#0D8HMOVTL0,#0A0HRETI三、實驗步驟1、首先用軟件延時的方法,實現(xiàn)流水燈實驗;2、用定時器設(shè)計流水燈實驗,讓流水燈依次點亮或熄滅,
22、并掌握外部擴展時地址的分配(擴展外部I/O,使用鎖存器)。四、思考問題1、用C51采用軟件延時的方法,實現(xiàn)流水燈程序。2、用C51采用定時器延時設(shè)計流水燈實驗,讓流水燈依次點亮或熄滅程序。實驗四 通信實驗一、實驗?zāi)康?、熟悉單片機通信的原理;2、熟悉MCS-51單片機UART四種工作方式;3、掌握UART的編程方法二、實驗容1、串行通信基本知識在MCS-51單片機部,有一個通用異步接收/發(fā)送器(UART)。這是一個全雙工串行接口,能同時進行發(fā)送和接收數(shù)據(jù)。利用這個串行接口,可以實現(xiàn)單片機之間的單機通信、多機通信,以與與PC機之間的通信。通信方式種類:一種是并行通信,一種是串行通信。串行通信的三
23、種方式:單工通信、半雙工通信和全雙工通信。同步技術(shù)分為:異步通信、同步通信,它們之間的不同點可以參考相關(guān)參考書目。異步通信的一般數(shù)據(jù)格式如圖4-1所示。圖4-1 異步通信的一幀數(shù)據(jù)格式同步通信的數(shù)據(jù)格式如圖4-2所示。圖4-2 同步通信的數(shù)據(jù)格式2、MCS-51單片機的通用串行口結(jié)構(gòu)MCS-51有一個可編程的全雙工串行通信接口,可作為通用異步接收/發(fā)送器UART,也可作為同步移位寄存器。它的幀格式有8位、10位和11位,可以設(shè)置為固定波特率和可變波特率。串口的工作方式主要有SCON和PCON兩個寄存器來決定。圖4-3 串口控制寄存器SCON的最高兩位SM0、SM1表示串行口工作方式控制位,兩位
24、對應(yīng)四種工作方式,如表7-1所示(fosc是晶振頻率)。圖4-4 電源控制寄存器PCON的最高位SMOD是波特率倍增位。串行口工作在方式1、方式2、方式3時,若SMOD=1,則波特率提高一倍;若SMOD=0,則波特率不提高一倍。單片機復位時,SMOD=0。3、單片機串口的工作方式(1)方式0的波特率工作方式0時,移位脈沖由機器周期的第6個狀態(tài)周期S6給出,每個機器周期產(chǎn)生一個移位脈沖,發(fā)送或接收一位數(shù)據(jù)。因此,波特率是固定的,為振蕩頻率的1/12,不受PCON寄存器中SMOD的影響。用公式表示為:工作方式0的波特率=fosc/12(fosc時鐘頻率)(2)方式2的波特率工作方式2時,移位脈沖由
25、振蕩頻率fosc的第二節(jié)拍P2時鐘(即fosc/2)給出,所以,方式2波特率取決于PCON中的SMOD位的值,當SMOD=0時,波特率為fosc的1/64;當SMOD=1時,波特率為fosc的1/32,用公式表示為;工作方式2波特率=(2SMOD/64)fosc(3)工作方式1和方式3的波特率這兩種工作方式的波特率由定時器T1的溢出率決定,波特率的數(shù)值可以參考教科書中的表。4、實驗箱統(tǒng)中的串行接口電路圖4-5為實驗箱系統(tǒng)中的串行接口電路,采用的接口芯片是MAX232。圖4-5 串口接口電路5、串行接口接收程序可使用串口調(diào)試助手程序來接收和發(fā)送數(shù)據(jù)。三、實驗步驟1、試編寫自適應(yīng)波特率的程序,根據(jù)
26、外部的數(shù)據(jù)速率決定本身的波特率。程序設(shè)計1:實現(xiàn)將計算機端發(fā)送過來的數(shù)據(jù)返回給計算機終端。程序示例1:ORG 0000HLJMP MAINORG 0023HLJMP UARTMAIN:MOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3HMOVPCON,#80HSETBESMOVSCON,#50HSETB TR1SETBEASJMP $UART:CLR ESJNBRI,LLMOV A,SBUFMOVSBUF,ASETB ESLJMP EXITLL:CLR TISETB ESEXIT:RETIEND2、在Proteus上畫出電路圖,實現(xiàn)兩個單片機之間的串口通信。電路圖可參考圖4
27、-6。圖4-6 單片機間的串口通信分別編寫發(fā)送端和接收端單片機的處理程序,實現(xiàn)從發(fā)端發(fā)送一個字符串“Hello Boy!”,在收端接收并顯示在虛擬終端之上。下面是參考程序:l 發(fā)送端(查詢方式實現(xiàn),波特率2400bps):ORG 0000HAJMP MAINORG 0030HMAIN:;確定波特率MOV SCON,#40H;串口方式1,不允許接收LCALL DAT_INMOV R0,#30HMOV R7,#10SEND:MOV A,R0MOV SBUF,AJNB TI,$CLR TIINC R0DJNZ R7,SENDAJMP $;-;把字符串”Hello Boy!”的ASCII碼寫入RAM的
28、30H39H單元;-DAT_IN:MOV R0,#30HMOV R1,#48H ;ASCII Code of HMOV A,R1MOV R0,AINC R0MOV R1,#65H ;ASCII Code of eMOV A,R1MOV R0,AINC R0MOV R1,#6CH ;ASCII Code of lMOV A,R1MOV R0,AINC R0MOV R1,#6CH ;ASCII Code of lMOV A,R1MOV R0,AINC R0MOV R1,#6FH ;ASCII Code of oMOV A,R1MOV R0,AINC R0MOV R1,#20H ;ASCII Cod
29、e of MOV A,R1MOV R0,AINC R0MOV R1,#42H ;ASCII Code of BMOV A,R1MOV R0,AINC R0MOV R1,#6FH ;ASCII Code of oMOV A,R1MOV R0,AINC R0MOV R1,#79H ;ASCII Code of yMOV A,R1MOV R0,AINC R0MOV R1,#21H ;ASCII Code of !MOV A,R1MOV R0,ARETENDl 接收端(中斷方式實現(xiàn),波特率2400bps):ORG0000HAJMPMAIN;串口中斷的入口地址AJMPINT_SORG0030HMAIN:
30、MOVSCON,#50H;串口方式1,允許接收SETBEASETBESMOVR0,#30HMOVR7,#10AJMP$INT_S:CLRRIMOVA,SBUFMOVR0,A;把數(shù)據(jù)寫入RAM的30H39H單元INCR0MOVSBUF,A;寫入數(shù)據(jù)的同時,把該數(shù)據(jù)在TXD腳上輸出JNBTI,$CLRTIDJNZR7,OUTCLREACLRESOUT:RETIEND四、思考問題1、試用C51編寫上邊的單片機串口通信程序2、實驗五 數(shù)碼管的顯示一、實驗?zāi)康?、熟悉7段數(shù)碼管顯示的基本原理;2、掌握共陽極和共陰極數(shù)碼管的段碼組成原理;3、掌握數(shù)碼管的靜態(tài)顯示和動態(tài)顯示的基本原理和電路連接方法;4、掌握
31、靜態(tài)顯示和動態(tài)顯示的編程方法。二、實驗容數(shù)碼管是一種常用的顯示輸出設(shè)備。它由若干個發(fā)光二極管組成,當發(fā)光二極管導通時,相應(yīng)的一個點或一個筆畫發(fā)光,控制不同組合的二極管導通就能顯示出各種字符。其中有7個用于顯示字符,1個用于顯示小數(shù)點,故通常稱為7段(亦可稱8段)數(shù)碼管。三、實驗步驟1、在Proteus上自行繪制51單片機與一個共陽極數(shù)碼管連接的電路圖,作圖時可參考圖5-1。圖5-1 MCS51單片機與共陽極數(shù)碼管連接編寫程序,實現(xiàn)在此數(shù)碼管上循環(huán)顯示09十個數(shù)字,間隔時間為1秒鐘。ORG0000HAJMPMAIN;中斷入口地址AJMPINTORG0030HMAIN:;定時器0初始化,工作方式1
32、,定時時間50msMOVDPTR,#TABLEMOVR7,#10MOVR6,#10;置位相關(guān)的中斷允許位AJMP$INT:DJNZR7,RTNMOVR7,#10;-;具體的中斷服務(wù)MOVA,#10CLRCSUBBA,R6MOVCA,A+DPTRMOVP2,ADJNZR6,RTNMOVR6,#10;-RTN:MOVTH0,#3CHMOVTL0,#0B0HRETITABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND2、利用51單片機的串口工作在方式0,實現(xiàn)多個數(shù)碼管的顯示。其電路圖可參考圖5-2作出。圖5-2 利用串口實現(xiàn)數(shù)碼管的靜態(tài)顯示
33、編寫程序,實現(xiàn)在此數(shù)碼管上循環(huán)顯示數(shù)字。MTDEQU 30HORG0000HLJMPSTARTORG0030HSTART:MOVSCON,#00H;串口方式0;-;把數(shù)據(jù)輸入到RAM的30H-35H單元中MOVR1,#MTDMOVR1,#0C0HINCR1MOVR1,#0F9HINCR1MOVR1,#0A4HINCR1MOVR1,#0B0HINCR1MOVR1,#99HINCR1MOVR1,#92H;-MOVR2,#6LOOP:LCALLUARTNOMOVR2,#6SJMPLOOP;-;串口通信子程序 UARTNO:MOVR0,#MTDSOUT:MOVA,R0MOVSBUF,ALCALLDEL
34、AYJNBTI,$CLRTIINCR0LCALLDELAYDJNZR2,SOUTRET;-;延時子程序DELAY:MOVR7,#255D1:MOVR6,#255DJNZR6,$DJNZR7,D1RET;-END3、參考圖5-3在Proteus中畫出實現(xiàn)數(shù)碼管動態(tài)顯示的電路圖。圖5-3 4位共陰極LED和AT89C51的接口邏輯編程實現(xiàn)數(shù)碼管的動態(tài)顯示,程序參考如下。ORG0000HAJMPMAINORG0030HMAIN:MOVDPTR,#TABLESTART:MOVR4,#0FEH;R4存放位選信號MOVR5,#00H;R5存放所顯示的數(shù)CNT:MOVP2,R4;-;利用查表的方法將R5的待
35、輸出的數(shù)轉(zhuǎn)換為共陰極段碼,并在P0口輸出MOVA,R5MOVCA,A+DPTRMOVP0,AINCR5;-;位選信號的控制MOVA,R4JNBACC.4,STARTRLAMOVR4,A;-LCALLDELAYCJNER5,#0AH,CNTLJMPSTART;-DELAY:MOVR6,#200D1:MOVR7,#248NOPD2:DJNZR7,D2DJNZR6,D1RET;-TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;共陰極段碼表;TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;共陽
36、極段碼表END在該程序中,將延時調(diào)用刪除,觀察數(shù)碼管的顯示變化。四、思考問題1、圖5-1實驗中,如果要改用軟件延時的方式實現(xiàn)一樣功能,應(yīng)如何改寫程序?2、圖5-2實驗中用到了串口,程序中為何沒有設(shè)定串口的波特率?該顯示方式屬于靜態(tài)顯示還是動態(tài)顯示?實驗六 DAC0832數(shù)/模轉(zhuǎn)換一、實驗?zāi)康?、熟悉單片機系統(tǒng)總線結(jié)構(gòu);2、熟悉系統(tǒng)擴展的方法;3、了解數(shù)模轉(zhuǎn)換器DAC0832的特點;4、掌握DAC0832和51單片機的電路連接方法和相關(guān)的編程方法。二、實驗容單片機的系統(tǒng)擴展是指在單片機部的功能部件不能滿足應(yīng)用系統(tǒng)要求時,在片外連接相應(yīng)的外圍芯片以滿足應(yīng)用系統(tǒng)要求。在進行系統(tǒng)擴展時,是以單片機為核
37、心,通過系統(tǒng)總線進行的,通過總線把各個擴展部件連接起來,進行數(shù)據(jù)、地址和信號的傳送。MCS-51系列單片機的外部引腳可以構(gòu)成如圖6-1所示的三總線結(jié)構(gòu),即地址總線(AB)、數(shù)據(jù)總線(DB)和控制總線(CB)。圖6-1 系統(tǒng)總線的構(gòu)造利用DAC0832實現(xiàn)數(shù)/模轉(zhuǎn)換時,就需要將DAC0832作為一個外部擴展設(shè)備,接入到各種的總線上。DAC0832的引腳結(jié)構(gòu)可參看教材相關(guān)章節(jié)。它的部是一個具有兩級寄存器的結(jié)構(gòu),其邏輯框圖如圖6-2所示。可以看出,第一級輸入寄存器由S和W1引腳控制,第二級DAC寄存器由XER和W2引腳控制。圖6-2 DAC0832部結(jié)構(gòu)邏輯框圖根據(jù)這種結(jié)構(gòu),DAC0832就有單緩沖
38、和雙緩沖兩種連接方式。單緩沖方式又分為輸入寄存器直通方式和DAC寄存器直通方式兩種。具體的工作原理和編程方法可參看教材。三、實驗步驟1、在Proteus上自行繪制51單片機與DAC0832連接的電路圖,以實現(xiàn)模擬量和數(shù)字量之間的轉(zhuǎn)換。下圖為一種單緩沖方式的參考電路圖。圖6-1 DAC0832與AT89C51連接2、根據(jù)上圖編寫方波發(fā)生器和三角波發(fā)生器程序。下面是鋸齒波的程序,以供參考。ORG0000HAJMPMAINORG0030HMAIN:MOVA,#00H;將DAC0832的口地址送入數(shù)據(jù)指針,地址需與電路圖對應(yīng)LOOP:MOVXDPTR,AINCANOPNOPAJMPLOOPEND四、思
39、考問題1、圖6-1的單緩沖連接是DAC寄存器直通方式還是輸入寄存器直通方式?確定是其中某一種之后,另一種方式的電路連接是什么樣的?2、如果要用一個單片機同時控制兩個DAC0832工作,分別生成方波和三角波,應(yīng)如何連接電路圖?程序應(yīng)如何編寫?實驗七 8255A接口芯片一、實驗?zāi)康?、熟悉單片機系統(tǒng)總線結(jié)構(gòu);2、熟悉系統(tǒng)擴展的方法;3、了解接口芯片8255A的特點。二、實驗容在單片機的I/O口線不夠用的情況下,可以借助外部器件對I/O口進行擴展,8255A就是這樣一款接口芯片。8255A具有3個可編程并行I/O端口:A口、B口和C口,3個8位I/O端口的功能可由編程決定。8255A的部結(jié)構(gòu)和引腳圖
40、可參看教材相關(guān)容。8255A有3種工作方式:方式0、方式1、方式2,其具體容如下表所示:工作方式A口B口C口0基本輸入/輸出輸出鎖存,輸入三態(tài)基本輸入/輸出輸出鎖存,輸入三態(tài)基本輸入/輸出輸出鎖存,輸入三態(tài)1應(yīng)答式輸入/輸出輸入/輸出均鎖存應(yīng)答式輸入/輸出輸入/輸出均鎖存提供A口和B口的應(yīng)答信號2應(yīng)答式雙向輸入/輸出輸入/輸出均鎖存B口無此方式提供A口的應(yīng)答信號三種方式中方式0用得最多且最容易使用,方式1和方式2使用復雜,因單片機能自動提供各種應(yīng)答信號,這兩種方式已很難再見到用于單片機系統(tǒng)。對應(yīng)于控制引腳和尋址引腳上的不同狀態(tài),8255A芯片的工作狀態(tài)如下表所示:A1A0DRS操作說明0001
41、0CPU讀取PA口數(shù)據(jù)從8255的I/O口讀有效01CPU讀取PB口數(shù)據(jù)10CPU讀取PC口數(shù)據(jù)0010CPU向PA口輸出數(shù)據(jù)向8255的I/O口寫有效01CPU向PB口輸出數(shù)據(jù)10CPU向PC口輸出數(shù)據(jù)11100對控制寄存器寫控制字初始化8255時必須做的工作XXXX1未選中,8255不工作8255對系統(tǒng)總線呈高阻態(tài)11010非法狀態(tài)控制寄存器只能寫不能讀XX110非法狀態(tài)8255對系統(tǒng)總線呈高阻態(tài)8255A中一共有4個寄存器,對PA、PB、PC三個口的任何讀/寫操作,就是對PA、PB、PC這三個寄存器進行I/O操作。第4個寄存器是控制字寄存器(命令字寄存器),它用于接收來自單片機的控制命令
42、,告訴8255A以何種方式工作。其地址是:A1,A0 = 11。它可以接受兩條命令,第一條命令叫“方式控制字”,方式控制字格式如下:第二條命令用于對PC口按位進行“置1”和“清0”操作,地址依然是:A1,A0 = 11,命令格式如下:8255A用于擴展單片機的I/O接口,在連接單片機和8255A時,按照標準的系統(tǒng)擴展方式進行連接。三、實驗步驟1、在Proteus上自行繪制51單片機與8255A連接的電路圖,以實現(xiàn)對單片機I/O接口的擴展。連接方式可參考圖7-1。圖7-1 8255A與AT89C51單片機連接圖2、根據(jù)上圖編寫程序,分別控制兩組流水燈工作。下邊為程序參考。PORTAEQU7FFCH ;A口地址PORTBEQU 7FFDH;B口地址POR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加油站安全管理三級教育考試試題含答案
- 球罐檢罐施工方案
- 2025年特殊作業(yè)試題卷及答案
- (2025年)醫(yī)療器械監(jiān)督管理條例培訓試題及答案
- 2025年消防情景模擬題目及答案
- 施工總體交通導行方案
- 2026年組織部個人年度工作總結(jié)
- 患者誤吸時的應(yīng)急預案課件
- 2025年電工技師配電箱線路絕緣電阻檢測方法實戰(zhàn)訓練試卷及答案
- 建設(shè)工程施工合同糾紛要素式起訴狀模板格式有效規(guī)范
- 蘇州高新區(qū)(虎丘區(qū))市場監(jiān)督管理局公益性崗位招聘1人考試參考題庫及答案解析
- 北京通州產(chǎn)業(yè)服務(wù)有限公司招聘參考題庫完美版
- 企業(yè)安全隱患排查課件
- 2025版《煤礦安全規(guī)程》宣貫解讀課件(電氣、監(jiān)控與通信)
- 2025年國家開放大學《管理學基礎(chǔ)》期末機考題庫附答案
- 2025年人民網(wǎng)河南頻道招聘備考題庫參考答案詳解
- ESHRE子宮內(nèi)膜異位癥的診斷與治療指南(2025年)
- 急驚風中醫(yī)護理查房
- 基于視頻圖像的大型戶外場景三維重建算法:挑戰(zhàn)、創(chuàng)新與實踐
- 物流管理畢業(yè)論文范文-物流管理畢業(yè)論文【可編輯全文】
- 2025年四川省高職單招模擬試題語數(shù)外全科及答案
評論
0/150
提交評論