控制器是CPU的神经中枢,它包括定时控制逻辑电路、指令寄存器(register)、译码器、地址指针DPTR及程序计数器PC(Program counter)、堆栈指针SP(stack pointer)等。这里程序计数器PC是由16位(8+8)寄存器构成的计数器。要单片机执行一个程序,就必须把该程序按顺序预先装入存储器ROM的某个区域。单片机动作时应按顺序一条条取出指令来加以执行。因此,必须有一个电路能找出指令所在的单元地址,该电路就是程序计数器PC。当单片机开始执行程序时,给PC装入条指令所在地址,它每取出一条指令(如为多字节指令,则每取出一个指令字节),PC的内容就自动加1,以指向下一条指令的地址,使指令能顺序执行。只有当程序遇到转移指令、子程序调用指令,或遇到中断时(后面将介绍),PC才转到所需要的地方去。8051 CPU指定的地址,从ROM相应单元中取出指令字节放在指令寄存器中寄存,然后,指令寄存器中的指令代码被译码器译成各种形式的控制信号,这些信号与单片机时钟振荡器产生的时钟脉冲在定时与控制电路中相结合,形成按一定时间节拍变化的电平和时钟,即所谓控制信息,在CPU内部协调寄存器之间的数据传输、运算等操作。
基于单片机的芯片及其他电子元器件与控制外部电路的集成PCB板组合在一起的控制器叫单片机控制板,通常它是应用于一些简单的工业控制当中。应用C语言或者其他的控制语言来编写控制动作流程以达到工业控制的最终目的,相比而言较为经济实惠。
PLC(Programmable logic Controller)
目前国内还有一些做C语言编程的PLC的,也有叫单片机型PLC,它将内部资源的功能定义,整个程序运行的架构,单片机外围电路特性的匹配等等都已做成一个成套的系统了。
单片控制板同PLC的区别在于,PLC主要专注于逻辑关系,是一种继电器逻辑,一般电工比较容易理解上手。而单片机控制器对于学习使用者来说相对门槛要求就高了一些。不仅要熟悉了解单片机本身内部资源,将其内部资源按功能定义好,还需要了解其单片机外围电路的特性,这样才能编写出好的有质量的工业控制动作流程的程序出来。因此,在国内相对流传得比较少了。
而对于PLC的使用者来说就不需要那么高的门槛了,对于硬件、系统定义之类烦琐的处理已经有了现成的处理,要实现工业控制的动作流程只要专注于软件上的逻辑控制的编写。相对大大降低了使用门槛。目前国外对这种的控制器使用相对较国内多得多。随着电脑的普及,C语言编程人员越来越普及化,相信这种C语言编程的PLC会是一种流行的趋势的!