找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2688|回復: 7
打印 上一主題 下一主題
收起左側(cè)

求助一下各位單片機大神,怎么動態(tài)顯示0-9,實在搞不懂了

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:481163 發(fā)表于 2020-3-29 22:43 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

#include "reg51.h"        
#include<intrins.h>

typedef unsigned int u16;         
typedef unsigned char u8;

sbit SRCLK=P0^0;
sbit RCLK=P0^2;
sbit SER=P0^1;


u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//ÏÔê¾0~FμÄÖμ

void delay(u16 t)
{
        while(t--);
}

void Hc595SendByte(u8 dat)
{
        u8 a;
        SRCLK=0;
        RCLK=0;
        for(a=0;a<8;a++)
        {
                SER=dat>>7;
                dat<<=1;

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

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

void main()
{               
        u8 i;
        while(1)
        {
                for(i=0;i<8;i++)
                {
                        Hc595SendByte(smgduan[6]);
                        delay(100);
                        Hc595SendByte(0x00);
                }
        }        
}


74HC595-動態(tài)數(shù)碼管.rar

76.03 KB, 下載次數(shù): 6

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

使用道具 舉報

沙發(fā)
ID:699194 發(fā)表于 2020-3-29 22:59 | 只看該作者
你的數(shù)碼管是共陰還是共陽的???
回復

使用道具 舉報

板凳
ID:699194 發(fā)表于 2020-3-29 23:01 | 只看該作者
你用一下這個程序
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint i)
{
    uint x,j;
        for(j=0;j<i;j++)
        for(x=0;x<=148;x++);

}
void main(void)
{
    uchar i=0;
        while(1)
        {
        P0=0;
        P0=table[i];
        delay(500);
        i=i+1;
        if(i==10)
        i=0;
        }
}
回復

使用道具 舉報

地板
ID:481163 發(fā)表于 2020-3-30 09:40 | 只看該作者
我叫小大打 發(fā)表于 2020-3-29 22:59
你的數(shù)碼管是共陰還是共陽的???

共陰數(shù)碼管
回復

使用道具 舉報

5#
ID:481163 發(fā)表于 2020-3-30 09:42 | 只看該作者
我叫小大打 發(fā)表于 2020-3-29 23:01
你用一下這個程序
#include
#define uchar unsigned char

用到74HC595
回復

使用道具 舉報

6#
ID:213173 發(fā)表于 2020-3-30 10:05 | 只看該作者
HC595聯(lián)級使用時要等全部數(shù)據(jù)傳輸完畢再發(fā)鎖存信號。
  1. #include "reg51.h"       
  2. #include<intrins.h>

  3. typedef unsigned int u16;         
  4. typedef unsigned char u8;

  5. sbit SRCLK=P0^0;
  6. sbit RCLK=P0^2;
  7. sbit SER=P0^1;


  8. u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  9.                                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F段碼
  10. u8 code smgwela[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位碼

  11. void delay(u16 t)
  12. {
  13.         while(t--);
  14. }

  15. void Hc595SendByte(u8 dat)
  16. {
  17.         u8 a;
  18. //        SRCLK=0;
  19. //        RCLK=0;
  20.         for(a=0;a<8;a++)
  21.         {
  22.                 SER=dat>>7;
  23.                 SRCLK=1;
  24.                 _nop_();
  25.                 _nop_();
  26.                 SRCLK=0;       
  27.                 dat<<=1;
  28.         }
  29. //        RCLK=1;
  30. //        _nop_();
  31. //        _nop_();
  32. //        RCLK=0;
  33. }

  34. void main()
  35. {               
  36.         u8 i;
  37.         SRCLK=0;
  38.         RCLK=0;
  39.         while(1)
  40.         {
  41.                 for(i=0;i<8;i++)
  42.                 {
  43.                         Hc595SendByte(smgwela[i]);//先送位碼
  44.                         Hc595SendByte(smgduan[i]);//后送段碼
  45.                         RCLK=1;                   //鎖存                                               
  46.                         _nop_();
  47.                         _nop_();
  48.                         RCLK=0;
  49.                         delay(100);
  50.                 }
  51.         }       
  52. }
復制代碼



回復

使用道具 舉報

7#
ID:481163 發(fā)表于 2020-3-30 11:47 | 只看該作者
wulin 發(fā)表于 2020-3-30 10:05
HC595聯(lián)級使用時要等全部數(shù)據(jù)傳輸完畢再發(fā)鎖存信號。

大神太感謝了。謝謝謝謝
回復

使用道具 舉報

8#
ID:123289 發(fā)表于 2020-3-30 12:40 | 只看該作者
你每間隔4ms顯示一個數(shù)碼管,從第一個至第八個,一直不停的做下去就可以了。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表