久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4066|回復: 4
打印 上一主題 下一主題
收起左側

單片機0-999999計數器抖動求助

[復制鏈接]
跳轉到指定樓層
樓主
ID:39731 發表于 2018-3-29 14:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本人菜鳥一只,模仿了個0-999999計數器,在加一的時候,其它數碼管有抖動,不知要怎么消除,請高手賜教指點下,謝謝

單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define ulong unsigned long
  5. sbit dula=P2^6;
  6. sbit wela=P2^7;
  7. void delayms(uint);
  8. void smg(ulong,ulong,ulong,ulong,ulong,ulong);
  9. uchar num1,num,sw,w,k,b,s,g;
  10. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  11. 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  12.                
  13. void main()
  14. {
  15.   TMOD=0X01;
  16.   TH0=(65536-45872)/256;
  17.   TL0=(65536-45872)%256;
  18.   EA=1;
  19.   TR0=1;
  20.   ET0=1 ;
  21. while(1)
  22. {
  23.   smg(sw,w,k,b,s,g);
  24. }
  25. }
  26. void smg(ulong sw,ulong w,ulong k,ulong b,ulong s,ulong g)
  27. {  
  28.   
  29.   dula=1;
  30.   P0=table[g];
  31.   dula=0;
  32.   P0=0xff;
  33.   wela=1;
  34.   P0=0xdf;
  35.   wela=0;
  36.   delayms(1);
  37.   
  38.   dula=1;
  39.   P0=table[s];
  40.   dula=0;
  41.   P0=0xff;
  42.   wela=1;
  43.   P0=0xef;
  44.   wela=0;
  45.   delayms(1);
  46.    
  47.   dula=1;
  48.   P0=table[b];
  49.   dula=0;
  50.   P0=0xff;
  51.   wela=1;
  52.   P0=0xf7;
  53.   wela=0;
  54.   delayms(1);
  55.   
  56.   dula=1;
  57.   P0=table[k];
  58.   dula=0;
  59.   P0=0xff;
  60.   wela=1;
  61.   P0=0xfb;
  62.   wela=0;
  63.   delayms(1);
  64.   
  65.   dula=1;
  66.   P0=table[w];
  67.   dula=0;
  68.   P0=0xff;
  69.   wela=1;
  70.   P0=0xfe;
  71.   wela=0;
  72.   delayms(1);
  73.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
  74.   dula=1;                                                                                                                                                                                                                                                                                                                                                                                       
  75.   P0=table[sw];
  76.   dula=0;
  77.   P0=0xff;
  78.   wela=1;
  79.   P0=0xfd;
  80.   wela=0;
  81.   delayms(1);
  82. }
  83. void delayms(uint xms)
  84. {
  85.   uint i,j;
  86.   for(i=xms;i>0;i--)
  87.      for(j=10;j>0;j--);
  88. }
  89.   
  90. void T0_time()interrupt 1

  91. {
  92.   TH0=(65536-45872)/256;
  93.   TL0=(65536-45872)%256;
  94.   num1++;
  95.   if(num1==20)
  96.   {
  97.    num1=0;
  98.    num++;
  99.    if(num==999999)
  100.     num=0;
  101. sw=num/100000;
  102. w=num%100000/10000;
  103. k=num%10000/1000;
  104. b=num%1000/100;
  105. s=num%100/10;
  106. g=num%10;
  107.   }
  108. }
復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2018-3-29 21:03 | 只看該作者
改了一下就可以了
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit dula=P2^6;
sbit wela=P2^7;
void delayms(uint);
void smg();
uchar sw,w,k,b,s,g;
uchar num;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
               
