单片机源程序如下:
- /*****************************************************************************************
- * *
- * LED点阵实验 (左右上下流动显示) *
- * 说明 通过P0 P1和 P2 作为点阵接口 *
- *要求学员掌握 LED点阵的工作原理和 各点阵脚的定义及接法,具体接线请参考接线说明 *
- *我们采用的LED点阵式是低功耗,在做实验时可以用单片机脚直接驱动 *
- ******************************************************************************************/
- #include <REG51.H>
- unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //纵条表
- unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //衡条表
- /*************延时函数*********************/
- void delay1(void)
- {
- unsigned char i,j,k;
-
- for(k=10;k>0;k--) //循环时间是 10*20*248次
- for(i=20;i>0;i--)
- for(j=248;j>0;j--);
-
- }
- /*************主函数*****************************/
- void main(void)
- {
- unsigned char i,j;
-
- while(1)
- {
- for(j=0;j<3;j++) //从左到右3次
- {
- for(i=0;i<8;i++) //循环8次逐条点亮8个LED点阵灯
- {
- P2=taba[i];
- P0=0xff;
- delay1();
- }
- }
-
- for(j=0;j<3;j++) //从右到左3次
- {
- for(i=0;i<8;i++) //循环8次逐条点亮8个LED点阵灯
- {
- P2=taba[7-i];
- P0=0xff;
- delay1();
- }
- }
-
- for(j=0;j<3;j++) //从上到下3次
- {
- for(i=0;i<8;i++) //循环8次逐条点亮8个LED点阵灯
- {
- P2=0x00;
- P0=tabb[7-i];
-
- delay1();
- }
- }
-
- for(j=0;j<3;j++) //从下到上3次
- {
- for(i=0;i<8;i++) //循环8次逐条点亮8个LED点阵灯
- {
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
9 LED点阵.zip
(573.56 KB, 下载次数: 24)
|