📄 dot_9.c
字号:
/*--------------------------------------------------------------*/
//包含头文件
#include<reg52.h>
/*--------------------------------------------------------------*/
//代码区
//取码规则:纵向取模,字节倒序
//取码顺序:左到右,上到下(← → ↑ ↓)
unsigned char code table[]={
0x00,0x02,0x02,0x02,0x02,0x82,0x42,0xFE,0x06,0x42,0xC2,0x82,0x02,0x03,0x02,0x00,
0x00,0x08,0x04,0x02,0x01,0x00,0x00,0x7F,0x00,0x00,0x00,0x01,0x07,0x02,0x00,0x00,//不0
0x80,0x80,0x80,0x80,0xBE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBE,0x80,0x80,0x80,0x00,
0x00,0x40,0x20,0x10,0x0E,0x10,0x20,0x3F,0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00,//是1
0x00,0xF8,0x8C,0x8B,0x88,0xF8,0x40,0x30,0x8F,0x08,0x08,0x08,0x08,0xF8,0x00,0x00,
0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x03,0x26,0x40,0x20,0x1F,0x00,0x00//的2
};
#define num sizeof(table) //获得汉字个数
/*--------------------------------------------------------------*/
//延时500+0us 函数定义
void delay1(void)
{
unsigned char i, j;
for(i = 99; i > 0; i--)
for(j = 1; j > 0; j--);
}
/*--------------------------------------------------------------*/
//主函数
void main(void)
{
unsigned char i, n; //n控制滚动速度
unsigned int m; //汉字移动变量
unsigned char buffer[64]; //两个汉字的缓冲区
unsigned char k; //指向第几个汉字的变量
bit next = 1, neg; //控制是否缓冲,反色显示
while(1)
{
if(next|m)
{
for(i = 0; i < 16; i++) //写入两个汉字进缓冲区12-23-34
{
buffer[i] = ((table[32*k+i])>>m)|((table[32*k+16+i])<<(8-m));
buffer[i+32] = (table[32*k+16+i])>>m;
}
}
for(i = 0; i < 16; i++) //单列扫描
{
if(neg) //反色显示
{
P0 = ~buffer[i+m]; //字的上半部分
P2 = ~buffer[i+m+32]; //字的下半部分
}
else //正常显示
{
P0 = buffer[i+m]; //字的上半部分
P2 = buffer[i+m+32]; //字的下半部分
}
P1 = ~((0x0001<<i)&0xff); //列扫描
P3 = ~((0x0001<<i)>>8);
delay1();delay1();delay1(); //延时
P1 = 0xff; //关显示
P3 = 0xff;
}
n++;
if(n == 10) {n = 0; m++;} //控制滚动速度
if(m == 10) {m = 0; k++; next = 1;} //下一组汉字
else next = 0; //控制是否缓冲
if(k == num/32) {k = 0; neg = ~neg;} //循环滚动
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -