#include#define uchar unsigned char#define uint unsigned int__CONFIG(0X3B31);const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchar a1,a2,a3,a4;void delay(uint x){ uint a,b; for(a=x;a>0;a--) for(b=110;b>0;b--);}void port_init(){ TRISD=0; TRISB=0; TRISC=0xff; PORTD=0; PORTB=0;}void IIC_init(){ SSPSTAT=0x80; SSPCON=0x38;//CKP高电平空闲,因为I2C必须加上拉电阻,所以设定高电平空闲 SSPCON2=0;//开始设为0,在读写的过程中相应改变其中的寄存器 SSPADD=0x09;//设置波特率,时钟=Fosc/[4*(SSPAD+1)}void write(uchar add,uchar wdate){ SSPIF=0; SEN=1; //启动信号 while(SSPIF==0); //1的时候是真 0的时候是假 !SSPIF为非真,为假退出语句 SSPIF=0; //软件清零 不会自动清零 SSPBUF=0XA0; //发送设备地址 while(SSPIF==0); //判断是否发送完毕 SSPIF=0; SSPBUF=add; //发送存储地址 add随自己设置 while(SSPIF==0); //监测数据是否发完 SSPIF=0; SSPBUF=wdate; //写入数据 while(SSPIF==0); //每发送一个数据都要检测是否成功 SSPIF=0; PEN=1; //发送停止信号 while(SSPIF==0);//如果收到停止信号同样会置位 SSPIF=0; delay(10);} uchar read(uchar add){ uchar rdate; SSPIF=0; SEN=1; while(SSPIF==0); SSPIF=0; SSPBUF=0xA0;//传输设备地址 while(SSPIF==0); SSPIF=0; SSPBUF=add;//add为读地数据地址,灵活设置 while(SSPIF==0); SSPIF=0; RSEN=1; while(SSPIF==0); SSPIF=0; SSPBUF=0xA1;//A仍然为外接设备地址,1表示输入,开始从外接设备读取数据 while(SSPIF==0); SSPIF=0; RCEN=1; while(SSPIF==0); rdate=SSPBUF; while(SSPIF==0); SSPIF=0; ACKDT=1;//写入应答信号 ACKEN=1;//发送应答信号 while(SSPIF==0); SSPIF=0; PEN=1; while(SSPIF==0); SSPIF=0; return(rdate);} void display(uchar num1,uchar num2,uchar num3,uchar num4){ PORTB=0XF7; PORTD=table[num1]; delay(2); PORTB=0XFB; PORTD=table[num2]; delay(2); PORTB=0XFD; PORTD=table[num3]; delay(2); PORTB=0XFE; PORTD=table[num4]; delay(2);}void main(){ port_init(); IIC_init(); delay(100); write(0,123);//8位为存储器,如果写入的值大于255就溢出了 uchar read(uchar add); while(1) { uchar lednum; lednum=read(0); a1=lednum/1000; a2=lednum00/100; a3=lednum0/10; a4=lednum; display(a1,a2,a3,a4); }}
导读:目前正在解读《PIC单片机IIC通信程序》的相关信息,《PIC单片机IIC通信程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《PIC单片机IIC通信程序》的详细说明。
简介:本文给大家分享了一个PIC单片机IIC通信程序。
提醒:《PIC单片机IIC通信程序》最后刷新时间 2024-03-14 00:57:46,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《PIC单片机IIC通信程序》该内容的真实性请自行鉴别。