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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

各位大神,我又來求助數(shù)碼管了,感謝

查看數(shù): 3590 | 評論數(shù): 19 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時(shí)間: 2017-9-12 21:44

正文摘要:

數(shù)碼管的原理我都懂,另外,重點(diǎn)強(qiáng)調(diào),我這個(gè)是用138譯碼器控制數(shù)碼管顯示的,不是P1口;謝謝; 準(zhǔn)備用8個(gè)數(shù)碼管顯示二進(jìn)制累加的過程的,結(jié)果程序?qū)懴聛硖崾究刂茢?shù)碼管顯示的代碼沒意義;不知道問題出在哪了。請大 ...

回復(fù)

ID:111634 發(fā)表于 2017-9-18 19:36
主要問題是沒理解138譯碼原理,從上述文字來看,現(xiàn)在可能還理解得不夠!
ID:226263 發(fā)表于 2017-9-17 21:05
樓主為什么要用delay呢??這樣寫的額程序很容易出問題,特別是對時(shí)序要求高的地方,建議用查詢的方法來控制時(shí)序動(dòng)作。
ID:89515 發(fā)表于 2017-9-14 00:46
GOD丿小男孩 發(fā)表于 2017-9-13 15:20
非常感謝你的幫助,不過你這個(gè)代碼出來后是不顯示1的,只有0或者不顯示,應(yīng)該是該顯示1的時(shí)候數(shù)碼管沒點(diǎn) ...

也可能是軟件差別,我用protues8.6,keil3.8a沒問題
ID:89515 發(fā)表于 2017-9-14 00:43
GOD丿小男孩 發(fā)表于 2017-9-13 15:20
非常感謝你的幫助,不過你這個(gè)代碼出來后是不顯示1的,只有0或者不顯示,應(yīng)該是該顯示1的時(shí)候數(shù)碼管沒點(diǎn) ...

我仿真了下沒問題呀,很完美。可能仿真電路有些差別
ID:232280 發(fā)表于 2017-9-13 22:36
18707072428 發(fā)表于 2017-9-13 21:00
138譯碼器對應(yīng)的程序有問題,數(shù)字顯示錯(cuò)亂

沒有問題的!對照真值表寫的。
ID:232986 發(fā)表于 2017-9-13 22:28
看來被人解決了啊
ID:215712 發(fā)表于 2017-9-13 21:00
138譯碼器對應(yīng)的程序有問題,數(shù)字顯示錯(cuò)亂
ID:232280 發(fā)表于 2017-9-13 18:41

我現(xiàn)在會(huì)了,代碼發(fā)在上面,有什么不懂的盡管問
ID:232905 發(fā)表于 2017-9-13 16:58
不會(huì)啊
ID:232280 發(fā)表于 2017-9-13 15:41
犯了一個(gè)基本錯(cuò)誤。每一行的table沒有賦值給P0端,只是寫出來而已;另外if語句中應(yīng)該是等于2時(shí)為真,還有最后一個(gè)if語句內(nèi)容也稍作修改,才能加滿后循環(huán),感謝大家的幫助;下面把代碼附上,親測可用;
#include<reg52.h>
sbit A=P2^2;   //定義控制數(shù)碼管管腳
sbit C=P2^3;
sbit D=P2^4;
typedef unsigned char u16;
typedef unsigned int u8;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                                                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,
                                                        0x79,0x71,0x00};
