找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3828|回复: 9
打印 上一主题 下一主题
收起左侧

大神们帮忙看下程序哪里出了问题

[复制链接]
跳转到指定楼层
楼主
想弄个可调的倒计时显示。可是仿真之后数码管不动。
  1. #include<AT89X51.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar bbit[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
  5. uchar buffer[]={0,0,0,0};
  6. uchar minute=0,sec=30;
  7. uint count;
  8. uint k;

  9. sbit FM = P1^7;

  10. void delay(uchar ms)
  11. {
  12. uchar i,j;
  13. for(i=ms;ms>0;ms--);
  14. for(j=112;j>0;j--);
  15. }

  16. void tt0()interrupt 1 using 1
  17. {
  18. TH0=(65535-50000)/256;
  19. TL0=(65535-50000)%256;

  20. if(count==10)
  21. {
  22. count=0;
  23. if(sec==0&&minute==0)
  24. {
  25. P0=0xc0;
  26. P2=0x0f;
  27. P3_0=0;          //rel
  28. FM=0;

  29. while(1){P3_1=1;}    //daim yenix
  30. }

  31. if(sec==0)
  32. {
  33. sec=60;minute--;
  34. if(minute=9)minute=9;
  35. }
  36. sec--;
  37. if(sec>=59)sec=59;
  38. }

  39. buffer[0]=sec%10;
  40. buffer[1]=sec/10;
  41. buffer[2]=minute%10;
  42. buffer[3]=minute/10;
  43. count++;
  44. /*if(count%10==0)
  45. P3_1=0;*/
  46. }

  47. void display()
  48. {
  49. uchar i;
  50. for(i=10;i!=0xff;i--)
  51. {
  52. P0=buffer[i];
  53. P2=bbit[i];
  54. delay(10);
  55. P0=0xff;
  56. }
  57. }

  58. void main()
  59. {
  60. P0=0x00;
  61. P2=0x0f;
  62. P3_0=0;
  63. TMOD=0x01;
  64. TH0=(65535-50000)/256;
  65. TL0=(65535-50000)%256;
  66. EA=0;
  67. ET0=0;
  68. while(1)
  69. {
  70. buffer[0]=sec%10;
  71. buffer[1]=sec/10;
  72. buffer[2]=minute%10;
  73. buffer[3]=minute/10;
  74. display();
  75.        
  76. if(P1_0==0)
  77. {
  78. delay(20);
  79. if(P1_0==0)
  80. {sec++;if(sec>=60)sec=0;}while(P1_0==0);
  81. }
  82. if(P1_1==0)
  83. {
  84. delay(20);
  85. if(P1_1==0)

  86. {sec--;if(sec>=60)sec=59;}while(P1_1==0);
  87. }
  88. if(P1_3==0)
  89. {
  90. delay(20);
  91. if(P1_3==0)
  92. {minute++;if(minute>=9)minute=0;}while(P1_3==0);
  93. }
  94. if(P1_2==0)
  95. {
  96. delay(20);
  97. if(P1_2==0)
  98. {minute--;if(minute>=9)minute=9;}while(P1_2==0);
  99. }

  100. if(P1_4==0)                     //qikip,wakit balgulaxka baxlax
  101. delay(20);
  102. if(P1_4==0)
  103. {
  104. EA=1;
  105. ET0=1;
  106. TR0=1;
  107. P3_1=0;
  108.         while(1)
  109. {
  110. display();
  111. }
  112. }
  113. }
  114. }
复制代码

QQ截图20160629162121.png (19.1 KB, 下载次数: 95)

QQ截图20160629162121.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:111634 发表于 2016-6-30 17:47 | 只看该作者
本帖最后由 zl2168 于 2016-6-30 17:49 编辑

实例96  能预置初值的倒计时秒表


Proteus仿真一下,确认有效。
实例96 能设置初值的倒计时秒表.rar (40 KB, 下载次数: 5)




以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版


若需99.99秒,硬件电路增加一位595。软件程序增加0.01s10ms)计数器,并修改相应计数显示程序。


书中电路和程序设计有详细说明,程序语句条条有注解。


回复

使用道具 举报

板凳
ID:96072 发表于 2016-7-1 09:55 | 只看该作者
楼上2168太没诚信啦,源程序都不给出来,只给个HEI文件,害我下载浪费金币
回复

使用道具 举报

地板
ID:96682 发表于 2016-7-2 16:20 | 只看该作者
用 zl2168 的文件仿真没啥问题,但如果是制作实物就显得有些麻烦了。
3 个数码管,还有3个级联的595,成本就不说了,单布线就让人有点头疼。
回复

使用道具 举报

5#
ID:111634 发表于 2016-7-2 23:15 | 只看该作者
HEIZI555 发表于 2016-7-1 09:55
楼上2168太没诚信啦,源程序都不给出来,只给个HEI文件,害我下载浪费金币

谁规定一定要给程序?无偿给个可靠的电路和仿真,给你个提示,还不好吗?程序有啊!在书中,自己去找。
回复

使用道具 举报

6#
ID:111634 发表于 2016-7-2 23:19 | 只看该作者
wc86110 发表于 2016-7-2 16:20
用 zl2168 的文件仿真没啥问题,但如果是制作实物就显得有些麻烦了。
3 个数码管,还有3个级联的595,成本 ...

3 个数码管、3个595,成本高吗?你找个低成本电路,我看看。布线也不复杂,你找个布线简单电路,我看看。评论,评不到点子上。
回复

使用道具 举报

7#
ID:96682 发表于 2016-7-3 01:36 | 只看该作者
zl2168 发表于 2016-7-2 23:19
3 个数码管、3个595,成本高吗?你找个低成本电路,我看看。布线也不复杂,你找个布线简单电路,我看看。 ...

把单片机的 I/O 口用好 外加个一体化数码管就你搞定了。
你上面贴出的那玩意根本就没发挥出单片机的潜力,跟用数字集成电路来制作好不了多少嘛
回复

使用道具 举报

8#
ID:111634 发表于 2016-7-3 07:57 | 只看该作者
本帖最后由 zl2168 于 2016-7-3 08:07 编辑
wc86110 发表于 2016-7-3 01:36
把单片机的 I/O 口用好 外加个一体化数码管就你搞定了。
你上面贴出的那玩意根本就没发挥出单片机的潜力 ...

你讲的有道理。3个IO口直接驱动(低电平)数码管就行了,但一般情况,不排除单片机IO口还有其他用处。
回复

使用道具 举报

9#
ID:127965 发表于 2016-7-3 13:49 | 只看该作者
你确定 你这原理图 适用于倒计时的
回复

使用道具 举报

10#
ID:111634 发表于 2016-7-3 20:15 | 只看该作者
32323232 发表于 2016-7-3 13:49
你确定 你这原理图 适用于倒计时的

适用不适用,你仿真啊!上面不是有了一句:先Proteus仿真一下,确认有效。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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