说明:本系列51单片机的100个例子都采用的是STC15F2K60S2增强型的单周期单片机。
1、需求:将连接在P0口的led灯D1~D8,实现灯亮效果为D1D8-D2D7-D3D6-D4D5-D3D6-D2D7-D1D8,如此重复显示。
2、硬件电路:
3、程序设计:
#include <REGX51.H>
void Delay200mS(void) //--- @12MHz,延时函数 ---
{
unsigned char i,j,k;
for(i=10;i>0;i--)
for(j=13;j>0;j--)
for(k=147;k>0;k--);
}
unsigned char code LEDTAB[] = //--- LED显示代码表 ---
{
0x7E,0xBD,0xDB,0xE7,0xDB,0xBD,0x7E,
};
void main(void)
{
unsigned char i;
while(1)
{
i = 0;
while(i < sizeof(LEDTAB))
{
P0 = LEDTAB[i]; //--- 从代码表中取数送到P0口 ---
Delay200mS(); //--- 调用延时函数 ---
i ++; //--- 指向下一个 ---
}
}
}
4、小结:
对于要显示的效果没有规律可循时,可以直接建立一个显示代码表,将要显示的内容放置在显示的代码表中,在通过查表的方式将要显示的内容依次送出去。