版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、聲引舜Z上承本科生實驗報告實驗課程單片機實驗學(xué)院名稱信息科學(xué)與技術(shù)學(xué)院專業(yè)名稱物聯(lián)網(wǎng)工程學(xué)生姓名曹林鑫學(xué) 生學(xué)號 學(xué)1413060301指導(dǎo)教師謝興紅實驗地點6B607實驗成績二。一六年九月二六年十二月實驗一冒泡排序(匯編)一.實驗?zāi)康恼莆諉纹瑱C的匯編語言排序程序。二.實驗內(nèi)容將單片機內(nèi)部的數(shù)據(jù)進行排序,且使用匯編語言。三.實驗要求根據(jù)實驗內(nèi)容編寫一個程序,數(shù)據(jù)排列順序要求是從小到大。四.實驗說明先在片內(nèi)RAM中存儲一組數(shù)據(jù),重復(fù)地走訪過要排序的數(shù)據(jù),一次比較兩塊內(nèi)存上的數(shù)據(jù),如果他們的順序錯誤就把他們交換過來。走訪數(shù)據(jù)的工作是重復(fù)地進行直到?jīng)]有再需要交換,也就是說該列數(shù)據(jù)已經(jīng)排序完成。五.算
2、法分析若文件的初始狀態(tài)是正序的,一趟掃描即可完成排序。所需的關(guān)鍵字比較次數(shù)C和記錄移動次數(shù)M均達到最小值:。面由二“ 一 1, Mmin二°。所以,冒泡排序最好的時間復(fù)雜度為O (n)。若初始文件是反序的,需要進行n-1趟排序。每趟排序要進行n-i次關(guān)鍵字的比較(K i < n-1),且每次比較都必須移動記錄三次來達到交換記錄位置。在這種情況下, 比較和移動次數(shù)均達到最大值:Mm =嗎7 =。(島冒泡排序的最壞時間復(fù)雜度為 ,連? L綜上,因此冒泡排序總的平均時間復(fù)雜度為57六.實驗程序及分析ORG 0000HLJMP mainORG 0100Hmain:MOV 40H,#05
3、H/昭40H-44H中隨機存放五個立即數(shù)MOV 41H,#08HLOOP3:LOOP1:MOV 42H,#09HMOV 43H,#07HMOV 44H,#06HMOV R7,#04H/您制比較循環(huán)的次數(shù)MOV R6,#04HMOV R0,#40H/Jt向需要進行比較的數(shù)據(jù)的地址MOV R1,#41H/MOV A,R6MOV R7,ACLR ACLR CMOV A,R1MOV 49H,A/交換數(shù)據(jù)前的備份SUBB A,R0/用進位標志判斷兩數(shù)的大小JC LOOPLJMP LOOP4LOOP:MOV A, R0/R復(fù)交換前的備份數(shù)據(jù)MOV R1,AMOV R0,49HLOOP4:INC R0INC
4、 R1DJNZ R7,LOOP1/空制比較的次數(shù)DJNZ R6,LOOP3/空制比較的輪數(shù)LJMP $END六、實驗截圖排序前內(nèi)存中的數(shù)據(jù)Adctess 向iU3:0kS0:0:22334455觀0000000000000000Q00000000000DO000000):。d7:7;dooaooooonoooooodooooaooooaooooocooooonooooooo)mE:E;aoocfi口7ooaoooooojoooj口口caooco叩oooorrjomoooa:0k95:5:aoOCODDCOOOC0000口。0003FFCDQO0000DO0000DO口口0000D:QxK;C:
5、QO00QQOCFF0000QO叩DOOJ00印CO叩叩OQ叩00皿叩0000D:0«C3:3;QOOD0000OQ000000DO00DO00OQCO口口0000ODDOOODO0000D:OkDA:A;dooa00OOODOO5S0口DO00OD00OD000000000000DODO0000);0xFLL00ODOODOOOOO00OO0000000000DO0054OO5500DO000000排序后內(nèi)存的數(shù)據(jù)Mess |D:WH):0x50:0: ££ 55 44 33 22 OO 00 的 口0 00 00 00 OD 00 OD 口口 口0 OD 00
6、 00 OD OO 00 3:0x£7;7: 00 OD OD 00 00 OO OD 00 OQ 00 00 00 00 00 00 00 00 00 期 00 OD OO 00 ):0x7E:E: (IO 00 FF 07 皿 OO 00 00 00 00 00 00 00 00 00 Ofl DO 00 FF 00 CO OO 00 D:oi(gs:5: qo od on no oo oo oo oo oo oo oo ff oq oo oo oo 0口 on 口口 m oq oo od J:OxAC:C: ???00 口口 口口 FF CO 口口 叩 00 OD 00 00
7、00 00 口口 口口 GO OD 。0 00 00 OO 00 ):0xC3:3:皿 00 OD 00 OD QO CD 0。 QO OQ 皿 00 00 口0 口口 00 CO OD 口口 OD 0口 OO 00 );0xDl;A; OO 00 00 00 DO 叩叩叩叩叩叩 00 OU DO OQ 00 UU 00 口口 00 OU UO Q口 ):0xFl:l: DO 00 on 00 00 OO 00 00 00 00 00 00 00 00 00 oa 00 00 00 04 oa OO 00實驗二外部中斷一.實驗?zāi)康?、掌握單片機外部中斷的原理及過程。2、掌握單片機外部中斷程序的
8、設(shè)計方法。3、掌握單片機外部中斷時中斷方式的選擇方法。二、實驗內(nèi)容如下圖所示,P3.2設(shè)為輸入,P2設(shè)為輸出位,連有 8個發(fā)光二極管 D1D8。每當(dāng)發(fā)生外部中斷時,發(fā)光二極管以向下流水燈的方式點亮。分別選擇邊沿觸發(fā)外部中斷放是和電平觸發(fā)外部中斷方式兩種。三、編程提示1、P3 是8位準雙向口,具有雙重功能:第一功能和P1 一樣,作為輸入輸出口,也有字節(jié)操作和位操作兩種方式,每一位可分別定義為輸入或輸出;第二功能定義如下:P3.0RXD串行輸入口P3.1TXD串行輸出口P3.2INT0外部中斷0請求輸入線P3.3INT1外部中斷1請求輸入線P3.4T0定時器/計數(shù)器T0外部計數(shù)器脈沖輸入線P3.5
9、T1定時器/計數(shù)器T1外部計數(shù)器脈沖輸入線P3.6WR外部數(shù)據(jù)存貯器寫脈沖輸出線P3.7RD外部數(shù)據(jù)存貯器讀脈沖輸出線2、各中斷服務(wù)程序入口地址:外部中斷003H定時器/計數(shù)器T1溢出中斷0BH外部中斷113H定時器/計數(shù)器1BH串行口中斷23H3、外部中斷的產(chǎn)生條件中斷允許寄存器IE:EAESET1EX1ET0EX0(1)外部中斷源允許中斷(中斷 0: EX0=1 ;中斷1: EX1=1 )。(2) CPU 開中斷(EA=1 )。(3)外部中斷方式CPU發(fā)出中斷申請。4、外部中斷方式的選擇控制TCON :TF1TR1TF0TR0IE1IT1IE0IT0IT0是選擇文字則外部中斷 0請求(IN
10、T0 )邊沿觸發(fā)方式或電平觸發(fā)方式的控制位。前一方 式 IT0=1 ,后一方式 IT0=0。IT1是選擇外部中斷 1請求(INT1 )為邊沿觸發(fā)方式或電平觸發(fā)方式的控制位。前一方式IT1=1 ,后一方式 IT1=0。當(dāng)8031復(fù)位后,TCON被1# 0。5、外部中斷電路負脈沖作為中斷請求信號時,為了保證中斷的唯一性,必須加上消除開關(guān)抖動的電路或者去抖動延時程序, 保證每次只產(chǎn)生單脈沖,構(gòu)成邊沿觸發(fā)方式外部中斷電路。邊沿觸發(fā)的最大優(yōu)點在于不會丟失中斷。只要中斷請求負跳變的寬度大于1個機器周期,單片機就能夠采樣到中斷請求信號, 單片機將采樣到的信號瑣存到中斷請求標志寄存器中,硬件自動置IE0為1,
11、即使單片機暫時不響應(yīng),這個標志也不會丟失,只有在外部中斷響應(yīng)之后,硬件 才將IE0清除。低電平觸發(fā)的外部中斷與邊沿觸發(fā)的外部中斷,其中斷過程基本相似。 唯一不同在于中斷請求信號的保持與撤消。在邊沿觸發(fā)中,單片機 TCON寄存器專門有一位作它的請求標 志,當(dāng)負跳變后,單片機將中斷請求標志IE1 (INT1中斷為IE1, INT0中斷為IE0)自動置1,由IE1請求中斷,在響應(yīng)中斷時,又由單片機自動清除IE1 o但是對于電平觸發(fā)方式,單片機中沒有專門的請求標志,響應(yīng)中斷時也不能自動清除請求信號。在實際應(yīng)用中,常常是在單片機外增加一個觸發(fā)器作為中斷請求標志,當(dāng)中斷請求發(fā)生時置觸發(fā)器為0,使INT1為
12、低電平,在單片機響應(yīng)這個中斷后,利用軟件(占用另一根I/O線,仞如P3.1)發(fā)出復(fù)位脈沖,使該觸發(fā)器置1,撤消中斷請求。這種電路使請求中斷的低電平能夠保持足夠的時間, 一直到中斷發(fā)生為止, 因而不會丟失中斷請求。 低電平的時間又不致太長,只要進入中斷服務(wù)程序,在返回之前,就撤消請求信號,因而也不會產(chǎn)生多余的中斷動作。四、實驗器材仿真器、目標系統(tǒng)實驗板、直流電源五、實驗步驟1、邊沿觸發(fā)式外部中斷 0實驗(1) P3.2設(shè)為邊沿觸發(fā)方式,連接外部復(fù)位開關(guān),編程使每次中斷流水燈向下移 位一次,中斷程序中不延時去抖動,觀察結(jié)果。(2) P3.2設(shè)為邊沿觸發(fā)方式,連接外部復(fù)位開關(guān),編程使每次中斷流水燈向
13、下移 位一次,中斷程序中采用延時去抖動,觀察結(jié)果。(3) P3.3設(shè)為邊沿觸發(fā)方式,連接外部RS觸發(fā)器硬件去抖動的開關(guān),編程使每次中斷流水燈向下移位一次,中斷程序中不延時去抖動,觀察結(jié)果。(4) 平觸發(fā)式外部中斷實驗P3.3設(shè)為電平觸發(fā)方式,連接外部RS觸發(fā)器硬件去抖動的開關(guān),編程使每次中斷流水燈向下移位一次,中斷程序中不延時去抖動,觀察結(jié)果。六、C源程序清單#include <STC12C5A60S2.h>#define uchar unsigned charuchar i=0;uchar numi尸0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;
14、 void delay(uchar k );void main() EA=1;EX0=1;IT0=1;while(1) if(EX0=0)/delay(100);IE0=0;EX0=1;void int0() interrupt 0EX0=0;P2=numii;i+;if(i>8)i=0;void delay(uchar k )uchar x,y,z;for(x=k;x>0;x-) for(y=20;y>0;y-)for(z=250;z>0;z-);)七、總結(jié)1、邊沿觸發(fā)和電平觸發(fā)兩種方式中斷響應(yīng)的原理與區(qū)別邊沿觸發(fā):當(dāng)從高至低電平或從低至高電平轉(zhuǎn)變時,觸發(fā)產(chǎn)生;電平保
15、持多久都只產(chǎn)生一次。所以,邊沿觸發(fā)適合與以負脈沖形式輸入的外部中斷請求。電平觸發(fā):那么在電平時間內(nèi)中斷一直有效;因此如果在電平?jīng)]有恢復(fù)之前中斷程序就已經(jīng)執(zhí)行完成從而退出,那么會在退出后又再次進入中斷;但只要中斷沒有退出是不會重復(fù)觸發(fā)的。所以,電平觸發(fā)方式適合于外部中斷以電平輸入而且中斷服務(wù)能清除外部中斷源的 情況。2、實驗現(xiàn)象1、(1)實驗現(xiàn)象是,按鍵一次就會跳過幾個燈,也就是說按鍵一次并不是向后移一位 而是好幾位,這是因為按鍵沒有去抖動,所以會進入多次中斷導(dǎo)致。1、(2)按鍵一次,燈就向下移一位,這是通過軟件去抖動之后,按鍵按下后延時一段 時間,再來判斷中斷有沒有打開,所以按鍵一次只進入一次
16、中斷。1、(3)按鍵一次,燈就向下移一位,雖然沒有用按鍵去抖動,但是這個鍵在硬件上已 經(jīng)去抖,所以按鍵一次也是只進入一次中斷程序,所以會有這種現(xiàn)象。2、(1)由于是電平觸發(fā),所以在按下按鍵的時候,會有好多燈一起亮,比如低電平, 在低電平這段時間里, 會不斷地請求中斷, 所以就會進入很多次中斷, 在加上請求中斷的速 度快和LED燈有一定的的余暉,所以肉眼看起來就好像燈全是亮的。實驗三定時/計數(shù)器實驗一、實驗?zāi)康膶W(xué)習(xí)MCS-51內(nèi)部計數(shù)器的使用和編程方法。二、實驗內(nèi)容使用MCS-51內(nèi)部定時/計數(shù)器,定時一秒鐘,CPU運用定時中斷方式, 實現(xiàn)每一秒鐘輸 出狀態(tài)發(fā)生一次反轉(zhuǎn),即發(fā)光管每隔一秒鐘亮一次
17、。三、實驗要求根據(jù)實驗內(nèi)容編寫一個程序,并在實驗儀上調(diào)試和驗證。四、實驗說明關(guān)于內(nèi)部計數(shù)器的編程主要是定時常數(shù)的設(shè)置和有關(guān)控制寄存器的設(shè)置。內(nèi)部計數(shù)器在單片機中主要有定時器和計數(shù)器兩個功能。本實驗使用的是定時器,定時為一秒鐘。定時器/計數(shù)器有關(guān)的寄存器有工作方式寄存器 TMOX口控制寄存器TCON TMOD用于設(shè) 置定日器/計數(shù)器的工作方式0-3 ,并確定用于定時還是用于計數(shù)。 TCON主要功能是為定時 器在溢出時設(shè)定標志位,并控制定時器的運行或停止等。內(nèi)部計數(shù)器用作定時器時,是對機器周期計數(shù)。每個機器周期的長度是12個振蕩器周期。假設(shè)實驗系統(tǒng)的晶振是 12MHz程序工彳于方式2,即8位自動重
18、裝方式定時器,定時器 100uS中斷一次,所以定時常數(shù)的設(shè)置可按以下方法計算:機器周期=12+12MHz=1uS(256-定時常數(shù))X 1uS=100uS定時常數(shù)=156。然后對100uS中斷次數(shù)計數(shù)10000次,就是1秒鐘。內(nèi)部計數(shù)器用作計數(shù)器時,是對外部負脈沖進行計數(shù)。其中, 負脈沖從P3.4、P3.5端口 輸入的。每有一個負脈沖,計數(shù)器就加一。在本實驗的中斷處理程序中,因為中斷定時常數(shù)的設(shè)置對中斷程序的運行起到關(guān)鍵作 用,所以在置數(shù)前要先關(guān)對應(yīng)的中斷,置數(shù)完之后再打開相應(yīng)的中斷。本實驗需要用到CPU模塊(F3區(qū))和八位邏輯電平顯示模塊( B5區(qū))。五、實驗程序及分析程序流程圖如下:主程序
19、流程圖|中晰人口|取原PL1湍口T1中斷服務(wù)子程序T0中斷服務(wù)子程序?qū)嶒灣绦蛉缦?Tick equ 10000;10000x100us=1sT100us equ 156;100us時間常數(shù)(6M)C100us equ 30h;100us、50us記數(shù)單元Tuck equ 5000;5000x100us=0.5sLEDBuf bit 20h DIR bit P3.0 org 0000h ljmp Start org 000bhljmp T0Int;T0定時器中斷入口 :0138Horg 001bh;T1中斷入口地址:001BHcpl P1.1;T1中斷服務(wù)子程序reti地址 org 0100h0
20、100H Start:mov P3,0ffh;P3端口做輸入口,初始化要置 1mov TMOD, #62h;T0為方式2,定時器,T1為方式2,計數(shù)器clr EA;關(guān)中斷,置定時器的初值mov TH0, #T100usmov TL0, #T100usmov TH1, #0fdhmov TL1, #0fdhmov IE, #10001010b; EA=1, IT0 = 1, IT1 = 1setb TR0;開始定時setb TR1;開始計數(shù)clr LEDBufclr P1.0clr P1.1mov C100us, #27H ;#high(Tick)mov C100us+1, #10H ;#low
21、(Tick)0125H Loop: clr C mov C,DIR jnc Loop1 setb F0;F0=1,T=0.5sljmp Loop3012FH Loop1: clr F0;F0=0,T=1s0131H Loop3: mov c, LEDBuf mov P1.0, c ljmp Loop0138H T0Int:;T0定時器中斷子程序push PSW mov a, C100us+1 jnz Goon dec C100us0140H Goon:decC100us+1mova, C100usorla, C100us+1jnzExit;記數(shù)器不為0,返回jbF0,Loop2movC100us, #27H ; #high(Tick),記數(shù)器為0,重置記數(shù)器movC100us+1, #10H ; #low(Tick)ljmpLoop40154H Loop2:,記數(shù)器為0,重置記數(shù)器mov C
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市經(jīng)適房預(yù)售合同文本
- 個人求購沙船合同范例
- 插座面板購銷合同范例
- 平臺收購合同范例
- 合同范例中定義
- 掛車維修單面合同范例
- 委托安裝廣告合同范例
- 招募基地合同范例
- 材料加工定制合同范例
- 親屬無償租賃合同范例
- 銷售單模板(自動計算數(shù)字大寫、時間自動生成)
- 人教版四年級上冊數(shù)學(xué)【選擇題】專項練習(xí)100題附答案
- 鄉(xiāng)村振興背景下農(nóng)村電商發(fā)展策略研究
- 瓦斯隧道瓦斯監(jiān)測及檢測專業(yè)方案
- 最優(yōu)化計算智慧樹知到答案2024年華南理工大學(xué)
- 22G101三維彩色立體圖集
- 從創(chuàng)意到創(chuàng)業(yè)智慧樹知到期末考試答案章節(jié)答案2024年湖南師范大學(xué)
- 力的合成與分解 說課課件-2024-2025學(xué)年高一上學(xué)期物理人教版(2019)必修第一冊
- 建筑施工安全生產(chǎn)治本攻堅三年行動方案(2024-2026年)
- 瀝青路面養(yǎng)護銑刨施工技術(shù)規(guī)范.文檔
- 油浸式電力變壓器(電抗器)現(xiàn)場低頻加熱試驗導(dǎo)則
評論
0/150
提交評論