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