感觉心有不甘,呵呵,小小收拾一下。
咱们知道51单片机中具有IIC总线接口的毕竟是少量(其实我就不知道那款~~)假如是是不带IIC总线的单片机,并不用扩展IIC总线接口,仅仅需求经过软件模仿,这无疑会给IIC总线的运用供给更广泛的空间。一般大多数的单片机运用体系中只要一个CPU,这种单主体系假如选用IIC总线技能,则总线上只要单片机对IIC总线从器材的拜访,没有总线的竞赛问题。这是后只需求模仿主发送和主接纳时序。根据上述考虑,(这才是要点,呵呵),供给在这种运用情况下的时序模仿软件,使IIC总线的运用不受单片机有必要带有IIC总线接口的约束。
下面的9个比如能够作为一个软件包,这个软件放入单片机体系的程序程序存储器中,以便用来调用。
1、IIC总线典型信号时序及模仿子程序(其实上一篇现已介绍过了,不过我这儿有点弥补,趁便小小介绍一下吧)
IIC总线上数据传送时,有开端位,中止位,应对位,非应对位等信号。依照典型IIC总线传送速率的要求,如图:
关于IIC总线的典型信号,能够用指令操作来模仿其时序进程。
若89C51单片机的体系时钟为12MHz,信任的单周期指令为1us,则开端位(START)、中止位(STOP)、发送应对位(MACK)、发送非应对位(MNACK)的5个模仿子程序如下:
1)发动IIC总线子程序START(先是汇编,然后是c言语的)
;——————————————————–
;发开端信号子程序
START:
//———————————————————-
//开端信号函数
void IIC_start()
{
}
2)中止IIC总线程序STOP(先是汇编,后是c言语)
;——————————————————–
;发完毕信号子程序
STOP:
//—————————————————————
//完毕信号函数
void I%&&&&&%_stop()
{
}