/*----------------------------------------------------------- 名称:花样灯Ⅱ 作者:fei yu 日期:2010-5-15 内容:花样灯的两种实现方法: Ⅰ:程序循环执行 Ⅱ:查表法 ------------------------------------------------------------*/ #include<reg52.h> #define uchar unsigned char uchar code seg[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0xff,0xff,0x00, 0,0x55,0x55,0xaa,0xaa}; /*--------------------------------------------------------------- 花样表格,其中rom允许情况可以无限添加 --------------------------------------------------------------*/ void delay(unsigned int cnt)//简易延时 { while(--cnt); } main() { unsigned char i; while(1) { P1=0xFE; //第一个LED亮 for(i=0;i<8;i++) { delay(10000); P1 <<=1; } P1=0x7F; //第七个LED灯亮 for(i=0;i<8;i++) { delay(10000); P1 >>=1; } P1=0xFE; //第一个LED灯亮 for(i=0;i<8;i++) { delay(10000); P1 <<=1; P1 |=0x01; } P1=0x7F; //第七个LED灯亮 for(i=0;i<8;i++) { delay(10000); P1 >>=1; P1 |=0x80; } /*下面通过查表方法获得花样参数*/ for(i=0;i<16;i++) //查表可以简单的显示各种花样 实用性更强 { delay(20000); P1=seg[i]; } } } 注解:查表法通过循环,将已经定义好的样式显示出来, 也可定义循环移动闪烁,比较方便直观。