200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 单片机流水灯C语言实验报告 单片机LED灯实验报告.doc

单片机流水灯C语言实验报告 单片机LED灯实验报告.doc

时间:2023-06-19 22:31:34

相关推荐

单片机流水灯C语言实验报告 单片机LED灯实验报告.doc

桂林电子科技大学

实验报告

- 学年第一学期

开 课 单 位 海洋信息工程学院

适用年级、专业 14级机械

课 程 序 号 BS1615000_03

课 程 代 码 BS1615000

实 验 名 称 《流水灯》

流水灯实验报告

一、实验目的

1、了解单片机顺序执行的工作特点。

2、掌握单片机并行控制I/O口的基本方法。

3、掌握C语言的编写,及对I/O口的基本操作方法。

二、实验内容

实验设备:计算机一台、单片机实验箱一台、Proteus软件、Keil软件。

硬件原理图:

单片机实验箱LED使用P0口进行控制,高电平有效。

1、I/O口并行操作方法的优点。

2、单片机延时程序的实现方式。

3、单片机C语言左右移动语句、逻辑运算语句的使用。

4、打开Keil,新建工程:学号-1.uv4。

5、参考实验程序,编写程序:让灯向左(即从P1_0到P1_7)做流水动作,生成:学号-1.hex文件。

6、把”学号-1.hex”文件烧写到单片机,观察流水灯的现象。

7、修改程序让流水灯反向流动。

8、编写自己想要的流水方式。

三、实验结果分析

本实验主要是采用延时程序来控制“流水”的功能,同时采用中断进行亮与暗闪烁的效果,使用C51的P0口进行对LED的控制。过程的主要分析如下:

/******************************************************************************

* 实 验 名 : 流水灯

* 实验说明 : LED灯做右移流水灯

******************************************************************************/

1、程序流程图:

2、程序清单及注释:

#include

#include

//--声明全局函数--//

void Delay10ms(unsigned int c); //延时10ms

//主函数

void main(void)

{

unsigned char LED;

LED = 0x01 ; //0x01= 0000 0001 此时,led灯的最低一位亮

while(1)

{

P0 = LED; // 按照LED的初值,.0口为高电平,其余为电平

Delay10ms(50);

}

}

//延时函数Delay10ms

{

unsigned char a, b;

for (;c>0;c--)

{

for (b=38;b>0;b--)

{

for (a=130;a>0;a--);

}

}

}

以上程序用开发板来进行实验,程序可以实现要求。

对于在进行实验的设计时,可能存在的错误,主要是C语言的一些使用规则的错误和对中断控制等代码的错误。等发生错误时,就应从代码的开始部分进行检查和分析,对于错误的地方进行修改,直到程序无错误为止。对于验证其功能时,应确认开发板没有损坏,正确连接电路等。四、与讨论for(m=20;m>0;m--) for(n=20;n>0;n--)

for(k=250;k>0;k--);理解这三句,第一句是指:m=20;m>0然后m--是真就执行:for(n=20;n>0;n--) for(k=250;k>0;k--);这两句,m--一直减,减一次,里面就执行一次,这里是20次。流水灯的左右移,第一用"intrins.h"的文件包,第二要要会定义赋值变量,第三延时,这是关键。

2、如果想让流水灯左移(即从P0_7到P0_0)移动,程序应该怎么改?

答:把crol_(LED,1); //循环右移1位,改成:cror _(LED,1); //循环左移1位

3、有没有其它方法可以实现本实验的功能?

答:有、比如 一位控法和查表法。五、小组表现评价(必填)

在本次实验中16号负责程序编写,17号负责电路连接,配合得十分好,听完老师的讲解,剩下的就是我们自己调试了,有不懂的问老师,老师也讲得十分仔细,在调程序的过程中,主要是了解c语言的命令语句的使用方法,这是第一次实验,流水灯的程序相对来说是很简单的,能控制LED流水灯左右移的方法有很多,看怎么去运用咯,虽然是第一次做C语言单片机的实验,我觉得老师的实验方法是非常正确的,因为编写程序对于新手来说是非

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。