P1口输入、输出实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 P1口输入、输出实验
一、实验要求
1. P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2. P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,
编写程序读取开关状态,将此状态,在发光二极管上显示出来。编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。
二、实验目的
1. 学习P1口的使用方法。
2. 学习延时子程序的编写和使用。
三、实验连线
实验1: P1口循环点亮 实验2: P1口输入输出
四、实验说明
1. 8051延时子程序的计算
延时程序的实现常用两种方法,一种用定时器中断来实现,另一种是用指令循环实现。在系统时间允许的情况下可以采用后一种方法。
本实验系统晶振频率为6MHz ,执行一个机器周期时间为12/6MHZ=2µS,现在写一个延时0.1S 的程序如下:
查指令表可知MOV 需要一个机器周期,DJNZ 指令需用两个机器周期,所以执行该段程序所需时间是:
[ 1 + ( 1 + 2 × 200 + 2 ) X ] × 2×10-6
= 0.1S 指令(1) (2) (3) (4) 所需时间 所需时间 所需时间 所需时间
求出X =124,将X =124代入上式可知实际延时约0.099946≈0.1S 。
2. P1口准双向口
它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用为
Delay :MOV R6,#X (1) DE1: MOV R7, #200 (2) DE2: DJNZ R7,DE2 (3)
DJNZ R6,DE1 (4)
输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据是不正确的。
六、硬件电路
1、LED电平显示电路
图1:LED电平显示电路
2、逻辑电平开关电路
实验仪上有8只开关K0―K7,并有与之相对应的K0―K7引线孔为逻辑电平输出端。
开关向上拨相应插孔输出高电平“1”,向下拨相应插孔输出低电平“0”。
图2:逻辑电平开关电路
七、思考题
1、用软件实现延时有哪两种方法?各有何特点?
2、区分时钟周期、机器周期、指令周期。当晶振的振荡频率为6MHz时,一个机器周期为多少微秒?
系统晶振频率为6MHz,执行一个机器周期时间为12/6MHZ=2µS
3、P1口作为输入时有什么要求?
由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据是不正确的。