找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

共陽(yáng)極數(shù)碼管 段選位與上 0xf7 后小數(shù)點(diǎn)顯示 數(shù)字卻不顯示了 是什么原因

查看數(shù): 8393 | 評(píng)論數(shù): 16 | 收藏 0
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2018-7-28 18:10

正文摘要:

#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define MAIN_Fosc                11059200UL typedef unsigned int INT16U; sbit DU = P ...

回復(fù)

ID:377512 發(fā)表于 2018-7-31 11:22
wulin 發(fā)表于 2018-7-31 05:35
這與使用八數(shù)碼管沒(méi)有什么關(guān)系,程序是顯示六位,后兩位閑置而已。

一直沒(méi)出來(lái)這樣的效果
ID:213173 發(fā)表于 2018-7-31 05:35
李博文 發(fā)表于 2018-7-30 19:46
我用八位共陽(yáng)極的數(shù)碼管怎么 只顯示小數(shù)點(diǎn) 和后兩位數(shù)

這與使用八數(shù)碼管沒(méi)有什么關(guān)系,程序是顯示六位,后兩位閑置而已。


ID:377512 發(fā)表于 2018-7-30 19:46
wulin 發(fā)表于 2018-7-30 17:53
樓上好多朋友是瞎猜,此程序的共陽(yáng)數(shù)碼管加點(diǎn)當(dāng)然是 P0 = table[z] & 0x7f; 。由于段碼與位碼共用P0,不 ...

我用八位共陽(yáng)極的數(shù)碼管怎么 只顯示小數(shù)點(diǎn) 和后兩位數(shù)
ID:213173 發(fā)表于 2018-7-30 17:53
李博文 發(fā)表于 2018-7-30 10:43
要是或的話 數(shù)據(jù)有一位是0和1或之后是 1 改變了數(shù)據(jù)的值 比如 1010 1010按位或0111 1111 變成 1111 1111  ...

樓上好多朋友是瞎猜,此程序的共陽(yáng)數(shù)碼管加點(diǎn)當(dāng)然是 P0 = table[z] & 0x7f; 。由于段碼與位碼共用P0,不加消隱指令肯定會(huì)出問(wèn)題。樓主認(rèn)為去掉 & 0x7f就顯示正常的說(shuō)法是不正確的,只是樓主用仿真軟件看不出來(lái),要是實(shí)際電路就可以看出問(wèn)題來(lái)了。給你改了一下,你試試。#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define MAIN_Fosc                11059200UL

typedef unsigned int INT16U;

sbit DU = P2^6;
sbit WE = P2^7;

uchar code table[]={
//         0                1           2          3                  4                5
        0xc0,  0xf9,  0xa4,  0xb0,  0x99,  0x92,  
//         6                 7                8           9          .                 關(guān)顯示
    0x82,  0xf8,  0x80,  0x90,  0x7f,   0xff
};
uchar code T_COM[] = {
//1      2     3       4     5      6
0x01,  0x02,  0x04,  0x08,  0x10,  0x20
};
void Delay_Ms(INT16U ms)
{
     INT16U i;
         do{
              i = MAIN_Fosc / 96000;
                  while(--i);   //96T per loop
     }while(--ms);
}
void Display(uchar z)
{        
//------------------------------
        P0 = 0xff;
        DU = 0;
        DU = 1;
        P0 = table[z];               
        DU = 1;                                                
        DU = 0;                                                        

        P0 = T_COM[0];                                   
        WE = 1;                                                
        WE = 0;                                                
        Delay_Ms(3);
//-------------------------------
        P0 = 0xff;
        DU = 0;
        DU = 1;
        P0 = table[z] & 0x7f;  
        DU = 1;
        DU = 0;

        P0 = T_COM[1];                          
        WE = 1;
        WE = 0;
        Delay_Ms(3);
//------------------------------
        P0 = 0xff;
        DU = 0;
        DU = 1;                                                     
        P0 = table[z];               
        DU = 1;                                                
        DU = 0;                                                        

        P0 = T_COM[2];                                   
        WE = 1;                                                
        WE = 0;                                                
        Delay_Ms(3);
//-------------------------------
        P0 = 0xff;
        DU = 0;
        DU = 1;
        P0 = table[z] & 0x7f;
        DU = 1;
        DU = 0;

        P0 = T_COM[3];                        
        WE = 1;
        WE = 0;
        Delay_Ms(3);
//------------------------------
        P0 = 0xff;
        DU = 0;
        DU = 1;                                                        
        P0 = table[z];               
        DU = 1;                                                
        DU = 0;                                                        

        P0 = T_COM[4];                                   
        WE = 1;                                                
        WE = 0;                                                
        Delay_Ms(3);
//-------------------------------
        P0 = 0xff;
        DU = 0;
        DU = 1;
        P0 = table[z] & 0x7f;
        DU = 1;
        DU = 0;

        P0 = T_COM[5];                          
        WE = 1;
        WE = 0;
        Delay_Ms(3);

}
void main()
{
        while(1)       
        {
                Display(0);
        }
}



