hhdsdy 发表于 2021-5-22 20:37 TM1650使用和楼主595单个驱动一个数码管还是有本质区别的,TM1650其实是逐行扫描方式,有电流变化,有干扰,楼主这个完全是静态驱动,只要发送一次数据,锁定,显示就非常稳定无干扰,应用在苛刻场合,例如音响设备,收音机 |
| 两片74HC595 驱动8位数码管 单片机源代码分享 http://www.51hei.com/bbs/dpj-201201-1.html |
| 先将6个8位数送入第一片595,数据会依次移向下一片,因为是级联,要注意有的数据需要取反,最后锁存输出就行了 |
hhdsdy 发表于 2021-5-22 20:37 不是,还有老师想让我们熟练使用595芯片, |
| 如果仅仅是为了显示和键盘节省IO口,完全可以用TM1650之类的芯片,除了驱动LED外,还具有键盘处理,亮度调节。附上TM1650的资料链接,还有这一个看看 |
Y_G_G 发表于 2021-5-22 19:44 主要是想用这个实现显示与键盘的,然后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; |
|
我就是用汇编的 但我不会去用数字电路IC的 IO足够用,输出有电流,电路双简单,实在找不到要用595的理由 你要说是想学习一下这个IC的用法,其实压根不用学,学了不用,你就会忘记,数字电路IC那么多,你学得完吗?还不如去学习怎么看数据手册和时序图,等到工作中有需要用到的,数据手册一看就知道怎么用 |
gb302 发表于 2021-5-22 15:54 懂了,懂了。具体实现的思路有了,DS口输入数据,SH-CP加脉冲,一次性输入六个八位数据,然后显示,火车的例子太形象了,谢谢大佬, |
gb302 发表于 2021-5-22 15:54 好形象! |
| 看看595芯片手册呀,你把这6片595想象成6节车厢,一排乘客有48个(6个8位数据,从低位到高位),从第一节车厢进去 |
现在用汇编的都是大神。。为什么不用C的? ,用C的话,坛子里的大神分分钟搞定 |
| 有没有大佬帮帮孩子, |