void main()
{
        TMOD=0X01;
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        EA=1;
        TR0=1;
        ET0=1;
        while(1)
        {
                smg();
        }
}
void smg()
{  
        P0=0x00;//消影
        dula=1;
        dula=0;
        P0=0xdf;//送位碼
        wela=1;
        wela=0;
        P0=table[g];//送段碼
        dula=1;
        dula=0;
        delayms(1);

        P0=0x00;
        dula=1;
        dula=0;
        P0=0xef;
        wela=1;
        wela=0;
        P0=table[s];       
        dula=1;
        dula=0;
        delayms(1);
       
        P0=0x00;
        dula=1;
        dula=0;
        P0=0xf7;
        wela=1;
        wela=0;
        P0=table[b];
        dula=1;
        dula=0;
        delayms(1);
       
        P0=0x00;
        dula=1;
        dula=0;
        P0=0xfb;
        wela=1;
        wela=0;
        P0=table[k];
        dula=1;
        dula=0;
        P0=0xff;
        delayms(1);
       
        P0=0x00;
        dula=1;
        dula=0;
        P0=0xfe;
        wela=1;
        wela=0;
        P0=table[w];
        dula=1;
        dula=0;
        delayms(1);

        P0=0x00;
        dula=1;
        dula=0;
        P0=table[sw];
        dula=1;
        dula=0;
        P0=0xfd;
        wela=1;
        wela=0;
        delayms(1);
}

void delayms(uint xms)
{
  uint i,j;
  for(i=xms;i>0;i--)
     for(j=10;j>0;j--);
}
  
void T0_time()interrupt 1
{
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        num++;
        if(num==20)
        {
                num=0;
                g++;
                if(g>9)
                {
                        g=0;
                        s++;
                        if(s>9)
                        {
                                s=0;
                                b++;
                                if(b>9)
                                {
                                        b=0;
                                        k++;
                                        if(k>9)
                                        {
                                                k=0;
                                                w++;
                                                if(w>9)
                                                {
                                                        sw++;       
                                                        if(sw>9)
                                                                sw=0;               
                                                }
                                        }
                                }
                        }
                }
        }
}
回復

使用道具 舉報

板凳
ID:39731 發表于 2018-3-30 08:30 | 只看該作者
wulin 發表于 2018-3-29 21:03
改了一下就可以了
#include
#define uchar unsigned char

謝謝!學習了
回復

使用道具 舉報

地板
ID:301791 發表于 2018-6-15 15:00 | 只看該作者
請問大神們,怎么從這程序里看出電路圖呢?
回復

使用道具 舉報

5#
ID:353831 發表于 2019-9-6 18:33 來自手機 | 只看該作者
wulin 發表于 2018-3-29 21:03
改了一下就可以了
#include
#define uchar unsigned char

樓主你好有仿真圖嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜精品一区二区三区在线视频 | 日韩有码一区二区三区 | 久在线精品视频 | 浮生影院免费观看中文版 | 久久久久久国产免费视网址 | 男女午夜免费视频 | 日韩精品一区二区三区中文在线 | 国产精品久久久久av | 91秦先生艺校小琴 | av网站在线免费观看 | 男女啪啪网址 | 狠狠综合久久av一区二区老牛 | www.黄色片视频| 亚洲欧美视频一区 | 天天综合永久入口 | 精品在线观看一区二区 | 日韩欧美一区二区三区在线播放 | 在线欧美小视频 | 精品国产18久久久久久二百 | 精品小视频 | 一区二区三区国产精品 | 精产国产伦理一二三区 | 一区二区三区四区国产 | 羞羞视频在线观免费观看 | 男女视频在线看 | 中文字幕一区二区三区四区 | 精品欧美乱码久久久久久 | 天天干天天操 | 久久久久久成人 | 999国产视频 | 国产精品久久一区二区三区 | 一级大黄色片 | 自拍 亚洲 欧美 老师 丝袜 | 亚洲啊v在线 | 伊人精品一区二区三区 | 在线播放国产一区二区三区 | 国产真实精品久久二三区 | 成人久久18免费网站图片 | 国产亚洲欧美在线 | 中文字幕一区二区视频 | 欧美视频一区二区三区 |