智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1809|回复: 3
打印 上一主题 下一主题

51单片机 1602 求助

[复制链接]

2

主题

5

帖子

0

精华

注册会员

Rank: 2

积分
179
威望
147
贡献
32
兑换币
0
注册时间
2011-11-24
在线时间
0 小时
跳转到指定楼层
1#
发表于 2011-11-24 17:31:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. #define N 800           其它省略
  2. sbit KEY = P3^4;        //in
  3. sbit KEY2 = P3^3;        //out
  4. sbit reset = P3^2;        //0

  5. void main()
  6. {
  7.         uint sumin = 0;
  8.         uint sumout = 0;
  9.         uint in = 0;
  10.         uint out = 0;
  11.         uint arrin[3] = {0,1,2};
  12.         uint arrout[3] = {5,6,7};
  13.         uint i;
  14.        
  15.         for (i = 3;i >= 0; i--)
  16.         {                       
  17.                 arrin[i] = arrin[i] + '0';
  18.         }
  19.         for (i = 3; i >= 0; i--)
  20.         {                        
  21.                 arrout[i] = arrout[i] + '0';                       
  22.         }               
  23.         while(1)
  24.                 {
  25.                        
  26.                         L1602_init();
  27.                         L1602_string(1,1,"enter:");
  28.                         L1602_string(1,8,"out:");
  29.                
  30.                         L1602_string(2,1, arrin);
  31.                         L1602_string(2,8, arrout);
  32.                         delay_ms(N);
  33.        
  34.                 }
  35. }

  36. 请问加上for (i = 3;i >= 0; i--)
  37.         {                       
  38.                 arrin[i] = arrin[i] + '0';
  39.         }
  40.         for (i = 3; i >= 0; i--)
  41.         {                        
  42.                 arrout[i] = arrout[i] + '0';                       
  43.         }就什么都不能输出,删掉就可以,为什么啊,
  44. 正如这里,我想输出L1602_string(2,1, arrin);
  45.                         L1602_string(2,8, arrout);两个数组的值,应该如何修改,不胜感激啊!
  46. 驱动:void L1602_string(uchar hang,uchar lie,uchar *p)
  47. {
  48.         uchar a,b=0;
  49.         if(hang == 1) a = 0x80;
  50.         if(hang == 2) a = 0xc0;
  51.         a = a + lie - 1;
  52.         while(1)
  53.         {
  54.                 wcmd(a++);
  55.                 b++;
  56.                 if((*p == '\0')||(b==16)) break;
  57.                 wdata(*p);
  58.                 p++;
  59.         }
  60. }
复制代码

15

主题

228

帖子

0

精华

常驻嘉宾

初出茅庐

Rank: 8Rank: 8

积分
3123
QQ
威望
1384
贡献
957
兑换币
45
注册时间
2011-3-7
在线时间
391 小时
4#
发表于 2011-11-24 18:20:33 | 只看该作者
i变量的定义是无符号的  你的for循环写有问题  不能退出i>=0判断需要i减到-1是不行的
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

注册会员

Rank: 2

积分
179
威望
147
贡献
32
兑换币
0
注册时间
2011-11-24
在线时间
0 小时
3#
 楼主| 发表于 2011-11-24 17:32:13 | 只看该作者
正如这里,我想输出L1602_string(2,1, arrin);
                        L1602_string(2,8, arrout);两个数组的值,应该如何修改,不胜感激啊!
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

注册会员

Rank: 2

积分
179
威望
147
贡献
32
兑换币
0
注册时间
2011-11-24
在线时间
0 小时
2#
 楼主| 发表于 2011-11-24 17:31:59 | 只看该作者
请问加上for (i = 3;i >= 0; i--)
        {                        
                arrin[i] = arrin[i] + '0';
        }
        for (i = 3; i >= 0; i--)
        {                        
                arrout[i] = arrout[i] + '0';                        
        }就什么都不能输出,删掉就可以,为什么啊,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 00:22 , Processed in 0.096220 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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