找回密码
 立即注册

QQ登录

只需一步,快速开始

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

74HC164要怎么写单片机程序控制它

  [复制链接]
跳转到指定楼层
楼主
我想用74HC164去控制这三个全彩LED灯 没用过这个芯片。 不知道咋写。有大佬有这个资料或者这个芯片驱动LED的程序吗?  我网上找了驱动程序 但是好像没效果。然后我需要用手或者金属的东西触碰74HC164的第8脚  灯才会亮。但是一直就是只亮其中的两个灯,所以我才感觉芯片没有收到信号  。   希望前辈们帮忙解答疑问   程序里面74HC164函数 void des(uchar dd)   放在主函数里面 不加void 编译不了。  下面附上程序帮我看看

电路图片:



程序:
  1. #include <reg52.h>

  2. #define uint unsigned int  
  3. #define uchar unsigned int   

  4. sbit DATA=P1^0;
  5. sbit CLK=P1^1;
  6. sbit D1=P1^2;//蓝
  7. sbit D2=P1^3;//绿
  8. sbit D3=P1^4;//红
  9. void delay(uint z)
  10. {
  11.    uint x,y;
  12.     for(x=z;x>0;x++)
  13.        for(y=110;y>0;y++);
  14. }
  15. //74HC164函数

  16. void des(uchar dd)
  17. {
  18.     uchar i;
  19.     CLK=0;
  20.     for(i=0;i<8;i++)
  21.     {
  22.       CLK=0;
  23.       
  24.       DATA=dd&0x00;
  25.       CLK=1;
  26.       dd=dd<<1;
  27.     }
  28.     DATA=0;
  29. }

  30. void main()
  31. {

  32.      
  33.    while(1)
  34.    {
  35.     void des(uchar dd);  //不加void 编译不了
  36.     D2=0;
  37.    }
  38. }
复制代码


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

使用道具 举报

沙发
ID:135640 发表于 2018-8-24 21:00 | 只看该作者
1.......#define uchar unsigned int  把int改成char
2.........
  while(1)
     {
      void des(uchar dd);  /(uchar dd)   是要带有无参数呀
      D2=0;
     }

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:135640 发表于 2018-8-24 21:03 | 只看该作者
1.#define uchar unsigned int 把int改成char    2.void des(uchar dd);  //不加void 编译不了     是要有参数语句

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:111634 发表于 2018-8-24 22:23 | 只看该作者
本帖最后由 zl2168 于 2018-8-25 08:04 编辑

给你介绍几个参考案例
实例42  74HC164串入并出控制8/16循环灯
实例42 74HC164串行输出控制8-16循环灯.rar (53.19 KB, 下载次数: 168)
Proteus仿真一下,确认有效。
以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版书中电路和程序设计有详细说明,程序语句条条有注解。

评分

参与人数 1黑币 +12 收起 理由
jkangk123 + 12 很给力!

查看全部评分

回复

使用道具 举报

5#
ID:65956 发表于 2018-8-24 22:26 | 只看该作者
num=tab_5led[CHXXX];//第几路
        for(c=0;c<8;c++)//依次传送8位
        {
                CLK=0;
                DAT=num&0x01;
                CLK=1;
                num>>=1;
        }

这是我自己在用的ADC采集5位164级联显示的开头第1个显示代码,你试试,看能否帮到你

评分

参与人数 1黑币 +30 收起 理由
admin + 30 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

6#
ID:338171 发表于 2018-8-25 09:31 | 只看该作者
zl2168 发表于 2018-8-24 22:23
给你介绍几个参考案例
实例42  74HC164串入并出控制8/16循环灯
先Proteus仿真一下,确认有效。

非常感谢
回复

使用道具 举报

7#
ID:338171 发表于 2018-8-25 09:36 | 只看该作者
zl2168 发表于 2018-8-24 22:23
给你介绍几个参考案例
实例42  74HC164串入并出控制8/16循环灯
先Proteus仿真一下,确认有效。

前辈可以发下程序参考吗?
回复

使用道具 举报

8#
ID:386381 发表于 2018-8-25 11:54 来自手机 | 只看该作者
查74HC164的资料,或者参考别人的例程
回复

使用道具 举报

9#
ID:111634 发表于 2018-8-25 17:28 | 只看该作者
jkangk123 发表于 2018-8-25 09:36
前辈可以发下程序参考吗?

仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
回复

使用道具 举报

10#
ID:391591 发表于 2019-2-1 00:34 | 只看该作者
小兄弟, 你的程序错的地方也太多了
回复

使用道具 举报

11#
ID:454000 发表于 2019-2-1 09:34 | 只看该作者
很有创意的制作,加油!

评分

参与人数 7黑币 +225 收起 理由
zhengchong60 + 15
Sawardeakar + 35
Trump1438 + 35
#include51.h + 35
刀刀见红 + 35
areyouok + 35
jinsheng7533967 + 35

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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