微機(jī)原理及接口技術(shù)實(shí)驗(yàn)指導(dǎo)書2013本(SH51-Keil版).doc_第1頁
微機(jī)原理及接口技術(shù)實(shí)驗(yàn)指導(dǎo)書2013本(SH51-Keil版).doc_第2頁
微機(jī)原理及接口技術(shù)實(shí)驗(yàn)指導(dǎo)書2013本(SH51-Keil版).doc_第3頁
微機(jī)原理及接口技術(shù)實(shí)驗(yàn)指導(dǎo)書2013本(SH51-Keil版).doc_第4頁
微機(jī)原理及接口技術(shù)實(shí)驗(yàn)指導(dǎo)書2013本(SH51-Keil版).doc_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

微機(jī)原理及接口技術(shù)實(shí)驗(yàn)指導(dǎo)書微機(jī)原理及接口技術(shù)實(shí)驗(yàn)指導(dǎo)書北京聯(lián)合大學(xué)機(jī)電學(xué)院2013年4月目 錄 實(shí)驗(yàn)指南 GCMCU單片機(jī)實(shí)驗(yàn)箱簡介 Keil集成開發(fā)環(huán)境使用簡介 實(shí)驗(yàn)一、數(shù)據(jù)傳送及輸入輸出接口實(shí)驗(yàn) 實(shí)驗(yàn)二、常用數(shù)據(jù)處理程序設(shè)計(jì) 實(shí)驗(yàn)三、外部中斷實(shí)驗(yàn) 實(shí)驗(yàn)四、定時(shí)器計(jì)數(shù)器的應(yīng)用 實(shí)驗(yàn)五、機(jī)電設(shè)備控制實(shí)驗(yàn)實(shí)驗(yàn)六、LED顯示器實(shí)驗(yàn)實(shí)驗(yàn)七、模/數(shù)轉(zhuǎn)換實(shí)驗(yàn)實(shí)驗(yàn)八、串行通訊實(shí)驗(yàn)附錄I、預(yù)習(xí)報(bào)告格式附錄II、實(shí)驗(yàn)報(bào)告格式實(shí)驗(yàn)指南千里之行,始于足下。如果你想成為一個(gè)優(yōu)秀的應(yīng)用型性工程技術(shù)人員首先應(yīng)該重視實(shí)驗(yàn)課程,重視實(shí)驗(yàn)過程。養(yǎng)成良好的工作作風(fēng)和習(xí)慣。為了使實(shí)驗(yàn)安全、可靠、準(zhǔn)確地進(jìn)行,為了避免造成實(shí)驗(yàn)失誤,實(shí)驗(yàn)之初應(yīng)該仔細(xì)地了解你所使用設(shè)備的各種性能和要求,認(rèn)真思考。絕不可草率從事或操之過急馬馬虎虎。應(yīng)該做到細(xì)心、耐心,逐漸培養(yǎng)嚴(yán)肅認(rèn)真,一絲不茍的工作作風(fēng)。請注意以下幾點(diǎn):1.根據(jù)授課教師給出的時(shí)間范圍,到實(shí)驗(yàn)室申請實(shí)驗(yàn)時(shí)間。2.實(shí)驗(yàn)之前認(rèn)真閱讀實(shí)驗(yàn)指導(dǎo)書,嚴(yán)格按照實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)要求撰寫預(yù)習(xí)報(bào)告,設(shè)計(jì)實(shí)驗(yàn)程序。3.使用各種實(shí)驗(yàn)設(shè)備之前,必須了解測量所用的范圍、額定值。應(yīng)將輸出量程置于最小,輸入量程置于最大。4.熟悉操作設(shè)備的各項(xiàng)功能和作用,做到心中有數(shù),如有疑問應(yīng)立即向教師提出。5.實(shí)驗(yàn)時(shí)嚴(yán)格按照實(shí)驗(yàn)要求和實(shí)驗(yàn)步驟進(jìn)行實(shí)驗(yàn)。6.連接線路后應(yīng)仔細(xì)檢查,確保無誤后才能開啟電源。7.各種開關(guān)不能用力硬扳,各種接插頭不得硬插,各種連線應(yīng)避免拉扯使用。8.特別注意各輸出引線(尤其是電源輸出引線),不要與地或通過機(jī)殼造成短路。9.實(shí)驗(yàn)過程中應(yīng)仔細(xì)觀察、記錄各種狀態(tài)的微小變化。10.實(shí)驗(yàn)結(jié)束后應(yīng)先將電源關(guān)閉,再撤除連線。清理實(shí)驗(yàn)臺后才能離開。要做到有始有終。11.實(shí)驗(yàn)完成后認(rèn)真編寫實(shí)驗(yàn)報(bào)告,不要就事論事,應(yīng)該對實(shí)驗(yàn)結(jié)果深入進(jìn)行分析討論,提出自己的看法和評價(jià)。GCMCU單片機(jī)實(shí)驗(yàn)箱簡介GCMCU通用單片機(jī)實(shí)驗(yàn)開發(fā)平臺是一種可以應(yīng)用用于多種單片機(jī)實(shí)驗(yàn)的實(shí)驗(yàn)裝置。用戶可以根據(jù)自己的需要換用不同的單片機(jī)核心板來完成相應(yīng)的單片機(jī)學(xué)習(xí)實(shí)驗(yàn)、系統(tǒng)開發(fā)等。下圖為GCMCU單片機(jī)實(shí)驗(yàn)箱主板的功能資源分布圖。圖2.1 GCMCU主板功能分區(qū)單片機(jī)實(shí)驗(yàn)開發(fā)裝置的各類單元電路按功能被分為了一個(gè)一個(gè)的小區(qū),每個(gè)小區(qū)的電路自成一體,并用插針引出必要的控制信號線。用戶在使用的時(shí)候可以利用飛線將單片機(jī)核心板于功能電路之間、功能電路與功能電路之間進(jìn)行連接,通過這種靈活的連接方式來實(shí)現(xiàn)用戶需要的電路系統(tǒng)的搭建。為了方便用戶利用示波器、邏輯分析調(diào)試電路,單片機(jī)實(shí)驗(yàn)箱主板上功能電路的控制信號線均采用“雙接口”設(shè)計(jì),所有的接口信號都“一式兩份”,一組可以用來搭建功能電路,另外一組可以用來連接到測量儀器,來對該通路上的信號波形進(jìn)行測量和監(jiān)視,方便用戶使用。Keil集成開發(fā)環(huán)境使用簡介1建立工程打開PC機(jī)電源,雙擊桌面上的Keil圖標(biāo)進(jìn)入Keil集成開發(fā)環(huán)境,點(diǎn)擊菜單欄中的“工程”菜單,在下拉菜單中選擇“新建工程”命令,建立一個(gè)新的工程項(xiàng)目文件,為工程取個(gè)名字(應(yīng)便于記憶,名字不要太長);選擇工程存放的路徑。工程建立后,Keil會立即彈出一個(gè)選擇單片機(jī)型號的對話窗口,用于選擇一個(gè)51單片機(jī)的型號,建議選擇“Atmel”選項(xiàng)中的“AT89S52”,接下來會彈出一個(gè)對話框,詢問用戶是否添加啟動代碼,無論用戶使用匯編語言還是C語言,一般選擇“否”。如果用戶用到了某些增強(qiáng)功能需要初始化配置時(shí),則可以選擇“是”。到此,一個(gè)空的新工程就建立完畢。2.建立保存文件點(diǎn)擊菜單欄中的“文件”菜單,在下拉菜單中選擇“新建文件”命令,則在Keil的集成開發(fā)環(huán)境的主窗體中出現(xiàn)一個(gè)空白的文件編輯窗口;在這個(gè)窗口中就可以輸入、編輯源程序了;在集成開發(fā)環(huán)境工具欄中點(diǎn)擊的“保存”命令,在彈出的保存對話框中,為該程序源文件起個(gè)名字,例如以“D1.asm”為名,注意:一定不要忘記文件的擴(kuò)展名,也就是使用匯編語言編寫程序的用戶,在保存文件時(shí)必須輸入文件的后綴名“.asm”,然后點(diǎn)擊“保存”。3.添加文件點(diǎn)擊Keil的集成開發(fā)環(huán)境的主窗體中左邊窗口中的“目標(biāo)1”前面的“+”,出現(xiàn)“源組1”,選中“源組1”,點(diǎn)擊鼠標(biāo)右鍵,從下拉菜單中點(diǎn)擊“添加文件到組源組1”選項(xiàng),在彈出的對話框中,選擇文件類型為“All files”,再選中D1.asm文件,再點(diǎn)擊“添加”,然后關(guān)閉對話框,此時(shí)文件就添加完成了。4設(shè)置選項(xiàng)點(diǎn)擊菜單欄中的“工程”選項(xiàng),在下拉菜單中選擇“為目標(biāo)目標(biāo)1設(shè)置選項(xiàng)”,在彈出的對話框中,先打開“輸出”標(biāo)簽頁,選中“生成HEX文件”項(xiàng),然后“確定”,再打開“調(diào)試”標(biāo)簽頁,在此調(diào)試頁可設(shè)定此次調(diào)試是使用軟件仿真還是使用仿真器仿真。若要使用仿真器仿真,則要選中右半邊圓圈點(diǎn)擊,并點(diǎn)選使用“WAVE V series MCS51 Driver”仿真器,同時(shí)勾選全部選項(xiàng);然后點(diǎn)擊“設(shè)置”按鈕,在彈出的“仿真器設(shè)置”對話框中,選擇仿真器“SH51”,選擇CPU “AT89S52”,手工輸入晶體頻率(Hz)“12000000”;同時(shí)打開“仿真頭設(shè)置”對話框,勾選“P0、P2口僅做為I/O使用”和“時(shí)鐘輸出端XATL2輸出低”;點(diǎn)擊“好”,確認(rèn)設(shè)置完成退出。這樣就可以進(jìn)行硬件仿真了。5編輯、編譯源程序文件編輯窗口輸入、編輯完源程序后,保存到磁盤上。點(diǎn)擊編譯工具欄中有兩個(gè)向下小箭頭的圖標(biāo)對源程序進(jìn)行編譯(或按F7快捷鍵),編譯成功后,會在左下方的信息輸出窗口中出現(xiàn)“正在匯編,0錯(cuò)誤,0警告”,表示源程序沒有錯(cuò)誤,沒有警告,可以運(yùn)行調(diào)試了。若編寫的源程序有錯(cuò)誤,則在左下方的信息輸出窗口中有錯(cuò)誤報(bào)告出現(xiàn),雙擊錯(cuò)誤行,會在文件編輯窗口定位到出錯(cuò)的位置,將錯(cuò)誤改正后,再進(jìn)行匯編,直至編譯成功。6.調(diào)試運(yùn)行程序直接點(diǎn)擊調(diào)試快捷圖標(biāo)(或Ctrl+F5),進(jìn)入調(diào)試模式,在調(diào)試和運(yùn)行工具欄中可采用“全速運(yùn)行”F5鍵、“單步跟蹤運(yùn)行”F11鍵、“單步運(yùn)行”F10、運(yùn)行到當(dāng)前行、“設(shè)置斷點(diǎn)運(yùn)行”等方式調(diào)試運(yùn)行程序。實(shí)驗(yàn)一、數(shù)據(jù)傳送及輸入輸出接口1、實(shí)驗(yàn)?zāi)康?.1 掌握51單片機(jī)數(shù)據(jù)傳送指令;1.2 熟悉51單片機(jī)匯編語言程序設(shè)計(jì)方法;1.3 掌握Keil 集成開發(fā)環(huán)境的使用;1.4 練習(xí)51單片機(jī)匯編語言程序的編輯、匯編和模擬調(diào)試。2、實(shí)驗(yàn)內(nèi)容2.1 Keil集成開發(fā)環(huán)境練習(xí)通過運(yùn)行下列練習(xí)程序?qū)W習(xí)Keil集成開發(fā)環(huán)境的使用練習(xí)程序1:ORG 0MOV SP,#60HMOV 30H,#0AAHMOV DPTR,#0100HMOV A,#55HMOVX DPTR,AMOV R0,#30HMOV A,R0PUSH ACCMOV DPTR,#0100HMOVX A, DPTRMOV 40H,30HMOV R0,APOP ACCMOVX DPTR,AMOV R5,40HMOV R6,30HSJMP $END練習(xí)程序2:ORG 0MOV SP,#60HMOV P1,#0FFHMOV R0,#40HMOV R2,#10LOOP1: MOV A,P1MOV R0,AINC R0DJNZ R2,LOOP1MOV R0,#40HMOV R2,#10LOOP2: MOV A,R0MOV P2,AINC R0DJNZ R2,LOOP2SJMP $ END2.2 數(shù)據(jù)傳送類程序設(shè)計(jì)1)設(shè)計(jì)數(shù)據(jù)區(qū)清零程序,將片內(nèi)RAM 20H5FH單元清零。2) 設(shè)計(jì)數(shù)據(jù)塊傳送程序,將片內(nèi)RAM 30H3FH單元的數(shù)據(jù)順序傳送到片內(nèi)RAM 50H5FH單元。3)設(shè)計(jì)數(shù)據(jù)塊傳送程序,將片內(nèi)RAM50H5FH單元的數(shù)據(jù)順序傳送到片外RAM 1000H100FH單元。4)自行設(shè)計(jì)能完成一定數(shù)據(jù)傳送功能的程序。3、參考程序流程圖見圖11和圖12。4、實(shí)驗(yàn)步驟4.1 實(shí)驗(yàn)前根據(jù)實(shí)驗(yàn)內(nèi)容要求,參考程序流程圖設(shè)計(jì)匯編語言源程序,撰寫實(shí)驗(yàn)預(yù)習(xí)報(bào)告。4.2 運(yùn)行練習(xí)程序。4.2.1練習(xí)程序1在PC機(jī)上,啟動Keil集成開發(fā)環(huán)境,建立一個(gè)新的工程;建立保存文件;添加文件;在文件編輯窗口輸入、編輯練習(xí)程序1。在“為目標(biāo)目標(biāo)1設(shè)置選項(xiàng)”時(shí),在調(diào)試頁選擇此次調(diào)試是使用軟件仿真;編譯建后,點(diǎn)擊調(diào)試快捷圖標(biāo)即可運(yùn)行調(diào)試程序,用單步跟蹤運(yùn)行F11鍵運(yùn)行程序。運(yùn)行前觀察DPTR、累加器A、SP、工作寄存器、內(nèi)部RAM30H、40H單元和外部RAM0100H單元的值,運(yùn)行程序后再重新觀察上述寄存器和存儲單元內(nèi)容的變化,記錄每條指令的運(yùn)行結(jié)果,說明該程序的功能。4.2.2 練習(xí)程序21)接線 使用8排導(dǎo)線將RC51核心板單片機(jī)的P2口的P2.0P2.7與主板上J4口的LED1LED8發(fā)光二極管相連接; 使用8排導(dǎo)線將GC51核心板單片機(jī)的P1口的P1.0P1.7與主板上J1口的SW1SW8撥動開關(guān)相連接。 連接仿真器與PC機(jī)的連線,接通實(shí)驗(yàn)箱的電源。 2)輸入程序在PC機(jī)上,啟動Keil集成開發(fā)環(huán)境,建立一個(gè)新的工程;建立保存文件;添加文件;在文件編輯窗口輸入、編輯練習(xí)程序2。在“為目標(biāo)目標(biāo)1設(shè)置選項(xiàng)”時(shí),在調(diào)試頁選擇此次調(diào)試是使用仿真器仿真,點(diǎn)擊設(shè)置鍵設(shè)置參數(shù),按OK鍵退出。編譯后調(diào)試程序。3)調(diào)試程序點(diǎn)擊調(diào)試快捷圖標(biāo)運(yùn)行、調(diào)試程序,用單步跟蹤運(yùn)行F11鍵單步運(yùn)行程序。每執(zhí)行一條指令觀察相應(yīng)寄存器、或存儲單元、或I/O口的狀態(tài),在執(zhí)行MOV A,P1指令之前,隨意撥動SW1SW8開關(guān),記錄每條指令的運(yùn)行結(jié)果,說明該程序的功能。4.3調(diào)試數(shù)據(jù)傳送程序編輯數(shù)據(jù)傳送程序1),編譯后,點(diǎn)擊調(diào)試快捷圖標(biāo)啟動調(diào)試命令,運(yùn)行、調(diào)試程序。學(xué)習(xí)用單步跟蹤運(yùn)行F11鍵、全速運(yùn)行F5鍵、設(shè)置斷點(diǎn)運(yùn)行等方式運(yùn)行程序。檢查片外RAM現(xiàn)場和相關(guān)寄存器的內(nèi)容,記錄每條指令的運(yùn)行結(jié)果。編輯數(shù)據(jù)傳送程序2),編譯后,點(diǎn)擊調(diào)試快捷圖標(biāo)啟動調(diào)試命令運(yùn)行、調(diào)試程序,在片內(nèi)RAM 30H區(qū)放置16個(gè)數(shù),依次為11H、22H、33H、44H、55H、66H、77H、88H、99H、0AAH、0BBH、0CCH、0DDH、0EEH、0FFH, 00H,運(yùn)行程序。檢查片內(nèi)RAM現(xiàn)場和相關(guān)寄存器的內(nèi)容,記錄每條指令的運(yùn)行結(jié)果。編輯數(shù)據(jù)傳送類程序3),編譯后,點(diǎn)擊調(diào)試快捷圖標(biāo)啟動調(diào)試命令運(yùn)行、調(diào)試程序,在片內(nèi)RAM 50H區(qū)放置16個(gè)數(shù),依次為11H、22H、33H、44H、55H、66H、77H、88H、99H、0AAH、0BBH、0CCH、0DDH、0EEH、0FFH, 00H,運(yùn)行程序。檢查片外RAM現(xiàn)場和相關(guān)寄存器的內(nèi)容,記錄每條指令的運(yùn)行結(jié)果。5、實(shí)驗(yàn)報(bào)告要求5.1 整理本實(shí)驗(yàn)設(shè)計(jì)的各個(gè)程序,編寫實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告格式見附錄1。5.2程序清單要求,按反匯編格式,在助記符指令的左端列出各指令代碼的地址和指令代碼,在助記符指令的右端寫出指令注釋。5.3 描述各程序運(yùn)行結(jié)果。5.4 畫出各程序流程圖。6、思考題設(shè)計(jì)數(shù)據(jù)塊傳送程序,將片外RAM的2000H201FH單元的數(shù)據(jù)循環(huán)傳送到片外RAM 1050H106FH單元。開始設(shè)數(shù)據(jù)區(qū)地址指針R0=20H設(shè)計(jì)數(shù)器初值 R2=40H0(R0)R2-1R2,R2=0?結(jié)束R0+1R0開始設(shè)數(shù)據(jù)區(qū)地址指針移地址指針設(shè)計(jì)數(shù)器初值取源數(shù)據(jù)區(qū)數(shù)據(jù)送入目的數(shù)據(jù)區(qū)傳送結(jié)束?結(jié)束NYNY圖11 數(shù)據(jù)區(qū)清零程序流程圖 圖 12 數(shù)據(jù)塊傳送程序流程圖 實(shí)驗(yàn)二、常用數(shù)據(jù)處理程序設(shè)計(jì)1、實(shí)驗(yàn)?zāi)康?.1、熟悉51單片機(jī)匯編語言程序設(shè)計(jì)方法;1.2、熟悉51單片機(jī)常用子程序的設(shè)計(jì)方法;1.3、熟悉匯編程序偽指令的使用;1.4、練習(xí)51匯編語言程序的編輯、匯編和模擬調(diào)試。2、實(shí)驗(yàn)內(nèi)容2.1 單字節(jié)數(shù)據(jù)表查表程序設(shè)計(jì)應(yīng)用數(shù)據(jù)指針DPTR設(shè)計(jì)查表程序,在程序存儲器2000H設(shè)一單字節(jié)數(shù)據(jù)表(表格長度小于256字節(jié),使用匯編DB偽指令置數(shù)),根據(jù)累加器A 中的查表參數(shù)(或序號)查找對應(yīng)值送入R0寄存器中。 2.2 雙字節(jié)數(shù)據(jù)表查表程序設(shè)計(jì)應(yīng)用數(shù)據(jù)指針DPTR設(shè)計(jì)查表程序,在程序存儲器2000H設(shè)一雙字節(jié)數(shù)據(jù)表(表格長度小于128字節(jié),每個(gè)元素兩個(gè)字節(jié),使用匯編DW偽指令置數(shù)),根據(jù)累加器A中的查表參數(shù)(或序號)查找對應(yīng)值送入R0、R1寄存器中。2.3 多字節(jié)十六進(jìn)制數(shù)加法子程序設(shè)計(jì) 設(shè)計(jì)N字節(jié)的無符號十六進(jìn)制數(shù)加法子程序。將寄存器R0和R1分別指向的片內(nèi)RAM中兩個(gè)N字節(jié)無符號十六進(jìn)制數(shù)(高位字節(jié)在前)相加,結(jié)果存放于被加數(shù)單元中。調(diào)用子程序前使寄存器R0、R1分別指向被加數(shù)及加數(shù)的高位字節(jié),字節(jié)數(shù)N存于R2中;子程序運(yùn)行后寄存器R0指向和的高位字節(jié)單元,CY為進(jìn)位。在主程序中為R0,R1,R2賦初值后,調(diào)用子程序。2.4 求16個(gè)無符號十六進(jìn)制數(shù)之和設(shè)計(jì)N(N256)字節(jié)無符號十六進(jìn)制數(shù)求和子程序。在片內(nèi)RAM從30H單元開始存放了16個(gè)無符號十六進(jìn)制數(shù),調(diào)用子程序計(jì)算之和,將和的高字節(jié)存于B寄存器 ,和的低字節(jié)存于累加器A。在主程序中使R0指向片內(nèi)30H單元后調(diào)用子程序。2.5 求16個(gè)BCD碼之和設(shè)計(jì)N(N256)字節(jié)無符號BCD碼求和子程序。在片內(nèi)RAM從50H單元開始存放了16個(gè)無符號BCD碼,調(diào)用子程序計(jì)算之和,將和的高字節(jié)存于B寄存器 ,和的低字節(jié)存于累加器A。在主程序中使R1指向片內(nèi)50H單元后,調(diào)用子程序2.6 求16個(gè)無符號數(shù)的最大值設(shè)計(jì)N(N256)字節(jié)無符號十六進(jìn)制數(shù)求最大值子程序。在片內(nèi)RAM從30H單元開始存放了16個(gè)無符號十六進(jìn)制數(shù),調(diào)用子程序?qū)ふ易畲笾?,將最大值存于B寄存器 。在主程序中使R0指向片內(nèi)30H單元后,調(diào)用子程序。2.7 單字節(jié)十六進(jìn)制數(shù)轉(zhuǎn)換成BCD碼子程序設(shè)計(jì)單字節(jié)十六進(jìn)制數(shù)轉(zhuǎn)換BCD碼子程序。待轉(zhuǎn)換的單字節(jié)十六進(jìn)制數(shù)在累加器A中,轉(zhuǎn)換后的BCD碼的百位在B寄存器中,十位和個(gè)位在累加器A。在主程序中為累加器A賦值后調(diào)用子程序。2.8 單字節(jié)十六進(jìn)制數(shù)轉(zhuǎn)換成ASCII碼子程序設(shè)計(jì)單字節(jié)十六進(jìn)制數(shù)轉(zhuǎn)換ASCII碼子程序。待轉(zhuǎn)換的單字節(jié)十六進(jìn)制數(shù)在累加器A中。轉(zhuǎn)換后,高四位的ASCII碼在累加器A中,低四位的ASCII碼寄存器B中。在主程序中為累加器A賦值后調(diào)用子程序。2.9 單字節(jié)BCD碼轉(zhuǎn)換成十六進(jìn)制數(shù)子程序設(shè)計(jì)單字節(jié)BCD碼轉(zhuǎn)換成十六進(jìn)制數(shù)子程序。待轉(zhuǎn)換的單字節(jié)BCD碼在累加器A中。轉(zhuǎn)換后的十六進(jìn)制數(shù)仍在累加器A中。在主程序中為累加器A賦值后調(diào)用子程序。2.10 雙字節(jié)BCD碼整數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)子程序設(shè)計(jì)雙字節(jié)BCD碼轉(zhuǎn)換成十六進(jìn)制數(shù)子程序。待轉(zhuǎn)換的雙字節(jié)BCD碼在寄存器R3,R4中。轉(zhuǎn)換后的雙字節(jié)十六進(jìn)制數(shù)仍在寄存器R3,R4中。在主程序中為R3,R4賦值后調(diào)用子程序。2.11 數(shù)值統(tǒng)計(jì)子程序在片內(nèi)RAM從31H單元開始存放了一組十六進(jìn)制數(shù),數(shù)據(jù)長度存于30H中,要求分別統(tǒng)計(jì)將該組數(shù)據(jù)中的奇數(shù)個(gè)數(shù)和偶數(shù)個(gè)數(shù),將奇數(shù)個(gè)數(shù)存于40H單元,偶數(shù)個(gè)數(shù)存于32H單元。設(shè)計(jì)完成上述功能的子程序,在主程序中調(diào)用。2.12 數(shù)據(jù)分類子程序在片外RAM從2000H單元開始存放了一組十六進(jìn)制數(shù),數(shù)據(jù)長度為20H個(gè),要求將數(shù)值大于等于60H的數(shù)據(jù)順序送入片內(nèi)31H區(qū),將數(shù)值小于60H的數(shù)據(jù)順序送入片內(nèi)51H區(qū),分別統(tǒng)計(jì)兩類數(shù)據(jù)的個(gè)數(shù),將統(tǒng)計(jì)值分別存入30H單元和50H單元。設(shè)計(jì)完成上述功能的子程序,在主程序中調(diào)用。2.13 有符號數(shù)求和子程序在片內(nèi)RAM從41H單元開始存放了一組帶符號數(shù),數(shù)據(jù)長度存于40H中,要求將該組數(shù)據(jù)中的正數(shù)、負(fù)數(shù)分別求和,并統(tǒng)計(jì)負(fù)數(shù)的個(gè)數(shù),將正數(shù)之和存于30H、31H單元,負(fù)數(shù)之和存于32H、33H單元,統(tǒng)計(jì)的負(fù)數(shù)存于34H單元中。設(shè)計(jì)完成上述功能的子程序,在主程序中調(diào)用。2.14 求最小偶數(shù)程序設(shè)計(jì)一主程序,調(diào)用求最小偶數(shù)子程序,找出片內(nèi)RAM 40H為起始地址的連續(xù)10個(gè)存儲單元中的最小偶數(shù)并存入4FH單元。2.15 綜合數(shù)據(jù)轉(zhuǎn)換程序設(shè)計(jì)設(shè)計(jì)一主程序,調(diào)用雙字節(jié)BCD碼整數(shù)轉(zhuǎn)換十六進(jìn)制數(shù)的子程序,將片內(nèi)RAM 40H、41H單元的雙字節(jié)BCD碼整數(shù)轉(zhuǎn)換16進(jìn)制數(shù),送入48H、49H單元;再將此16進(jìn)制數(shù)轉(zhuǎn)換相對應(yīng)的ASCII碼,送入50H53H單元。4、實(shí)驗(yàn)步驟4.1 實(shí)驗(yàn)前根據(jù)指導(dǎo)教師選擇的實(shí)驗(yàn)內(nèi)容,設(shè)計(jì)匯編語言源程序,撰寫實(shí)驗(yàn)預(yù)習(xí)報(bào)告。4.2在PC機(jī)上,啟動Keil集成開發(fā)環(huán)境,建立一個(gè)新的工程;建立保存文件;添加文件;在文件編輯窗口輸入、編輯練習(xí)程序1。在“為目標(biāo)目標(biāo)1設(shè)置選項(xiàng)”時(shí),在調(diào)試頁選擇此次調(diào)試是使用軟件仿真;編譯建后,點(diǎn)擊調(diào)試快捷圖標(biāo)即可運(yùn)行調(diào)試程序,按程序設(shè)計(jì)要求在數(shù)據(jù)區(qū)設(shè)置程序運(yùn)行所需參數(shù),用全速運(yùn)行F5鍵、單步跟蹤運(yùn)行F11鍵、單步運(yùn)行F10、運(yùn)行到當(dāng)前行、設(shè)置斷點(diǎn)運(yùn)行等方式運(yùn)行程序,進(jìn)行程序調(diào)試。檢查相應(yīng)寄存器、存儲單元,觀察、記錄各條指令的運(yùn)行結(jié)果。5、實(shí)驗(yàn)報(bào)告要求整理本實(shí)驗(yàn)設(shè)計(jì)的各個(gè)程序,編寫實(shí)驗(yàn)報(bào)告,格式見附錄1。對應(yīng)各程序?qū)懗觯撼绦蛘f明(包括程序功能、入口條件、出口信息、占用資源),程序清單(要求在助記符指令的右端寫出指令注釋,運(yùn)行結(jié)果),程序流程圖,寫出各程序的運(yùn)行結(jié)果。6、思考題總結(jié)單片機(jī)應(yīng)用軟件的設(shè)計(jì)方法,程序調(diào)試的方法。實(shí)驗(yàn)三 外部中斷的應(yīng)用1、實(shí)驗(yàn)?zāi)康?.1學(xué)習(xí)51單片機(jī)的中斷功能、編程方法。1.2掌握51單片機(jī)的中斷過程。1.3學(xué)習(xí)51單片機(jī)仿真開發(fā)系統(tǒng)的使用方法。2、實(shí)驗(yàn)內(nèi)容利用單脈沖源(KEY8)產(chǎn)生外部中斷請求信號/INT1,在中斷服務(wù)子程序中讀入4個(gè)撥碼開關(guān)(SW1SW4)設(shè)定的數(shù)據(jù),輸出到4個(gè)LED發(fā)光二極管(LED1LED4)。3、實(shí)驗(yàn)設(shè)備與器材3.1 GCMCU通用單片機(jī)實(shí)驗(yàn)箱一臺;3.2 IBMPC機(jī)一臺。4、實(shí)驗(yàn)線路實(shí)驗(yàn)線路見 圖31 外部中斷線路5、實(shí)驗(yàn)步驟5.1實(shí)驗(yàn)前,根據(jù)實(shí)驗(yàn)內(nèi)容要求設(shè)計(jì)匯編語言源程序,撰寫實(shí)驗(yàn)預(yù)習(xí)報(bào)告。5.2連接GCMCU通用單片機(jī)實(shí)驗(yàn)箱1)使用4排導(dǎo)線將RC51核心板單片機(jī)的P1.0P1.3與主板上J4口的LED1LED4發(fā)光二極管的相連接;2)使用4排導(dǎo)線將RC51核心板單片機(jī)的P1.4P1.7與主板上J1口的SW1SW4撥動開關(guān)相連接;3)用導(dǎo)線將RC51核心板單片機(jī)的INT1(P3.3)與主板上J2口的KEY8連接,作為中斷觸發(fā)按鍵。5.3連接仿真器與PC機(jī)的連線,接通實(shí)驗(yàn)箱的電源,此時(shí)為硬件仿真調(diào)試準(zhǔn)備好了硬件環(huán)境。5.4在PC機(jī)上,啟動Keil集成開發(fā)環(huán)境,建立一個(gè)新的工程;建立保存文件;添加文件;設(shè)置選項(xiàng),在調(diào)試頁選擇此次調(diào)試是使用仿真器仿真;在文件編輯窗口輸入、編輯源程序;調(diào)試運(yùn)行程序。5.5 按全速運(yùn)行F5鍵,運(yùn)行程序,用撥碼開關(guān)設(shè)定數(shù)據(jù),按動中斷觸發(fā)按鍵(KEY8)申請中斷,觀察LED燈點(diǎn)亮的狀態(tài)是否與開關(guān)狀態(tài)相符。6、實(shí)驗(yàn)報(bào)告要求6.1整理本實(shí)驗(yàn)設(shè)計(jì)的程序,按匯編語言源程序的格式列出調(diào)試后的程序清單。6.2編寫程序說明文件,繪出程序框圖。6.3描述中斷后程序運(yùn)行的現(xiàn)象。6.4寫出思考題的答案。6.5提出對本實(shí)驗(yàn)的改進(jìn)意見。7、思考題7.1在外部中斷1(/INT1)被占用時(shí),不得不改用外部中斷0(/INT0)。請問電路圖和程序應(yīng)如何改動?7.2 本實(shí)驗(yàn)開關(guān)擲“0”時(shí),LED指示燈亮;開關(guān)擲“1”時(shí),LED指示燈滅,如何修改程序使開關(guān)擲“1”時(shí),LED指示燈亮。 圖 3-1 外部中斷線路實(shí)驗(yàn)四、定時(shí)器計(jì)數(shù)器的應(yīng)用1、實(shí)驗(yàn)?zāi)康?.1掌握51單片機(jī)定時(shí)器計(jì)數(shù)器初始化編程方法。1.2熟悉51單片機(jī)定時(shí)器計(jì)數(shù)器主要應(yīng)用方式的程序設(shè)計(jì)方法。1.3掌握51單片機(jī)中斷處理程序的設(shè)計(jì)方法。1.4掌握應(yīng)用定時(shí)器編程控制寶貝小車機(jī)器人完成巡航控制的方法。1.5學(xué)習(xí)51單片機(jī)單片機(jī)仿真開發(fā)系統(tǒng)的使用方法。2、實(shí)驗(yàn)原理2.1 定時(shí)器/計(jì)數(shù)器MCS51單片機(jī)內(nèi)部有兩個(gè)完全獨(dú)立的16位的定時(shí)器/計(jì)數(shù)器。定時(shí)器的定時(shí)功能是通過計(jì)數(shù)的方式實(shí)現(xiàn)的,計(jì)數(shù)脈沖來自單片機(jī)內(nèi)部,每一個(gè)機(jī)器周期提供一個(gè)計(jì)數(shù)脈沖。定時(shí)器工作于方式1(16位計(jì)數(shù)器)時(shí),可獲得最大的定時(shí)時(shí)間為Tmax21612/fosc。當(dāng)單片機(jī)的振蕩頻率fosc12MHz時(shí),Tmax6553612/12MHz65.536ms。計(jì)數(shù)器的計(jì)數(shù)功能是對T0/T1引腳輸入的脈沖信號的下降沿計(jì)數(shù),至少需要兩個(gè)機(jī)器周期記錄一個(gè)脈沖信號,因此計(jì)數(shù)器工作于方式1(16位計(jì)數(shù)器)時(shí),最大的計(jì)數(shù)頻率為fmaxfosc/24。當(dāng)單片機(jī)的振蕩頻率fosc12MHz時(shí),fmax12MHz/240.5MHz。2.2 機(jī)器人伺服電機(jī)的轉(zhuǎn)動控制原理圖4-1 電機(jī)轉(zhuǎn)速為零的控制信號時(shí)序圖控制寶貝車機(jī)器人行走需要給機(jī)器人的伺服電機(jī)發(fā)出連續(xù)的脈沖信號,圖4-1為機(jī)器人的伺服電機(jī)在轉(zhuǎn)速為零時(shí)的控制信號時(shí)序圖,圖4-2為機(jī)器人的伺服電機(jī)在順時(shí)針全速旋轉(zhuǎn)的1.3ms控制脈沖信號時(shí)序圖,圖4-3為機(jī)器人的伺服電機(jī)在逆時(shí)針全速旋轉(zhuǎn)的1.7ms控制脈沖信號時(shí)序圖。伺服電機(jī)安裝在機(jī)器人底盤的兩側(cè),一個(gè)順時(shí)針旋轉(zhuǎn)而另一個(gè)逆時(shí)針旋轉(zhuǎn),則機(jī)器人沿直線運(yùn)動。如果兩個(gè)伺服電機(jī)同時(shí)向一個(gè)方向旋轉(zhuǎn),則機(jī)器人原地旋轉(zhuǎn)。可利用單片機(jī)的定時(shí)器/計(jì)數(shù)器發(fā)出時(shí)序精確的脈沖信號控制機(jī)器人行走。例如控制機(jī)器人沿直線全速運(yùn)動,需要在單片機(jī)的P1.0引腳輸出1.3ms的連續(xù)脈沖,在P1.1引腳輸出1.7ms的連續(xù)脈沖序列給伺服電機(jī)??墒褂枚〞r(shí)器/計(jì)數(shù)器在P1.0引腳發(fā)出高電平,P1.1引腳發(fā)出低電平,1.3ms之后使P1.0引腳變低,立刻在P1.1引腳發(fā)出高電平,1.7ms后使其變低,20ms后在重復(fù)上述過程。則機(jī)器人沿直線全速運(yùn)動。寶貝車機(jī)器人的單片機(jī)為了適應(yīng)串行通訊的傳輸速率,振蕩頻率fosc11.0592MHz。圖4-3 1.7ms的連續(xù)脈沖序列使電機(jī)逆時(shí)針全速旋轉(zhuǎn)圖4-2 1.3 ms的控制脈沖序列使電機(jī)順時(shí)針全速旋轉(zhuǎn)3、實(shí)驗(yàn)內(nèi)容3.1 利用定時(shí)器計(jì)數(shù)器T0和工作寄存器串連達(dá)到秒級延時(shí)利用8051定時(shí)器/計(jì)數(shù)器實(shí)現(xiàn)秒級定時(shí),控制連接在P1口上的8個(gè)LED燈順序點(diǎn)亮,即要求每隔N秒,依次使一個(gè)LED燈點(diǎn)亮。為獲得較大的定時(shí)時(shí)間(秒級),可利用定時(shí)器方式1定時(shí),溢出中斷,軟件計(jì)數(shù)的方法。即:設(shè)定定時(shí)器定時(shí)50ms,時(shí)間到計(jì)數(shù)器溢出申請中斷,在中斷服務(wù)程序中利用寄存器計(jì)數(shù)。則定時(shí)時(shí)間Tmax定時(shí)器的定時(shí)時(shí)間寄存器計(jì)數(shù)值。定時(shí)器1秒延時(shí)的實(shí)現(xiàn):定時(shí)器定時(shí)50ms,寄存器減1計(jì)數(shù)20次。定時(shí)時(shí)間T50ms201s定時(shí)器時(shí)間常數(shù)X的計(jì)算: 定時(shí)器定時(shí)時(shí)間t=50ms,fosc=12MHz,則定時(shí)常數(shù)X: Tx初值:THx=3CH , TLx=B0H 3.2 脈沖信號發(fā)生器的設(shè)計(jì)使用定時(shí)器T0以定時(shí)方式在P1.7引腳輸出周期為20ms,占空比為1:10的連續(xù)脈沖信號。連續(xù)脈沖信號的波形如圖31所示,要產(chǎn)生這樣的信號,可設(shè)置一個(gè)標(biāo)志位flag,通過標(biāo)志位的狀態(tài)來決定定時(shí)時(shí)間的長短。當(dāng)標(biāo)志flag1時(shí),定時(shí)器按2ms定時(shí),定時(shí)時(shí)間到后對P1.7取反;當(dāng)標(biāo)志flag0時(shí),定時(shí)器按18ms定時(shí),定時(shí)時(shí)間到后對P1.7取反;如此反復(fù)進(jìn)行即可產(chǎn)生要求的脈沖信號。 t1=2ms t1=2ms t1=2ms t2=18ms t2=18ms t2=18ms 圖44 占空比為1:10的脈沖信號3.3利用定時(shí)器/計(jì)數(shù)器控制機(jī)器人運(yùn)動利用單片機(jī)的定時(shí)器/計(jì)數(shù)器T0定時(shí),在P1.0和P1.1引腳發(fā)出連續(xù)的脈沖信號控制機(jī)器人前、后行走,左右轉(zhuǎn)向。4、實(shí)驗(yàn)設(shè)備與器材4.1 GCMCU通用單片機(jī)實(shí)驗(yàn)箱一臺;4.2 IBMPC機(jī)一臺。4.3函數(shù)信號發(fā)生器一臺;4.4示波器一臺。4.5 寶貝車機(jī)器人一輛。5、實(shí)驗(yàn)電路圖定時(shí)器實(shí)驗(yàn)電路原理圖見圖45。寶貝車接線如圖4-6所示。每個(gè)伺服電機(jī)的有三條控制電纜,白線用來傳送電機(jī)的控制信號,紅線是電源線,黑線是地線。接線時(shí)確保教學(xué)底板的三位開關(guān)撥至“0”位(關(guān)斷教學(xué)底板的電源)。將兩個(gè)伺服電機(jī)控制電纜的接線端子分別插入教學(xué)底板X5插座中,注意黑線對著Black, 圖45 定時(shí)器/計(jì)數(shù)器實(shí)驗(yàn)線路圖4-6伺服電機(jī)與教學(xué)底板連線示意圖6、實(shí)驗(yàn)步驟6.1實(shí)驗(yàn)前,根據(jù)實(shí)驗(yàn)內(nèi)容要求設(shè)計(jì)匯編語言源程序,撰寫實(shí)驗(yàn)預(yù)習(xí)報(bào)告。6.2連接GCMCU通用單片機(jī)實(shí)驗(yàn)箱使用8排導(dǎo)線將GC51核心板單片機(jī)的P1口的P1.0P1.7與主板上J4口的LED1LED8發(fā)光二極管相連接。6.3連接仿真器與PC機(jī)的連線,接通實(shí)驗(yàn)箱的電源,此時(shí)為硬件仿真調(diào)試準(zhǔn)備好了硬件環(huán)境。6.4秒級延時(shí)實(shí)驗(yàn)1)在PC機(jī)上,啟動Keil集成開發(fā)環(huán)境,建立一個(gè)新的工程;建立保存文件;添加文件;設(shè)置選項(xiàng),在調(diào)試頁選擇此次調(diào)試是使用仿真器仿真;在文件編輯窗口輸入、編輯源程序;調(diào)試運(yùn)行程序。2)按全速運(yùn)行F5鍵,運(yùn)行上述程序,觀察8個(gè)LED指示燈,依次由右向左點(diǎn)亮,無此狀態(tài)修改程序,直至正確。3)改變總的延時(shí)時(shí)間,運(yùn)行程序。觀察LED燈點(diǎn)亮的時(shí)間是否與預(yù)期的時(shí)間相符。6.5脈沖信號發(fā)生器實(shí)驗(yàn)1)示波器探頭接P1.7,調(diào)節(jié)示波器,測量幅值5V,頻率100Hz的脈沖信號。2)輸入、編輯源程序,編譯、運(yùn)行、調(diào)試程序。用示波器觀察P1.7輸出的脈沖信號頻率,直至運(yùn)行狀態(tài)正確為止。3)改變信號的占空比,運(yùn)行程序。觀察P1.7輸出的脈沖信號頻率是否與預(yù)期的頻率相符。6.6利用定時(shí)器/計(jì)數(shù)器控制機(jī)器人運(yùn)動1)連接伺服電機(jī)到教學(xué)底板,接線時(shí)確保教學(xué)底板的三位開關(guān)撥至“0”位(關(guān)斷教學(xué)底板的電源)。將兩個(gè)伺服電機(jī)控制電纜的接線端子分別插入教學(xué)底板X5插座中,注意黑線對著Black,如圖4-6所示。 2)在PC機(jī)上,啟動Keil集成開發(fā)環(huán)境,建立一個(gè)新的工程;建立保存文件;添加文件;設(shè)置選項(xiàng),在調(diào)試頁選擇此次調(diào)試是使用仿真器仿真;在文件編輯窗口輸入、編輯源程序;調(diào)試運(yùn)行程序。3)編輯完源程序后,保存到磁盤的自建目錄中。編譯所有工程文件命令,無錯(cuò)誤后,生成可執(zhí)行的 .Hex文件。4)下載可執(zhí)行文件到單片機(jī)(1)連接下載線,機(jī)器人程序通過連接到PC機(jī)并口上的ISP下載線來下載到教學(xué)板上的單片機(jī)內(nèi)。下載線一端(DB25的插頭)連接到PC機(jī)的并行接口上,另一端(雙列10P插頭)連接到寶貝小車機(jī)器人教學(xué)板上的程序下載口上(注意連接方向)。(2)電池的安裝圖4-7 處于關(guān)閉狀態(tài)的三位開關(guān)寶貝小車機(jī)器人使用五號堿性電池給機(jī)器人電機(jī)和教學(xué)板供電,在繼續(xù)下面的實(shí)驗(yàn)前,請先檢查機(jī)器人底部電池盒內(nèi)是否已經(jīng)裝好電池,并是否有正常的電壓輸出。如果沒有,請更換新的電池。更換過程中,確保每顆電池都按照塑料盒子里面標(biāo)記的電池極性(“”和“”)方向裝入。(3)教學(xué)板通電檢查圖4-8 處于1位狀態(tài)的三位開關(guān)教學(xué)底板上有一個(gè)三位開關(guān)(見圖4-7),當(dāng)開關(guān)撥到“0”位斷開教學(xué)底板電源。將三位開關(guān)由“0”位撥至“1”位,打開教學(xué)板電源,如圖4-8所示。檢查教學(xué)底板上標(biāo)有“Pwr”的綠色LED電源指示燈是否變亮。如果沒有,檢查電池盒里的電池和電池盒的接頭是否已經(jīng)插到教學(xué)板的電源插座上。開關(guān)由“0”位撥至“2”位,電源同時(shí)給教學(xué)底板和機(jī)器人的伺服電機(jī)供電供電。(4)下載可執(zhí)行文件到單片機(jī)點(diǎn)擊桌面上的ISP下載軟件圖標(biāo),打開ISP下載軟件窗口如圖4-9所示,并將通信參數(shù)設(shè)置成圖中所示的參數(shù)。點(diǎn)擊“Flash”,選擇要下載的可執(zhí)行HEX文件*.Hex,選擇后點(diǎn)擊編程開始下載。如果下載成功,則下面顯示“完成次數(shù):x 次”,否則顯示“失敗次數(shù): x 次”。如果芯片是第二次下載程序,請先選中“擦除”復(fù)選框。5)運(yùn)行程序程序下載后關(guān)閉寶貝小車機(jī)器人的電源,拔掉下載線,再次將開關(guān)撥致“1”位,F(xiàn)lash內(nèi)部的應(yīng)用程序開始運(yùn)行。按下機(jī)器人教學(xué)板上的“Reset”按鈕,可以使下載到單片機(jī)內(nèi)的程序重新運(yùn)行一次。觀察、記錄巡航小車的動作。直至程序運(yùn)行正確。改變小車參數(shù),重新錄入、編輯、編譯,下載、運(yùn)行,觀察、記錄巡航小車的動作。6)修改程序使機(jī)器人可以完成前、后行走,左、右轉(zhuǎn)向及變速行走。圖4-9 ISP軟件下載窗口7、實(shí)驗(yàn)報(bào)告要求7.1整理本實(shí)驗(yàn)設(shè)計(jì)的程序,按匯編語言源程序的格式列出調(diào)試后的程序清單。7.2編寫程序說明文件,繪制程序框圖。7.3描述變換參數(shù)后程序運(yùn)行的現(xiàn)象。7.4寫出思考題的答案。7.5提出對本實(shí)驗(yàn)的改進(jìn)意見。8、思考題8.1本實(shí)驗(yàn)秒級延時(shí)的方法可獲得最大延時(shí)時(shí)間為多少?8.2如果使用外部引腳信號來控制定時(shí)器/計(jì)數(shù)器的啟動、停止應(yīng)如何設(shè)計(jì)程序和連接電路。8.3如何產(chǎn)生多路不同頻率的脈沖信號?8.4如何產(chǎn)生方波信號,設(shè)計(jì)相應(yīng)的程序。8.5如何用光電傳感器控制寶貝機(jī)器人循跡行走?實(shí)驗(yàn)五 機(jī)電設(shè)備控制實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康?.1掌握51單片機(jī)輸入/輸出口的應(yīng)用方式。1.2熟悉單片機(jī)硬件系統(tǒng)調(diào)試方法。1.3掌握利用單片機(jī)的I/O口控制蜂鳴器的一般方法。1.4掌握利用單片機(jī)的I/O口發(fā)出PWM信號,控制直流電機(jī)的轉(zhuǎn)動速度。1.5了解步進(jìn)電機(jī)的工作原理,掌握利用單片機(jī)I/O口控制步進(jìn)電機(jī)轉(zhuǎn)動和調(diào)速的方法。2、實(shí)驗(yàn)內(nèi)容2.1蜂鳴器實(shí)驗(yàn)利用P1.3控制(輸出3K到4K頻率的方波)實(shí)驗(yàn)箱上的蜂鳴器,使其發(fā)出不同頻率的聲音。設(shè)計(jì)程序利用定時(shí)器T0(方式1)控制每個(gè)音調(diào)的時(shí)間,定時(shí)器T1(方式2)控制音調(diào)的頻率。設(shè)計(jì)雙字節(jié)表TABLE1順序存放定時(shí)器T0用的每個(gè)音調(diào)奏響時(shí)間的時(shí)間常數(shù);設(shè)計(jì)單字節(jié)表TABLE2順序存放定時(shí)器T1用的每個(gè)音調(diào)頻率的時(shí)間常數(shù)。在T0中斷服務(wù)程序中查TABLE2表改變T1的時(shí)間常數(shù),改變音調(diào)。查TABLE1表改變T0的時(shí)間常數(shù),改變音調(diào)奏響時(shí)間;在T1中斷服務(wù)程序中翻轉(zhuǎn)P1.3的狀態(tài)。2.2步進(jìn)電機(jī)實(shí)驗(yàn)利用P1口控制實(shí)驗(yàn)箱上的四相步進(jìn)電機(jī)轉(zhuǎn)動。單片機(jī)發(fā)出脈沖信號,控制步進(jìn)電機(jī)定子的各相繞組以適當(dāng)?shù)臅r(shí)序通、斷電,使其作步進(jìn)式旋轉(zhuǎn)。調(diào)節(jié)脈沖信號的頻率可改變步進(jìn)電機(jī)的轉(zhuǎn)速。四相步進(jìn)電機(jī)各相繞組的通電順序可以單4拍(ABCD)、雙4拍(ABBCCDDA)和單雙八拍(AABBBCCCDDDA)的方式進(jìn)行,按這種順序切換,步進(jìn)電機(jī)轉(zhuǎn)子按順時(shí)針方向旋轉(zhuǎn)。若通電順序相反,則電機(jī)轉(zhuǎn)子按逆時(shí)針方向旋轉(zhuǎn)。單片機(jī)P1口的P1.0、P1.1、P1.2、P1.3分別接步進(jìn)電機(jī)的A、B、C、D四相。P1口輸出的脈沖信號序列可按輸出節(jié)拍設(shè)計(jì)成表格,查表控制步進(jìn)電機(jī)的轉(zhuǎn)動方向和轉(zhuǎn)速,使用定時(shí)器T1控制步進(jìn)電機(jī)每拍的輸出時(shí)間,可先設(shè)計(jì)間隔10ms輸出一個(gè)脈沖序列,實(shí)驗(yàn)中修改時(shí)間常數(shù),改變電機(jī)的轉(zhuǎn)速。綜合實(shí)驗(yàn)儀的步進(jìn)電機(jī)驅(qū)動器采用反向輸出的達(dá)林頓矩陣ULN2003。P1口輸出高電平使繞組通電。2.3 直流電機(jī)實(shí)驗(yàn)利用51單片機(jī)的P1口的P1.0,P1.1控制實(shí)驗(yàn)箱上的直流電機(jī)轉(zhuǎn)動。直流電機(jī)區(qū)的J30是直流電機(jī)的控制端,只有MOTO1為高電平時(shí),電機(jī)順時(shí)針轉(zhuǎn)動;MOTO2為高電平時(shí),電機(jī)逆時(shí)針轉(zhuǎn)動。其余狀態(tài)電機(jī)不轉(zhuǎn)??稍趩纹瑱C(jī)P1口的P1.0或P1.1引腳發(fā)出PWM信號,控制直流電機(jī)的轉(zhuǎn)速。PWM的周期可定為2ms,PWM的占空比可在2ms的2/108/10范圍內(nèi)選擇。即高電平脈沖的時(shí)間以200us的整數(shù)倍計(jì)數(shù),從28通過按鍵設(shè)定。定時(shí)器工作在方式2下,每200us產(chǎn)生一次溢出,在其中斷程序內(nèi)設(shè)一軟件計(jì)數(shù)器,統(tǒng)計(jì)中斷次數(shù)是否等于高電平脈沖的設(shè)定數(shù),如果等于,將高電平翻轉(zhuǎn)為低電平。如果中斷次數(shù)等于周期數(shù)-10,軟件計(jì)數(shù)器清零,重新輸出高電平。P1.5、P1.6、P1.7連接三個(gè)按鍵KEY1、KEY2及KEY3。程序運(yùn)行中查詢?nèi)存I的狀態(tài),按下KEY3改變直流電機(jī)的轉(zhuǎn)動速度(高電平脈沖的設(shè)定數(shù))。KEY1與KEY2控制直流電機(jī)的轉(zhuǎn)向, KEY1鍵按下控制直流電機(jī)正轉(zhuǎn),KEY2鍵按下控制直流電機(jī)反轉(zhuǎn)。3、實(shí)驗(yàn)設(shè)備和器材3.1 GCMCU通用單片機(jī)實(shí)驗(yàn)箱一臺;3.2 IBMPC機(jī)一臺。4、實(shí)驗(yàn)步驟4.1實(shí)驗(yàn)前,根據(jù)實(shí)驗(yàn)內(nèi)容要求設(shè)計(jì)匯編語言源程序。撰寫實(shí)驗(yàn)預(yù)習(xí)報(bào)告。4.2 蜂鳴器實(shí)驗(yàn)1)使用導(dǎo)線將GC51核心板單片機(jī)的P1口的P1.3與主板上蜂鳴器區(qū)的LS1的J53的“PUL”相連接。2)連接仿真器與PC機(jī)的連線,接通實(shí)驗(yàn)箱的電源。3)啟動Keil集成開發(fā)環(huán)境,建立一個(gè)新的工程;建立保存文件;添加文件;設(shè)置選項(xiàng),在調(diào)試頁選擇此次調(diào)試是使用仿真器仿真;在文件編輯窗口輸入、編輯源程序;調(diào)試運(yùn)行程序。傾聽蜂鳴器發(fā)出的聲音,直至程序運(yùn)行狀態(tài)正確為止。4.3步進(jìn)電機(jī)控制實(shí)驗(yàn)1)使用4排導(dǎo)線將GC51核心板單片機(jī)的P1口的P1.0P1.3與主板上步進(jìn)電機(jī)區(qū)的J31接口的A,B,C,D相連接;2)步進(jìn)電機(jī)電源開關(guān)JP4,接“ON”端,電源指示燈D10點(diǎn)亮。3)連接仿真器與PC機(jī)的連線,接通實(shí)驗(yàn)箱的電源。4)建立工程;建立保存文件;添加文件;設(shè)置選項(xiàng),在調(diào)試頁選擇此次調(diào)試是使用仿真器仿真;在文件編輯窗口輸入、編輯源程序;調(diào)試運(yùn)行程序。觀察步進(jìn)電機(jī)的轉(zhuǎn)動狀態(tài)。5)改變步進(jìn)電機(jī)每拍輸出的時(shí)間,觀察電機(jī)的轉(zhuǎn)動狀態(tài),記錄實(shí)驗(yàn)現(xiàn)象。4.4直流電機(jī)控制實(shí)驗(yàn)1)使用導(dǎo)線將GC51核心板單片機(jī)的P1口的P1.0、P1.1與主板上直流電機(jī)區(qū)的J30接口的MOTO1和MOTO2相連接。2)使用導(dǎo)線連接將GC51核心板單片機(jī)的P1口的P1.5、P1.6、P1.7與主板上J2口的的K1、K2及K3;3)直流電機(jī)電源開關(guān)JP3,接“ON”端,電源指示燈D5點(diǎn)亮。4)連接仿真器與PC機(jī)的連線,接通實(shí)驗(yàn)箱的電源。5)建立工程;建立保存文件;添加文件;設(shè)置選項(xiàng),在調(diào)試頁選擇此次調(diào)試是使用仿真器仿真;在文件編輯窗口輸入、編輯源程序;調(diào)試運(yùn)行程序。觀察電機(jī)的轉(zhuǎn)動狀態(tài)。6)按鍵改變直流電機(jī)的轉(zhuǎn)向及轉(zhuǎn)速,觀察電機(jī)的轉(zhuǎn)動狀態(tài),記錄實(shí)驗(yàn)現(xiàn)象。5、實(shí)驗(yàn)報(bào)告要求5.1整理本實(shí)驗(yàn)設(shè)計(jì)的程序,按匯編語言源程序的格式列出調(diào)試后的程序清單。5.2編寫程序說明文件,繪出程序框圖。5.3描述各程序運(yùn)行后的實(shí)驗(yàn)現(xiàn)象。5.4寫出思考題的答案。6、思考題6.1思考繼電器的用途,舉例說明。6.2思考如何通過程序來編寫音樂。6.3設(shè)計(jì)程序可通過按鍵和光電傳感器控制直流電機(jī)的轉(zhuǎn)動速度。6.4設(shè)計(jì)程序可通過按鍵控制步進(jìn)電機(jī)的轉(zhuǎn)動方向,并調(diào)節(jié)轉(zhuǎn)動速度。 實(shí)驗(yàn)六、LED顯示器實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康?.1掌握并行輸入/輸出接口的應(yīng)用方法。1.2掌握7段LED顯示器的工作原理以及與51單片機(jī)的接口設(shè)計(jì)方法。1.3掌握7段LED顯示器動態(tài)顯示程序的設(shè)計(jì)方法。1.4學(xué)習(xí)應(yīng)用單片機(jī)仿真開發(fā)系統(tǒng)調(diào)試單片機(jī)系統(tǒng)硬件的使用方法。2、實(shí)驗(yàn)內(nèi)容2.1 4位LED顯示器動態(tài)顯示利用單片機(jī)的I/O口連接4位 7段LED顯示器動態(tài)顯示電路。單片機(jī)的P2口通過74LS244驅(qū)動后接共陰極顯示器的字型口,單片機(jī)的P1口的低4位通過UN2003反相驅(qū)動器連接共陰極顯示器的字位口。2.2程序設(shè)計(jì)要求:1)設(shè)計(jì)4位LED顯示器動態(tài)掃描子程序,可顯示4位16進(jìn)制數(shù),設(shè)定51單片機(jī)片內(nèi)RAM 30H33H作為顯示緩沖區(qū)。2)設(shè)計(jì)主程序,向顯示緩沖區(qū)設(shè)置數(shù)據(jù),循環(huán)調(diào)用動態(tài)顯示子程序,顯示顯示緩沖區(qū)中的數(shù)據(jù)。3)設(shè)計(jì)主程序,統(tǒng)計(jì)P3.4連接的微動開關(guān)S1的按動次數(shù),轉(zhuǎn)換成BCD碼,送入顯示器顯示。3、實(shí)驗(yàn)設(shè)備與器材 3.1 GCMCU通用單片機(jī)實(shí)驗(yàn)箱一臺;3.2 IBMPC機(jī)一臺。4、實(shí)驗(yàn)連線圖 實(shí)驗(yàn)電路原理圖見圖6-1 顯示器接口電路。5、實(shí)驗(yàn)步驟5.1實(shí)驗(yàn)前,根據(jù)實(shí)驗(yàn)內(nèi)容要求設(shè)計(jì)匯編語言源程序,撰寫實(shí)驗(yàn)預(yù)習(xí)報(bào)告。5.2連接GCMCU通用單片機(jī)實(shí)驗(yàn)箱1)使用4排導(dǎo)線將GC51核心板單片機(jī)的P1口的P1.0P1.3與主板上動態(tài)掃描數(shù)碼管區(qū)的J5位選口的A0A3相連接;2)使用8排導(dǎo)線將GC51核心板單片機(jī)的P2口的P2.0P2.7與主板上動態(tài)掃描數(shù)碼管區(qū)的J6段選口相連接;3)連接仿真器與PC機(jī)的連線,接通實(shí)驗(yàn)箱的電源。5.3調(diào)試電路1)在PC機(jī)上,啟動Keil集成開發(fā)環(huán)境,建立一個(gè)新的工程;建立保存文件;添加文件;在文件編輯窗口輸入下列程序:ORG0MOVA,#7FHMOV P2,AMOVA,#01MOVR2,#4LOOP:MOV P1,ARLADJNZR2,LOOPNOPEND2)設(shè)置選項(xiàng),在調(diào)試頁選擇此次調(diào)試是使用仿真器仿真;編輯源程序;調(diào)試運(yùn)行程序,按單步跟蹤運(yùn)行F11鍵,運(yùn)行上述程序,觀察LED顯示器,應(yīng)該有一個(gè)8字由左向右移動,無此狀態(tài)檢查線路,直至正確。5.4動態(tài)顯示程序1)再建立工程;建立保存文件;添加文件;設(shè)置選項(xiàng),在調(diào)試頁選擇此次調(diào)試是使用仿真器仿真;在文件編輯窗口輸入、編輯源程序;調(diào)試運(yùn)行程序。2)采用全速運(yùn)行F5鍵、單步跟蹤運(yùn)行F11鍵、單步運(yùn)行F10、設(shè)置斷點(diǎn)運(yùn)行等方式運(yùn)行程序調(diào)試程序。觀察LED顯示器的顯示狀態(tài),直至程序運(yùn)行正確。3)改變軟件延時(shí)的時(shí)間,運(yùn)行程序。觀察LED顯示器的顯示狀態(tài)。記錄實(shí)驗(yàn)現(xiàn)象。5.5按鍵計(jì)數(shù)顯示程序1)使用導(dǎo)線把P3.4與J2口的KEY8連接;2)調(diào)試運(yùn)行顯示微動開關(guān)K8按動次數(shù)的程序。6、實(shí)驗(yàn)報(bào)告要求6.1整理本實(shí)驗(yàn)設(shè)計(jì)的程序,按匯編語言源程序的格式列出調(diào)試后的程序清單。6.2編寫程序說明文件,繪出程序框圖。6.3描述變換時(shí)間后程序運(yùn)行的現(xiàn)象。6.4寫出思考題的答案。6.5提出對本實(shí)驗(yàn)的改進(jìn)意見。7、思考題7.1試編制除能顯示09、AF的字符外,還可顯示H、L、P、R、U、Y、G、字符的顯示子程序。7.2試編制顯示子程序,要求從顯示器的第一位開始顯示某個(gè)數(shù)字,然后一位位左移,輪流在4位顯示器中循環(huán)顯示一遍。實(shí)驗(yàn)七、模/數(shù)轉(zhuǎn)換實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康?.1了解逐次逼進(jìn)式A/D轉(zhuǎn)換器的轉(zhuǎn)換原理及ADC0809芯片的工作原理。1.2掌握ADC0809與80C51單片機(jī)接口電路的設(shè)計(jì)方法及轉(zhuǎn)換程序的設(shè)計(jì)方法。1.3學(xué)習(xí)應(yīng)用單片機(jī)仿真開發(fā)系統(tǒng)調(diào)試單片機(jī)系統(tǒng)硬件的使用方法。2、實(shí)驗(yàn)內(nèi)容2.1采用總線方式擴(kuò)展ADC0809,ADC0809的端口地址通過線譯碼電路形成。ADC0809使用高位地址線選擇模擬量輸入通道。中斷方式輸入轉(zhuǎn)換后的數(shù)據(jù),即EOC通過反相器接89S52的INT1。2.2通過單步運(yùn)行延時(shí)采集程序進(jìn)行ADC0809的基本性能實(shí)驗(yàn)。即在ADC0809選定的模擬量輸入通道中輸入模擬電壓,通過單步運(yùn)行啟動ADC0809通道0 A/D轉(zhuǎn)換的輸出指令,及輸入指令讀入轉(zhuǎn)換后的數(shù)字量,填入表71中與理論值進(jìn)行比較。2.3設(shè)計(jì)連續(xù)數(shù)據(jù)采集程序,中斷方式讀入數(shù)據(jù),間隔50ms(89S52內(nèi)部定時(shí)器T0定時(shí))連續(xù)對0通道啟動兩次A/D轉(zhuǎn)換,將兩次讀入的數(shù)據(jù)求平均值,送入P1口連接的8個(gè)LED發(fā)光二極管顯示,同時(shí)送入片內(nèi)20H區(qū)順序存放,4秒鐘后停止采集。3、實(shí)驗(yàn)設(shè)備與器材3.1 GCMCU通用單片機(jī)實(shí)驗(yàn)箱一臺;3.2 IBMPC機(jī)一臺。3.3多位數(shù)字萬用表3.4函數(shù)信號發(fā)生器一臺;3.5示波器一臺。4、實(shí)驗(yàn)連線圖實(shí)驗(yàn)電路原理圖見圖7-1。5、實(shí)驗(yàn)步驟5.1實(shí)驗(yàn)前,根據(jù)實(shí)驗(yàn)內(nèi)容要求設(shè)計(jì)匯編語言源程序,撰寫實(shí)驗(yàn)預(yù)習(xí)報(bào)告。5.2連接GCMCU通用單片機(jī)實(shí)驗(yàn)箱1)使用導(dǎo)線把GC51核心板的P3.6()連接到擴(kuò)展板的2#引腳; 2)使用導(dǎo)線把GC51核心板的P2.7連接到擴(kuò)展板的3#和5#引腳;3)使用導(dǎo)線把GC51核心板的P3.7()連接到擴(kuò)展板的6#引腳; 4)使用導(dǎo)線把“并行AD轉(zhuǎn)換”區(qū)的START和ALE連接到擴(kuò)展板的1#引腳; 5)使用導(dǎo)線把“并行AD轉(zhuǎn)換”區(qū)的OE連接到擴(kuò)展板的4#引腳; 6)使用導(dǎo)線把GC51核心板的P3.3()連接到擴(kuò)展板的10#引腳;7)使用導(dǎo)線把“并行AD轉(zhuǎn)換”區(qū)的EOC連接到擴(kuò)展板的8#引腳,并把8#、9#引腳短接; 8 )使用導(dǎo)線把GC51核心板的ALE(FJP2)連接到“并行AD轉(zhuǎn)換”區(qū)的

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論