设计任务
基于单片机的八路跑马灯设计
基本要求:利用单片机AT89C51设计跑马灯,要求LED灯循环显示。。
创新:左循环显示;右循环显示、花样显示等。
任务区分:A——周期为0.5s。
2. 设计要求
2.1系统方案论证
根据设计任务,分析设计系统的组成,给出实现设计任务的几种方案,分析比较几种设计方案的优略,本着尽量以软件代替硬件,同时力求电路简单,工作可靠的原则,确定总体设计方案。
2.2系统硬件电路设计
根据系统设计方案进行软、硬件的分配,软、硬件设计分别进行。硬件设计包括单片机最小系统和扩展接口及配置,硬件结构在设计时要选择合适的元器件,硬件电路要简洁、工作可靠,需用Proteus绘制整个系统的电路仿真原理图。
主函数:
#include<reg52.h>
#include<intrins.h>
#include<pbdata.h>
sbit kg1 = P1^0;//¶¨ÒåÒ»¸ö¿ª¹Ø
void delay()//¶¨ÒåÒ»¸öÑÓʱº¯Êý 500ms
{
unsigned char i,j,k;
i=4;
j=205;
k=187;
do
{
do
{
while (--k);
}
while (--j);
}
while (--i);
}
void EX0_Init(void)
{
IT0=1;
EX0=1;
EA=1;
}
#define uchar unsigned char
uchar led,time=0;
sbit key=P1^1;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
led=_crol_(led,1);
P2=led;
time++;
if(time>=200)TR0=0;
}
void main()
{
int a,b,z;
EX0_Init();
while(1)
{
if(kg1==0)//ÅжϿª¹Ø°´ÏÂ
{
P2=0x7f;//0111 1111
delay();
for(b=1;b<8;b++)
{
P2=_cror_(P2,1);//ÓÒÑ»·
delay();
}
for(z=1;z<8;z++)
{
P2=_crol_(P2,1);//×óÑ»·
delay();
}
delay();
for(a=1;a<4;a++)
{
P2=_cror_(P2,2);//ÓÒ¿ÕÒ»¸öÑ»·
delay();
}
P2=0xfe;//1111 1110
delay();
for(a=1;a<4;a++)
{
P2=_crol_(P2,2);//×ó¿ÕÒ»¸öÑ»·
delay();
}
delay();
}
}
}
仿真程序
完整代码点开链接私信 免费 获取。
【iBot机器人工作室的个人空间-哔哩哔哩】 https://b23.tv/ryUWVKa