实验一 P1口亮灯实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
注:在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关还原到原来的位置!以下将不再重述。
六、思考
修改延时常数,使发光二极管闪亮时间改变。
修改程序,使发光二极管闪亮移位方向改变。
七、实验电路
如有侵权请联系告知删除,感谢你们的配合!