微控制器實驗報告

2021-03-04 04:24:41 字數 5978 閱讀 8840

微控制器原理及應用

實驗報告

班級:電子0911

學號:0720106114

姓名:徵安傑

2023年12月

實驗一 p1口輸入/輸出實驗

一、實驗目的

1、掌握p1口簡單使用,程式的簡單程式設計。

2、學習延時程式的編寫和使用。

二、實驗內容

p1口做輸出口,編寫程式,使p1口接的8個發光二極體l1—l8按16進製制加一方式點亮發光二極體。

三、實驗說明

1 p1口是準雙向口,它作為輸出口時與一般的雙向口使用方法相同,由準雙向口結構可知:當p1口作為輸入口時,必須先對它置高電平,使內部mos管截止,因內部上拉電阻是20kω—40kω,故不會對外部輸入產生影響。若不先對它置高,且原來是低電平,則mos管導通,讀入的資料是不正確的。

2 延時子程式的延時計算問題。 對於延時程式

delay :mov r6, #00h

delay1:mov r7, #80h

djnz r7, $

djnz r6, delay1

查指令表可知mov、djnz指令均需用兩個機器週期,而乙個機器週期時間長度為12/ 6.0mhz,所以該段指令執行時間為:((80+1)×256+1)×2×(12÷6000000)=132.

1ms四、實驗步驟

①p3 3用插針連至k1, p1 0—p1 7用插針連至l1—l8。

②從起始位址0540h開始連續執行程式(輸入0540後按exec鍵)。

③開關k1每撥動一次,l1—l8發光二極體按16進製制方式加一點亮。〖lm〗

五、實驗原理圖

六、實驗程式

*** 0540h

ha1s: mov a,#00h

ha1s1: jb p3.3,ha1s1

mov r2,#20h

lcall delay

jb p3.3,ha1s1

ha1s2: jnb p3.3,ha1s2

mov r2,#20h

lcall delay

jnb p3.3,ha1s2

inc a

push acc

cpl a

mov p1,a

pop acc

ajmp ha1s1

delay: push 02h

delay1: push 02h

delay2: push 02h

delay3: djnz r2,delay3

pop 02h

djnz r2,delay2

pop 02h

djnz r2,delay1

pop 02h

djnz r2,delay

retend七、實驗感想

通過本實驗,我掌握了p1口簡單使用,程式的簡單程式設計以及學會了延時程式的編寫和使用。實驗中,當p1口用作輸入口時,必須先對它置「1」。若不先對它置「1」,讀入的資料不一定正確。

實驗二外部中斷實驗

一、實驗目的

掌握工業順序控制程式的簡單程式設計,中斷的使用。

二、實驗內容

8032的p1 0—p1 6控制注塑機的七道工序,現模擬控制七隻發光二極體的點亮,高電平有效,設定每道工序時間轉換為延時,p3.4為開工啟動開關,低電平啟動。p3.

3為外故障輸入模擬開關,p3.3為0時不斷告警。p1.

7為報警聲音輸出,設定6道工序只有一位輸出,第七道工序三位有輸出。

三、實驗說明

實驗中用外部中斷0,編中斷服務程式的關鍵是:

1 保護進入中斷時的狀態,並在退出中斷之前恢復進入的狀態。

2 必須在中斷程式中設定是否允許中斷重入,即設定ex0位。

一般中斷程式進入時應保護psw、acc以及中斷程式使用但非其專用的暫存器,本實驗中未涉及。

四、實驗步驟

①p3.4連k1,p3.2連k2,p1.0—p1.6分別連到l1—l7,p1.7連sin(電子音響輸入端)。

②k1開關撥在上面,k2撥在上面。

③用連續方式從起始位址0580h開始執行程式(輸入0580後按exec鍵),此時應在等待開工狀態。

④k1撥至下面(顯低電平),各道工序應正常執行。

⑤k2撥至下面(低電平),應有聲音報警(人為設定故障)。 ⑥k2撥至上面(高電平),即排除故障,程式應從剛才報警的那道工序繼續執行。

五、實驗原理圖

六、實驗程式

*** 0013h

ljmp ha2s3

*** 0580h

ha2s: mov p1,#07fh

orl p3,#00h

ha2s1: jnb p3.4,ha2s1

orl ie,#84h

orl ip,#04h

mov psw,#00h

mov sp,#53h

ha2s2: mov p1,#07eh

acall ha2s7

mov p1,#07dh

acall ha2s7

mov p1,#07bh

acall ha2s7

mov p1,#077h

acall ha2s7

mov p1,#06fh

acall ha2s7

mov p1,#05fh

acall ha2s7

mov p1,#03fh

acall ha2s7

sjmp ha2s2

ha2s3: mov b,r2

ha2s4: mov p1,#07fh

mov 20h,#0a0h

ha2s5: setb p1.7

acall ha2s6

clr p1.7

acall ha2s6

djnz 20h,ha2s5

clr p1.7

acall ha2s6

jnb p3.2,ha2s4

mov r2,b

reti

ha2s6: mov r2,#06h

acall delay

retha2s7: mov r2,#30h

acall delay

retdelay: push 02h

delay1: push 02h

delay2: push 02h

delay3: djnz r2,delay3

pop 02h

djnz r2,delay2

pop 02h

djnz r2,delay1

pop 02h

djnz r2,delay

retend七、實驗感想

