Stc 单片机闪烁灯、流水灯查表法的实现
闪烁灯
1.实验任务 如电路原理图所示:在P2.0端口上接一个发光二极管L1,使L1在不停地一
亮一灭,一亮一灭的时间间隔为0.2秒。
21032 32
21032 32
3.系统板上硬件连线 把“单片机最小系统”中的P2.0端口用导线连接到发光二极管L1
端口上。
1.实验任务 利用取表的方法,使端口P2做单一灯的变化:左移2次,右移2次,闪烁2
次(延时的时间0.2秒)
3.硬件实现 把“单片机最小系统”P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应
着L8。
5.
C语言源程序
#include unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,
21032 32
0xf7,0xfb,0xfd,0xfe,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
21032 32
0x00,0xff,0x00,0xff,
0x01};
unsigned char i;
void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main(void)
{
while(1)
21032 32
{
if(table!=0x01) { P1=table; i++; delay(); } else { i=0;
} } } 流水灯程序c
#include sbit L1=P2^0;
sbit l2=P2^1;
sbit l3=P2^2;
sbit l4=P2^3;
sbit l5=P2^4;
sbit l6=P2^5;
sbit l7=P2^6;
sbit l8=P2^7;
21032 32
void delay02s(void) //延时0.2秒子程序
{
unsigned char i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=150;k>0;k--);
}
void main(void)
{
while(1)
{
L1=0;
delay02s();
21032 32
L1=1;
l2=0;
delay02s();
l2=1;
l3=0;
delay02s();
l3=1;
l4=0;
delay02s();
l4=1;
l5=0;
delay02s();
l5=1;
21032 32
l6=0;
delay02s();
l6=1;
l7=0;
delay02s();
l7=1;
l8=0;
delay02s();
l8=1;
}
}
21032 32