一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 1506|回复: 8
收起左侧

点阵屏74hc138行扫求助

[复制链接]
发表于 2015-2-25 17:14 | 显示全部楼层 |阅读模式
10一乐金币
#define H_PORT P1         //P1 低端四位

void Liudong(void)                 {

for(disrow=0;disrow<16;disrow++)                  //disrow,当前扫描的行
                   {E=1;
                IntdataIO();                                  //数据口复位
                    Playgundong();                          //发送一线点阵数据
                        LatchLED();                                          //锁存数据
                        H_PORT=disrow;                            //行扫描
                        PWM_LIGHT(Light);                          //开显示
                              }                                               



我的屏 十六行和这个程序是反的

请问怎么修改?

最佳答案

查看完整内容

改这样应该可以 for(disrow=0;disrow
发表于 2015-2-25 17:14 | 显示全部楼层
改这样应该可以


for(disrow=0;disrow<16;disrow++)                  //disrow,当前扫描的行
                   {E=1;
                IntdataIO();                                  //数据口复位
                    Playgundong();                          //发送一线点阵数据
                        LatchLED();                                          //锁存数据
                       H_PORT=disrow^0x0F;                            //行扫描
                        PWM_LIGHT(Light);                          //开显示
                              }                          

评分

参与人数 1一乐金币 +10 收起 理由
落日心也碎 + 10 很给力!

查看全部评分

发表于 2015-2-25 17:46 | 显示全部楼层
怎么个反法。。说清楚啊
 楼主| 发表于 2015-2-25 18:51 | 显示全部楼层
QQ图片20150225184555.png

16行输出和屏的行扫  反了
发表于 2015-2-25 19:12 | 显示全部楼层
反过来扫描?
  1. for(disrow=15;disrow>=0;disrow--)
  2. {
  3. ...
  4. }
复制代码
或者 while 循环
  1. disrow = 16;
  2. while( disrow -- )
  3. {
  4. ...
  5. }
复制代码

评分

参与人数 1一乐金币 +2 收起 理由
落日心也碎 + 2 赞一个!

查看全部评分

 楼主| 发表于 2015-2-25 19:57 | 显示全部楼层
HFMBFUVR 发表于 2015-2-25 19:12
反过来扫描?或者 while 循环

for(disrow=15;disrow>=0;disrow--)这么写没显示
for(disrow=16;disrow>0;disrow--)
这样写还是反的




disrow=1
while( disrow -- )
这样写还是反的

 楼主| 发表于 2015-2-25 20:02 | 显示全部楼层
sbit IA=P1^0;//行控制线A                     
sbit IB=P1^1;//行控制线B
sbit IC=P1^2;//行控制线C
sbit ID=P1^3;//行控制线D


#define  scan0    {IA=0;IB=0;IC=0;ID=0;}
#define  scan1    {IA=1;IB=0;IC=0;ID=0;}
#define  scan2    {IA=0;IB=1;IC=0;ID=0;}
#define  scan3    {IA=1;IB=1;IC=0;ID=0;}
#define  scan4    {IA=0;IB=0;IC=1;ID=0;}
#define  scan5    {IA=1;IB=0;IC=1;ID=0;}
#define  scan6    {IA=0;IB=1;IC=1;ID=0;}
#define  scan7    {IA=1;IB=1;IC=1;ID=0;}
#define  scan8    {IA=0;IB=0;IC=0;ID=1;}
#define  scan9    {IA=1;IB=0;IC=0;ID=1;}
#define scan10    {IA=0;IB=1;IC=0;ID=1;}
#define scan11    {IA=1;IB=1;IC=0;ID=1;}
#define scan12    {IA=0;IB=0;IC=1;ID=1;}
#define scan13    {IA=1;IB=0;IC=1;ID=1;}
#define scan14    {IA=0;IB=1;IC=1;ID=1;}
#define scan15    {IA=1;IB=1;IC=1;ID=1;}


void scan(unsigned char Value)
{switch(Value)
        {case  15: scan0;break;
                  case  14: scan1;break;
                   case  13: scan2;break;
                    case  12: scan3;break;
             case  11: scan4;break;
                      case  10: scan5;break;
                       case  9: scan6;break;
                        case  8: scan7;break;
                 case  7: scan8;break;
                       case  6: scan9;break;
                      case 5:scan10;break;
                     case 4:scan11;break;
            case 3:scan12;break;
                  case 2:scan13;break;
                 case 1:scan14;break;
            case 0:scan15;break;

这个写法可以  但是修改了后  行消隐就没效果了
发表于 2015-2-25 22:02 | 显示全部楼层
H_PORT=disrow ;
--->
H_PORT=16-disrow ;      
 楼主| 发表于 2015-2-26 17:46 | 显示全部楼层
junyee 发表于 2015-2-25 22:02
H_PORT=disrow ;
--->
H_PORT=16-disrow ;

谢谢 已经解决

本版积分规则

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

GMT+8, 2024-5-21 13:39 , Processed in 0.070653 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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