单片机跑马灯实验报告.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

学号14142200277序号19

单片机原理与接口技术

实验报告

实验项目序号一

实验项目名称跑马灯实验

姓名卢志雄专业电子信息工程班级电信14-2BF

完成时间2016年4月2日

一、实验内容

实验内容为3项,其中第1、2项必做。

1、基本得流水灯。

根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。每点亮一个LED,采用软件延时一段时间。

2、简单键控得流水灯。

不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。松手后,又按正序点亮流水灯。

3、键控得流水灯。

上电,不点亮LED,按一下K1键,按正序点亮流水灯。按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。

二、电路原理图

图1跑马灯实验电路原理图

三、程序流程图

检测P2键值

检测P2键值

开始

完成对应键值得功能

判断P2键值就是否改变

图2简单键控得流水灯程序流程图

四、源程序

1、基本得流水灯

#includereg51、h>

#defineuintunsignedint

#defineucharunsignedchar

voiddelay(j)?? //延时函数

datauintj;

{datauinti;

while(j--)

for(i=0;i250;i++);

}

voidmain() ? //主函数

{datauchara;

a=1; ? //保证只有一个点亮

while(1)?? ?//不断循环

{P2=~a; //低电平点亮

a=a<1; //左移一位,右补0

if(a==0)a=1; ?//全0

delay(2250);}?//流动点亮延时

2、简单键控得流水灯

#includereg51、h

#defineucharunsignedchar

#defineuintunsignedint

voiddelay(uinti)

{ uchart;

while(i--)

{

? for(t=0;t<120;t++);

?}

}

voidmain()

{? datauchara;

?a=1;? ?

while(P2==0xff)????

?{ ?P0=~a;? ?

a=a1; ?

?if(a==0)

???a=1; ?

delay(250);

}

?while(P2==0xfe)??

{ P0=~a;????

a=a1;

?if(a==0)

?? a=128;

?delay(250);

?}? ?

}

3、键控得流水灯

#includereg51、h>

#defineucharunsignedchar

#defineuintunsignedint

voiddelay(uinti)

{?uchart;

?dataucharb=0xfb;

?while(i--)

{ if(P2==0xfe)b=0xfe;

if(P2==0xfd)b=0xfd;

? if(P2==0xfb)b=0xfb;

? for(t=0;t120;t++);

?}

}

voidmain()

{ datauchara;

a=1;???

while(P2==0xfe) ? ?

?{ P0=~a; ?

a=a1; ??

?if(a==0)

???a=1; ?

delay(250);

while(P2==0xff)? ?

? ?{

? ??P0=~a;

? a=a1;?

? if(a==0)

a=1;

?delay(250);

? ?}

}

while(P2==0xfd)? ?

{?P0=~

文档评论(0)

huono2599 + 关注
实名认证
文档贡献者

111111111

1亿VIP精品文档

相关文档