8*8点阵屏怎样实现0~9,字母,汉字三者进行切换(C语言程序)

以下是仿真图

你这个问题信息量太大,只能给你提个思路:
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码值,去定位点阵数组的序号。英文字母同理进行处理。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-18
看了你的连线,要实现这个就要分别造字,然后用逐行扫描的方法来显示。你可以把造的字放在数组里或者索性放在EPROM里面追问

不显示汉字!只显示数字和字母,求C语言程序

追答

数字和字母也得造字!!基本常识都没有吗……

8*8点阵屏怎样实现0~9,字母,汉字三者进行切换(C语言程序)
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 ),...

...帮我写一个8*8点阵显示0~9数字循环的C语言程序,要求每隔1s换一个...
include<stdio.h>#include<stdlib.h>#include<windows.h>void PrintNum(int n){switch(n){case 0:printf("***\\n");printf("* *\\n");printf("* *\\n");printf("* *\\n");printf("* *\\n");printf("* *\\n");printf("* *\\n");printf("***\\n");break;ca...

求用汇编语言写的 8×8LED点阵显示数字 数字从0到9 的程序 急急急...
何必一定用汇编

怎样用c语言实现8*8点阵数字、字母的显示及移动
第一,没有硬件连接描述,单片机类型,晶振参数等;第二,既然是点阵 ,显示的内容是需要自编字库的,即字模;第三,没有说明所谓的移动是什么类型的,如整个字母移动,或单列移动;整屏移动又是什么情况。

求一个8*8LED点阵汉字显示C语言程序(C52)
void main(){ unsigned char w,i;while(1){ \/\/显示0 w=0x01; \/\/行变量为第一行 for(i=0;i<8;i++){ P1=w;\/\/行数据送P1口 P0=led0[i];delayms(1);\/\/列数据送P0口 w<<=1;\/\/向下移动一行 } } } void delay1ms(unsigned int ms){ unsigned int i,j;for(i=0;i<ms;...

设计一个8*8点阵,使用MCS-51单片机,P0 P1 口控制其输出。0~9共十个...
C语言可不可以,你要汇编,可以将C语言转成汇编。要C语言的话我可以帮你画电路图和C语言程序 参考PDF档:(只有电路没有程序,若需要C语言请留言)不知是不是你想要的

单片机数字9到0显示程序代码?
这里给出一种基于Arduino平台的单片机数字0到9显示的程序代码,可供参考:c++ Copy code int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; \/\/定义LED引脚 int numPins[][7] = { \/\/定义数字0~9的LED点阵图形 {1, 1, 1, 1, 1, 1, 0}, \/\/0 {0, 1, 1, 0,...

单片机中,用点阵怎么实现数字的输出,其程序怎么编写???
点阵不管是显示汉字还是数字,一般都是将要显示的汉字或数字用字模提取软件转换出一个数组的内容,然后将这个数组复制到单片机的程序中,以下给你一些C语言程序参考,这个是16*16的点阵,还有就是提醒一下你,你用字模提取软件时要看清楚取码是从哪个方向开始的,然后写程序时也要对应:include <reg52.h...

用C语言编写 手机用拼音输入法的实现
第一步:qh-=0xa0; \/\/机内码转成区位码-0xa0 wh-=0xa0;第二步:定位字库里面的字:offset=(94*(qh-1)+(wh-1))*32; \/* 定位字库的字 *\/ 第三步:显示到屏上面16*16个点一个汉字 for(i=0;i<16;i++){ val16=((hzk16[i]<<8)&0xff00) + ((hzk16[i]>>8)&0xff);for...

...16的点阵,以及怎样连接电路,还有给一个c语言程序吧!
这个就看你怎么应用了。假设你想用它来显示一个汉字。你想一下,8*8的点阵只可以显示简单的汉字,复杂的汉字就只能用更大的点阵了。更大的点阵表现力就更加丰富了。功能不多加叙述。至于程序,其实还要结合电路。即点阵中有许多发光二极管,行列谁对应高,低电平,要清楚。单片机肯定带不动这个电路,...

相似回答