两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1.顯示小數(shù)點(diǎn)

我們可能忽略了數(shù)碼管上還有一段發(fā)光二極管,這個(gè)在它的右下角,平時(shí)我們點(diǎn)亮這個(gè)小點(diǎn)是用來表示數(shù)字的小數(shù)點(diǎn)。要想讓這個(gè)小數(shù)點(diǎn)即使顯示的數(shù)字一直變但它還是保持常亮狀態(tài)有什么辦法嗎。

我們不可能為每一個(gè)數(shù)字再弄一個(gè)帶小數(shù)點(diǎn)的真值表數(shù)組,這樣太麻煩了,熟悉C語言知識(shí)的話,我們用另一種方法。

大家要明白這個(gè)知識(shí)點(diǎn):(0x7F)&(0xC0)=0x40

用二進(jìn)制表示

        0111 1111

&  

        1100 0000

=

        0100 0000

01000000(0x40)就是使數(shù)碼管顯示0的同時(shí)還顯示小數(shù)點(diǎn)了

數(shù)碼管4

所以不管是0xC0還是要顯示其他數(shù)字,我們只要“0x7F & LedBuff[x]”就能保持住小數(shù)點(diǎn)常亮了。

 

2.代碼

#include <reg52.h> 
sbit ADDR2 = P1^2;
sbit ADDR1 = P1^1;
sbit ADDR0 = P1^0;
sbit ENLED = P1^4;
sbit ADDR3 = P1^3;

unsigned char code LedChar[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//數(shù)碼管狀態(tài)值初始化
unsigned char LedBuff[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};//數(shù)碼管顯示緩存區(qū)

void delay_ms(unsigned int x)
{
    unsigned int i,j;
    if(x==1000)
    {
        for(i=0;i<19601;i++)//延時(shí)1s
        {
            for(j=5;j>0;j--);
        }
    }
    else while(x--)for(j=115;j>0;j--);
}

void main()
{  
    unsigned char Second=0;
    ADDR3 = 1;//使能三八譯碼器
    ENLED = 0;// 
    
    ADDR2 = 0;//*************************
    ADDR1 = 0;//三八譯碼器的IO0輸出低電平
    ADDR0 = 0;//*************************
    
    while(1)
    { 
        LedBuff[0]=LedChar[Second];
        P0=0x7F & LedBuff[0];
        Second++;
        if(Second>=10)Second=0;
        delay_ms(1000);
    } 
}

因?yàn)榇a功能只是顯示一個(gè)數(shù)碼管,所以不需要快速切換三八譯碼器的其他IOx輸出低電平,也就可以用“delay_ms(1000);”。

點(diǎn)贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個(gè)爬蟲的Python編程課程

只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)