3146|6

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

16*16点阵屏的问题 [复制链接]

我是用74HC154+89C52做的,154管列,52的P0+P2口控行
求如何用C程序写
谢谢大家快来帮忙呀!

最新回复

先显示一个简单的字,例如大写的“一”,先搞对了它,再搞别的字。  详情 回复 发表于 2009-3-25 21:31
点赞 关注

回复
举报

63

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
用一个定时器定时扫描列线,到时间就换一列,行线就输出字模数据
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢guetcw的解答,我现在就是搞不懂P0和P2口的字模送法
就是如何两个端口同时送字模,组成一个汉字.
例如:
/*--  文字:  中  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code hanzi[]={
0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x3F,0x10,0x00,0x00,
0x00,0x00,0xE0,0x40,0x40,0x40,0x40,0xFF,0x40,0x40,0x40,0x40,0xE0,0x00,0x00,0x00};
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 1 楼 guetcw 的回复:
用一个定时器定时扫描列线,到时间就换一列,行线就输出字模数据


其实这也也简单,关键找到列刷新频率和整块刷新频率关系,防止屏闪。

可以这样送数:

for(i=0;i<8;i++)
{
p0 = hanzi;
p1 = hanzi[i+1];
74HC154输出选择i列;
延时;
}

当然这只是一个简单模式,建议你用定时器来确定扫描时间。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

5
 
1/16 1/8 1/4 1/2 静态等等各种扫描方式,你这个情况用1/16扫吧,比较简单,再加两片138做行选
www.01zg.com 周工开发网,专业的嵌入式交流平台!
 
 
 

回复

98

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢大家,可我还是搞不懂,显示出来的字看不懂.我的码是:
#include
#define uchar unsigned char
#define uint unsigned int
sbit e0=P1^4;//74hc154的E0口
uchar tt,ys;
uchar code templie[]={
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};//74hc的A0~A3码表

uchar code hanzi[]={
0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x3F,0x10,0x00,0x00,
0x00,0x00,0xE0,0x40,0x40,0x40,0x40,0xFF,0x40,0x40,0x40,0x40,0xE0,0x00,0x00,0x00};//中
void delay(uint z)
{
        uint x,y;
        for (x=110;x>0;x--)
                for(y=z;y>0;y--);
}
void main()
{
        uchar i;
        e0=0;
        tt=0;
        ys=0;
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
        {
                   for(i=0;i <8;i++)
                        {
                                P0 = hanzi;
                                P2 = hanzi[i+1];
                                if(tt==16)
                                {
                                        tt=0;     
                                        P1=templie[ys];
                                        ys++;
                                }
                        }
        }
}
void exter0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        tt++;
}
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

7
 
先显示一个简单的字,例如大写的“一”,先搞对了它,再搞别的字。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表