4889|2

7

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

74HC138和74HC164一起做数码管和按键 [复制链接]

74HC138和74HC164一起做数码管和按键
动态显示做出来有 阴影。那位高手能给修补下。
#include
#define uint unsigned int
#define uchar unsigned char
void delay(uint z);
void sendchar(char ch);
void display(uchar i,uchar date) ;
sbit DAT = P2^4;
sbit CLK = P2^5;
char code table[20]={ 0xc0,0xf9,0xa4,0xb0,   //   0,1,2,3           0,1,2,3
                                          0x99,0x92,0x82,0xf8,   //          4,5,6,7           4,5,6,7
                                      0x80,0x90,0x88,0x83,   //          8,9,A,B           8,9,10,11
                                          0xc6,0xa1,0x86,0x8e,   //          C,D,E,F           12,13,14,15
                                          0x91,0xbf,0xc7,0x8c};  //   Y,-,L,P           16,17,18,19

char d_kaiji[4];  //显示缓存
char code wei[4]={0xcf,0xef,0xdf,0xff};  //数码管显示控制位
void main()
{
        P2=0x00;//初始化必须有
        display(0,kaiji[0]);
        delay(1000)        ;
        while(1)
        {
                display(3,kaiji[0]);
                delay(5);
                display(2,kaiji[0]);
                delay(10);
        }
}
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);       
}
void sendchar(char ch)/***把代码发送到移位寄存器***/
{
        uchar i;
        for(i=0;i<8;i++)//8位数据传输完毕后才给数码管显示
        {
             DAT=ch&0x01; //P2_4=0000000x
                         /*DAT一直保持该状态,等时钟脉冲触发传递数值*/
                 CLK=0;// 下面两句制造一个上升沿
                 CLK=1;
                 ch>>=1;/*一个seg[]刚好八位,164是串行输入的,分成八位输入*/
                 DAT=1;
            /*DAT=ch&0x01和ch>>=1的功能是一次取出八位二进制ch的每一位赋值给74hc164*/
        }
}
void display(uchar i, uchar date)
{
        sendchar(date);
        P2&=wei[i];
}

图纸.jpg (354.46 KB, 下载次数: 2)

电路

电路

图纸.jpg (354.46 KB, 下载次数: 0)

图纸.jpg
此帖出自51单片机论坛

最新回复

学习了  详情 回复 发表于 2014-4-16 12:23
点赞 关注
 

回复
举报

1119

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
感觉好高大上啊~~完全看不懂
此帖出自51单片机论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
学习了
此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表