評(píng)分

參與人數(shù) 2黑幣 +15 收起 理由
NPC-1024 + 8 回帖助人的獎(jiǎng)勵(lì)!
李博文 + 7 很給力!

查看全部評(píng)分

ID:377512 發(fā)表于 2018-7-30 10:43
lids 發(fā)表于 2018-7-30 09:34
段碼”或“0x7f才能顯示,才是正解,

要是或的話 數(shù)據(jù)有一位是0和1或之后是 1 改變了數(shù)據(jù)的值 比如 1010 1010按位或0111 1111 變成 1111 1111 或有一個(gè)值為1 則為1

評(píng)分

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

查看全部評(píng)分

ID:140489 發(fā)表于 2018-7-30 09:34
段碼”或“0x7f才能顯示,才是正解,
ID:261288 發(fā)表于 2018-7-29 20:40
段碼”或“0x7f才能顯示
ID:377512 發(fā)表于 2018-7-29 13:10
去了小數(shù)點(diǎn)就可以完全顯示
ID:377512 發(fā)表于 2018-7-29 13:07
angmall 發(fā)表于 2018-7-29 12:16
要數(shù)碼顯示, 你把Delay_Ms(3);  設(shè)置成Delay_Ms(9);

設(shè)置成9之后數(shù)碼管交替顯示 還是不是一起顯示 延時(shí)的時(shí)間太長(zhǎng)了
ID:377512 發(fā)表于 2018-7-29 12:42
guangshi_wq 發(fā)表于 2018-7-29 10:50
問(wèn)題在這里,因?yàn)檫@個(gè)點(diǎn)不是在每個(gè)位上,如果要顯示小數(shù)點(diǎn)的時(shí)候,先要判斷這個(gè)位有沒(méi)有小數(shù)點(diǎn)

共陽(yáng)極 直接和 0x7f與 最高位為0 數(shù)據(jù)的最高位也為0 這樣就不需要判斷了
ID:155507 發(fā)表于 2018-7-29 12:16
要數(shù)碼顯示, 你把Delay_Ms(3);  設(shè)置成Delay_Ms(9);
ID:375003 發(fā)表于 2018-7-29 10:50
問(wèn)題在這里,因?yàn)檫@個(gè)點(diǎn)不是在每個(gè)位上,如果要顯示小數(shù)點(diǎn)的時(shí)候,先要判斷這個(gè)位有沒(méi)有小數(shù)點(diǎn)

評(píng)分

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

查看全部評(píng)分

ID:213173 發(fā)表于 2018-7-29 10:37
樓主要在顯示程序里每位送段碼前加消隱語(yǔ)句!
        P0 = 0xff;//消隱
        DU = 1;//開(kāi)段選
        DU = 0;//關(guān)段選
        P0 = table[z];//送段碼
        DU = 1;//開(kāi)段選
        DU = 0;//關(guān)段選
       
        WE = 0;//贅句
        P0 = T_COM[0];//送位碼
        WE = 1;//開(kāi)位選
        WE = 0;//關(guān)位選
        Delay_Ms(3);

評(píng)分

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

查看全部評(píng)分

ID:380415 發(fā)表于 2018-7-29 10:29
在實(shí)際中要做消影操作
ID:377512 發(fā)表于 2018-7-29 08:45
wc86110 發(fā)表于 2018-7-29 03:13
樓主列出的二進(jìn)制也不完全對(duì)啊

哪里不對(duì)
ID:96682 發(fā)表于 2018-7-29 03:13
樓主列出的二進(jìn)制也不完全對(duì)啊

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

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

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