[51单片机] 求助我的这个程序哪里出了问题?

[复制链接]
771|2
 楼主| loveteda 发表于 2016-4-27 23:29 | 显示全部楼层 |阅读模式
  1. #include<reg52.h>
  2. sbit cnt=P3^4;
  3. sbit rC=P2^4;
  4. sbit rB=P2^3;
  5. sbit rA=P2^2;
  6. unsigned char duan[]={0x3f,0x06,0x5b,0x4f,0x66,
  7.                             0x6d,0x7d,0x07,0x7f,0x6f};
  8. unsigned int num=0;
  9. void init()//¼ÆÊýÆ÷³õʼ»¯
  10. {
  11.         TMOD=0x05;
  12.         TH0=0;
  13.         TL0=0;
  14.         TR0=1;
  15. }
  16. void delay()
  17. {
  18.         unsigned char i,j;
  19.         for(i=0;i<4;++i)
  20.         {
  21.                 for(j=0;j<110;++j);
  22.         }
  23. }
  24. void display(unsigned int shi,unsigned int ge)
  25. {
  26.         rC=rB=rA=0;
  27.         P0=duan[shi];
  28.         delay();
  29.         rC=rB=0;
  30.         rA=1;
  31.         P0=duan[ge];
  32.         delay();
  33. }
  34. unsigned int read()//¶Á¼ÆÊýÆ÷µÄÖµ
  35. {
  36.         unsigned int val;
  37.         unsigned char th,tl;
  38.         th=TH0;
  39.         tl=TL0;
  40.         val=th*256+tl;
  41.         return val;
  42. }
  43. void main()
  44. {
  45.         unsigned int shi;
  46.         unsigned int ge;
  47.         init();
  48.         while(1)
  49.         {
  50.                 num=read();
  51.                 if(num>=100)
  52.                 {
  53.                         num=0;
  54.                         TH0=TL0=0;
  55.                 }
  56.                 shi=num/10;
  57.                 ge=num%10;
  58.                 display(shi,ge);
  59.         }
  60. }

就是用计数器T0,导线一端接地,另一端去触碰P3^4,并显示计数。运行的时候始终显示00.
ywlzh 发表于 2016-4-29 12:50 | 显示全部楼层
这样上来直呼别人来帮你找错误,不是个严谨的办法

没有自己对电路的理解,没有自己对程序的理解,别人是不是要告诉你

怎么看电路,怎么看程序,先从入门看起,再着手一个一个小项目?

我话可能有些过激,不要放在心上,看了你的帖子,两天没有人回,这是为什么?

评分

参与人数 1威望 +1 收起 理由
loveteda + 1 谢谢提醒

查看全部评分

fmxssh 发表于 2016-4-29 16:42 | 显示全部楼层
你最起码要说明你遇到了什么问题吧。 是编译不通过?还是功能没实现?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

14

帖子

0

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