欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 我想問(wèn)一下如何用delay函數(shù)做出一個(gè)動(dòng)態(tài)掃描數(shù)碼管。郭天祥的板子。我邏輯那錯(cuò)了? [打印本頁(yè)]

作者: 單片機(jī)在想peach    時(shí)間: 2019-11-4 14:38
標(biāo)題: 我想問(wèn)一下如何用delay函數(shù)做出一個(gè)動(dòng)態(tài)掃描數(shù)碼管。郭天祥的板子。我邏輯那錯(cuò)了?
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uchar num2;
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,                                                                                                                          
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay (uchar z)
{
        uchar x,y;
        for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}
void main()
{        
        num2=wela;   
        wela=0xfe;
        while(1)
        {
                for(num=1;num<7;num++)
                 {
                         wela=1;
                        P0=num2;
                        wela=0;
                        delay(1000);
                        num2=_crol_(num2,1);
                        dula=1;                        
                        P0=table[num];
                        dula=0;
                        if(num2==0xbf)
                        num2=0xfe;
                }
        }               
}


作者: 單片機(jī)在想peach    時(shí)間: 2019-11-4 14:45
編輯沒(méi)問(wèn)題運(yùn)行后六個(gè)管子一起亮一起顯示由一變化到七
作者: _4061N_    時(shí)間: 2019-11-4 18:23
main的第一行
        num2=wela;   
        wela=0xfe;

很明顯的時(shí)序錯(cuò)誤,而且wela是sbit  類型,不應(yīng)該賦0和1以外的值。

應(yīng)修改為
        num2=0xfe;
作者: mengzhixinheng    時(shí)間: 2019-11-4 20:00
num2沒(méi)有初值
作者: mengzhixinheng    時(shí)間: 2019-11-4 20:08
如果是共陰極數(shù)碼管,必須用1移位取反
作者: xianfajushi    時(shí)間: 2019-11-4 22:48
那你的問(wèn)題是蝦米?從你描述可以證明你已經(jīng)做到了。
作者: wulin    時(shí)間: 2019-11-4 23:16
單片機(jī)在想peach 發(fā)表于 2019-11-4 14:45
編輯沒(méi)問(wèn)題運(yùn)行后六個(gè)管子一起亮一起顯示由一變化到七

賦值錯(cuò)誤
       num2=wela;   
       wela=0xfe;
順序錯(cuò)誤
       wela=1;
       P0=num2;
       wela=0;
       delay(1000);//延時(shí)參數(shù)不可以超過(guò)uchar類型255
       num2=_crol_(num2,1);
       dula=1;                        
       P0=table[num];
       dula=0;
       if(num2==0xbf)
       num2=0xfe;


  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit dula=P2^6;
  6. sbit wela=P2^7;
  7. uchar num2;
  8. uchar num;
  9. uchar code table[]={
  10. 0x3f,0x06,0x5b,0x4f,
  11. 0x66,0x6d,0x7d,0x07,
  12. 0x7f,0x6f,0x77,0x7c,
  13. 0x39,0x5e,0x79,0x71};
  14. void delay (uchar z)
  15. {
  16.         uchar x,y;
  17.         for(x=z;x>0;x--)
  18.                 for(y=110;y>0;y--);
  19. }
  20. void main()
  21. {        
  22.         num2=0xfe;   
  23.         while(1)
  24.         {
  25.                 for(num=1;num<7;num++)
  26.                 {
  27.                         P0=0x00;//消除鬼影
  28.                         dula=1;
  29.                         dula=0;

  30.                         P0=num2;//送位碼
  31.                         wela=1;
  32.                         wela=0;

  33.                         P0=table[num];//送段碼
  34.                         dula=1;
  35.                         dula=0;
  36.                         delay(2);//延時(shí)2ms
  37.                         num2=_crol_(num2,1);
  38.                         if(num2==0xbf)
  39.                                 num2=0xfe;
  40.                 }
  41.         }               
  42. }
復(fù)制代碼




作者: 累不死的狗    時(shí)間: 2019-11-4 23:47
單片機(jī)在想peach 發(fā)表于 2019-11-4 14:45
編輯沒(méi)問(wèn)題運(yùn)行后六個(gè)管子一起亮一起顯示由一變化到七

你想實(shí)現(xiàn)什么結(jié)果
作者: 累不死的狗    時(shí)間: 2019-11-4 23:52
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uchar num2;
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,                                                                                                                          
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay (uchar z)
{
        uchar x,y;
        for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}
void main()
{        
              wela=0xfe;
        num2=wela;   

        while(1)
        {
                for(num=1;num<7;num++)
                 {
                         wela=1;
                        P0=num2;
                        wela=0;
                        delay(1000);
                        num2=_crol_(num2,1);
                        dula=1;                        
                        P0=table[num];
                        dula=0;
                        if(num2==0xbf)
                        num2=0xfe;
                }
        }               
}
這樣應(yīng)該就沒(méi)問(wèn)題了
作者: zhy123654    時(shí)間: 2019-11-5 08:21
我來(lái)學(xué)習(xí)一下,我看到這個(gè)是共陰的數(shù)碼管為什么位碼只用一個(gè)就行了
作者: 單片機(jī)在想peach    時(shí)間: 2019-11-5 19:59
wulin 發(fā)表于 2019-11-4 23:16
賦值錯(cuò)誤
       num2=wela;   
       wela=0xfe;

對(duì)的解決了
作者: 單片機(jī)在想peach    時(shí)間: 2019-11-5 19:59
_4061N_ 發(fā)表于 2019-11-4 18:23
main的第一行
        num2=wela;   
        wela=0xfe;

對(duì)
作者: 單片機(jī)在想peach    時(shí)間: 2019-11-5 20:01
累不死的狗 發(fā)表于 2019-11-4 23:52
#include
#include
#define uchar unsigned char

后面修改了一下
這樣就可以達(dá)成掃描數(shù)碼管了
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uchar num2;
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,                                                                                                                          
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay (uchar z)
{
        uchar x,y;
        for(x=z;x>0;x--)
        for(y=100
                ;y>0;y--);
}
void main()
{      
                dula=0;
                wela=0;
        num2=0xfe;   
        while(1)
        {
                for(num=1;num<7;num++)
                 {
                        wela=1;
                        P0=num2;
                        wela=0;
                                                num2=_crol_(num2,1);
                        delay(10);              
                        dula=1;                        
                        P0=table[num];
                        dula=0;
                                                delay(10);
                        if(num2==0xbf)
                        num2=0xfe;
                                                wela=1;
                                                dula=1;
                                                P0=0x00;
                                                delay(5);
                                                wela=0;
                                                dula=0;         
                }
        }               
}

作者: 單片機(jī)在想peach    時(shí)間: 2019-11-5 20:02
_4061N_ 發(fā)表于 2019-11-4 18:23
main的第一行
        num2=wela;   
        wela=0xfe;

對(duì)的然后再消影




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1