📄 main.c
字号:
/****************************************************************************
******** 石家庄智讯科技有限公司 ********
******** ********
******** ShijiaZhuang Intelligence&Communication Scientific CO.,LTD. ********
****************************************************************************/
/****************************************************************************
******** 系统配置 *******
*****************************************************************************/
#define IN_MAIN
#include "config.h"
uint8 led_flag;//点阵公共端设置 =0共阴 >0共阳
const uint8 led_zifu[][8]={ 0x06,0x09,0x0b,0x0b,0x0d,0x0d,0x09,0x06,
0x06,0x0e,0x06,0x06,0x06,0x06,0x06,0x0f,
0x06,0x09,0x01,0x01,0x06,0x08,0x08,0x0f,
0x0f,0x01,0x02,0x06,0x01,0x01,0x09,0x06,
0x02,0x06,0x0a,0x0a,0x0f,0x02,0x02,0x02,
0x0f,0x08,0x08,0x0e,0x01,0x01,0x09,0x06,
0x06,0x09,0x08,0x0e,0x09,0x09,0x09,0x06,
0x0f,0x01,0x01,0x02,0x04,0x04,0x04,0x04,
0x06,0x09,0x09,0x06,0x09,0x09,0x09,0x06,
0x06,0x09,0x09,0x09,0x07,0x01,0x09,0x06,
0x06,0x09,0x09,0x09,0x0f,0x09,0x09,0x09,
0x0e,0x09,0x09,0x0e,0x09,0x09,0x09,0x0e,
0x06,0x09,0x08,0x08,0x08,0x08,0x09,0x06,
0x0e,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,
0x0f,0x08,0x08,0x0e,0x08,0x08,0x08,0x0f,
0x0f,0x08,0x08,0x0e,0x08,0x08,0x08,0x08,
0x06,0x09,0x08,0x08,0x0b,0x09,0x09,0x06,
0x09,0x09,0x09,0x0f,0x09,0x09,0x09,0x09,
0x0f,0x06,0x06,0x06,0x06,0x06,0x06,0x0f,
0x0f,0x02,0x02,0x02,0x02,0x02,0x0a,0x04,
0x09,0x0a,0x0c,0x08,0x08,0x0c,0x0a,0x09,
0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x0f,
0x09,0x09,0x0f,0x0f,0x09,0x09,0x09,0x09,
0x09,0x09,0x09,0x0d,0x0b,0x09,0x09,0x09,
0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x06,
0x0e,0x09,0x09,0x0e,0x08,0x08,0x08,0x08,
0x06,0x09,0x09,0x09,0x09,0x09,0x0B,0x07,
0x0E,0x09,0x09,0x0E,0x0C,0x0A,0x09,0x09,
0x06,0x09,0x08,0x04,0x02,0x01,0x09,0x06,
0x0F,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,
0x09,0x09,0x09,0x09,0x09,0x09,0x0A,0x04,
0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x09,
0x09,0x09,0x09,0x06,0x06,0x09,0x09,0x09,
0x09,0x09,0x09,0x07,0x01,0x01,0x02,0x0C,
0x0F,0x01,0x01,0x02,0x04,0x08,0x08,0x0F,
0x00,0x42,0xA5,0x00,0x00,0x81,0x42,0x3C,//SMILE
0x18,0x30,0x60,0xFF,0xFF,0x60,0x30,0x18,//LEFT
0x18,0x0C,0x06,0xFF,0xFF,0x06,0x0C,0x18,//RIGHT
0x69,0x9a,0x9c,0x98,0x98,0x9c,0x9a,0x69//OK
};
uint8 temp[8]={0};
/****************************************************************************
******** 子程序 *******
*****************************************************************************/
void IRQ_EXE(void)//非向量中断入口,勿删
{
while(1);//用户替换自己的程序
}
void delayns()
{
uint32 i;
for(i=200;i>0;i--);
}
void delay()
{
uint8 i;
for(i=10;i>0;i--);
}
void delayms(uint32 x)
{
uint32 i;
for(;x>0;x--)
for(i=50000;i>0;i--);
}
void init_led()
{
IO0DIR=IO0DIR|red_cs;
IO0DIR=IO0DIR|com_cs;
IO0DIR=IO0DIR|led_cs;
IO0DIR=IO0DIR|ad0;
IO0DIR=IO0DIR|ad1;
IO0DIR=IO0DIR|ad2;
IO0DIR=IO0DIR|ad3;
IO0DIR=IO0DIR|ad4;
IO0DIR=IO0DIR|ad5;
IO0DIR=IO0DIR|ad6;
IO0DIR=IO0DIR|ad7;
PINSEL0=0;
PINSEL1=0;
IO0SET=red_cs;
IO0SET=com_cs;
IO0SET=led_cs;
led_flag=1;//点阵为共阳
}
void red_out(uint8 dat)
{
uint8 i;
if(led_flag==0)i=dat;
else i=~dat;
if(i&0x01)IO0SET=ad7;
else IO0CLR=ad7;
i>>=1;
if(i&0x01)IO0SET=ad6;
else IO0CLR=ad6;
i>>=1;
if(i&0x01)IO0SET=ad5;
else IO0CLR=ad5;
i>>=1;
if(i&0x01)IO0SET=ad4;
else IO0CLR=ad4;
i>>=1;
if(i&0x01)IO0SET=ad3;
else IO0CLR=ad3;
i>>=1;
if(i&0x01)IO0SET=ad2;
else IO0CLR=ad2;
i>>=1;
if(i&0x01)IO0SET=ad1;
else IO0CLR=ad1;
i>>=1;
if(i&0x01)IO0SET=ad0;
else IO0CLR=ad0;
}
void com_out(uint8 dat)
{
uint8 i;
if(led_flag==0)i=dat;
else i=~dat;
if(i&0x01)IO0SET=ad0;
else IO0CLR=ad0;
i>>=1;
if(i&0x01)IO0SET=ad1;
else IO0CLR=ad1;
i>>=1;
if(i&0x01)IO0SET=ad2;
else IO0CLR=ad2;
i>>=1;
if(i&0x01)IO0SET=ad3;
else IO0CLR=ad3;
i>>=1;
if(i&0x01)IO0SET=ad4;
else IO0CLR=ad4;
i>>=1;
if(i&0x01)IO0SET=ad5;
else IO0CLR=ad5;
i>>=1;
if(i&0x01)IO0SET=ad6;
else IO0CLR=ad6;
i>>=1;
if(i&0x01)IO0SET=ad7;
else IO0CLR=ad7;
}
void red_on(uint8 dat)
{
IO0SET=red_cs;
delay();
red_out(dat);
delay();
IO0CLR=red_cs;
delay();
IO0SET=red_cs;
delay();
}
void com_on(uint8 dat)
{
IO0SET=com_cs;
delay();
com_out(dat);
delay();
IO0CLR=com_cs;
delay();
IO0SET=com_cs;
delay();
}
void disp_dat(uint8 x)
{
uint8 i,j,k,l;
for(j=x;j>0;j--)
{
for(k=10;k>0;k--)
{
l=0xfe;
for(i=0;i<8;i++)
{
red_on(0);
com_on(l);
red_on(temp[i]);
delayns();
l<<=1;
l++;
}
}
}
}
void adjust_jingtai(const uint8 *dat)// 赋值
{
uint8 i;
for(i=0;i<8;i++)
{
temp[i]=*dat;
dat++;
}
}
void disp_zifu(const uint8 *dat)
{
adjust_jingtai(dat);
disp_dat(100);
}
/*****************************************************************************
******* 主程序 ********
*****************************************************************************/
void Main(void)
{
uint8 i;
TargetInit();//系统初始化程序,勿删!
init_led();
while(1)
{
for(i=0;i<40;i++)
{
disp_zifu(&led_zifu[i][0]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -