matlab实验二 闪烁灯.docx

上传人:b****9 文档编号:25340601 上传时间:2023-06-07 格式:DOCX 页数:11 大小:213.05KB
下载 相关 举报
matlab实验二 闪烁灯.docx_第1页
第1页 / 共11页
matlab实验二 闪烁灯.docx_第2页
第2页 / 共11页
matlab实验二 闪烁灯.docx_第3页
第3页 / 共11页
matlab实验二 闪烁灯.docx_第4页
第4页 / 共11页
matlab实验二 闪烁灯.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

matlab实验二 闪烁灯.docx

《matlab实验二 闪烁灯.docx》由会员分享,可在线阅读,更多相关《matlab实验二 闪烁灯.docx(11页珍藏版)》请在冰豆网上搜索。

matlab实验二 闪烁灯.docx

matlab实验二闪烁灯

实验二闪烁灯

一、实验目的

1、学习Keil软件的程序调试方法。

2、学习单片机HEX文件的下载。

3、学会KEILC程序设计及调试,重点学会预处理命令、数据类型的定义

二、实验仪器

P4计算机、Keil软件、STC_ISP软件、实验板

三、实验内容

1、依据电路图,实现LED的闪烁,每隔0.2秒更替一次亮灭

2、按照KEIL软件的使用步骤,建立工程。

3、编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。

4、用STC-ISP下载软件下载HEX文件到单片机系统。

5、运行、调试程序,观察实验结果。

四、STC-ISP下载软件的使用方法

该软件将已生成的HEX文件下载到单片机中。

具体步骤如下:

1、双击STC-ISP图标:

2、然后在“MCUType”列表中选择单片机型号(应选择单片机板中的CPU型号),如下图:

3、点击“OpenFile”按钮,找到所要下载的HEX文件,并选中,选择“打开”,如下图:

4、选择串口的对应端口号,(根据自己的硬件连接端口)(如COM1)。

5、然后选“MaxBuad”中的波特率,也可以选默认值。

6、点击”Download/下载”,进行文件下载,如图:

7、稍等几秒,即可下载完成,如图:

五、电路原理图与实验参考程序

实验板的原理图如下:

LED灯的连接图如下:

1.实验一

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

*文件名:

闪烁灯一.c

*描述:

该程序实现LED的闪烁,每隔0.2秒更替一次亮灭。

在使用某款新单片机时,经常就用类似的闪烁灯程序来判断单片机是否正常工作。

本程序通过软件延时,并且通过软件调试。

在“HOT-51\开发板配套资料\经典学习资料\单片机相关”下面有KEIl软件仿真的教程。

注:

因为我们P0口LED和数码管是公用的,LED闪烁的同时数码管也会闪烁。

你可以通过改变J1跳线位置然后给P3.7付低电平,让数码管不显示。

*创建人:

东流,2009年8月27日

*版本号:

1.0

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

#include

#defineucharunsignedchar//这里用"uchar"代替"unsignedchar","uchar"用来定义无符号字符型数。

#defineuintunsignedint//"uint"用来定义无符号整型数。

sbitShow_LED=P0^0;//用来声明P0.0口为程序所要控制的端口,"sbit"是KEIL专门用来声明某位IO口

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

*名称:

Delay()

*功能:

延时,延时时间为10ms*del。

这是通过软件延时,有一定误差。

*输入:

del

*输出:

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

voidDelay(uintdel)

{

uinti,j;

for(i=0;i

for(j=0;j<1827;j++)//这个是通过软件仿真得出的数

;

}

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

*名称:

Main()

*功能:

实现灯的闪烁

*输入:

*输出:

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

voidMain(void)

{

//P0=0x00;//用于灭数码管

//Delay

(1);

//P3=0x7f;//注意J1要跳到下方才起作用,P3.7位低,数码管锁存

//Delay

(1);

//P0=0xff;//灭所有的LED

while

(1)

{

Show_LED=0;

Delay(20);//Delay(del)中的数为延时的时间参数,延时时间为10ms*del.

Show_LED=1;

Delay(20);

}

}

2.实验二

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

*文件名:

闪烁灯二.c

*描述:

*创建人:

东流,2009年8月27日

*版本号:

1.0

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

#include

#defineucharunsignedchar

#defineuintunsignedint

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

*名称:

Delay()

*功能:

延时,延时时间为10ms*del

*输入:

del

*输出:

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

voidDelay(uintdel)

{

uinti,j;

for(i=0;i

for(j=0;j<1827;j++)

;

}

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

*名称:

Main()

*功能:

实现灯的闪烁

*输入:

*输出:

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

voidMain(void)

{

P0=0xff;

P2=0x00;

while

(1)

{

/*下面四行用于控制LED每隔一个亮*/

P0=0xaa;

Delay(50);

P0=0x55;

Delay(50);

/*下面四行用于控制LED每隔一个亮*/

P0=0xcc;

Delay(50);

P0=0x33;

Delay(50);

/*下面四行用于控制LED高四位或者低四位亮*/

P0=0x0f;

Delay(50);

P0=0xf0;

Delay(50);

/*下面八行用于控制LED的两次全亮全灭*/

P0=0x00;

Delay(25);

P0=0xff;

Delay(25);

P0=0x00;

Delay(25);

P0=0xff;

Delay(25);

Delay(200);//延时两秒

}

}

六、实验报告要求

编写程序实现LED1到LED8的顺序点亮和熄灭。

具体要求如下:

1、每次只亮一个灯。

2、亮灯的顺序是LED1到LED8循环往复。

要点:

使用C语言的移位命令。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1