- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
10
试验一并行输入输出口的使用
一、试验目的:学会设计proteus7仿真电路,学习P1口的使用方法和延时子程序的编写用KeiluVision3编程实现发光二极管的流水点亮。
二、试验原理:P1口为8位准双向I/O口,它的每一位都可以分别定义为输入线或输出线〔作为输入时,口锁存器必需置1〕。P1口作为输出,接8个发光二极管D1~D8经限流电阻分别接至8个引脚。本试验仿真电路图、流程图如下:
R1
R1
D1
470R
U1
R2
LED-RED
D2
39
38
37
36
35
34
33
32
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6
P0.7/AD7
XTAL1
19
470R
R3
XTAL2
18
LED-RED
D3
RST
9
P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14
P2.7/A15
470R
R4
470R
LED-RED
D4
21
22
23
24
25
26
27
28
PSENALEEA
29
30
31
R5
LED-RED
D5
470R
10
11
12
13
14
15
16
17
P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD
AT89C51
P1.0P1.1P1.2P1.3P1.4P1.5P1.6
P1.7
1
2
3
4
5
6
7
8
R6
LED-RED
D6
470R
R7
LED-RED
D7
470R
LED-RED
R8 D8
470R
LED-RED
开头
开头
P1口初始化
点亮D1发光二极管
延时
发光二极管移到下一位
循环
三、试验代码:
#includereg51.h
#includeintrins.h //移位库函数包含于此头文件中voiddelay(unsignedintd) //定义延时子函数
{while(--d0);}voidmain
{unsignedchari,sel;while(1)
{sel=0xfe;for(i=0;i=8;i++)
{P1=sel; //显示变量赋给P1口
delay(50000); //延时sel=_crol_(sel,1); //转变显示变量
}
}
}
四、试验结论:用while语句实现发光二极管循环流水点亮,从上到下一次点亮。
试验二C51分支程序设计
一、试验目的:学习多分支选择构造和switch语句,了解循环的嵌套。
U1SW3SW-SPSTSW28 P1.77 P1.66 P1.55 P1.44 P1.33 P1.22 P1.11 P1.0
U1
SW3
SW-SPST
SW2
8 P1.7
7 P1.6
6 P1.5
5 P1.4
4 P1.3
3 P1.2
2 P1.1
1 P1.0
P3.7/RDP3.6/WRP3.5/T1P3.4/T0P3.3/INT1P3.2/INT0P3.1/TXD
P3.0/RXD
17
16
15
14
13
12
11
10
D4
R4
SW-SPST
31 EA
30 ALE
29 PSEN
P2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8
28
27
26
25
24
23
22
21
D3
LED-RED
4R730R
D2
LED-RED
470R
R2
D1
LED-RED
470R
R1
9
470R
RST
18
XTAL2
19
XTAL1
AT89C51
P0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1P0.0/AD0
32
33
34
35
36
37
38
39
LED-RED
〔仿真电路图〕
开头
开头
P1口初始化
将P1口赋给a并屏蔽高6位
a+散转地址
‘0’循环子句
‘1’循环子句
‘2’循环子句
‘3’循环子句
Y
While是否
为真
N
完毕
〔流程图〕
三、试验代码:#includereg51.hvoidmain
{chara;do
{P1=0xff;a=P1;
a=a0x03;switch(a)
{case0:P2=0x0e;break;case1:P2=0x0d;break;case2:P2=0x0b;break;case3:P2=0x07;br
文档评论(0)