找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2015|回复: 6
打印 上一主题 下一主题
收起左侧

三个74HC595控制16位数码管显示0~F单片机程序PCB,非常感谢热心大哥教导

  [复制链接]
跳转到指定楼层
楼主
制作出来的实物图如下:

Altium Designer画的PCB图如下:(51hei附件中可下载工程文件)



单片机源程序如下:
include "reg51.h"
#include "intrins.h"

sfr P5 = 0xC8;
sfr P1M0 = 0X92;
sfr P1M1 = 0x91;
sfr P3M0 = 0XB2;
sfr P3M1 = 0xB1;
sfr P5M0 = 0XCA;
sfr P5M1 = 0xC9;

sbit S_RCLK = P1^7;//位移动信号
sbit L_RCLK = P1^6;//平行输出信号
sbit S_BIT  = P1^5;//位输入

//bit ;  //标志位,虚拟的按键
unsigned char ct;
//unsigned int  //255 65536
unsigned char code SEG_tab[]={0x3f,0x06,0x5b,0x4f,
                0x66,0x6d,0x7d,0x07,
                0x7f,0x6f,0x77,0x7c,
                0x39,0x5e,0x79,0x71,0x40,0x80};

void Send_595(unsigned char x);
void Delay1ms();


main(void)
{
    P1M0 = 0X00;
    P1M1 = 0X00; //0000 0000
    P3M0 = 0X00; //0000 1000
    P3M1 = 0X00;
    P5M0 = 0X00;
    P5M1 = 0X00;
    L_RCLK = 0;
    S_RCLK = 0;
    S_BIT  = 0;//位输入
    while(1)
    {        
                static unsigned char ct=0;
        unsigned int j=0;
        j=~(0x01<<ct);
                Send_595(j>>8);//片选相数码管 位码高8位
        Send_595(j);//片选相数码管 位码低8位
        Send_595(SEG_tab[ct]);//数码管数据
        L_RCLK = 1;
        L_RCLK = 0;
        Delay1ms();
        if(ct<16)
        {
            ct++;
        }
        else ct=0;
    }
}


void Send_595(unsigned char x)
{
    unsigned char i;
    for(i=0;i<8;i++)
    {
        if(x&0x80) S_BIT = 1;
        else       S_BIT = 0;
        S_RCLK = 1;
        S_RCLK = 0;
        x = x<<1;
    }
}

void Delay1ms()                //@11.0592MHz
{
        unsigned char i, j;

        i = 15;
        j = 90;
        do
        {
                while (--j);
        } while (--i);
}

PCB文件下载: HC595_Digital_Tube_2022-04-21.PcbDoc_2022-05-05.zip (16.59 KB, 下载次数: 28)
595原理图.pdf (284.1 KB, 下载次数: 32)
seg802.zip (821 Bytes, 下载次数: 29)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:491577 发表于 2022-5-6 12:32 | 只看该作者
单纯的显示有什么意义?按键呢?
回复

使用道具 举报

板凳
ID:1011444 发表于 2022-5-8 21:04 | 只看该作者
好像没什么实际意义,用处不大
回复

使用道具 举报

地板
ID:996773 发表于 2022-5-9 10:42 | 只看该作者
看是控制很多,其实不难,一片595控制笔画,两片595控制位选,单片机要不停的伺候这个大爷,干不了大事,只能学习用
回复

使用道具 举报

5#
ID:34149 发表于 2022-9-12 10:22 | 只看该作者
595驱动能力有这么强嘛?会不会遇到同时输出几位的情况?
回复

使用道具 举报

6#
ID:688460 发表于 2022-9-12 12:19 | 只看该作者
两个595就可以解决了,为什么还要用3个呢?
回复

使用道具 举报

7#
ID:960619 发表于 2022-9-12 17:00 | 只看该作者
数码管刷新放定时器中断里刷新,你在While里刷新,你在干点其它事数码管就会闪烁。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表