74LS164在S3F9454单片机控制电路中的应用

网友投稿 303 2022-11-25

74LS164在S3F9454单片机控制电路中的应用

S3F9454

我们采用74LS164这个串入并出的移位寄存器,很好地解决了S3F9454与LED数码管的显示接口电路及按钮控制电路问题。

一、硬件实现

1.单片机完全双向的I/O引脚

2.74LS164工作原理

3.硬件电路

电路中包含8位待显示的LED数码管,8个LED指示灯及6个按钮,S3F9454在完成其他功能之余,余下的并行I/O口线不足8根,数据的并行输出已不可能,但可以考虑串行输出方法。该电路利用两片74LS164实现以上功能的需要,其中一片74LS164实现8位LED数码管的片选,另外一片74LS164实现8位LED数码管段位显示,利用单片机的完全双向I/O端口,实现几个按钮的功能。其工作过程如下:

(1)显示部分。S3F9454利用2个单独端口分别接74LS164的数据及时钟控制端口,在移位时钟的作用下,74LS164数据控制端口发送缓冲器的数据一位一位地移入74LS164中,在软件的控制下作为数码管位选信号;利用另外2个单独端口分别接74LS164的数据及时钟那个控制端口,作为数码管的段选信号,实现动态数据的显示。本文电路的独特之处在于利用单片机的完全双向I/O端口,改变以往串接锁存器或三态门的做法。

二、软件编程

当CPU用软件给定时器设置了工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非定时器计满溢出,才可能中断CPU当前操作。CPU也可以重新设置定时器工作方式,以改变定时器的操作。由此可见,定时器是单片机中效率高而且工作灵活的部件。

利用S3F9454单片机T0定时器中断功能实现数码管位选及按钮读键功能。时钟中断无需过于频繁,在周期定时模式下,当T0计数器的值与事先写入T0DATA中的数据相等时产生中断信号,同时清除T0定时器的计数值。写入T0DATA中的数据值便是所谓的“初值”。

其中:T是单片机中计数脉冲的基本周期,即单片机每隔T时间记一次数(计数器的值增加1),Fosc是单片机内部RC振荡频率,式(2)中,T0DATA表示S3F9454单片机定时中断初值,M表示指令系统预分频值,S表示需要定时的中断时间值。根据式(1)与式(2)可以计算出合适的中断定时初值。计算中断初值时用到了预分频器,计数采样将在分频器的输出端进行。此外脉冲的频率可以相对提高,理论上计数脉冲输入频率可以是指令执行的频率乘以预分频系数。

电路中设计了8位LED显示器,以其中三个LED显示一个带秒的时间显示子程序为例,功能为:左首位为分钟显示位,左二位为秒十位数显示位,左三位为秒个位数显示位。据此,给出如图3所示的显示子程序框图。图4是实现读取按键功能的程序设计流程图。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:大数据运维架构师培训(5):大数据管理平台(Cloudera CM/CDH/CDP)
下一篇:从零开始-搭建CDH大数据集群
相关文章

 发表评论

暂时没有评论,来抢沙发吧~