找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

51单片机简单跑马灯程序设计

[复制链接]
fvka90 发表于 2014-3-29 21:09:23 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×

#define uchar unsigned char

#include<reg51.h>

bit ldelay=0;//

长定时溢出标志,预置为

0

uchar m=-1,n=0;

uchar t=0;

void main(void)

{

uchar code ledp[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //

预定的写入

P2

的值



uchar code ledq[4]={0x7e,0xbd,0xdb,0xe7};

uchar i;





//

用来指示显示顺序



TMOD=0x01;  



//

设置定时器

0

为工作方式

1

TH0=0x3c;

TL0=0xb0;

//

给定时器设定初始值



TR0=1;







//

启动定时器

0

ET0=1;





//

打开定时器

0

中断



EA=1;





//

打开总中断



while(1)

{







if(ldelay) //

发现时间溢出标志,进入处理



{

ldelay=0;



//

清除标记



if(m<8)n=0;

if(m>=8&m<16)n=1;

if(m>=16&m<20)n=2;

if(m>=20)n=3;

if(m==23)m=-1;

switch(n)

{

case 0:



P2=ledp[i];



//

读出一个值送到

P1





i++;  



//

指向下一个







break;



case 1:





i--;

P2=ledp[i];

break;

case 2:



P2=ledq[i];

i++

;

break;

case 3:



i--;

P2=ledq[i];

break;

}

}

}

}

timer0 () interrupt 1



//http://www.mcuzx.net

定时器

0

中断



{

t++;

if(t==5)

{

t=0;

ldelay=1;  









//

每次溢出置一个标志,以便主程序处理



++m;

}

TH0=0x3c;

TL0=0xb0;

//

是给定时器设定初始值

50MS

}  
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-23 14:20 , Processed in 0.053407 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表