#include <stdio.h>
#include <stdint.h>
#include <string.h>
uint8_t logical_table[]={
0, '0', 0, '0', 0, '0', 0, '0', //pin seg 0 //没有接
1, 'D', 1, 'E', 1, 'F', 1, 'A',
1, 'C', 1, 'G', 1, 'B', 7, 'F',
2, 'D', 2, 'E', 2, 'F', 2, 'A',
2, 'C', 2, 'G', 2, 'B', 2, ':',
3, 'D', 3, 'E', 3, 'F', 3, 'A',
3, 'C', 3, 'G', 3, 'B', 7, 'E',
4, 'D', 4, 'E', 4, 'F', 4, 'A',
4, 'C', 4, 'G', 4, 'B', 4, ':',
5, 'D', 5, 'E', 5, 'F', 5, 'A',
5, 'C', 5, 'G', 5, 'B', 5, '0',
6, 'D', 6, 'E', 6, 'F', 6, 'A',
6, 'C', 6, 'G', 6, 'B', 6, '.',
9, 'B', 9, 'G', 9, 'C', 7, 'D',
9, 'A', 9, 'F', 9, 'E', 9, 'D',
8, 'B', 8, 'G', 8, 'C', 8, 'u',
8, 'A', 8, 'F', 8, 'E', 8, 'D',
7, 'A', 7, 'B', 7, 'G', 7, 'C',//pin seg 17
};
uint8_t mapping_table[][7]= {
{'A', 'B', 'C', 'D', 'E', 'F', ' '},//'0'
{'B', 'C', ' ', ' ', ' ', ' ', ' '},
{'A', 'B', 'D', 'E', 'G', ' ', ' '},
{'A', 'B', 'C', 'D', 'G', ' ', ' '},
{'B', 'C', 'F', 'G', ' ', ' ', ' '},
{'A', 'C', 'D', 'F', 'G', ' ', ' '},
{'A', 'C', 'D', 'E', 'F', 'G', ' '},
{'A', 'B', 'C', ' ', ' ', ' ', ' '},
{'A', 'B', 'C', 'D', 'E', 'F', 'G'},
{'A', 'B', 'C', 'D', 'F', 'G', ' '},//'9'
{':', 'u', '.', ' ', ' ', ' ', ' '},
};
uint32_t font_arr[9][11][4]; //[9]:断码屏有九个字符 [11]//每个字符有11种变化 //[4]//对应com引脚有四个
void logical_table_conver_encoding(void)
{
uint8_t bit=0,index=0,seg,com, i=0;
memset(font_arr, 0,sizeof(font_arr));
while((9+1) > bit){
printf("\r\nbit: %d", bit);
while((10+1) > index){
printf("\r\n number: %d ", index);
i = 8;
while(sizeof(logical_table) > i){
seg = (i/8);
com = i%8/2;
if((bit+1) == logical_table[i++]){
if(mapping_table[index][0]==logical_table[i]) font_arr[bit][index][com] |= 1<<seg;
if(mapping_table[index][1]==logical_table[i]) font_arr[bit][index][com] |= 1<<seg;
if(mapping_table[index][2]==logical_table[i]) font_arr[bit][index][com] |= 1<<seg;
if(mapping_table[index][3]==logical_table[i]) font_arr[bit][index][com] |= 1<<seg;
if(mapping_table[index][4]==logical_table[i]) font_arr[bit][index][com] |= 1<<seg;
if(mapping_table[index][5]==logical_table[i]) font_arr[bit][index][com] |= 1<<seg;
if(mapping_table[index][6]==logical_table[i]) font_arr[bit][index][com] |= 1<<seg;
}
i++;
}
printf("0x:%08x,%08x,%08x,%08x",font_arr[bit][index][0],font_arr[bit][index][1],font_arr[bit][index][2],font_arr[bit][index][3]);
index++;
}
bit++;
index = 0;
}
}
int main()
{
/* 我的第一个 C 程序 */
printf("Hello, World! \n");
logical_table_conver_encoding();
return 0;
}
09-08
1919