void delay(u16 z)           //延時(shí)函數(shù)
{
        u16 x,y;
        for(x=z;x>0;x--)
                for(y=100;y>0;y--);
}
void main()                //數(shù)碼管顯示二進(jìn)制累加函數(shù)
{
        u16 k,j,i,g;
        u16 h,f,m,a,l;   //定義變量
        j=0;i=0;g=0;h=0;f=0;m=0;l=0;
        while(1)                //大循環(huán)
         { for(k=0;k<3;k++)         //控制1數(shù)碼管顯示
                {
                        for(a=50;a>0;a--)  //使數(shù)碼管顯示時(shí)間足夠人眼識(shí)別
                        {       
                                A=0;C=0;D=0;P0=table[k];delay(3);        //1數(shù)碼管顯示0或1
                                if(k==2){j++;k=0;}                                //當(dāng)1數(shù)碼管顯示1后,使二數(shù)碼管顯示1;
                                A=1;C=0;D=0;P0=table[j];delay(3);        //控制2數(shù)碼管顯示0或1;
                                if(j==2){i++;j=0;}                                //以下相同;
                                A=0;C=1;D=0;P0=table[i];delay(3);
                                if(i==2){g++;i=0;}
                                A=1;C=1;D=0;P0=table[g];delay(3);
                                if(g==2){h++;g=0;}
                                A=0;C=0;D=1;P0=table[h];delay(3);
                                if(h==2){f++;h=0;}
                                A=1;C=0;D=1;P0=table[f];delay(3);
                                if(f==2){m++;f=0;}
                                A=0;C=1;D=1;P0=table[m];delay(3);
                                if(m==2){l++;m=0;}
                                A=1;C=1;D=1;P0=table[l];delay(3);
                                if(l==2){k=3;l=0;}                                 //退出循環(huán)
                        }
                }
        }
}

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

ID:232280 發(fā)表于 2017-9-13 15:35
漫步經(jīng)心 發(fā)表于 2017-9-13 08:54
我個(gè)人建議你先讓數(shù)碼管顯示一個(gè)數(shù)字,然后再動(dòng)態(tài)刷新。循序漸進(jìn)這樣比較穩(wěn)妥。一次性寫那么多,出錯(cuò)了你都 ...

那樣是好一點(diǎn),不過我前面按照你這種方式寫了一個(gè)十進(jìn)制累加的,發(fā)現(xiàn)其實(shí)都一樣的,因?yàn)楹竺媸窍嗤模e(cuò)誤都是一樣的,很方便改
ID:232280 發(fā)表于 2017-9-13 15:32
mengzhixinheng 發(fā)表于 2017-9-13 01:34
注意138的輸入端一定要搞對,這個(gè)錯(cuò)了真值表就不能按次序排列,數(shù)碼管顯示就亂了。細(xì)心!!!

嗯,多謝提醒。我寫的時(shí)候是對照真值表寫的,所以不會(huì)出錯(cuò)
ID:232280 發(fā)表于 2017-9-13 15:23
mengzhixinheng 發(fā)表于 2017-9-13 01:25
自己改程序匹配你的電路

感謝的你幫助,不是電路問題,犯了一個(gè)最基本的錯(cuò)誤
ID:232280 發(fā)表于 2017-9-13 15:20
mengzhixinheng 發(fā)表于 2017-9-13 01:24
#include
typedef unsigned int uint;
typedef unsigned char uchar;

非常感謝你的幫助,不過你這個(gè)代碼出來后是不顯示1的,只有0或者不顯示,應(yīng)該是該顯示1的時(shí)候數(shù)碼管沒點(diǎn)亮。看了你的代碼才知道我錯(cuò)在哪了,是每一行的table沒有賦值給P0;顯示才沒有意義,現(xiàn)在已經(jīng)改過來了,并且稍作修改后能正常顯示,待會(huì)我會(huì)放下面,謝謝你了,你這個(gè)比較高端一點(diǎn),我的代碼就是最簡單的邏輯來寫的
ID:193818 發(fā)表于 2017-9-13 08:54
我個(gè)人建議你先讓數(shù)碼管顯示一個(gè)數(shù)字,然后再動(dòng)態(tài)刷新。循序漸進(jìn)這樣比較穩(wěn)妥。一次性寫那么多,出錯(cuò)了你都找不到北。否則也就沒有那么多人說模塊化了。
ID:89515 發(fā)表于 2017-9-13 01:34
注意138的輸入端一定要搞對,這個(gè)錯(cuò)了真值表就不能按次序排列,數(shù)碼管顯示就亂了。細(xì)心!!!

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

