Ⅰ 单片机中,用点阵怎么实现数字的输出,其程序怎么编写
点阵不管是显示汉字还是数字,一般都是将要显示的汉字或数字用字模提取软件转换出一个数组的内容,然后将这个数组复制到单片机的程序中,以下给你一些C语言程序参考,这个是16*16的点阵,还有就是提醒一下你,你用字模提取软件时要看清楚取码是从哪个方向开始的,然后写程序时也要对应:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint i,k;
void delay(uint i)
{
while(i--);
}
//深
uchar code shen[]=
{0xFF,0xFF,0x9F,0x6F,0xAE,0x67,0xBB,0x6F,
0xB7,0x5F,0xAF,0x3F,0xB8,0x00,0xAF,0x3F,
0xB7,0x5F,0xBB,0x6F,0x9F,0x77,0xEE,0xF7,
0xCF,0x7F,0xD9,0x80,0xBB,0xDF,0xF7,0xDF};
//圳
uchar code zhen[]=
{0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,
0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0xFF,
0x80,0x0F,0xFB,0xF3,0xF3,0xDD,0xFB,0xDF,
0x00,0x0F,0xFB,0xEF,0xFB,0xE7,0xFB,0xEF};
//从左到右显示
void display1(uchar *P)
{
uint time=1000;//750
for(k=32;k>0;k=k-2)
{
P2=P[k-2];
P1=P[k-1];
delay(time);
}
P2=0xff;P1=0xff;
}
//从右到左显示
void display2(uchar *P)
{
uint time=1000;//750
for(k=0;k<32;k=k+2)
{
P2=P[k];
P1=P[k+1];
delay(time);
}
P2=0xff;P1=0xff;
}
void main()
{
while(1)
{
display1(shen); //深
delay(2000);
display1(zhen); //圳
delay(2000);
}
}
希望能帮助到你,那个字模提取软件很多,好像只有几百K,很容易下载的,如果下载不了,我发给你也可以。
Ⅱ 单片机汇编语言8乘8点阵从上到下显示修改成从左到右显示
对于点阵显示来说,是从上到下显示还是从左到右显示,还得看待显示的字符的点阵数据是如何排列的;
1)如采用从左到右从上到下的排列结构形式,那么显示方式就如
则行(PC口)输出8位数据,而列(PA口)则仅输出与要显示行对应的位数据;
如果字符的点阵数据是第一种结构的,想要采用第二种显示形式,就需要先把字符的点阵数据进行数据格式的转换。