微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(TImer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
MCU同温度传感器之间通过I2C总线连接。I2C总线占用2条MCU输入输出口线,二者之间的通信完全依靠软件完成。温度传感器的地址可以通过2根地址引脚设定,这使得一根I2C总线上可以同时连接8个这样的传感器。MCU需要访问传感器时,先要发出一个8位的寄存器指针?然后再发出传感器的地址,(7位地址,低位是WR信号)。传感器中有3个寄存器可供MCU使用,8位寄存器指针就是用来确定MCU究竟要使用哪个寄存器的。主程序会不断更新传感器的配置寄存器,这会使传感器工作于单步模式,每更新就会测量温度。
要读取传感器测量值寄存器的内容,MCU必须首先发送传感器地址和寄存器指针。MCU发出一个启动信号,接着发出传感器地址,然后将RD/WR管脚设为高电平,就可以读取测量值寄存器。
为了读出传感器测量值寄存器中的16位数据,MCU必须与传感器进行两次8位数据通信。当传感器上电工作时,默认的测量为9位,分辨力为0.5 C/LSB(量程为-128.5 C至128.5 C)。本方案采用默认测量,根据需要,可以重新设置传感器,将测量提高到12位。如果只要求作一般的温度指示,比如自动调温器,那么分辨力达到1 C就可以满足要求了。这种情况下,传感器的低8位数据可以忽略,只用高8位数据就可以达到分辨力1 C的设计要求。由于读取寄存器时是按先高8位后低8位的顺序,所以低8位数据既可以读,也可以不读。只读取高8位数据的好处有二,是可以缩短MCU和传感器的工作时间,降低功耗;第二是不影响分辨力指标。
MCU读取传感器的测量值后,接下来就要进行换算并将结果显示在LCD上。整个处理过程包括:判断显示结果的正负号,进行二进制码到BCD码的转换,将数据传到LCD的相关寄存器中。
数据处理完毕并显示结果之后,MCU会向传感器发出一个单步指令。单步指令会让传感器启动温度测试,然后自动进入等待模式,直到模数转换完毕。MCU发出单步指令后,就进入LPM3模式,这时MCU系统时钟继续工作,产生定时中断唤醒CPU。定时的长短可以通过编程调整,以便适应具体应用的需要。
1、中央处理器CPU,包括运算器、控制器和寄存器组。是MCU内部的部件,由运算部件和控制部件两大部分组成。前者能完成数据的算术逻辑运算、位变量处理和数据传送操作,后者是按一定时序协调工作,是分析和执行指令的部件。
2、存储器,包括ROM和RAM。ROM程序存储器,MCU的工作是按事先编制好的程序一条条循序执行的,ROM程序存储器即用来存放已编的程序(系统程序由制造厂家编制和写入)。存储数据掉电后不消失。ROM又分为片内存储器和片外(扩展)存储器两种。
RAM数据存储器,在程序运行过程中可以随时写入数据,又可以随时读出数据。存储数据在掉电后不能保持。
RAM也分为片内数据存储器和片外(扩展)存储器两种。
3、输入、输出I/O接口,与外部输入、输出(电路)设备相连接。PO/P1/P2/P3等数字I/O接口,内部电路含端口锁存器、输出驱动器和输入缓冲器等电路。其中PO为三态双向接口,P1/P2/P3数字I/O端口,内部驱动器为“开路集电极”输出电路,应用时内部或外部电路接有上拉电阻。每个端口均可作为数字信号输入或输出口,并具有复用功能(指端口功能有功能、第二功能甚至数个功能,在应用中可灵活设置)。
MCU器件,除数字I/O端口外,还有ADC模拟量输入、输出端口,输入信号经内部A/D转换电路,变换为数字(频率)信号,再进行处理;对输出模拟量信号,则先经D/A转换后,再输出至外部电路。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。