ID:89515 發(fā)表于 2017-9-13 01:25
自己改程序匹配你的電路
ID:89515 發(fā)表于 2017-9-13 01:24
#include<reg51.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit A1=P1^4;
sbit B1=P1^3;
sbit C1=P1^2;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delayms(uchar x)
{
  uint i,j;
  for(i=x;i>0;i--)
          for(j=120;j>0;j--);
}
/*void display()
{
     uchar X,Y;
     for(X=0;X<16;X++)
             for(Y=0;Y<100;Y++)
             {
     
                     A1=0;B1=0;C1=0;P2=table[X];delayms(3);
                     A1=0;B1=0;C1=1;P2=table[X];delayms(3);
                     A1=0;B1=1;C1=0;P2=table[X];delayms(3);
                     A1=0;B1=1;C1=1;P2=table[X];delayms(3);
                     A1=1;B1=0;C1=0;P2=table[X];delayms(3);
                     A1=1;B1=0;C1=1;P2=table[X];delayms(3);
                     A1=1;B1=1;C1=0;P2=table[X];delayms(3);
                     A1=1;B1=1;C1=1;P2=table[X];delayms(3);
     
             }
} */
void hex()
{
        uchar m,su;
        for(m=0x00;m<0xff;m++)
                for(su=0;su<50;su++)
                {
                        A1=1;B1=1;C1=1;
                                if(m&0x01)P2=table[1];else P2=table[0];delayms(3);
                        A1=1;B1=1;C1=0;
                                if(m&0x02)P2=table[1];else P2=table[0];delayms(3);
                    A1=1;B1=0;C1=1;
                                if(m&0x04)P2=table[1];else P2=table[0];delayms(3);
                    A1=1;B1=0;C1=0;
                                 if(m&0x08)P2=table[1];else P2=table[0];delayms(3);
                    A1=0;B1=1;C1=1;
                                 if(m&0x10)P2=table[1];else P2=table[0];delayms(3);
                    A1=0;B1=1;C1=0;
                                 if(m&0x20)P2=table[1];else P2=table[0];delayms(3);
                    A1=0;B1=0;C1=1;
                                  if(m&0x40)P2=table[1];else P2=table[0];delayms(3);
                        A1=0;B1=0;C1=0;
                                if(m&0x80)P2=table[1];else P2=table[0];delayms(3);
                }
}
void main()
{
     while(1)
     {   
            // display();
                           hex();
     }            
}
16進(jìn)制輸出到一個(gè)完整的端口用led亮滅直接就可以表示出二進(jìn)制狀態(tài)。你要用數(shù)碼管0和1表示,只需要判斷哪個(gè)數(shù)碼管該顯示什么就行。這個(gè)由你的累加數(shù)決定

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产伦精品一区二区三区精品视频 | 欧美 日本 国产 | 国产成人短视频在线观看 | 香蕉av免费 | 精品视频在线观看 | 粉嫩av | tube国产 | 久久91精品久久久久久9鸭 | 日韩一区不卡 | 欧美一级免费 | 99热在线观看精品 | 国产精品精品视频一区二区三区 | 亚洲精品无 | 日韩成人在线播放 | 国产精品一区二区在线播放 | 欧美一区成人 | 一区二区三区亚洲精品国 | 国产视频一区在线观看 | 亚洲精品www| 中文字幕在线观看第一页 | 久久久久国产成人精品亚洲午夜 | 久久精品国产免费一区二区三区 | 久久另类视频 | 中国xxxx性xxxx产国 | 欧美在线a | 羞羞视频在线观免费观看 | 日本一级淫片免费啪啪3 | 久久久久久久久久久国产 | 久久国产精品-国产精品 | 久热精品免费 | 国产精品免费视频一区 | 国产精品96久久久久久 | 国产99久久精品一区二区永久免费 | 国产午夜精品视频 | 久久国产日韩欧美 | 国产精品久久久久影院色老大 | 亚洲精品久久久久久久久久久 | 欧美在线国产精品 | 国产精品亚洲视频 | 成年人在线观看 | 久久久久成人精品免费播放动漫 |