|
實(shí)驗(yàn)一 Keil C、STC-ISP與并行I/O口
一、實(shí)驗(yàn)?zāi)康模?br />
1、掌握Keil C和STC-ISP軟件使用方法;
2、聯(lián)系并行I/O口使用方法;
3、掌握延時(shí)程序編寫技能。
二、實(shí)驗(yàn)內(nèi)容:
1、由P1口輸出LED流水燈;
2、由P2口輸出由P1口輸入的狀態(tài)。
三、實(shí)驗(yàn)方法:
1、流水燈
P1口接一組LED。編寫程序,使LED循環(huán)點(diǎn)亮。循環(huán)移位法流水燈匯編程序代碼:
ORG 0000H ;單片機(jī)上電后從0000H地址執(zhí)行
AJMP START ;跳轉(zhuǎn)到主程序存放地址處
ORG 0030H ;設(shè)置主程序開始地址
START:MOV SP,#60H ;設(shè)置堆棧起始地址為60H
MOV A,#0FEH ;ACC中先裝入LED1亮的數(shù)據(jù)
MOV P1,A ;將ACC的數(shù)據(jù)送P1口
MOV R0,#7 ;將數(shù)據(jù)再移動(dòng)7次就完成一個(gè)8位流水過程
LOOP:RL A ;將ACC中的數(shù)據(jù)左移一位
MOV P1,A ;把ACC移動(dòng)過的數(shù)據(jù)送p1口顯示
ACALL DELAY ;調(diào)用延時(shí)子程序
DJNZ R0,LOOP ;沒有移動(dòng)夠7次繼續(xù)移動(dòng)
AJMP START ;移動(dòng)完7次后跳到開始重來,以達(dá)到循環(huán)流動(dòng)效果
DELAY : ;延時(shí)子程序
MOV R0,#255 ;延時(shí)一段時(shí)間
D1 : MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回
END ;程序結(jié)束
2、從P1、P2口狀態(tài)跟隨
P1口接電位開關(guān),P2口接一組LED。編寫程序,從P1口輸入的狀態(tài)再由P2口輸出。匯編程序代碼:
ORG 0000H ;上電后移指令
LJMP START ;轉(zhuǎn)移到應(yīng)用程序
ORG 0030H ;應(yīng)用程序從0030H開始存放
START: MOV P1, #0FFH ;置輸入狀態(tài)
LOOP1:MOV A, P1 ;輸入開關(guān)狀態(tài)信息
MOV P2,A ;輸出開關(guān)狀態(tài)驅(qū)動(dòng)LED
SJMP LOOP1 ;循環(huán)
END 匯編結(jié)束
四、實(shí)驗(yàn)報(bào)告
1、編寫C程序?qū)崿F(xiàn)實(shí)驗(yàn)內(nèi)容“流水燈“及“狀態(tài)跟隨”,繪制程序流程圖,記錄實(shí)驗(yàn)結(jié)果;
2、流水燈:
(1)改變計(jì)數(shù)常數(shù)或循環(huán)嵌套方式,觀察LED亮滅速度,并由Keil C單步運(yùn)行仿真計(jì)算延時(shí)時(shí)長(zhǎng);
(2)修改程序改變循環(huán)方向;
*(3)編寫一個(gè)從左到右,再?gòu)挠业阶,最后從兩邊到中間的流水燈程序并實(shí)驗(yàn)驗(yàn)證。
3、狀態(tài)跟隨:
(1)修改程序使P2口輸出P1口的反邏輯狀態(tài);
*(2)由P1、P2口讀入狀態(tài),由P3輸出P1、P2的“與/或”狀態(tài)。
完整的Word格式文檔51黑下載地址:
MCU實(shí)驗(yàn)一.doc
(36.5 KB, 下載次數(shù): 7)
2017-12-21 18:41 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|