实验一 P1口亮灯实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一P1口亮灯实验

一、实验目的

(1)熟悉编程和程序调试

(2)学习P1口的使用方法;

(3)学习延时子程序的编写。

二、实验内容

P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

三、实验预备知识

(1)P1口为准双向口,可定义为输入,也可定义为输出。

(2)本实验中延时子程序采用指令循环来实现,机器周期(12/6MHZ)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。

四、程序框图

五、实验步骤

实验步骤说明:

本实验需要用到单片机最小应用系统和十六位逻辑电平显示模块。

用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管点亮。

1.使用单片机实验箱,用扁平数据线将单片机P1口与LED灯相连。P1.0~P1.7用插针连至L1~L8。

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

3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,输入源程序(实验(一)),进行编译,直到编译无误。生成hex文件。

5.打开实验板总电源,将hex文件下载到实验板内,观察发光二极管显示情况。

参考例子:

(1)点亮板子上的第一个灯LED1

(2)点亮板子上的LED1、LED3、LED5、LED7灯,与LED2、LED4、LED6、LED8灯交替

闪烁

(3)流水灯:从LED1---LED8依次点亮参考程序:

1)

#include

void main()

{

P1=0xfe;

}

2)

#include

#define uint unsigned int

#define uchar unsigned char

void delay();

void main()

{

while(1)

{

P1=0xaa;

delay();

P1=0x55;

delay();

}

}

void delay()

{

uint x,y;

for(x=100;x>0;x--)

for(y=600;y>0;y--) ;

}

3)

#include

#include

#define uint unsigned int

#define uchar unsigned char

uchar temp,num;

void delay(uint);

void main()

{

temp=0xfe;

while(1)

{

for(num=0;num<8;num++)

{

P1=temp;

temp=_crol_(temp,1);

delay(1000);

}

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--) ;

}

实验内容:

请在keil环境下编写一下程序:

1)点亮最后一个LED(LED8)

2)点亮LED1、LED2、LED5、LED6这四个LED

3)让第三个LED(LED3)闪烁

4)设计出流水灯程序,从LED8—LED1

注:在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关还原到原来的位置!以下将不再重述。

六、思考

修改延时常数,使发光二极管闪亮时间改变。

修改程序,使发光二极管闪亮移位方向改变。

七、实验电路

如有侵权请联系告知删除,感谢你们的配合!

相关文档
最新文档