实验一 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