一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 1649|回复: 6

[其他综合] 一个搞不懂的问题

[复制链接]
发表于 2014-8-1 21:12 | 显示全部楼层 |阅读模式
本帖最后由 benli 于 2014-8-1 21:15 编辑

驱动一个点阵屏,行扫描是由P0,P2直接驱动功率器件的,写了一个测试程序,P2=hang[row-8]却没有输出,只有半屏有显示,十分不解!

QQ截图20140801211102.png
  1. uchar code hang[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,};

  2.         for(row=0;row<16;row++)
  3.         {
  4.                 rowdata();
  5.                 if(row<8)
  6.                 {
  7.                         P0=hang[row];
  8. //                        P0=1<< c;
  9.                         P2=0;
  10.                 }
  11.                 else
  12.                 {
  13.                         P2=hang[row-8];
  14. //                        P2=1<<(c-8);
  15.                         P0=0;
  16.                 }
  17.            LAT=1;                        //锁存关
  18.            for(i=0;i<10;i++)
  19.            {
  20.                      for(j=0;j<8;j++)
  21.                   {
  22.                          SCK=0;
  23.                          SDA=Data[i]&0x80;
  24. //                         SDA=1;
  25.                          SCK=1;
  26.                          Data[i]<<=1;
  27.                   }
  28.            }
  29.                 LAT=0;                         //锁存开
  30.                 EN=0;                         //显示开
  31.                 delay(10);
  32.                 EN=1;        
  33.                 delay(2);                 //显示关                                
  34.         }
  35.   }
复制代码
发表于 2014-8-1 21:27 | 显示全部楼层
数组的 [] 中不能运算吧
改成:
else  
       {
         row=(row-8);
         P2=hang[row];
//       P2=1<<(c-8);
          P0=0;
         }
试试
回复

使用道具 举报

发表于 2014-8-1 21:32 | 显示全部楼层
ain365 发表于 2014-8-1 21:27
数组的 [] 中不能运算吧
改成:
else  

可以是表达式啊
回复

使用道具 举报

 楼主| 发表于 2014-8-1 21:33 | 显示全部楼层
ain365 发表于 2014-8-1 21:27
数组的 [] 中不能运算吧
改成:
else  

调用数组可以带运算式的啊!我的点阵数据
        Data[0]=num1[hour/10][row*2];
        Data[1]=num1[hour/10][row*2+1] | num1[hour%10][row*2]<<4;
        Data[2]=num1[hour%10][row*2]>>4 | num1[hour%10][row*2+1]<<4;

回复

使用道具 举报

发表于 2014-8-1 21:58 | 显示全部楼层
benli 发表于 2014-8-1 21:33
调用数组可以带运算式的啊!我的点阵数据
        Data[0]=num1[hour/10][row*2];
        Data[1]=num1[hour/10][row ...

不好意思,弄错了,请问你程序中的"C"是干什么用的

点评

我知道"C"是干啥的了,都忘的差不多了  发表于 2014-8-1 22:20
回复

使用道具 举报

 楼主| 发表于 2014-8-1 23:38 | 显示全部楼层
ain365 发表于 2014-8-1 21:58
不好意思,弄错了,请问你程序中的"C"是干什么用的

c变量是测试行序用的,由定时器产生的
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-10-31 18:27 , Processed in 0.034026 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表