stc89c51单片机流水灯程序Word下载.docx

上传人:b****6 文档编号:20891005 上传时间:2023-01-26 格式:DOCX 页数:10 大小:15.71KB
下载 相关 举报
stc89c51单片机流水灯程序Word下载.docx_第1页
第1页 / 共10页
stc89c51单片机流水灯程序Word下载.docx_第2页
第2页 / 共10页
stc89c51单片机流水灯程序Word下载.docx_第3页
第3页 / 共10页
stc89c51单片机流水灯程序Word下载.docx_第4页
第4页 / 共10页
stc89c51单片机流水灯程序Word下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

stc89c51单片机流水灯程序Word下载.docx

《stc89c51单片机流水灯程序Word下载.docx》由会员分享,可在线阅读,更多相关《stc89c51单片机流水灯程序Word下载.docx(10页珍藏版)》请在冰豆网上搜索。

stc89c51单片机流水灯程序Word下载.docx

sbitD7=P1^7;

//位定义,把P1口的第8个管脚定义为D7

voidmain()

{

while

(1)//建立大的死循环.

unsignedinti,j;

D0=0,D7=1;

//亮灯1,关灯8

for(i=50;

i>

0;

i)

for(j=200;

j>

j);

//两个FOR组成的延时

D0=1,D1=0;

//亮灯2,关灯1

i)

for(j=200;

D1=1,D2=0;

D2=1,D3=0;

D3=1,D4=0;

D4=1,D5=0;

D5=1,D6=0;

D6=1,D7=0;

}

程序二(用swichcase语句编的)

//51单片机的头文件.

sbitd1=P1^0;

//

sbitd2=P1^1;

sbitd3=P1^2;

sbitd4=P1^3;

sbitd5=P1^4;

sbitd6=P1^5;

sbitd7=P1^6;

sbitd8=P1^7;

unsignedinti=1,a,b;

while

(1)//大循环

for(i=1;

i<

15;

i++)

{

for(a=0;

a<

80;

a++)//延时.

for(b=0;

b<

200;

b++);

switch(i)

case1:

d2=1,d1=0,d8=1;

break;

case2:

d1=1,d2=0;

case3:

d2=1,d3=0;

case4:

d3=1,d4=0;

case5:

d4=1,d5=0;

case6:

d5=1,d6=0;

case7:

d6=1,d7=0;

case8:

d7=1,d8=0;

case9:

d8=1,d7=0;

case10:

d7=1,d6=0;

case11:

d6=1,d5=0;

case12:

d5=1,d4=0;

case13:

d4=1,d3=0;

case14:

d3=1,d2=0;

}

};

程序三(最简洁的):

intrins.h>

//_crol_和_cror_的头文件.

voiddelay(unsignedintz)//建立延时子函数.

unsignedinti,j;

for(i=0;

z;

for(j=0;

j<

j++);

voidmain()

unsignedchard;

d=0xfe;

while

(1)//

{

for(;

d>

0x7f;

P1=d;

delay(100);

//调用延时子函数延时.

d=_crol_(d,1);

//循环左移.

d<

0xfe;

d=_cror_(d,1);

//循环右移,让灯倒回去.

}

数码管流水灯:

voiddelay(unsignedinta)

unsignedintb;

b=a;

while(b>

0)

b;

unsignedcodeA[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

//0x3f:

为0,即数码管亮“0”.

P2=0;

//打开数码管的第一个,

P0=j;

//对数码管停止赋值

while

(1)

i=0;

16;

j++)

P2=i;

P0=A[j];

delay(50000);

i++;

数码管程序二:

inti,j;

unsignedcodeA[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

j=0;

8;

j++;

for(i=7;

=0;

中断程序一

EA=1;

//打开总中断

EX0=1;

//打开外部中断0.

IT0=0;

//选择其为低电平有效有效.当CPU检测到P3.3引脚上出现有效的中断信号时,中断标记IE1(TCON.3)置1,向CPU申请中断.

P1=0xfe;

delay(50000);

voidexist()interrupt0//中断子程序,其中“0”为外部中断的序号

P1=_crol_(P1,1);

定时程序;

include<

unsignedinti=0,j=0,t;

unsignedcodea[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,

0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

TMOD=0x01;

//对TMOD赋值,以确定T0和T1的工作方式.

TH0=(6553650000)/256;

TL0=(6553650000)%256;

//定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成.对高8位和低8位赋值.

EA=1;

//开总中断

ET0=1;

//则对IE赋值,开放中断

TR0=1;

//使TR0或TR1置位,启动定时/计数器定时.

while

(1)

if(t==20)

t=0;

if(j==8)

if(i==16)

P2=j;

P0=a[i];

voidtime()interrupt1//定时子程序,其中“1”为定时/计数器序号

{

TH0=(6553650000)/256;

TL0=(6553650000)%256;

t++;

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

当前位置:首页 > 自然科学 > 化学

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

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