预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

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