PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口。 总线基本操作:
I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。 控制字节:在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。
写操作:写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。
读操作:读操作有三种基本操作:当前地址读、随机读和顺序读。图4给出的是顺序读的时序图。应当注意的是:最后一个读操作的第9个时钟周期不是“不关心”。为了结束读操作,主机必须在第9个周期时发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。
3 程序流程图
图6:程序流程图
结论
通过对自己在大学两年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了本设计。这为自己今后进一步深化学习,积累了一定宝贵的经验。撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。培
养了我运用所学知识解决实际问题的能力。
本次论文设计,使我加深了对单片机的认识,并且熟悉了单片机系统的设计流程,收获丰硕。技术在不断进步,机械式时钟已经被淘汰,电子时代已经到来。做为新时代的我们,更应该提高自身能力,适应新时代的发展。知识来自实践,多从生活中探寻所需要的。
从这次的论文设计中,我真正的体会到,知识的重要性,特别是要理论联系实际,把我们所学的理论知识运用到实际生活当中,要用知识改变一切。
参考文献
[1] 陈权昌,李兴富.单片机原理及应用[M].广州:华南理工大学出版社,2007.84~102
[2] 李庆亮.C语言程序设计实用教程[M].北京:机械工业出版社,2005.32~58 [3] 杨志忠.数字电子技术[M].北京:高等教育出版社,2003.125~132
[4] 及力.Protel 99 SE原理图与PCB设计教程[M].北京:电子工业出版社,2007.89~150
[5] 徐江海.单片机实用教程[M].北京:机械工业出版社,2006.128~156 [6] 胡宴如.模拟电子技术[M].北京:高等教育出版社,2008.60~104
[7] 汪文,陈林.单片机原理及应用[M].湖北:华中科技大学出版社,2007.36~68 [8] 康华光.电子技术基础数字部分[M].北京:高等教育出版社,2008.203~209 [9] 杨欣.电子设计从零开始[M].北京:清华大学出版社,2005.28~102
致 谢
首先,感谢学校三年来对我的培养。为我们营造了一个良好的学习氛围,建设一流的教学设施,使我们身心愉快的投入到学习中。
其次,感谢尊敬的指导老师,有了他的谆谆教诲,处处提点,才使本论文的前期准备以及整个研究过程顺利完成。指导老师的严谨治学态度、扎实的理论基础、全身心投入工作的精神以及对学生尽心尽力的态度给了我极大的帮助与鼓励,使我受益匪浅。从指导老师的教学态度上,我学到的不仅仅只有书本上的知识,还有做人的道理。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。在此谨向指导老师致以诚挚的谢意和崇高的敬意。
最后,感谢我的父母多年来给予我的支持和关怀,同时感谢我的舍友和朋友对我的帮助。
VCCVCCR132.2KVCCC1+电源插口12SzR14D2ALAMVCC10uF1234103附录1 系统原理图
10KAT24C02COMRP110K10KR17U1AT89C51R18A0A1A2DGNPSWCLSDACGVCCVCC8765P1.0P1.1P1.2P1.3P1.41.05(RXD)P316PXDP33..12((TINT0))ALE/PROGPEA/VPPP13..73(INT1)RST(A15)P2.7(A14)P2.6P3.4(T0)(A13PE2.5P)SNP3.5(T1)(A12)P2.4P3.6(WR)(A11)P2.3P3.7(RD)(A10)P2.2AFBEdpD123456789R1R2R3R4R5R6R7R8XTAL2XTAL1GND(A9)P2.1(A8)P2.0(AD0)P0.0(AD1)P0.1(AD2)P0.2(AD3VCC)P0.3(AD4)P0.4(AD5)P0.5(AD6)P0.6(AD7)P0.713K2Y1C230SET12MHz24C330131234567891011121314151617181920R9R10R11R122.2K2.2K2.2K2.2K4039383736353433323130292827262524232221
GND123R1610KVCCK3DEC2413K4ADD24R15b2.2KVCCDQCVCU2DS18B20becQ19012bS1ecQ29012bS2EDdpCGS1ecLS1edpcgS4cQ39012S1123456S3eQ59012afS2S3bU34-LED12S41110AFS39S287BbSPEAK
附录2 C语言程序
#include
#define uc unsigned char //宏定义 sbit SET=P3^1; sbit DEC=P3^2; sbit ADD=P3^3; sbit BEEP=P3^6; sbit ALAM=P1^2; sbit ALAM1=P1^4; sbit DQ =P3^7; sbit SCL=P1^6; sbit SDA=P1^7;
sbit DIAN=P0^5;
//小数点
//闪烁间隔标志 //蜂鸣器间隔标志
//定义DS18B20总线I/O
//定义调整键 //定义减少键 //定义增加键 //定义蜂鸣器 //定义灯光报警
bit bdata shanshuo_st; bit bdata beep_st; uc x=0; ui bai,shi,ge; uc set_st=0;
//计数器
//状态标志
char shangxian,xiaxian; code
LEDData[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0xCF,0xDA,0x9B,0xDC,0x9B,0x8B};
//====================================DS18B20=========================================