圣源电子制作

 找回密码
 立即注册
查看: 17146|回复: 4
打印 上一主题 下一主题

三位数码管 三位计数器 -89C51-程序-原理图-制作 diy

[复制链接]
跳转到指定楼层
#
发表于 2011-9-30 19:57:24 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
程序由徐虎编写。

三位999 计数器,


  1. //圣源电子制作:www.syyyd.com
  2. //程序:徐虎 编写!
  3. #include<reg52.h>
  4. #include<absacc.h>

  5. #define uchar unsigned char
  6. #define uint unsigned int        

  7. sbit key=P3^7;
  8. sbit rest=P3^6;

  9. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};



  10. void delay10ms(void)
  11. {

  12.     unsigned char a,b,c;
  13.     for(c=1;c>0;c--)
  14.         for(b=38;b>0;b--)
  15.             for(a=130;a>0;a--);
  16. }


  17. void main (void)
  18. {
  19.   uint Count=0;
  20.   P0=0x3f;
  21.   P1=0x3f;
  22.   P2=0x3f;
  23.   while(1)
  24.    {
  25.                    if(rest==0)
  26.                  {
  27.                          delay10ms();
  28.                         if(rest==0)
  29.                          while(rest==0)
  30.                           {
  31.                                         Count=0;
  32.                                           P0=table[Count/100];
  33.                                     P1=table[(Count%100)/10];
  34.                                     P2=table[Count%10];
  35.                                 }
  36.                  }
  37.                 if(key==0)
  38.                   {
  39.                            delay10ms();
  40.                          if(key==0)
  41.                           {
  42.                                   while(key==0);
  43.                                 {
  44.                                         Count++;
  45.                                         if(Count==1000)
  46.                                           Count=0;
  47.                                     P0=table[Count/100];
  48.                                     P1=table[(Count%100)/10];
  49.                                     P2=table[Count%10];
  50.                                 }

  51.                           }
  52.                   }
  53.    }

  54. }
复制代码

程序.zip (4 KB, 下载次数: 69)
原理图.zip (10.94 KB, 下载次数: 69)


回复

使用道具 举报

地板
发表于 2016-6-7 09:31:49 | 只看该作者
LZ好!这个可用于绕线机计数吗?红外对管那种?
回复 支持 反对

使用道具 举报

板凳
发表于 2012-4-29 12:51:17 | 只看该作者
回复 支持 反对

使用道具 举报

沙发
发表于 2012-4-28 10:02:48 | 只看该作者
墨齐 发表于 2012-4-14 22:42
有没有用点阵显示的两路三位计数,能加能减能复位?

点阵显示也很好实现,但是相对于楼主的7段数码管静态驱动这个应用来说,程序上需要做一些调整,因为点阵模块需要动态扫描来驱动。
而且如果动态扫描过程中有其他过程中断扫描或者影像扫描的话,还容易出现闪烁的情况,所以一般动态扫描要用定时器中断去处理。
再者就是点阵字模会比7段数码管麻烦一些。
回复 支持 反对

使用道具 举报

楼主
发表于 2012-4-14 22:42:35 | 只看该作者
有没有用点阵显示的两路三位计数,能加能减能复位?
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|联系我们|闽公网安备 35012102000020号|闽ICP备11020110号-1|圣源电子

GMT+8, 2024-11-3 21:34 , Processed in 0.046255 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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