⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 24c16.txt

📁 51单片机相关驱动程序 51单片机最小系统测试程序
💻 TXT
字号:
-----------------------------------------------------------------
		本文件是记录在写24C16程序中出现的问题
-----------------------------------------------------------------

1.
	由于89c51没有I2C接口,所以24C16的程序是通过I/O口程序
	模拟来实现的.在编写时我为了省事,借用了一个别人的程序.
	我读了程序发现并没有什么明显的错误,但当我用它来进行仿真
	时发现程序不能很好的运行,产生了许多的问题.
	首先是,写程序没法正确的写入数据,总是在等待器件应答时
	出错.
	其次是,写程序改写后,只能写一个字符,第二个字符写入时
	就会和第一次一样,在等待应答时出错.
	
	我最后不得以,自己来编写这个程序,但我还是偷了一些懒,没有
	看着器件的说明文件,而是将一个汇编的读写程序改编成了C语言
	程序.这会我以为不会有错了,可实际是情况和前面没有什么两样.
	只是当只有读程序运行时,读出的数据是正常的,而当两个程序一块
	运行时却有不行了.我想了好久都没有想出什么来.我尝试了很多
	方法,最后我想到了,在读写程序之间加一个延时程序.开始我只加
	几个周期的延时,后来慢慢加到了10000个计数,结果写入的和读出
	的居然一样了.这说明了我原先的出错多半是由于在器件还不能
	工作时,向器件中写入或读出数据.
------------------------------------------------------------------------
*******	这次写程序使我了解到,在模拟串行总线时除了要时序正确,
	同时还得关注总线的操作时间间隔.






2.函数命名
	我在编写本程序之前就想过要对自己在编程时出现的编程风格做
	做一个明确的统一.所以我借着这个程序对程序的函数命名方式
	做了一些规定:
		1.所有可以归为一类的器件的调用函数都使用同一个
		  头,如"IIC_XXX()","LCD_XXX()"等 
		2.对于一个特定器件,我在头后加一个器件名,如"IIC_24C16_XXX()"
		3.最后再在后面加功能函数的名字,如"IIC_24C16_ReadOneChar()"

			 		2006.4.2
				  	张培华
























⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -