单片机小结之各种方案点亮流水灯.doc

单片机小结之各种方案点亮流水灯.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

单片机小结(1)

——之流水灯的各种方法点亮

我们将8个流水灯均放置在P0口,且假设已经定义好各端口,流水灯的阳极接到P0口上,运用各种方法控制流水灯。

1.1用移位和查表控制流水灯

(1):用移位控制流水灯

voidmain(void)

{uchari;

while(1)

{

P0=0xfe;//先点亮P0^0;

Delay(10000);//延时10毫秒

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

{

P0=(P01)0x01

Delay(10000);//延时100毫秒

}

}

}

或者改为如下也可以实现左移,先给temp=0xfe;

for(i=1;i8;i++)

{

a=tempi;b=temp(8-i);P0=a|b;Delay();

}

在仿真中或者开发板上可以看到led灯有规律的一个一个的点亮如此循环。假如在

P0=0xfe下加延时,那么第一次点亮时可以看到小灯的亮下再灭,否则第一次看不到小灯亮。

以上即一直往左移移位,我们可以修改程序让其左右循环来点亮流水灯,程序如下while(1)

{

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

{

LED=_crol_(LED,1);//P2口向左移,注意左移和右移都住需要移动7次

Delay(50000);

}

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

{

LED=_cror_(LED,1);//左移,头文献必须加#includeintrins.h方可使用, Delay(50000);

}

}

(2)用查表控制流水灯

在上个程序中我们运用左移的方法点亮小灯,即移位的思想。同时我们还可以运用查表的方法点亮led灯。程序如下:

ucharcodeLed_Data[]=

{

0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f

};//此处一定要记住加分号,否者编译的时候会报错。

在将上个程序中左移的语句改为如下即可实现查表,并且将P0=0xfe;去掉

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

{

P0=Led_Data[i];

Delay(10000);//延时10毫秒

}

(3)运用硬件的方法控制流水灯

除了以上移位我们还可以运用硬件来实现点亮小灯,例如运用74HC573,74HC595

1.1:74HC573为8位锁存器,

1脚OE为使能端,低电平有效。D1-D7为输入端,Q1-Q7为输出端。11脚为锁存端,高电平有效

当OE为低电平,并且LE为高电平时,芯片才正常工作,输入等于输出。

当OE为低电平,LE也为低电平时,芯片锁存。

当OE为高电平时,输出为高阻态。

下面我们还是运用该芯片编写下控制流水灯的程序,并且是运用移位的思想。

使用之前先说明下74HC573的工作方法:

先将OE置为低电平,并且LE也置为低电平,也就是开锁。

将需要输出的数据发送到D端。

再将LE置为低电平,即锁存数据,不在随输入

/***********************源程序代码如下*************************/

#includereg51.h

#defineucharunsignedchar

#defineuintunsignedint

#defineLEDP3

sbitLE=P2^2;//定义锁存端

voidDelay(uintms);

voidmain(void)

{

uchari,Temp;

while(1)

{

Temp=0xfe; //先点亮P3^0口的LED灯

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

{

LE=1;//开锁,注意OE端默认已经接到低电平

LED=Temp;//送数据到P3口,点亮小灯

LE=0;//输出锁存

Delay(5000);//延时

Temp=(Temp=1)0x01;//左移一位

您可能关注的文档

文档评论(0)

155****0304 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档