找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4095|回复: 12
收起左侧

如何用单片机89C51控制74HC595使共阳数码管显示不同的数字,想用汇编实现,求思路

[复制链接]
ID:922838 发表于 2021-5-22 11:26 | 显示全部楼层 |阅读模式
本帖最后由 十点差三分 于 2021-5-22 12:11 编辑

如何用单片机89C51控制六个74HC595使六个数码管显示不同的数字,想用汇编实现,求思路主要是595芯片的时钟图没有,不知道这个时钟是怎么控制输入和输出的
还有联级,串行输到下一个595的时候,需要怎么设置时钟还有,串行输到下一个口的时候,他输的是上次的数据还是这次输入的数据



C09LE0`1K45D942}I$B9S)Q.png
回复

使用道具 举报

ID:922838 发表于 2021-5-22 11:47 | 显示全部楼层
有没有大佬帮帮孩子,
回复

使用道具 举报

ID:824490 发表于 2021-5-22 14:41 | 显示全部楼层
现在用汇编的都是大神。。为什么不用C的?,用C的话,坛子里的大神分分钟搞定
回复

使用道具 举报

ID:10193 发表于 2021-5-22 15:54 | 显示全部楼层
看看595芯片手册呀,你把这6片595想象成6节车厢,一排乘客有48个(6个8位数据,从低位到高位),从第一节车厢进去
回复

使用道具 举报

ID:824490 发表于 2021-5-22 16:13 | 显示全部楼层
gb302 发表于 2021-5-22 15:54
看看595芯片手册呀,你把这6片595想象成6节车厢,一排乘客有48个(6个8位数据,从低位到高位),从第一节车 ...

好形象!
回复

使用道具 举报

ID:922838 发表于 2021-5-22 17:32 | 显示全部楼层
gb302 发表于 2021-5-22 15:54
看看595芯片手册呀,你把这6片595想象成6节车厢,一排乘客有48个(6个8位数据,从低位到高位),从第一节车 ...

懂了,懂了。具体实现的思路有了,DS口输入数据,SH-CP加脉冲,一次性输入六个八位数据,然后显示,火车的例子太形象了,谢谢大佬,
回复

使用道具 举报

ID:401564 发表于 2021-5-22 19:44 | 显示全部楼层
我就是用汇编的
但我不会去用数字电路IC的
IO足够用,输出有电流,电路双简单,实在找不到要用595的理由
你要说是想学习一下这个IC的用法,其实压根不用学,学了不用,你就会忘记,数字电路IC那么多,你学得完吗?还不如去学习怎么看数据手册和时序图,等到工作中有需要用到的,数据手册一看就知道怎么用
回复

使用道具 举报

ID:922838 发表于 2021-5-22 20:17 | 显示全部楼层
Y_G_G 发表于 2021-5-22 19:44
我就是用汇编的
但我不会去用数字电路IC的
IO足够用,输出有电流,电路双简单,实在找不到要用595的理由

主要是想用这个实现显示与键盘的,然后IO口真的就不够用,595的时序图我找了半天没找到。
我刚刚写了一个,但还是有点问题
他输出的不是我想要的,本来是想让六个数码管同时输出0~9,但他就是乱码
可以帮我看看吗?
程序如下
        SHCP EQU P3.5
        STCP EQU P3.6
        SD   EQU P3.4
        ORG 00H
        LJMP   XS595
        ORG 30H
XS595:  MOV R0,#10H
LL:     MOV DPTR,#TAB595_0_9
        MOVC A,@A+DPTR
        INC DPTR
        MOV 30H,A
        MOV R2,#06H
LS:     MOV A,30H
        MOV R1,#08H  ;将A给SD,循环8次
HH:     
        RRC A        
        MOV P3.4,C
        NOP
        CLR P3.5
        SETB P3.5
        DJNZ R1,HH
        CLR P3.6      
        SETB P3.6
XS:     CLR P3.6      ;显示
        SETB P3.6
        DJNZ R2,HH
        LJMP DELAY500MS
        DJNZ R0,LL
        LJMP XS595
DELAY500MS:   ;误差 0us
    MOV R7,#17H
DL1:
    MOV R6,#98H
DL0:
    MOV R5,#46H
    DJNZ R5,$
    DJNZ R6,DL0
    DJNZ R7,DL1
    RET
   
TAB595_0_9:        ;0~9~灭                                ;将显示信息转化为地址信息
        DB 00000010B,10011110B,00100100B,00001100B,10011000B,01001000B,01000000B,00011110B,00000000B,00001000B,11111110B;
回复

使用道具 举报

ID:88256 发表于 2021-5-22 20:37 | 显示全部楼层
如果仅仅是为了显示和键盘节省IO口,完全可以用TM1650之类的芯片,除了驱动LED外,还具有键盘处理,亮度调节。附上TM1650的资料链接,还有这一个看看
回复

使用道具 举报

ID:922838 发表于 2021-5-22 20:45 | 显示全部楼层
hhdsdy 发表于 2021-5-22 20:37
如果仅仅是为了显示和键盘节省IO口,完全可以用TM1650之类的芯片,除了驱动LED外,还具有键盘处理,亮度调 ...

不是,还有老师想让我们熟练使用595芯片,
回复

使用道具 举报

ID:925631 发表于 2021-5-22 21:24 | 显示全部楼层
先将6个8位数送入第一片595,数据会依次移向下一片,因为是级联,要注意有的数据需要取反,最后锁存输出就行了
回复

使用道具 举报

ID:390416 发表于 2021-6-19 08:52 | 显示全部楼层
两片74HC595 驱动8位数码管 单片机源代码分享 http://www.51hei.com/bbs/dpj-201201-1.html
回复

使用道具 举报

ID:996773 发表于 2022-12-28 15:30 | 显示全部楼层
hhdsdy 发表于 2021-5-22 20:37
如果仅仅是为了显示和键盘节省IO口,完全可以用TM1650之类的芯片,除了驱动LED外,还具有键盘处理,亮度调 ...

TM1650使用和楼主595单个驱动一个数码管还是有本质区别的,TM1650其实是逐行扫描方式,有电流变化,有干扰,楼主这个完全是静态驱动,只要发送一次数据,锁定,显示就非常稳定无干扰,应用在苛刻场合,例如音响设备,收音机
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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