大家帮忙看看这段代码哪里有错误

[复制链接]
2406|4
 楼主| testfish 发表于 2013-6-7 19:44 | 显示全部楼层 |阅读模式
本帖最后由 testfish 于 2013-6-7 19:46 编辑

大家帮忙看看这段代码哪里有错误,主要想实现 6个led 从第一个开始循环显示LED_CODES里全部字符,然后换下一个,本人新手,鼓捣了半天也没成功,望大家赐教
  1. #include <AT89X52.H>

  2. unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20};

  3. unsigned char code LED_CODES[]={0xc0,0xF9,0xA4,0xB0,0x99,//0-4

  4. 0x92,0x82,0xF8,0x80,0x90,//5-9

  5. 0x88,0x83,0xC6,0xA1,0x86,//A,b,C,d,E

  6. 0x8E,0xFF,0x0C,0x89,0x7F,0xBF};//F,空格,P,H,.,-  


  7. void delayms();

  8. void main()

  9. {

  10. int m,ll;

  11. while(1)
  12. {
  13. //P2=0;
  14. //P2=Select[3];
  15. //P1=LED_CODES[6];

  16. for (m=0;m<7;m++)
  17.      {
  18.       P2=Select[m];
  19.       for(ll=0;ll<=21;ll++)
  20.          {
  21.        P1=LED_CODES[ll];
  22.         delayms();
  23.           }
  24.       }
  25. }

  26. }

  27. void delayms()
  28. {
  29. int jj;

  30. int kk;

  31. for(jj=1000;jj>0;jj--)
  32.       
  33.      for(kk=110;kk>0;kk--);
  34. }
 楼主| testfish 发表于 2013-6-7 20:02 | 显示全部楼层
补充下,代码20行 int m,ll;  写成 int ll.m;效果完全不一样,难道是 Proteus 7 的问题??等待学习板到货后再验证下,郁闷了。。。

ayb_ice 发表于 2013-6-8 10:55 | 显示全部楼层
基本代码没有问题,可能是程序与硬件不对应吧
 楼主| testfish 发表于 2013-6-8 18:23 | 显示全部楼层
ayb_ice 发表于 2013-6-8 10:55
基本代码没有问题,可能是程序与硬件不对应吧

过两天学习板到货,重新测试下,谢谢您的解答!!
 楼主| testfish 发表于 2013-6-10 15:20 | 显示全部楼层
在学习板上重新写了下程序,测试正常,不知道和以上的代码有什么区别,新代码如下:


  1. #include <reg51.h>
  2. void delay(unsigned int i);
  3. //此表为 LED 的字模, 共阴数码管 0-9 -
  4. unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //段码控制

  5. //此表为8个数码管位选控制, 共阴数码管 1-8个 -
  6. unsigned char code dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; //位选控制 查表的方法控制


  7. void main()
  8. {
  9. while(1)
  10. {
  11. int a,b;
  12. for (a=0;a<=7;a++)
  13. {
  14. for (b=0;b<=9;b++)
  15. {
  16. P0=Disp_Tab[b];
  17. P1=dispbit[a];
  18. delay(100);
  19. }
  20. }
  21. }
  22. }

  23. /*******************延时函数**********************************************/
  24. void delay(unsigned int i)
  25. {
  26. unsigned int j;
  27. for(i; i > 0; i--)
  28. for(j = 120; j > 0; j--);
  29. }

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

本版积分规则

3

主题

11

帖子

0

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