標題:
單片機Keil C、STC-ISP與并行I/O口實驗
[打印本頁]
作者:
其實不然
時間:
2017-12-21 18:41
標題:
單片機Keil C、STC-ISP與并行I/O口實驗
實驗一 Keil C、STC-ISP與并行I/O口
一、實驗?zāi)康模?br /> 1、掌握Keil C和STC-ISP軟件使用方法;
2、聯(lián)系并行I/O口使用方法;
3、掌握延時程序編寫技能。
二、實驗內(nèi)容:
1、由P1口輸出LED流水燈;
2、由P2口輸出由P1口輸入的狀態(tài)。
三、實驗方法:
1、流水燈
P1口接一組LED。編寫程序,使LED循環(huán)點亮。循環(huán)移位法流水燈匯編程序代碼:
ORG 0000H ;單片機上電后從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ù)再移動7次就完成一個8位流水過程
LOOP:RL A ;將ACC中的數(shù)據(jù)左移一位
MOV P1,A ;把ACC移動過的數(shù)據(jù)送p1口顯示
ACALL DELAY ;調(diào)用延時子程序
DJNZ R0,LOOP ;沒有移動夠7次繼續(xù)移動
AJMP START ;移動完7次后跳到開始重來,以達到循環(huán)流動效果
DELAY : ;延時子程序
MOV R0,#255 ;延時一段時間
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ū)動LED
SJMP LOOP1 ;循環(huán)
END 匯編結(jié)束
四、實驗報告
1、編寫C程序?qū)崿F(xiàn)實驗內(nèi)容“流水燈“及“狀態(tài)跟隨”,繪制程序流程圖,記錄實驗結(jié)果;
2、流水燈:
(1)改變計數(shù)常數(shù)或循環(huán)嵌套方式,觀察LED亮滅速度,并由Keil C單步運行仿真計算延時時長;
(2)修改程序改變循環(huán)方向;
*(3)編寫一個從左到右,再從右到左,最后從兩邊到中間的流水燈程序并實驗驗證。
3、狀態(tài)跟隨:
(1)修改程序使P2口輸出P1口的反邏輯狀態(tài);
*(2)由P1、P2口讀入狀態(tài),由P3輸出P1、P2的“與/或”狀態(tài)。
完整的Word格式文檔51黑下載地址:
MCU實驗一.doc
(36.5 KB, 下載次數(shù): 7)
2017-12-21 18:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1