A. 51单片机最小系统流水灯的原理图关于AT89S52类型的
图中芯片是AT89C51,最小系统图的话是一样的
程序:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delays(uint t)
{
uint i,j;
for(i=0;i<t;i++)
{
for(j=0;j<1141;j++);
}
}
void main()
{
//P0M1=0X00; //单片机除了P0口以外,其他I/O在内部都有上拉电阻
//P0M0=0XFF; //AT89C51没有推挽输出这一说,所以P0高电平不亮,要加上拉电阻;
//用其他端口不需要考虑
/**************从左到右流水灯**************/
uchar i;
P0=0Xfe;
delays(100);
while(1)
{
P0=_crol_(P0,1);//向左循环移动一位
delays(50);
}
}
/*****************左右来回点亮************/
void main()
{
uchar i;
P0=0x01;
delays(100);
while(1)
{
for(i=0;i<7;i++)
{
P0=_crol_(P0,1);
delays(50);
}
for(i=0;i<7;i++)
{
P0=_cror_(P0,1);
delays(50);
}
}
}