打印

16*16点阵 左移 求指导 点阵显示器啊 纠结啊 初学者 真诚

[复制链接]
2977|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lfszydd|  楼主 | 2011-12-13 17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lfszydd|  楼主 | 2011-12-13 17:49 | 只看该作者
这里是以行扫描为例(逐行取字模),第一次取字码数组中的第1~8个数据到点阵列输入端,行码 扫描1~8行。第二次将第一次的 1~8个数据都循环左(右)移一位,并且将第9个数据的最高位移到第二次数据的最低处,再输入到列端口,行扫描1~8行。即每次扫描都要把前一次扫描的列码左移一位。 什么意思啊 大虾解释下

使用特权

评论回复
板凳
lfszydd|  楼主 | 2011-12-13 17:53 | 只看该作者
}
void init()        //主程序初始化
{
        EA=1;        //CPU开放所有中断源的中断请求
        EX0=1;        //允许外部中断0中断
        EX1=1;        //允许外部中断1中断
        IT0=1;        //外部中断0采用边沿触发方式产生中断
        IT1=1;        //外部中断1采用边沿触发方式产生中断
        v=15;        //设置移动速度的初值
}
void init1()        //左移显示方式各变量的初始化
{
        shuz=5;
        shub=1;
        a=shuz*16+shub*8+14;
        P0=0;
        P2=0;
        temp1=0;
}
void disp1()        //左移显示子程序
{

        P0=table[k];
        k++;
        P2=table[k];
        k++;       
        P1=temp1;
        temp1++;
        if(temp1==0x10)
                temp1=0x00;
        delay(1);
}
void main()
{       
        init();
        while(1)        //主循环
        {
                if(flag%3==0)        //判断是不是左移显示方式
                {
                        init1();        //左移显示初始化
                        while(flag%3==0)        //左移循环控制
                        {
                                for(i=0;i<=a;i++)        //判断左移的字符个数
                                        for(j=0;j<=v;j++)        //向左移动的速度由变量v控制
                                                for(k=i*2;k<(i*2+32);)        //显示一幕
                                                        if(flag%3==0)        //判断有没有中断,flag的值有没有变化
                                                                disp1();        //若没有中断调用左移显示子程序
                                                        else
                                                        {
                                                                i=a;j=v;k=(i*2+32);//若有中断了初始化左移的各变量
                                                        }                                               
                        }
                }

使用特权

评论回复
地板
lfszydd|  楼主 | 2011-12-13 17:54 | 只看该作者
求指导啊 不理解啊

使用特权

评论回复
5
lfszydd|  楼主 | 2011-12-13 17:55 | 只看该作者
a=shuz*16+shub*8+14;  这行的作用是什么呢  
i=a;j=v;k=(i*2+32); 还有这行
还有他是怎么左移的啊

使用特权

评论回复
6
lfszydd|  楼主 | 2011-12-13 21:53 | 只看该作者
...

使用特权

评论回复
7
lfszydd|  楼主 | 2011-12-14 17:49 | 只看该作者
。。。

使用特权

评论回复
8
泗一起| | 2013-6-4 12:03 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

8

帖子

1

粉丝