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);
}
}
}