74hc164是串行输入,并行输出接口器件,可用在单向的并行输出/并行地址锁存等。 74hc164因为价格便宜,容易使用特别适合使用在在需要用到数码管显示io口又比较紧张的电子产品中.
使用方法:
在实际应用中驱动数码管常用的方式分动态扫描和静态驱动。动态扫描方式需要x+y个io(x*y个数码管的情况,一般x=8,y=位数)这种方法很浪费mpu的io端口对于2051等20脚的芯片就很难实现。静态显示驱动法,即是指每一个led灯分别对应一个独立的io驱动口,这种方法适用较少led的驱动,不适合数码管驱动。
通过查看164的规格书发现,164输出高电平电流比输出低电平电流要小,亦称灌电流大,扇出电流弱,所以适合选用共阳数码管
用义隆的em78p153作为控制芯片,p50作为clk时钟信号,注意平时数据不传输时,时钟信号是不发送的应一直保持低电平或者高电平,数据需要传输的时候才输出时钟信号^_^ ,继续p51作为移位数据输出端,接到74hc164的b端,a端接高电平,当然也可以ab端短路,然后连接到data移位数据端,p52作为数码管的选通信号(也可以叫消隐^_^), 作用是使数据传输过程暂时关闭显示,以免显示出不需要的数据,原因是应为164不带锁存功能,数据传输过程是一位一位的向高位移位输出的,所以要等数据全部移入后才打开始点亮数码管。
任务是: 显示0-9 每秒+1 ,到9后又返回0,一直循环显示。
流程图:
1. 显示部分:
将需要显示的数值送入a ==》查表求得显示段码==》将段码逐位移入164==》8位移完后点亮数码管==》延时==》返回第一步执行
2. 中断部分:
进入中断==》保存现场==》重置tcc==》够1秒钟将需要显示的数据+1,并重置,不够就退出;
根据以上要求就开始写代码调试了,要注意一点,数据移位时一定要记得高位在前,否则会显示错误。
源程序:
中断部分:
;;;;;;;;;;中断;;;;;;;;
intput:
mov tempa, a;
var cpro_id = “u2845472”;
mov a,@130;
mov tcc,a;
255-130=125
clr rf;
;;;;;此处填写250us处理程序bs wkreg,t500us;;;;;;;;;;;;;;;;;;;;;;;;;
djz r1ms
jmp intext;
mov a,@4
mov r1ms,a;重置
bs wkreg,t1ms
;;;;;;;此处填写1ms处理程序;;;;;;;;;;;;;;;;;;;;;;;;;;
djz r20ms
jmp intext;
mov a,@20
mov r20ms,a;重置
;;;此处填写1秒处理程序bs wkreg,t20ms;;;;;;;;;;;;;;
djz r1s
jmp intext;
mov a,@50
mov r1s,a;
;;;;;;;;;
inc number
mov a,number
sub a,@10
jbs sr,2
jmp intext
mov a,@0
mov number,a
intext:
mov a,tempa;
reti;;;;;;;;;;;;;;;;;;;;;
显示部分:
(window.cproarray = window.cproarray || []).push({ id: “u3054371” });
MiniLED为何比oled更护眼,其原因是什么
华硕TUF游戏本配置曝光,搭载顶级锐龙4900H
无线设计中LNA和PA的基本原理
Acrel-3200远程预付费电度表的详细说明
金属膜电阻功率选择标准,金属膜电阻功率怎么计算
74hc164驱动数码管及相应源程序
运放漂移和调零,运放漂移和调零是什么意思
OnePlus 9智能手机将比预期的发布时间提前四周发布
录音机兼用于对讲通话电路图
冷链保温箱在冷链中扮演了什么角色?
给数据分析与开发加星标,提升数据技能
中国2018年进行5G研发和测试
区块链如何给社会发展带来实质性变化?
波纹膨胀储油柜与隔膜式储油柜的区别
ARM收购美国的数据分析公司Treasure Data 收购金额为6亿美元
怎么预防工业设计所面临的风险?
fireflyAIO-3288C主板FAQ烧写工具简介
是德科技推出新款可即时扩展的零信任测试解决方案
正弦波逆变器的判定方法_如何将正弦波变成方波
摩托罗拉拟拆分网络设备业务