资源描述:
《单片机i2c总线实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、单片机实验报告实验名称:I2C总线实验姓名:高知明学号:110404320班级:通信3班时间:2014.6南京理工大学紫金学院电光系一、实验目的1、了解I2C总线的控制原理;2、学习运用T2C总线主控软件包;3、学习实时时钟、ZLG7290键盘LED控制的各种功能。二、实验原理I2C总线是一种双向二线制同步串行总线,由数据总线SDA和时钟SCL构成,数据线上信号完全与时钟同步。数据传送采用主从方式,即主器件(主控制器)寻址从器件(被控器),启动启动总线,产生时钟,传送数据及结束数据的传送。12C总线上的数据传送严格按照一定时序完成,同步吋钟允许通过总线
2、以不同的波特率进行通信,也是停止和重新启动串行发送握手信号。三、实验内容1、开始实验前应该做好准备工作2、了解本次实骑涉及的各功能模块电路结构,其中D5区既有键盘LED控制电路通过此次A/D转换实验,我学会了判断A/D转换启动、结束标志,对A/D转换有了更深入的理解与体会。也有I2C总线控制的实时时钟电路和PC总线控制的片外ROM电路,如阁所示:3、程序设计认真阅读参考程序,理解其基本功能实现的原理,通过修改关键语句,实现实吋时间的显示与更新。^include"reg52.h"^include〃VIiC_C51.H〃//包含VI2C软件包#define
3、PCF8563ttdcfincWRADDRffdefineRDADDRsbitKEY_INT=P3^include〃zlg7290.h"0xA20x00//定义写单元首地址0x022;sbitRST=Pr0;unsignedchardispbuf[8]={0,0,0,0,0,0,0,0};unsignedcharKEY;swich_datc=0;unsignedchardisplay_time(unsignedcharsd[0]=sd[0]&0x7f;//秒屏敝保留位sd[l]=sd[l]&0x7f;//分屏蔽保留位sd[2]=sd[2]&0x3f;/
4、/disp_buf[0]=(sd[0]%16);disp_buf[l]=(sd[0]/16);isp_buf[2]=31;dispbuf[3]=(sd[l]%16);disp_buf[4]=(sd[1]/16);disp_buf[5]=31;dispbuf[6]=(sd[2]%16);dispbuf[7]=(sd[2]/16);ZLG7290_SendBuf(disp_buf,8);return0;}unsignedchardisplaydate(unsignedchar氺sd){_sd[0]=sd[0]&0x3f;//日屏蔽保留位sd[2]=sd[2
5、]&0x1f;//月屏蔽保留位disp_buf[0]=(sd[0]%16);dispbuf[1]=(sd[0]/16);disp_buf[2]=(sd[2]%16)+0x80;//后面加小数点disp_buf[3]=(sd[2]/16);disp_buf[4]=(sd[3]%16)+0x8;disp_buf[5]=(sd[3]/16);disp_buf[6]=0;disp_buf[7]=2;ZLG7290_SendBuf(disp_buf,8);return0;}""unsignedcharDelayNS(unsignedcharno){unsigne
6、dchari,j;//延时参数for(;no〉0;no—)for(i=0;i<100;i++)for(j=0;j〈100;j++);return0;}voidmain(){unsignedcharcodetd[9]={0x00,0x12,0x00,0x28,0x09,0x27,0x04,0x12,0x12};//定义初始化字unsignedcharrd[7];//定义接收缓冲区RST:0;DelayNS(1);RST=1;ISendStr(PCF8563,WRADDR,td,0x5);//初始化PCF8563,如果需要的话可以不去掉DelayNS(1)
7、;ISendStr(PCF8563,WRADDR+5,&td[5],0x4);//初始化PCF8563,如果需要的话可以不去掉while(1){DelayNS(1);IRcvStr(PCF8563,RDADDR,rd,0x7);//读现在的时、分、秒DelayNS⑴;if(swichdate)display_date(rd+3);//调显示tl期子程序elsedisp1ay_time(rd);//调显示时间子程序if(KEY_INT==O){KEY=ZLG7290_GetKey();if(KEY==l)swichdate=^swichdate;}小结与
8、体会本次实验,我了解了T2C总线的控制原理,也学会了运用I2C主控器软件包。