单片机系列简单应用一

单片机系列一--基于89C51单片机的软件与硬件设计

       此次我将对单片机一些简单的理解及应用写下是为了以后自己复习的时候有据可循,,同时简单回忆一下单片机的主要内容,与大家共同学习。由于作者本人水平有限,如有错误大家可以留言指教。

       就我目前的理解而言,对于功能单一且频率较低的MCU (Microcontroller Unit,微控制单元)如89C51及其家族产品我们应该着重去理解它的外围电路而非单片机本身,并非说单片机本身不重要,而是说单片机的内部电路较为复杂,而且此款MCU(8086指令集)设计与目前较为先进的ARM指令集(或MIPS指令集等)对应的MCU大相径庭,即使花费很多时间在理解89C51这款芯片也是得不偿失的。考虑到这些我将单片机系列分为了五个部分,分别是:

  1. 简单的外围电路接口--在此篇文章中我将介绍一些简单的串口、并口芯片的理解及应用。
  2. 单片机与外围电路之间的通信协议--在此篇文章中我将介绍目前主流的通信协议,如三根总线(或四根总线)的SPI协议、两根总线的IIC协议、以及1-Wire一根总线协议。
  3. 单片机内部资源之中断、定时器、计数器--在此篇文章中我将介绍单片机内部的定时器与计数器,其中定时器是使用晶振进行定时,达到一定时间之后定时器产生中断从而使MCU对相应事件进行处理,这种方法可以达到不占用MCU内部运算器的资源从而减轻MCU的工作量,让它去做一些更有意义的事。计数器与定时器有着异曲同工之妙,这我们将在此系列着重解释。
  4. 单片机的异步全双工通信(UART)--在此篇文章中我们将介绍单片机RXD以及TXD这两个接口的作用,同时介绍一下单片机下载程序的时候是如何运作的。
  5. 单片机的简单外围电路(硬件电路)--在此篇文章中我们将介绍如何构成一个最小系统板。

下面我将开始第一部分的介绍:

此次我们主要介绍简单的两种芯片分别是:74HC595(以下简称595)以及74HC573(以下简称573),这两种芯片虽然简单但也可以代表了目前外部设备与MCU之间的两种通信方式,即串口通信与并口通信(串口通信并非只有这一种,595与MCU的连接只能代表单工的串口通信)。

那么下面我来简述一下这两块芯片的具体功能及如何使用。

首先,595这款芯片是一款串口转八位并口(或者串口)的芯片,一定有人会问为什么还会有串口转串口的芯片?其实这款芯片的主要功能是用于串口转并口,其中串口转串口只是能够使芯片级联,即当MCU与两块以上的595连接的时候,我们可以让一片595作为主设备而其余595作为从设备,主设备的595向从设备的595发送数据,从而实现串口转串口的功能,其优点是无论外接几片595芯片,其与MCU的连接总是3根线。

从595芯片的数据手册中找到相应的逻辑图如图1所示:

图1 595芯片逻辑图

其中左边14(serial data input)引脚即为串行输入,11(shift clock)引脚为左移时钟信号,即每出现一个上升沿左移寄存器接收一个来自串行输入的数据,并从9(serial data output)引脚输出一个信号(该信号为14(serial data input)引脚的数据在11(shift clock)引脚经过8次上升沿以后的信号),10(reset)引脚为重置信号一般直接与+VCC连接即可。接下来就是12(latch clock)引脚为锁存时钟,该引脚的主要作用是当左移寄存器中的数据保存完毕后,即11(shift clock)引脚经过8*n次上升沿信号以后(其中n为所有主从595芯片的个数),输入一个上升沿即可以将该595芯片的QA-QH输出。13(output enable)引脚为输出使能端,将其直接与GND连接即可。值得注意的是13(output enable)引脚是否能够代替12(latch clock)引脚作为数据的控制输出信号呢?这是不行的,因为12(latch clock)引脚为上升沿有效,而13(output enable)引脚为电平有效,我们无法保证在13(output enable)引脚有效的期间左移寄存器与锁存器之间的数据不改变,即会发生空翻现象。

总结为一句话: 11(shift clock)引脚每经过一次上升沿从14(serial data input)引脚接收一位数据,接收完成之后12(latch clock)引脚经过一次上升沿QA-QH输出14(serial data input)引脚接收到的数据。

下面是595芯片的Keil程序,为了方便修改硬件端口我们将硬件端口定义在595芯片的头文件中,如图2~图4所示:

图2 74HC595芯片头文件

图3 74HC595芯片源文件

 

图4 74HC595芯片在主函数中的应用

如果看懂了74HC595芯片的原理及应用那么74HC573芯片就非常简单了。

之后,我们看一下573芯片的原理及应用。573芯片是一种8位并口转8位并口的芯片,这种芯片的作用是透明、三态、放大锁存器,其中透明功能无需多言,8位转8位对数据的时效性不会像595一样经过几个时钟周期才能输出,并口传输的优点就体现在其简单,但是需要与MCU连接较多的线,相应的如果线越多在PCB板子上就要占用更大的面积去走线,当出现高频电路时这样是不太值得的。那么这款芯片究竟还有什么用?其主要作用就是放大和三态,其中放大功能可以增强MCU的带负载能力,三态又可以很好的阻断MCU与负载之间的干扰。这便是这款芯片的优点了。573芯片的逻辑图,如图5所示:

图5 74HC573芯片逻辑图

其中D0-D7位并行输入,Q0-Q7位并行输出,1(output enable)引脚为输出使能端,直接与GND相连即可。11(latch enable)引脚为锁存器输出使能端,当D0-D7引脚的数据传输至总线上时11引脚通过一个上升沿信号即可将D0-D7引脚的数据传输至Q0-Q7。

下面是573芯片的Keil程序,为了方便修改硬件端口我们将硬件端口定义在573芯片的头文件中,如图6~图8所示:

图6 74HC573芯片头文件

图7 74HC573芯片源文件

图8 74HC573芯片在主函数中的调用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值