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

標(biāo)題: 各位大俠麻煩幫我看下這個(gè)計(jì)數(shù)器程序?yàn)槭裁醋畲笥?jì)數(shù)只能到535,而不是到9999 [打印本頁(yè)]

作者: wl20020807    時(shí)間: 2024-9-21 11:43
標(biāo)題: 各位大俠麻煩幫我看下這個(gè)計(jì)數(shù)器程序?yàn)槭裁醋畲笥?jì)數(shù)只能到535,而不是到9999
#include <AT892051.H>
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P3^0;         //數(shù)碼管位定義
sbit LED2=P3^1;
sbit LED3=P3^4;
sbit LED4=P3^5;
sbit K4=P3^2;
sbit K3=P3^3;
sbit K1=P3^7;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};        //第10為不顯示


void delay(uint x)               
{
        uint y,z;                         
        for(y=x;y>0;y--)
                for(z=110;z>0;z--);
}

void display(uint num)         //動(dòng)態(tài)掃描顯示程序
{
        uchar qian,bai,shi,ge;
        qian=num/1000;
        bai=num%1000/100;
        shi=num%100/10;
        ge=num%10;
        if (qian==0)
                {           //如果小時(shí)十位是0的話,不顯示
                        qian=10;
                        if (bai==0)
                                {           //如果小時(shí)十位是0的話,不顯示
                                        bai=10;
                                        if (shi==0)
                                                {           //如果小時(shí)十位是0的話,不顯示
                                                        shi=10;
                                                }
                                }
                }

        LED4=0;
        P1=table[qian];
        delay(4);
        LED4=1;
        P1=1;
       
        LED3=0;
        P1=table[bai];          
        delay(4);
        LED3=1;
        P1=1;
       
       
        LED2=0;
        P1=table[shi];
        delay(4);
        LED2=1;
        P1=1;
       
        LED1=0;
        P1=table[ge];
        delay(4);
        LED1=1;
        P1=1;

}
void main()
{
         uint num=0;
    while(1) {
      display(num);

      if (K3==0) {
        display(num);
        if (K3 == 0) {
          while(K3==0) display(num);
          while(K4==1) display(num);
          num++;
          while(K4==0) display(num);
        }
      }

      if (K1==0)
                        {delay(4);
                         if (K1==0)
                         {num=0;}}

                if (K4==0)
                {
        display(num);
        if (K4==0)
                  {
          while(K4==0) display(num);
          while(K3==1) display(num);
          num--;
          while(K3==0) display(num);
        }
      }
                if (K1==0)
                        {delay(4);
                         if (K1==0)
                         {num=0;}}
    }
}



作者: wl20020807    時(shí)間: 2024-9-21 11:46
麻煩各位大俠幫忙看下程序需要改哪里可以使計(jì)數(shù)最大到9999  !!!
作者: Graves    時(shí)間: 2024-9-21 17:57
估計(jì)是從0然后按減1顯示535你就覺(jué)得最大計(jì)數(shù)535了,實(shí)際num是65535,對(duì)num做一些限定就好
作者: xiaobendan001    時(shí)間: 2024-9-21 18:30
太復(fù)雜了,看讀懂啊。
535是個(gè)什么數(shù)字?UINT的最大是65535,大概你這是加到0XFFFF了吧,只是前邊的65沒(méi)顯示出來(lái)。你這好像也沒(méi)有限制最大數(shù)字啊,哪里來(lái)的9999?起碼要加一個(gè)if(num<9999)num++;else num = 0;這樣
作者: xiaobendan001    時(shí)間: 2024-9-21 18:32
又看到你之前的帖子了,這是那個(gè)按鍵被拉低的問(wèn)題解決了?
作者: wl20020807    時(shí)間: 2024-9-21 21:58
xiaobendan001 發(fā)表于 2024-9-21 18:32
又看到你之前的帖子了,這是那個(gè)按鍵被拉低的問(wèn)題解決了?

把k3改到p5^4可以計(jì)數(shù)了k3在p3口就不行
作者: wl20020807    時(shí)間: 2024-9-21 22:00
qq475878026 發(fā)表于 2024-9-21 17:57
估計(jì)是從0然后按減1顯示535你就覺(jué)得最大計(jì)數(shù)535了,實(shí)際num是65535,對(duì)num做一些限定就好

就是按加鍵加到535就返回到1了
作者: wl20020807    時(shí)間: 2024-9-21 22:31
xiaobendan001 發(fā)表于 2024-9-21 18:30
太復(fù)雜了,看讀懂啊。
535是個(gè)什么數(shù)字?UINT的最大是65535,大概你這是加到0XFFFF了吧,只是前邊的65沒(méi)顯 ...

按加鍵加到535后再按加鍵就顯示0了
作者: vimli    時(shí)間: 2024-9-22 00:29
先這樣查下,可以屏蔽掉按鍵功能,先排除顯示上是否有問(wèn)題,直接給顯示賦值9999,看顯示是否正常,如果顯示ok,再看你的計(jì)數(shù)邏輯是否正常,最后再打開(kāi)按鍵
作者: wl20020807    時(shí)間: 2024-9-22 07:44
xiaobendan001 發(fā)表于 2024-9-21 18:30
太復(fù)雜了,看讀懂啊。
535是個(gè)什么數(shù)字?UINT的最大是65535,大概你這是加到0XFFFF了吧,只是前邊的65沒(méi)顯 ...

