找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5064|回复: 7
收起左侧

请教使用74HC164驱动数码管的问题

[复制链接]
ID:51597 发表于 2013-7-8 15:26 | 显示全部楼层 |阅读模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar i,num,dat,nn,dat1,tt,dd;
uchar code tabled[]=        {                        //共阳数码管显示数据
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90};
uchar code tablew[]=        {                   //位选数据
0x00,0x01,0x02,0x04,
0x08,0x10};
sbit ds=P0^0;          //段选锁存端74HC573
sbit ws=P0^1;          //位选锁存端74HC573
sbit dab=P0^2;          //74HC164段选数据端
sbit dlk=P0^3;          //74HC164脉冲端
sbit wab=P0^4;
sbit wlk=P0^5;
sbit dwlr=P0^6;          //复位端
void delay(uint z)                        //延时子函数 无返回值 形参Z
{
        uint x,y;                                 //定义无符号整型数X,Y
        for(x=z;x>0;x--)                 //for循环一级
                for(y=110;y>0;y--);         //for循环二级
}
void main()
{               
               
                dwlr=0;
                dwlr=1;

                        ds=1;
            num=6;
                   dat1=tabled[num];
           for(i=0;i<8;i++)
           {
               
                dat1=dat1<<1;
                dat=CY;
                dab=dat&0x01;
                dlk=0;
                dlk=1;
        }
           ds=0;
           ws=1;
           nn=1;
                   dat1=tablew[nn];       
           for(i=0;i<8;i++)
           {        
       
                dat1=dat1<<1;
                dat=CY;
                wab=dat&0x01;
                        wlk=0;
                wlk=1;
            }

                ws=0;

               
           while(1);


}
先是静态显示,有时候一下亮两个数码管,段显也不对,但是给74HC164和74HC573晚送电一会,就正常了。请教啊

回复

使用道具 举报

ID:51597 发表于 2013-7-9 08:28 | 显示全部楼层
有指导的吗
回复

使用道具 举报

ID:51597 发表于 2013-7-9 14:20 | 显示全部楼层
谢谢指点
回复

使用道具 举报

ID:51597 发表于 2013-7-11 07:29 | 显示全部楼层
不行还是会乱,
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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