找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机驱动74hc595点亮一个led灯

[复制链接]
跳转到指定楼层
楼主
ID:261185 发表于 2017-12-13 18:47 来自触屏版 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一下lf(0!=(led8_one&0x80))   DATE_HC595=1  else DATE_HC595=0中if里面是什么意思啊led8_one与上0x80实在看不懂,为什么可以这样与的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:164602 发表于 2017-12-14 09:23 | 只看该作者
本帖最后由 HC6800-ES-V2.0 于 2017-12-14 10:50 编辑

同学,你没有看看595的芯片手册吧。
我来给你解释一下:
第一:595芯片功能是:串行数据(1位)输入转并行数据(8位)输出,即只有一位I/O口输入,而输出有8位I/O口,俗称“串转并”。
第二:595芯片每得到一位数据,它的移位寄存器都会向高位移动一位,即:要先传送高位数据
第三:根据以上知识,可以解释你的程序了!
①我可以肯定,led_one是一个unsigned char数据类型,它有8位
②DATE_HC595就是595芯片那“串”的那一位
③怎样判断led_one的最高1位是1或是0,从而赋值给DATE_HC595呢?
如:led_one=10111100,它与0x80=10000000,与运算就是“有零得零”,则结果是10000000,不是零,则赋DATE_HC595=1,正确啊,led_one高位是1啊。
led_one向左移位后,led_one=01111000,它再与0x80,则结果是00000000,是零,则赋值DATE_HC595=0,正确啊,led_one高位是零嘛。
程序循环8次,这个led_one的值就一位一位地进入到595,最后一次性输出。

同学,我猜你没有把0x80十六进制数与计算机二进制数联系起来吧!
其实还不止这一种算法的,我至少知道两种,但我很喜欢这一种,很明确、有把握感。

评分

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

查看全部评分

回复

使用道具 举报

板凳
ID:261185 发表于 2017-12-14 17:36 来自触屏版 | 只看该作者
HC6800-ES-V2.0 发表于 2017-12-14 09:23
同学,你没有看看595的芯片手册吧。
我来给你解释一下:
第一:595芯片功能是:串行数据(1位)输入转并行 ...

您真是大神啊!这么多人查看过我的贴,只有您才才有能力回复给我,也只有这种解释方式让我理解了这条语句,真的我在网上查看过很多了也发贴寻问过,了,在买吴鉴鹰开发板群里问过,没有像您这种解说的,自己确实看过74hc595的工作方式努力学过,没有转过这个弯,我得非常感谢您!以后在学51单片机路上还望您多多指教!!!
回复

使用道具 举报

地板
ID:472942 发表于 2019-1-25 19:43 来自触屏版 | 只看该作者
这里面的Led8_One是定值吗,还是随机的
回复

使用道具 举报

5#
ID:472942 发表于 2019-1-25 19:54 | 只看该作者
Led8_One是定值吗,还是就是一个变量不固定
回复

使用道具 举报

6#
ID:83127 发表于 2019-2-15 17:39 | 只看该作者
HC6800-ES-V2.0 分析的不错
回复

使用道具 举报

7#
ID:379175 发表于 2019-3-12 08:41 | 只看该作者
HC6800-ES-V2.0 发表于 2017-12-14 09:23
同学,你没有看看595的芯片手册吧。
我来给你解释一下:
第一:595芯片功能是:串行数据(1位)输入转并行 ...

讲的太好了,点赞
回复

使用道具 举报

8#
ID:517235 发表于 2019-7-7 09:29 | 只看该作者
HC6800-ES-V2.0 发表于 2017-12-14 09:23
同学,你没有看看595的芯片手册吧。
我来给你解释一下:
第一:595芯片功能是:串行数据(1位)输入转并行 ...

理解透澈,还能讲的简单易懂,同样受教,感谢
回复

使用道具 举报

9#
ID:379175 发表于 2020-2-25 02:13 | 只看该作者
HC6800-ES-V2.0 发表于 2017-12-14 09:23
同学,你没有看看595的芯片手册吧。
我来给你解释一下:
第一:595芯片功能是:串行数据(1位)输入转并行 ...

我有回来看一遍你的讲解,你咋讲的这么好呢摩拜
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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