void main()
{
         uint num=0;
    while(1) {
      display(num);

      if (K3==0) {
        display(num);
        if (K3 == 0) {
          while(K3==0) display(num);
          while(K4==1) display(num);
                                         {if(num==9999)num=0;}
          num++;
          while(K4==0) display(num);
        }
      }
加了還是不行, 還是加到535就返回0了
作者: wl20020807    時(shí)間: 2024-9-22 08:03
vimli 發(fā)表于 2024-9-22 00:29
先這樣查下,可以屏蔽掉按鍵功能,先排除顯示上是否有問(wèn)題,直接給顯示賦值9999,看顯示是否正常,如果顯示ok,再 ...

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};        //第10為不顯示
unsigned char DisplayBuff[]={0xf9, 0xf9, 0xf9, 0xf9};

void delay(uint x)               
加了這段顯示是正常的
作者: xiaobendan001    時(shí)間: 2024-9-22 08:59
wl20020807 發(fā)表于 2024-9-21 22:31
按加鍵加到535后再按加鍵就顯示0了

大概是你的千位顯示失敗了,否則應(yīng)該是5535然后変0的。
作者: wl20020807    時(shí)間: 2024-9-22 09:09
xiaobendan001 發(fā)表于 2024-9-21 18:30
太復(fù)雜了,看讀懂啊。
535是個(gè)什么數(shù)字?UINT的最大是65535,大概你這是加到0XFFFF了吧,只是前邊的65沒(méi)顯 ...

if (K4==0)
                  {
          while(K4==0) display(num);
          while(K3==1) display(num);
                                {if(num==0)num=9999;}
          num--;
          while(K3==0) display(num);
        }
      }
減鍵也加了一句,可以正常計(jì)數(shù)了,最大計(jì)數(shù)9999(只有4位數(shù)碼管)謝謝指點(diǎn)!!!
作者: lkc8210    時(shí)間: 2024-9-22 10:52
顯示函數(shù)有問(wèn)題


num的加減也要加限制




作者: xiaobendan001    時(shí)間: 2024-9-22 13:37
lkc8210 發(fā)表于 2024-9-22 10:52
顯示函數(shù)有問(wèn)題

NUM最大9999,那個(gè)%10是不是多余啊
作者: wl20020807    時(shí)間: 2024-9-22 14:00
wl20020807 發(fā)表于 2024-9-22 07:44
void main()
{
         uint num=0;

不好意思!把這個(gè)程序加在實(shí)際電路運(yùn)行正常,加鍵計(jì)數(shù)超過(guò)535,計(jì)數(shù)正常了
作者: wl20020807    時(shí)間: 2024-9-22 14:03
lkc8210 發(fā)表于 2024-9-22 10:52
顯示函數(shù)有問(wèn)題

謝謝指點(diǎn)!
作者: wl20020807    時(shí)間: 2024-9-22 20:53
lkc8210 發(fā)表于 2024-9-22 10:52
顯示函數(shù)有問(wèn)題

大師現(xiàn)在加減計(jì)數(shù)正常了,現(xiàn)在顯示有點(diǎn)問(wèn)題,就是顯示個(gè)位數(shù)時(shí)前面的十,百,千位是不顯示的,但十,百,千位的數(shù)碼管除a段外其余段位有一點(diǎn)微亮,用萬(wàn)用表測(cè)試a段比其它b,c,e,f,g,d段電壓高0.5v左右,開(kāi)始以為單片機(jī)有問(wèn)題換了也一樣,原程序用的是AT89C2051,我用的STC89S52,應(yīng)該程序在兩種型號(hào)的單片機(jī)上是通用的,麻煩大師幫看下是程序哪里的問(wèn)題。
作者: lkc8210    時(shí)間: 2024-9-23 09:41


作者: wl20020807    時(shí)間: 2024-9-23 15:30
lkc8210 發(fā)表于 2024-9-23 09:41

謝謝大師指點(diǎn)!!




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久久亚洲 | 三级av网站 | 国产欧美日韩一区 | 日韩一区不卡 | 99视频在线观看免费 | 日韩在线 | 国产区一区| 欧美精品一区在线观看 | 亚洲精品日韩丝袜精品 | 午夜精品一区二区三区在线视频 | 亚洲综合激情网 | 久久成人国产 | 免费成人小视频 | 色婷婷视频在线观看 | 精品亚洲一区二区三区四区五区 | 亚洲精品网站在线观看 | 亚洲精品久久久久久久久久久 | 色网站在线 | 久久精品视频网站 | 亚洲久久在线 | 国产激情一区二区三区 | 日韩国产中文字幕 | 欧美午夜在线观看 | 乳大翘臀1v1h糙汉 | 91成人在线观看喷潮蘑菇 | 成人福利在线观看 | 黄色网址av | 日韩特级片 | 放几个免费的毛片出来看 | 婷婷免费视频 | 久久国产精品99久久人人澡 | 日韩一区在线播放 | 日韩在线观看中文字幕 | 日本公妇乱偷中文字幕 | 蜜桃成人av | 亚洲第一免费视频 | 成人a毛片 | 18在线观看免费入口 | 我要看一级片 | 欧美日韩精品一区二区三区 | 在线观看一区 |