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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3521|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

我想問一下如何用delay函數(shù)做出一個動態(tài)掃描數(shù)碼管。郭天祥的板子。我邏輯那錯了?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
#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;
                }
        }               
}

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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:632567 發(fā)表于 2019-11-4 14:45 | 只看該作者
編輯沒問題運(yùn)行后六個管子一起亮一起顯示由一變化到七
回復(fù)

使用道具 舉報(bào)

板凳
ID:562525 發(fā)表于 2019-11-4 18:23 | 只看該作者
main的第一行
        num2=wela;   
        wela=0xfe;

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

應(yīng)修改為
        num2=0xfe;
回復(fù)

使用道具 舉報(bào)

地板
ID:89515 發(fā)表于 2019-11-4 20:00 來自觸屏版 | 只看該作者
num2沒有初值
回復(fù)

使用道具 舉報(bào)

5#
ID:89515 發(fā)表于 2019-11-4 20:08 來自觸屏版 | 只看該作者
如果是共陰極數(shù)碼管,必須用1移位取反
回復(fù)

使用道具 舉報(bào)

6#
ID:332444 發(fā)表于 2019-11-4 22:48 | 只看該作者
那你的問題是蝦米?從你描述可以證明你已經(jīng)做到了。
回復(fù)

使用道具 舉報(bào)

7#
ID:213173 發(fā)表于 2019-11-4 23:16 | 只看該作者
單片機(jī)在想peach 發(fā)表于 2019-11-4 14:45
編輯沒問題運(yùn)行后六個管子一起亮一起顯示由一變化到七

賦值錯誤
       num2=wela;   
       wela=0xfe;
順序錯誤
       wela=1;
       P0=num2;
       wela=0;
       delay(1000);//延時參數(shù)不可以超過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);//延時2ms
  37.                         num2=_crol_(num2,1);
  38.                         if(num2==0xbf)
  39.                                 num2=0xfe;
  40.                 }
  41.         }               
  42. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

8#
ID:453974 發(fā)表于 2019-11-4 23:47 | 只看該作者
單片機(jī)在想peach 發(fā)表于 2019-11-4 14:45
編輯沒問題運(yùn)行后六個管子一起亮一起顯示由一變化到七

你想實(shí)現(xiàn)什么結(jié)果
回復(fù)

使用道具 舉報(bào)

9#
ID:453974 發(fā)表于 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)該就沒問題了
回復(fù)

使用道具 舉報(bào)

10#
ID:437615 發(fā)表于 2019-11-5 08:21 來自觸屏版 | 只看該作者
我來學(xué)習(xí)一下,我看到這個是共陰的數(shù)碼管為什么位碼只用一個就行了
回復(fù)

使用道具 舉報(bào)

11#
ID:632567 發(fā)表于 2019-11-5 19:59 | 只看該作者
wulin 發(fā)表于 2019-11-4 23:16
賦值錯誤
       num2=wela;   
       wela=0xfe;

對的解決了
回復(fù)

使用道具 舉報(bào)

12#
ID:632567 發(fā)表于 2019-11-5 19:59 | 只看該作者
_4061N_ 發(fā)表于 2019-11-4 18:23
main的第一行
        num2=wela;   
        wela=0xfe;

回復(fù)

使用道具 舉報(bào)

13#
ID:632567 發(fā)表于 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;         
                }
        }               
}
回復(fù)

使用道具 舉報(bào)

14#
ID:632567 發(fā)表于 2019-11-5 20:02 | 只看該作者
_4061N_ 發(fā)表于 2019-11-4 18:23
main的第一行
        num2=wela;   
        wela=0xfe;

對的然后再消影
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表