基本信息
文件名称:LED指示灯循环控制.pdf
文件大小:356.2 KB
总页数:8 页
更新时间:2025-03-15
总字数:约3.09千字
文档摘要

一、实验内容

1、按照教材P227的图A.32,绘制实验三电路原理图;

2、根据功能要求,编写C51程序;

3、练习μVision3程序动态调试方法,并最终实现8个LED灯依次点亮的

功能:P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→P0.5→┅→P0.0的顺序,

无限循环,间隔约50ms;

4、观察仿真结果,完成实验报告。

二、实验要求

实验步骤

(1)在ISIS中绘制电路原理图,按照表A4.1将元件添加到编译环境中;

(2)在uVision3中编写C51程序;

(3)利用uVision3的编译调试功能检查语法和逻辑错误;

(4)下载可执行文件,在Proteus中观察仿真结果,检查程序的正确性。

实验要求

提交的实验报告中应包括电路的原理图和实验结果分析。

CategoryReferenceValue

MicroprocessorICsU180C51

MiscellancousX1CRYSTAL

CapacitorsC2~C3CAP

CapacitorsC1/22uFCAP--ELEC

ResistorsR2~R8/200RES

ResistorsR10~R17/100RES

OptoelectronicsD1~D8LED--YELLOW

1、电路分析及原理图

图1

2、编程思路及C51源程序

编程思路

1,P0口赋一初值,使D1灯亮,D2~D8灯灭

2,调用函数delay,传入参数值为50(ms)

3,采用while结构的无限循环体

4,由上向下循环控制(变量i的初值为1,终值小于等于7,增量为+1)

5,使P0中的数值向左移1位

6,调用函数delay,传入参数值为50(ms)

7,返回第二部继续进行

源程序

#includereg51.h//预处理命令,将reg51.h头文件包含进来

voiddelay(unsignedinttime){//无返回型延时函数delay,传入参数为1个无符

号整形变量,time

unsignedintj=0;//定义1个初值为0的无符号整形变量,j

for(;time0;time--)//采用for结构的外层循环,变量time的初值

为time,终值大于0,增量为-1

for(j=0;j125;j++);//采用for结构的内层循环,变量j的初值为0,终

值小于125,增量为+1

}

voidmain(){//主函数

unsignedchari;//定义1个位于data区的自动无符号字符型变量,

P0=0x01;//P0口赋一初值,使D1灯亮,D2~D8灯灭

delay(200);//调用函数delay,传入参数值为50(ms)

while(1){//采用while结构的无限循环体

for(i=1;i=7;i++){//由