led.c

来自「52单片机开发板的实例程序」· C语言 代码 · 共 46 行

C
46
字号
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char 
uchar code dz[][8]={
			{0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x3C}, 
			{0x08,0x0C,0x0A,0x08,0x08,0x08,0x08,0x3E},//1
			 {0x1C,0x22,0x22,0x10,0x08,0x04,0x02,0x3E},//2
             {0x00,0x78,0x44,0x40,0x30,0x40,0x44,0x78},//3
			 {0x00,0x18,0x14,0x12,0x12,0x7E,0x10,0x10},//4
			 {0x3C,0x04,0x04,0x3C,0x20,0x20,0x20,0x3C},//5
			 {0x00,0x7C,0x04,0x04,0x7C,0x44,0x44,0x7C},//6
			 
			{0x00,0x7C,0x20,0x10,0x10,0x10,0x10,0x10},//7
			 {0x00,0x1C,0x22,0x22,0x1C,0x22,0x22,0x1C},//8
			 
			{0x3C,0x42,0x42,0x42,0x7C,0x40,0x40,0x3E},//9
             
             };
uchar code wela[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar aa[8];
uchar temp;
void delay(uint k)
{
  uchar i;
  for(;k>0;k--)
  for(i=110;i>0;i--);
}
void main()
{ 
  	uchar i,j,k;
	while(1)
	{
	 for(i=0;i<10;i++)
      {
       for(k=0;k<120;k++)//相当于延时,因为要实现动态扫描点阵中的8行,如果用delay()的话则一直停留在第8行
        {
           for(j=0;j<8;j++)
             {
               P2=dz[i][j];//写入table[i][j]中的数据 
               P1=wela[j];    //选通第j行
               delay(2);  //稍延时
             }
        }
       }
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?