找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何将max7219芯片加到这张电路图里面,用它来驱动数码管

[复制链接]
跳转到指定楼层
楼主
大佬们,请问如何将max7219芯片加到这张电路图里面,用它来驱动数码管。。。。。。

代码部分如下
#include <reg52.h>
#define uchar unsigned char   //宏定义
#define uint unsigned int

/*引脚定义*/
sbit START=P2^0;           //开始、停止键 低电平有效
sbit RST=P2^1;             //复位键
sbit wei1=P2^4;                //定义位选
sbit wei2=P2^5;
sbit wei3=P2^6;               
sbit wei4=P2^7;

/*定义全局变量*/               
uint time;                           //时间变量
uchar tt;

/*数码管字模,对应 0-9*/
uchar code table[]={           
                                        0x3f,0x06,0x5b,0x4f,
                                        0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f};
uchar code tabledp[]={
                                        0xbf,0x86,0xdb,0xcf,
                                        0xe6,0xed,0xfd,0x87,
                                        0xff,0xef,0xf7,0xfc,
                                        0xb9,0xde,0xf9,0xf1};        //带小数点共阴极数码管编码
/*延时函数*/
void Delay(uint ms)                        //毫秒级延时函数
{
        uint  i, j;
        for(i =ms; i>0; i--)
                for(j =110; j>0; j--);
}

/*中断*/
void time0() interrupt 1               
{

        TH0 = 0xdc;                    //晶振11.0592Mhz  
        TL0 = 0x00;                                
        tt++;
        if(tt >= 100)
                {
                        tt = 0;
                        time++;
                        if(time>99)         //到99后在从00开始        
                                time = 0;                                
                }
}

/*显示函数*/
void Display(uchar sum)  
{
        uchar shi, ge,shifen,baifen;
        shifen=tt%100/10;
    baifen=tt%10;
    shi=sum%100/10;
    ge=sum%10;

                P0=table[shi];        //使用动态扫描的方法实现数码管显示
                wei1=0;
                Delay(1);
                wei1=1;

                P0=tabledp[ge];
                wei2=0;
                Delay(1);            
                wei2=1;

        P0=table[shifen];//使用动态扫描的方法实现数码管显示
                wei3=0;
                Delay(1);
                wei3=1;

                P0=table[baifen];
                wei4=0;
                Delay(1);            
                wei4=1;        
}

/*按键扫描*/
void keyscan()
{
                if(START==0)           //开始、停止
                {
                        Delay(10);               //消抖
                        if(START==0)
                        {
                                TR0 =!TR0;                                
                                while(!START) Display(time);
                        }
                }

                if(RST==0)                                //复位
                {
                        Delay(10);                        //消抖
                        if(RST==0)
                        {
                                time=0;
                                tt=0;
                                TR0=0;
                                while(!RST)Display(time);
                        }
                }
}

//主函数
void main()         
{
        EA   = 1;                                //中断开关
        ET0  = 1;        

        TMOD = 0x01;
        TH0  = 0xdc;                        //晶振11.0592Mhz  
        TL0  = 0x00;                        
        TR0  = 0;        

        while(1)
        {
                keyscan();
                Display(time);                        
        }
}


有哪些地方要修改的。。求大家帮帮忙。。

QQ浏览器截图20180613171459.png (152.81 KB, 下载次数: 25)

秒表电路图

秒表电路图

QQ浏览器截图20180613171617.png (21.62 KB, 下载次数: 26)

max7219

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

使用道具 举报

沙发
ID:342822 发表于 2018-6-13 22:40 | 只看该作者
回复

使用道具 举报

板凳
ID:164602 发表于 2018-6-14 08:42 | 只看该作者
给你一个电路参考:
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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