1. 程式人生 > >微控制器與嵌入式系統實驗三 P1、P3 口的應用

微控制器與嵌入式系統實驗三 P1、P3 口的應用

實驗三 P1、P3 口的應用
一 、 實驗目的
1.掌握 P3 口、P1 口簡單使用。
2.學習延時程式的編寫和使用。
二 、 實驗內容
編制以下程式:
1、P1 口做輸出口,接八隻發光二極體,編寫程式,使發光二極體迴圈點亮。
2、P3.3 口做輸入口,外接一脈衝,每輸入一個脈衝,P1 口按十六進位制加一。
3、遮蔽實驗內容 2 中的延時子程式,再執行程式,對比前後的執行結果。
三 、 實驗說明

1.對於 MCS51/96MCU,P1 口是準雙向口。它作為輸出口時與一般的雙向口使用方法相同。由準雙向口結構可知當 P1 口用為輸入口時,必須先對它置“1”。若不先對它置“1”,讀入的資料是不正確的。

四 、 實驗線路

實驗箱如下圖


實驗內容1硬體連線圖如左圖,內容2、3如右圖


五 、 實驗程式及框圖

1、P1 口做輸出口,接八隻發光二極體,編寫程式,使發光二極體迴圈點亮

流程圖:


程式:

;P1輸出,8個二極體迴圈點亮
        ORG 0000H
        LJMP MAIN
        ORG 0030H
MAIN:   MOV A,#80H        ;燈點亮初始狀態L7亮其餘滅
LIGHT:  MOV P1,A          ;送燈的狀態至P1口
        LCALL DELAY       ;延時
        RR A              ;右移一位
        LJMP LIGHT
;延時程式,晶體振盪頻率為12MHz時,延時約1.004066s        
DELAY:  MOV R5,#10        
DELAY0: MOV R6,#200
DELAY1: MOV R7,#124
        DJNZ R7,$
        DJNZ R6,DELAY1
        DJNZ R5,DELAY0
        RET
        END

2、P3.3 口做輸入口,外接一脈衝,每輸入一個脈衝,P1 口按十六進位制加一

流程圖:


程式:

;P3.3做輸入口外接脈衝,P1口按十六進位制加一
        ORG 0000H          
        LJMP MAIN
        ORG 0030H
MAIN:   CLR A
        MOV P1,A         ;初始狀態送P1口
LP:     JB P3.3,LP       
        LCALL DELAY      ;延時消抖
        JB P3.3,LP       
LP1:    JNB P3.3,LP1
        LCALL DELAY      ;延時消抖
        JNB P3.3,LP
        INC A            ;加一
        MOV P1,A         ;加一後的數送P1口
        LJMP LP
;延時程式        
DELAY:  MOV R6,#14H        
DELAY1: MOV R7,#7CH
        DJNZ R7,$
        DJNZ R6,DELAY1
        RET
        END