请教各位达人..16*64点阵滚屏程序怎样写? - 新手园地 - 21IC电子工程师社区

来源:百度文库 编辑:神马文学网 时间:2024/04/28 18:42:09
采用74HC595和74HC138的结构,电流驱动为TIP127. 8个io口控制..
只会写一个简单的静态显示.. 不懂写左右滚屏的程序..

请各位达人指点指点..
本人真是菜到掉渣了..

静态程序如下:
      #include "reg52.h"
#define  uchar unsigned char
#define  uint  unsigned int
void Keyscan (void); //修改参数按键扫描子程序
void  Sendping(); //发送半屏子程序
sbit  CLK =P1^5 ;         //74HC595移时钟
sbit  STB =P1^4 ;     // 74HC595锁存信号
sbit  Red=P1^6  ;     //红色数据输出引脚低电平有效      
sbit  Greed=P1^7;    //全屏控制使能0,低电平有效
sbit  OE = P0^7;      //全屏使能
uchar SendData;       //要发送的数据变量
uchar shuzu1;           //数组一维变量
uchar shuzu2;           //数组二维变量
uchar hang;         //行扫描变量  (半屏只有16行,所以hang=0到15)
void delay()
{
    uint i;
    for(i=0;i<30;i++);
}         
uchar code data1[8][32]=
           {
                    {0x00,0x00,0x7F,0xFC,0x48,0x00,0x48,0x00,0x4F,0xF8,0x50,0x80,0x60,0x88,0x5F,0xFC
,0x41,0x40,0x41,0x20,0x42,0x10,0x44,0x18,0x48,0x10,0x40,0x00,0x7F,0xFE,0x00,0x00},
                    {0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00},
                   {0x06,0x08,0x78,0x88,0x08,0x48,0x08,0x48,0xFE,0x08,0x18,0x88,0x1C,0x48,0x2A,0x48,
0x28,0x0E,0x48,0x78,0x8B,0x88,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},
                 {0x20,0x40,0x20,0x40,0x20,0x40,0x23,0xF8,0xFC,0x48,0x20,0x48,0x22,0x48,0x22,0x4C,
0x24,0x8A,0x24,0x8A,0x20,0x88,0x21,0x08,0x21,0x08,0x22,0x28,0x24,0x10,0x00,0x00},
           };
    //------------------------------------
    //----------字发送子程序-----------
    void SendByte(void)
     {
           uchar m;
           for(m=0;m<8;m++)
           {
                CLK = 0;
                Red = (SendData & 0x80);       //红屏显示
                Greed =  (SendData & 0x80);       //红屏显示
                SendData =SendData<<1;   
                CLK = 1;      //移位时钟上升沿
           }
     }
   
       //-----------------------------------
       //----------行扫描子程序-------------
       void RowsCan(void)
       {
            if (hang>=16)
         {
                hang =0x00;
      }
      
            P1 = P1 & 0xf0;
            P1 = P1 | hang;
            hang++;
     }
   
        void SendHang(void)
     {
            uchar m2,shuzu;
            shuzu = shuzu1; //一维数组变量参数传给数组变量
         OE=1;
            for(m2 =0;m2<2;m2++)
      {
                SendData = data1[shuzu][shuzu2+m2];
                SendByte();
      }
            shuzu++;
      
            for(m2 =0;m2<2;m2++)
      {
                SendData = data1[shuzu][shuzu2+m2];
                SendByte();
      }
            shuzu++;
      
            for(m2 =0;m2<2;m2++)
      {
                SendData = data1[shuzu][shuzu2+m2];
                SendByte();
      }
            shuzu++;
      
            for(m2 =0;m2<2;m2++)
      {
                SendData = data1[shuzu][shuzu2+m2];
                SendByte();
      }
            STB = 0;
            STB = 1;         //上升沿数据锁存
             RowsCan();     //行扫描
            OE = 0;
            delay();
     }
        //---------------------------------------
        //----------发送一屏数据-----------------
        void Sendping(void)
     {
            SendHang();
            shuzu2++ ;
            shuzu2++ ;
            if(shuzu2 ==32) { shuzu2 =0;}   
     }
        void initial(void)
        {
            OE = 1;
            Red = 1;
            Greed = 1;
            SendData = 0x00;
            hang = 0x00;
            
      }
        //;---------主程序循环--------------
        void main()
     {
      
      
            initial();
            while(1)
         {
                Sendping();
      }
      }
请教各位达人..16*64点阵滚屏程序怎样写? - 新手园地 - 21IC电子工程师社区 干电池使用寿命的计算方法 - 新手园地 - 21IC电子工程师社区 21IC 电子工程师俱乐部 :怎样将16*16的汉字点阵请教一下16*64点阵屏的程序问题 - 『 单片机论坛 』 - Tony嵌入式论坛 Ton... 为情所困,请教各位达人! 说给新入职场电子工程师的话 - 21IC中国电子网 初学者五大告诫 - 21IC 电子工程师俱乐部 16*64点阵程序及滚动效果视频 - 硬件/嵌入开发 爱虫:请教各位还在用我Mcafee咖啡策略TF,策略该怎么写呢 KDS宽带山 PChome社区 请教各位大侠 【导航】散户新手学习园地,第1页 - 搜狐社区 请教各位大侠什么方法能瘦脸【7月19日已解答03】-美容化妆 - 淘社区 - 消费者门户 ... [转载][交流]怎样在点阵屏上绘图——基于LCD12864(二) [转载][交流]怎样在点阵屏上绘图——基于LCD12864(二) 【导航】散户新手学习园地 [转载][交流]怎样在点阵屏上绘图——基于LCD12864(二) -蓝色地平线-搜狐博客 [转载][交流]怎样在点阵屏上绘图——基于LCD12864(二) -蓝色地平线-搜狐博客 89c51仿真时出现问题,请教各位大侠! 请教各位大师,股票中的换手率在多少比较好。 向各位大哥大姐请教蒸馒头技术 请教怎样隐藏文件夹!_ - 新手学堂 - 洛阳钓鱼人 - 洛阳钓鱼论坛-洛阳垂钓园地-... 记叙文写作:怎样写人 帮朋友弄个点阵的程序(半成品,附上gif图).呵,-甲壳 - 新浪BLOG