PIC单片机(Peripheral Interface Controller)是一种用来开发去操控外围设备的集成电路(IC)。现在PIC单片机运用范畴现已适当广泛,为了便利广阔工程师可以很好的学习 PIC单片机,本站网整理了PIC单片机的相关常识运用,现在先带您学习下PIC单片机在接口规划中的运用吧。
一、SPI串行EEPROM与PIC单片机的接口规划
目前市场上有许多种单片机用在嵌入式操控体系规划中,这些嵌入式操控体系中的很大一部分都要用到非易失性存储器。因为串行EEPROM 具有封装尺度小,存储容量灵敏,对I/O 引脚要求低,和低功耗低成本等特色,已成为非易失性存储器的首选。
二、接触传感器QST108与PIC单片机的接口规划
QST108是意法半导体公司针对人机界面的接触按键操控而推出的电容接触传感器。
其作业原理采用了美国昆腾公司的电荷转移电容专利技术(QProx),支撑8个独立按键,且可选择按键状况检测输出或I2C总线操控2种正常作业方 式;一起,经过软件指令可使其进入低功耗形式,当有按键按下时可被唤醒。QST108特有的相邻按键按捺算法使得一个按键在按下未松开时,其他按键处于无 效状况;自校准和主动漂移补偿功用使其无须人工校准,然后进一步降低了QST108的运用难度。引脚装备如图1所示,各引脚功用如表1所列。
三、PIC单片机与串行闪存的SPI接口规划
PIC单片机以功能安稳、种类众多等特色在工业操控、仪器仪表、家电、通讯等范畴得到广泛运用。尽管许多类型本身集成了存储器,但在许多情况下难以满 足体系对大容量存储的要求,需求外扩非易失性的存储器。与并行Flash存储器比较,串行Flash存储器占用MCU引脚少,体积小,易于扩展,接线简 单,作业牢靠,故而越来越多地运用在各类电子产品和工业测控体系中。本文首要评论PIC16F877A单片机与串行闪存M25P16之间的SPI通讯,在 要求大容量数据存储且MCU引脚资源有限的情况下具有实用价值。
1 SPI作业原理
SPI(Serial Peripheral Interface)是一种常用的串行通讯协议,用于MCU体系与外围设备的通讯,可用来衔接存储器、A/D转换器、D/A转换器、实时时钟、LCD驱动 器、传感器,乃至其他处理器。SPI首要运用4个信号:MOSI(主机输出/从机输人)、MISO(主机输入/从机输出)、SCK(串行时钟)和CS(片 选)。其间,SCK由主机发生,作为传输的同步时钟,操控一切数据传输。主机经过触发从设备的CS决议二者之间的SPI传输是否可以进行。主机和外设都包 含1个串行移位寄存器。主机经过向自己的SPI串行寄存器写入1个字节来建议1次传输,然后经过MOSI信号线将数据传给外设,一起外设将自己移位寄存器 中的内容经过MISO信号线回来给主机,如图1所示。这样,两个移位寄存器中的内容就交换了。也就是说,外设的写操作和读操作是同步完结的。在实践运用 中,假如只进行写操作,则主机只需疏忽收到的字节即可;假如主机要读外设的数据,有必要发送1个字节来引发从机的传输,发送的这个字节可所以恣意数据。
四、数字电位器X9241与PIC单片机的接口及程序规划电路图
X9241概述
X9241是XICOR公司出产的、把4个E2POT数字电位器集成在单片的CMOS集成电路上的一种数字电位器。它包括4个电阻阵列,每个阵列包括 63个电阻单元,在每个单元之间和2个端点之间都有被滑动单元拜访的抽头点。滑动单元在阵列中的方位由用户经过2线串行总线接口操控。每个电阻阵列与1个 滑动端计数寄存器(WCR)和4个8位数据寄存器联络在一起。这4个数据寄存器可由用户直接写入和读出。WCR的内容操控滑动端在电阻阵列中的方位,其功 能框图如图1所示。
X9241与PIC16CXX单片机的接口及程序清单
五、PIC单片机的IIC接口程序
InitI2CBusMaster
;************************************************************
TxmtStartBit
bsf Bus_Busy ; on a start condition bus is busy
bsf STATUS, RP0 ; Select page 1
bsf _SDA ; set SDA high
bsf _SCL ; cLOCk is high
call Delay40uSec ; This is necessary for setup time
bcf _SDA ; This gives a falling edge on SDA while clock is high
call Delay47uSec ; Necessary for START HOLD time
return
;************************************************************
TxmtStopBit
bsf STATUS, RP0 ; Select page 1
bcf _SCL ; clock is low
bcf _SDA ; set SDA low
bsf _SCL ; clock is pulLED up
call Delay40uSec ; Setup time for STOP condition
bsf _SDA ; rising edge on SDA while CLOCK is high
call Delay47uSec ; makes sure a START isn’t sent immediately after a STOP
bcf Bus_Busy ; The bus isn’t busy anymore
return
;************************************************************