实验一P1口亮灯实验(4页).doc
-实验一 P1口亮灯实验一、实验目的 (1)熟悉编程和程序调试(2)学习P1口的使用方法;(3)学习延时子程序的编写。二、实验内容P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。三、实验预备知识(1)P1口为准双向口,可定义为输入,也可定义为输出。(2)本实验中延时子程序采用指令循环来实现,机器周期(12/6MHZ)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。四、程序框图五、实验步骤实验步骤说明:本实验需要用到单片机最小应用系统和十六位逻辑电平显示模块。用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管点亮。1.使用单片机实验箱,用扁平数据线将单片机P1口与LED灯相连。P1.0P1.7用插针连至L1L8。2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,输入源程序(实验(一),进行编译,直到编译无误。生成hex文件。5.打开实验板总电源,将hex文件下载到实验板内,观察发光二极管显示情况。参考例子:(1)点亮板子上的第一个灯LED1(2)点亮板子上的LED1、LED3、LED5、LED7灯,与LED2、LED4、LED6、LED8灯交替闪烁(3)流水灯:从LED1-LED8依次点亮参考程序:1)#include<reg52.h>void main()P1=0xfe;2)#include<reg52.h>#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<reg52.h>#include <intrins.h>#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这四个LED3)让第三个LED(LED3)闪烁4)设计出流水灯程序,从LED8LED1注:在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关还原到原来的位置!以下将不再重述。六、思考修改延时常数,使发光二极管闪亮时间改变。修改程序,使发光二极管闪亮移位方向改变。七、实验电路-第 4 页-