已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
24c02存储多个数据#include#include #define uint unsigned int#define uchar unsigned charsbit sda = P2 0; /IO口定义sbit scl = P2 1;/此为待写入24c02的数据。为了便于验证结果,数组的内容为周期重复的。char code music = 0x55, 0xaa, 0x0f, 0xf0, 0x55, 0xaa, 0x0f, 0xf0, 0x55, 0xaa, 0x0f, 0xf0,0x55, 0xaa, 0x0f, 0xf0, 0x55, 0xaa, 0x0f, 0xf0, 0x55, 0xaa, 0x0f, 0xf0,0x55, 0xaa, 0x0f, 0xf0, 0x55, 0xaa, 0x0f, 0xf0, 0x55, 0xaa, 0x0f, 0xf0,0x55, 0xaa, 0x0f, 0xf0, 0x55, 0xaa, 0x0f, 0xf0, 0x55, 0xaa, 0x0f, 0xf0,0x55, 0xaa, 0x0f, 0xf0, 0x55, 0xaa, 0x0f, 0xf0, 0x55, 0xaa, 0x0f, 0xf0; /由于最后还要讲这些数据读出送到P1口,故可发现P1口相连的led有规律地闪烁15个周期uchar data buffer100; /用于缓存从24c02中读取的数据。delay(unsigned int m)unsigned int n, p;for (n = m; n0; n-)for (p = 125; p0; p-);void nop()_nop_();_nop_();/24C02读写驱动程序/void delay1(unsigned int m)unsigned int n;for (n = 0; nm; n+);void init() /24c02初始化子程序scl = 1;nop();sda = 1;nop();void start() /启动I2C总线sda = 1;nop();scl = 1;nop();sda = 0;nop();scl = 0;nop();void stop() /停止I2C总线sda = 0;nop();scl = 1;nop();sda = 1;nop();void writebyte(unsigned char j) /写一个字节unsigned char i, temp;temp = j;for (i = 0; i8; i+)temp = temp 1;scl = 0;nop();sda = CY;/temp左移时,移出的值放入了CY中nop();scl = 1;/待sda线上的数据稳定后,将scl拉高nop();scl = 0;nop();sda = 1;nop();unsigned char readbyte() /读一个字节unsigned char i, j, k = 0;scl = 0; nop(); sda = 1;for (i = 0; i8; i+)nop(); scl = 1; nop();if (sda = 1)j = 1;elsej = 0;k = (k 1) | j;scl = 0;nop();return(k);void clock() /I2C总线时钟unsigned char i = 0;scl = 1;nop();while (sda = 1) & (i255)i+;scl = 0;nop();/从24c02的地址address中读取一个字节数据/unsigned char read24c02(unsigned char address)unsigned char i;start();writebyte(0xa0);clock();writebyte(address);clock();start();writebyte(0xa1);clock();i = readbyte();stop();delay1(100);return(i);/向24c02的address地址中写入一字节数据info/void write24c02(unsigned char address, unsigned char info)start();writebyte(0xa0);clock();writebyte(address);clock();writebyte(info);clock();stop();delay1(5000); /这个延时一定要足够长,否则会出错。因为24c02在从sda上取得数据后,还需要一定时间的烧录过程。void main()uchar add, i, j, m;init(); /初始化24C02P1 = 0X55;while (add != sizeof(music)write24c02(0x00 + add, musicadd);add+;if (add % 4 = 0)P1 = P1;P1 = 0X00;/到此为止,向24C02中写入数据的过程均已结束。下面的程序为附加的。/将已写入的数据再读出,送到P1口,通过观察led的亮
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 露营清凉活动方案
- 随州集体活动策划方案
- 超级粉丝活动方案
- 疫情期间包饺子活动方案
- 社区兴趣活动方案
- 社区医疗义务活动方案
- 2025-2030滑石矿在油墨行业中的应用创新与市场机遇
- 2025-2030游戏化学习产品用户体验迭代与家长付费意愿调查
- 2025-2030消费品零售行业数字化转型与市场增长潜力分析报告
- 2025-2030海洋经济科技园区资源开发与生态保护协同发展报告
- 华为公司信息安全管理
- 铁道概论 任务一 认知铁道车辆的种类及配属 5-1 认知铁道车辆种类及配属
- 创新方法教程题库题库(449道)
- 物质滥用及依赖完整版
- 文创产品设计专题讲课文档
- 短视频制作教学ppt课件(完整版)
- YY/T 0450.3-2016一次性使用无菌血管内导管辅件第3部分:球囊扩张导管用球囊充压装置
- LY/T 2710-2016木地板用紫外光固化涂料
- GB/T 25098-2010绝缘体带电清洗剂使用导则
- 基因治疗课件最新版
- 消化系统生理a课件
评论
0/150
提交评论