C语言点阵输出字母A

Python012

C语言点阵输出字母A,第1张

#include <stdio.h>

#include <stdlib.h>

void main()

{

int L[8][8] = {

0,0,0,0,1,0,0,0,

0,0,0,1,1,0,0,0,

0,0,0,1,1,0,0,0,

0,0,1,0,0,1,0,0,

0,0,1,1,1,1,0,0,

0,1,0,0,0,0,1,0,

0,1,0,0,0,0,1,0,

1,0,0,0,0,0,0,1}

int i,j

for (j=0j<8j++)

{

for (i=0i<8i++) {

if (L[j][i]==1) {printf("*")} else printf(" ")

}

printf("\n")

}

system("pause")

}

---------

font L[8][8]可以自己调整

第一,没有硬件连接描述,单片机类型,晶振参数等;

第二,既然是点阵 ,显示的内容是需要自编字库的,即字模;

第三,没有说明所谓的移动是什么类型的,如整个字母移动,或单列移动;整屏移动又是什么情况。

你这个问题信息量太大,只能给你提个思路:

1) 8*8的点阵屏要显示0-9,字母以及汉字需要使用点整显示的方法。对于0-9以及字母都没有问题,点阵用的的很少,在程序里直接写就可以啦。对于汉字你需要找8*8的汉字点阵字库,能不能找到都是个问题,除非只是显示几个有限的简单汉字。而且8*8的屏显示汉字太小,比如必要显示汉字“真”,用8*8的点阵是很难显示的。一般显示汉字最小的也要12*12,正常情况是16*16的点阵,个别有窄体汉字用12*16的。

2)你要弄明白点阵显示汉字的逻辑,视觉暂留是LED显示屏得以广泛应用的基础,目前广为采用的扫描驱动方式。你需要一个通用函数,就是根据要显示的数字,字母或汉字,找到对应的点阵码值,然后用行扫描的方法依次给对点阵进行行地址选定,再对列电平置位。

3)比如数字0的8*8点阵就是(0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xE7,0xFF,/* 0 */ ),你需要先选b0,将c0到c7,设置为0xff(即8位全1),接着选b1,将c0到c7设置为0xE7(即两段为0,中间全1,01111110 ),接着选b2,将 c0到c7设置为0xBD(即两段为1,中间全0,10000001 ),依次类推,就显示了数字0。可以根据同样的逻辑,把十个数字,26个字母的大小写都点阵化,写成数组放在代码里直接用就可以。

4)当你要显示汉字的时候,汉字其实是两个字节都成的,第一个字节的最高位是1,表示区码,后面跟着的是位码。根据这两个字节的信息可以定位你的汉字在字库里对应的点阵数据。然后和上面显示数字一样的处理方法把汉字点阵数据显示即可。

5)你的8*8显示屏显示数字和英文还勉强,显示中文太小啦。

6)你现在的首要难题是去找8*8的中文点阵字库,并弄清楚存放汉字点阵数据的逻辑,这样才能根据汉字的区位码找到对应的点阵数据。如果只显示数据和英文字母,可以在8*8的坐标纸上自己去写上数字或字母后,在转化成10101111类似的二进制,去做一个自己的字库。显示数字的时候,把每个数字的ASCII码值减去数字0的ASCII码值,去定位点阵数组的序号。英文字母同理进行处理。