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

[复制链接]
3789|7
 楼主| lfszydd 发表于 2011-12-13 17:44 | 显示全部楼层 |阅读模式
本帖最后由 lfszydd 于 2011-12-13 22:33 编辑

程序在下面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 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 | 显示全部楼层
求指导啊 不理解啊
 楼主| lfszydd 发表于 2011-12-13 17:55 | 显示全部楼层
a=shuz*16+shub*8+14;  这行的作用是什么呢  
i=a;j=v;k=(i*2+32); 还有这行
还有他是怎么左移的啊
 楼主| lfszydd 发表于 2011-12-13 21:53 | 显示全部楼层
 楼主| lfszydd 发表于 2011-12-14 17:49 | 显示全部楼层
。。。
泗一起 发表于 2013-6-4 12:03 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

8

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部