单片机是通过超大规模集成电路技术,将CPU、RAM、ROM、输入输出和中断系统、定时器/计数器等功能,集成在硅片上的超小型的计算机。单片机的核心是处理数据,就是把数据从一个寄存器转移到另一个寄存器。本帖在基本的数字电路上来理解单片机对数据的操作,是非常基础的知识。
单片机通过系统时钟,完成地址的计算、数据的转移、移位等操作。其过程就是利用数字电路对二进制数据累加、移位、转移。
一、数据累加1
比如对于累加地址或者数据,在数字电路放的CD4040。CD4040是CD4040是12位二进制串行计数器,所有计数器位为主从触发器。IC的第10脚是计数时钟脉冲输入端,在11脚为低电平时,第10脚的输入脉冲的时钟脉冲下降沿进行计数。这个过程就像在C程序中对变量的加1处理。对变量清零,可以直接控制给11脚施加高电平,完成计数结果的清除,也就是所有Q输出端变为0.
二、数据移位
对于程序中的数据移位,可以参考74LS194,74LS194是四位双向移存器。
其中:
D0~D1为并行输入端;
Q0~Q3为并行输出端;
SR--右移串引输入端;
SL--左移串引输入端;
S1、S0-操作模式控制端;
CR为清零端;
CP-为时钟脉冲输入端。
1、CR=0时,清除输出端,所有Q均为0。CR=1时,根据S1、S2的设置,配合CP的时钟脉冲上升沿,执行并入并处、或者左右移的处理。
2、S0=1、S1=1时,为并行输入模式。在CP时钟脉冲上升沿,输入端D的数据传入寄存器,体现在输出端Q上。
3、S0=0,S1=1时,为左移处理。数据输入端为SR,在CP时钟脉冲上升沿,Q1->Q0,Q2->Q1,Q3->Q2,SR->Q3
4、S0=1,S1=0时,为右移处理。数据输入端为SL,在CP时钟脉冲上升沿,Q2->Q3,Q1->Q2,Q0->Q1,SL->Q0
三、数据的输入输出转移
对于转移目的地,是需要地址的,就是寄存器的地址。可以通过类似于74LS138之类的译码器实现选择目标。而寄存器在这里用74LS373来模拟。
四、数据方向的控制
参考74LS245
CE使能74LS245工作;AB/BA是控制数据输出方向。AB=“0”,信号由B向A传输;(接收),AB=“1”,信号由A向B传输;(发送)。当CE为高电平时,A、B均为高阻态。
这些基本操作是单片机乃至计算动作的基础。实际上,现在的单片机设计得非常复杂,功能也更为强大。