通過本實驗,我掌握了工業順序控制程式的簡單程式設計,中斷的使用。學會了外部中斷技術的基本使用方法,以及學會中斷處理程式的程式設計方法。並按要求修改了程式**,改變觸發方式後也能正常工作。

一開始程式中出現錯誤,在和同學商討並結合書本後才找出問題所在。

實驗三定時器實驗

一、實驗目的

掌握微控制器定時器/計數器的工作方式和程式設計原理。

二、實驗內容

8253a的0通道工作在方式3產生方波。

三、實驗步驟

①用插針把8253的clk0插孔和分頻輸出端t2插孔相連。

②8253的gate0插孔和+5v插孔相連。

③8253的片選訊號8253cs和解碼輸出端y4相連。

④kbb撥在左邊off位置。

⑤用排線將sio區的d0—d7連到bus2區xd0—xd7。

⑥在「p.....」狀態下,從起始位址08c0h開始連續執行程式,用示波器測8253的0通道輸出端outo,應有方波產生。

四、實驗原理圖

五、實驗程式

*** 08c0h

l8253: mov dptr,#0c003h

mov a,#36h

movx @dptr,a

mov dptr,#0c000h

mov a,#00h

movx @dptr,a

mov a,#10h

movx @dptr,a

sjmp $

end六、實驗感想

通過本實驗,我掌握微控制器定時器/計數器的工作方式和程式設計原理。本次試驗比較簡單,通過8253a的0通道工作在方式3產生方波。只有在**時出現了一些小問題,我們需要不斷發現,總結,運用,掌握一些技巧可以大大提高實驗中連線電路的速度。

實驗四:序列通訊實驗

一、實驗目的

1掌握序列口工作方式的程式設計,掌握微控制器通訊程式編制方法。

2了解實現序列通訊的硬環境,資料格式的協議,資料交換的協議。

二、實驗內容

1 利用8031微控制器序列口,實現雙機通訊。

2 本實驗實現以下功能,將1號實驗機鍵盤上鍵入的數字、字母顯示到2號機的數碼管上。

三、實驗說明

1 本實驗系統中考慮使用者可以方便使用序列口實現雙機或和上位機通訊,系統設計有使用者專用序列介面,只要配上使用者專用通訊電纜線就可以實現和上位機通訊,不影響監控系統和上位機的聯機工作。j10就是使用者專用序列介面,將j10用使用者專用通訊線連到上位機的串列埠上。注意不要和上位機系統用序列口衝突。

2 實驗時需將1號機8031序列接收訊號線p3.0(rxd)連到2號機8031序列口傳送訊號線p3.1(txd)。

四、實驗步驟

1. 按圖連好線路。

2. 在dvcc實驗系統處於"p."狀態下。

3. 1號機輸入四位起始位址0d00後,按exec鍵連續執行程式。

4. 2號機輸入四位起始位址0e30後,按exec鍵連續執行程式。

5. 從1號機上的鍵盤輸入數字鍵,會顯示在2號機的數碼管上。

五、實驗原理圖

六、實驗程式

;系統晶振是 6.0 mhz

*** 0e30h

start:

mov sp,#60h

mov a,#02h

mov r0,#79h

mov @r0,a

inc r0

mov a,#10h

mov @r0,a

inc r0

mov a,#01h

mov @r0,a

inc r0

mov a,#03h

mov @r0,a

inc r0

mov a,#00h

mov @r0,a

inc r0

mov a,#08h

mov @r0,a

mov a,#7eh

mov dptr,#1fffh

movx @dptr,a

mov scon,#50h ;串列埠方式 1

mov tmod,#20h ;t1 方式 1

mov tl1,#0cch ;波特率 9600 的常數

mov th1,#0cch

setb tr1 ;開中斷

clr et1

clr es

wait:

jbc ri,dis_rec ;是否接收到資料

lcall disp ;

sjmp wait ;

dis_rec:

mov a,sbuf ;讀串列埠接收到的資料

lcall datakey ;顯示輸入的數字(0-f)

db 79h,7eh

ajmp wait

datakey:mov r4,a

mov dptr,#1fffh

movx a,@dptr

mov r1,a

mov a,r4

mov @r1,a

clr a

pop 83h

pop 82h

movc a,@a+dptr

inc dptr

cjne a,01h,datakey2

dec r1

clr a

微控制器實驗報告

1福建農林大學計算機與資訊學院 資訊工程類 實驗報告 2013 年 10 月 28 日 實驗專案列表 福建農林大學計算機與資訊學院資訊工程類實驗報告 系 電子資訊工程專業 電子資訊工程年級 2011級 姓名 詹緩輝學號 3116004094實驗課程 微控制器技術 實驗室號 田c513實驗時間 10....

微控制器實驗報告

一 實驗題目 試編寫一段程式,其功能為將21h單元的內容8位分別依次存放到從22h開始的8單元中。二 keil 0000h jmp start 0100h start mov 21h,8 mov a 21h 取出21中的數 mov r0,22h 初始化 mov r1,7h 迴圈次數為7 loop r...

微控制器實驗報告

學校 合肥工業大學 班級 電腦科學與技術 學號 姓名 實驗1 系統認識實驗 1 實驗目的 1 了解zy15mcu12bc2微控制器實驗開發裝置的接線與安排。掌握實驗箱內撥位開關kf,kc的使用方法。2 通過例項程式的編輯 編譯 鏈結及除錯,熟悉keilc51軟體的使用方法和基本操作。3 教育學生愛撫...