找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC89C52+二片74HC595同時顯示二段4位數(shù)字+PROTEUS813

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:57614 發(fā)表于 2025-2-1 10:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 13680112599 于 2025-2-1 10:45 編輯

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char


uchar code Table[] =
{ // 0         1          2           3        4         5          6           7        8         9          A           b        C    d          E    F    -
        0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf
};
//-----------------------------------------------------------------------------

sbit SER = P1^0;        //串行數(shù)據(jù)輸入端
sbit STCP = P1^1;        //時鐘脈沖信號——上升沿有效 存儲寄存器時鐘輸入端,并行輸出
sbit SHCP = P1^2;        //輸入信號————上升沿有效 移位寄存器時鐘輸入端


unsigned int n1,n2;

void Display ();        // 數(shù)碼管顯示
void SMG_Int(uchar Dat);                // 數(shù)碼管單字節(jié)串行移位函數(shù)

//*****************************************************************************
// 主程序
void main ()
{
        
        n1=2233;
        n2=5566;
        while(1)
        {
                n1++;
                n2++;
                if(n1>=9999)
                n1=0;
                if(n2>=9999)
                n2=0;
               
                Display ();
        }
}



void Display ()
{
        uchar i;

        //顯示第1位        
        i = Table[n2%10];

        SMG_Int(i);                        
        SMG_Int(0x01);               

        STCP = 0;         //數(shù)據(jù)并行輸出,(借助上升沿)
        _nop_();
        _nop_();
        STCP = 1;

        //顯示第2位        
        i = Table[n2/10%10];

        SMG_Int(i);               
        SMG_Int(0x02);               

        STCP = 0;
        _nop_();
        _nop_();
        STCP = 1;

        //顯示第3位        -
        
        i = Table[n2/100%10];
        
        SMG_Int(i);                        
        SMG_Int(0x04);        

        STCP = 0;
        _nop_();
        _nop_();
        STCP = 1;

        //顯示第4位        
        i = Table[n2/1000%10];

        SMG_Int(i);                        
        SMG_Int(0x08);               

        STCP = 0;
        _nop_();
        _nop_();
        STCP = 1;

        //顯示第5位        
        i = Table[n1%10];

        SMG_Int(i);                        
        SMG_Int(0x10);        

        STCP = 0;
        _nop_();
        _nop_();
        STCP = 1;

        //顯示第6位     
        //if(shan<10)           
        i = Table[n1/10%10];
        

        SMG_Int(i);                        
        SMG_Int(0x20);        

        STCP = 0;
        _nop_();
        _nop_();
        STCP = 1;

        //顯示第7位        
        i = Table[n1/100%10];

        SMG_Int(i);                        
        SMG_Int(0x40);        

        STCP = 0;
        _nop_();
        _nop_();
        STCP = 1;

        //顯示第8位        
        i = Table[n1/1000%10];

        SMG_Int(i);               
        SMG_Int(0x80);        

        STCP = 0;
        _nop_();
        _nop_();
        STCP = 1;
}

void SMG_Int(uchar Dat)         //通過8次循環(huán)將8位數(shù)據(jù)移入74HC595
{
        uchar i;
        for(i=8;i>=1;i--)
        {
                if (Dat & 0x80)
                {
                        SER = 1;
                }
               
                else
                {
                        SER = 0;
                }
                Dat <<= 1;
                SHCP = 0;
                _nop_();
                _nop_();
                SHCP = 1;
        }
}










51-595-二個四位數(shù)同時顯示.zip

108.08 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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