教学科研

教学科研

当前位置: 学院首页 >> 教学科研 >> 正文

单片机实验指导——P1口输入、输出实验..

发布日期:2012-09-05    作者:     来源:     点击:

P1口输入、输出实验

一、实验目的

1、学习P1口的使用方法

2、学习延时子程序的编写和使用

二、实验说明

P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。

三、实验内容及步骤

实验(一):

用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。

1、使用单片机最小应用系统1模块。关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM源程序,进行编译,直到编译无误。

4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮。

实验(二):

用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。程序读取开关状态,并在发光二极管上显示出来。

1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。

2、添加 P1_B.ASM源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。向上拨为熄灭,向下拨为点亮。

 

四、流程图及源程序

2.源程序:

(一)实验一

ORG    0000H

LJMP   START

ORG    0030H

START:  mov    a, #0FEh

        mov    r2,#8

Output: mov    P1,a

        rl     a

        Acall  Delay

        djnz   r2,Output

        Ljmp   START

Delay:  mov    r6,#0

        mov    r7,#0

DelayLoop:                        ;延时程序

        djnz   r6,DelayLoop

        djnz   r7,DelayLoop

        ret

        end

(二)实验二

KeyLeft   BIT   P1.0              ;定义

KeyRight  BIT   P1.1

Ledleft   BIT   P1.2

LedRight  BIT   P1.3

ORG    0000H

LJMP   START

ORG    0030H

START:  SETB    KeyLeft           ;欲读先置一

SETB    KeyRight

Loop:   Mov     c,keyleft

        Mov     LEDLeft,c

        MOV     C,KeyRight

        Mov     LEDRIGHt,c

        LJMP    Loop

        END

五、思考题

(1)对于本实验延时子程序

Delay:    MOV     R6,0

           MOV     R7, 0

DelayLoop:DJNZ    R6,DelayLoop

           DJNZ    R7,DelayLoop

           RET

如使用12MHz晶振,粗略计算此程序的执行时间为多少?