📄 led.c
字号:
//led显示屏幕的显示
#include<REG52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
/********变量定义**************/
//p0、p2口输出数据,p1口低位输出控制选通
uchar code char_s[192]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x04,0x20,0x24,0x20,0x24,0x44,0x24,0x88,
0xfd,0x30,0x26,0x02,0x24,0x01,0x25,0xFE,
0x24,0x10,0x26,0x08,0xFD,0x20,0x24,0x90,
0x64,0x4C,0x2C,0x60,0x04,0x40,0x00,0x00, //恭
0x00,0x40,0x40,0x40,0x50,0x40,0x57,0x5F,
0x55,0x52,0x55,0xD2,0x55,0x52,0xF5,0x52,
0x55,0x52,0x55,0xD2,0x55,0x52,0x57,0x7F,
0xD0,0x50,0x40,0xC0,0x00,0x40,0x00,0x00, //喜
0x00,0x02,0x08,0x04,0x18,0x09,0x68,0x11,
0x08,0x62,0x09,0x82,0x0F,0xC4,0xF9,0x28,
0x09,0x10,0x09,0x28,0x49,0x44,0x29,0x84,
0x08,0x02,0x18,0x03,0x08,0x02,0x00,0x00, //发
0x00,0x02,0x7F,0xE4,0x40,0x18,0x5F,0xE0,
0x40,0x10,0xFF,0xEC,0x48,0x10,0x08,0x20,
0x08,0x40,0x08,0x82,0x0B,0x01,0xFF,0xFE,
0x08,0x00,0x18,0x00,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //财
/************函数声明***************/
void delay_1(uint n);
void diap_char(uchar *word_1);
void diap_chars(void);
void diap_m(void);
/*******主函数开始**************/
void main()
{
P0=0xff;
P1=0xff;
P2=0xff;
diap_chars();
delay_1(2000);
while(1)
{
diap_m();
diap_m();
diap_chars();
delay_1(800);
}
}
/***********子函数定义************/
void delay_1(uint n) //小延时函数,为74hc154的时续时间
{
//int i_d;
while(n--!=0);
}
void diap_char(uchar *word_1) //显示一个汉字 ,一闪而过,只显示一次
{
int i;
int j_1;
j_1=0;
// for(i=0;*(word_1+i)!='\0';i++)
for(i=0;i<32;i++)
{
P0=*(word_1+i);
i++;
P2=*(word_1+i);
P1=0xe0+j_1;
j_1++;
delay_1(15);
P0=0;
P2=0;
P1=0xff; //关74hc154
}
}
void diap_chars(void) //显示所有的字符
{
uint j_2;
uint mm;
uchar *pc;
pc=char_s;
for(j_2=1;j_2<5;j_2++)
{
for(mm=0;mm<2000;mm++) //显示一个字的时间
{
diap_char(pc+32*j_2);
}
delay_1(1000); //每个字的显示之间不要太快,否则没过度效果,所以先清屏一小段时间先
}
}
//移动显示汉字
//显示方案为:定义一个变化的数组随着时间的变话而改变在调用显示函数
//在显示的时候改数组值
void diap_m(void)
{
uint ii;
uint j;
uchar *p;
P1=0xff;
delay_1(20);
p=char_s;
for(ii=0;ii<80;ii++) //移动显示一边的
{
// p=char_s;
for(j=0;j<16;j++) //为控制移动速度而设的,即每一暮至少要显示一段时间才看到显示的效果
{
diap_char(p);
}
p++;
p++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -