天天看点

io输入输出实验报告c语言,实验一 IO口输入、输出实验.doc

实验一 IO口输入、输出实验

贵 州 大 学 实 验 报 告 纸

系 别电科班 级电科091班姓 名学号课 程 名 称单片机成 绩

评 定

教师签名实 验 时 间 2012年 5 月5 日实验一 I/O口输入、输出

一、实验目的

掌握单片机P1口、P3口的使用方法。

二、实验要求

根据实验内容编写一个程序,并在实验仪上调试和验证。

三、实验内容

以P1口为输出口,接八位逻辑电平显示,LED显示跑马灯效果。以P3口为输入 口,接八位逻辑电平输出,用来控制跑马灯的方向。

四、实验说明和电路原理图

P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构 可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区),八位逻辑电平输出电路原理图参见图1-1。八位逻辑电平显示电路原理图参见图1-2。

图1-2 八位逻辑电平显示

图1-1 八位逻辑电平输出

五、实验步骤

㈠ 实验程序编写

实验程序:

;//******************************************************************

;文件名: Port for MCU51

;功能: I/O口输入、输出实验

;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口),K1

;到CPU模块的P3.1口;

;用8位数据线连接八位逻辑电平显示模块的JD4B到CPU模块的JD8(P1口)。

;//******************************************************************

DIR BIT P3.0

ORG 0000H

LJMP START

ORG 0100H

START:

Output1:

mov a, #0fEH

mov r5, #8

loop1:

CLR C

mov C,DIR

JC Output2

mov P1, a

rl a

Acall Delay

djnz r5, loop1

Sjmp Output1

Output2:

mov a, #07fH

mov r5, #8

loop2:

CLR C

mov C,DIR

JNC Output1

mov P1, a

rr a

Acall Delay

djnz r5,loop2

Sjmp Output2

Delay:

mov r6,#0

DelayLoop1:

mov r7,#0

DelayLoop2:

NOP

NOP

djnz r7,DelayLoop2

djnz r6,DelayLoop1

ret

end

修改后的程序为:

ORG 0000H

LJMP START

ORG 0100H

START:

Output1:

mov a, #0fEH

mov R5, #8

loop1:

MOV R2,P3

CJNE R2,#0FFH,Output2

mov P1, a

rl a

Acall Delay

djnz R5, loop1

Sjmp Output1

Output2:

mov a, #07fH

mov R5, #8

loop2:

MOV R2,P3