proteus仿真点阵显示汉字

#include<reg52.h>#defineint8unsignedchar#defineint16unsignedint#defineint32unsignedlo... #include <reg52.h>

#define int8 unsigned char
#define int16 unsigned int
#define int32 unsigned long

int8 flag;
int8 n;
int8 code table[][32]={
**********
};

void delay(void);
int16 offset;

void main(void)
{
int8 i;
int8 *p;
flag=0x10;
n=0;
TMOD=0x01;
TH0=0xb1;
TL0=0xe0;
ET0=1;
EA=1;
TR0=1;

p=&table[0][0];

while (1)
{
for (i=0;i<8;i++) //显示1左半边屏幕
{
P0=*(p+offset+2*i);
P2=i|0x08; //P2.4=0,P2.3=1 选中U2, 输出扫描码给U6
delay();

P0=*(p+offset+2*i+1);
P2=i|0x10; //P2.4=1,P2.3=0 选中U3, 输出扫描码给U7
delay();
}
for (i=8;i<16;i++) //显示1右半边屏幕
{
P0=*(p+offset+2*i);
P2=(i-8)|0x20; //P2.5=1 P2.4=0, P2.3=0 选中U4,输出扫描码U8
delay();

P0=*(p+offset+2*i+1);
P2=(i-8)|0x40; //P2.6=1 P2.5=0, P2.4=0 选中U5,输出扫描码U9
delay();
}
for (i=16;i<24;i++) //显示2左半边屏幕
{
P0=*(p+offset+2*i);
P1=(i-16)|0x08; //P1.4=0,P1.3=1 选中U, 输出扫描码给U10
delay();

P0=*(p+offset+2*i+1);
P1=(i-16)|0x10; //P1.4=1,P1.3=0 选中, 输出扫描码给U11
delay();
}
for (i=24;i<32;i++) //显示2右半边屏幕
{
P0=*(p+offset+2*i);
P1=(i-24)|0x20; //P1.5=1 P1.4=0, P1.3=0 选中U,输出扫描码U12
delay();

P0=*(p+offset+2*i+1);
P1=(i-24)|0x40; //P1.6=1 P1.5=0, P1.4=0 选中U,输出扫描码U13
delay();
}
}
}

void delay(void)
{
***

;
}

void timer0() interrupt 1 using 3
{
*******

}

用32*16的点阵仿加上
for (i=24;i<32;i++) //显示2右半边屏幕
{
P0=*(p+offset+2*i);
P1=(i-24)|0x20; //P1.5=1 P1.4=0, P1.3=0 选中U,输出扫描码U12
delay();

P0=*(p+offset+2*i+1);
P1=(i-24)|0x40; //P1.6=1 P1.5=0, P1.4=0 选中U,输出扫描码U13
delay();
这句点阵就不能工作,不加前3列可以显示,这个问题怎么解释
展开
 我来答
CHQIC
2014-04-28 · TA获得超过781个赞
知道小有建树答主
回答量:1362
采纳率:50%
帮助的人:438万
展开全部
你的硬件图上来一起分析才行
广州晶晟电子
2023-08-29 广告
广州晶晟电子科技有限公司一直专注生产销售中高端石英晶体谐振器和石英晶体振荡器。公司拥有从美国、日本、德国进口的生产及检测设备,超净化生产环境,娴熟的工艺及专业的技术人员。通过质量和服务获得了ISO9001质量体系认证和ISO14001环境体... 点击进入详情页
本回答由广州晶晟电子提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式