第16课读一个24c02字节读出上一课写入的字节来验证.pdf

返回 相似 举报
第16课读一个24c02字节读出上一课写入的字节来验证.pdf_第1页
第1页 / 共4页
第16课读一个24c02字节读出上一课写入的字节来验证.pdf_第2页
第2页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述:
第第 16 课。写入一个字节到课。写入一个字节到 24c02 并读出来验证并读出来验证 本课的程序已经包含了上一颗的内容,增加了读 24c02 的函数,请看程序 define uchar unsigned char //定义一下方便使用 define uint unsigned int define ulong unsigned long include //包括一个 52 标准内核的头文件 char code dx516[3] _at_ 0 x003b;//这是为了仿真设置的 define WriteDeviceAddress 0 xa0 //定义器件在 IIC 总线中的地址 define ReadDviceAddress 0 xa1 sbit SCLP27; sbit SDAP26; sbit P10P10; //定时函数 void DelayMsunsigned int number { unsigned char temp; for;number0;number-- { fortemp112;temp0;temp-- ; } } //开始总线 void Start { SDA1; SCL1; SDA0; SCL0; } //结束总线 void Stop { SCL0; SDA0; SCL1; SDA1; } //发 ACK0 void NoAck { SDA1; SCL1; SCL0; } //测试 ACK bit TestAck { bit ErrorBit; SDA1; SCL1; ErrorBitSDA; SCL0; returnErrorBit; } //写入 8 个 bit 到 24c02 Write8Bitunsigned char { unsigned char temp; fortemp8;temp0;temp-- { SDAbit SCL1; SCL0; 1; } } //写入一个字节到 24c02 中 void Write24c02uchar ch,uchar address { Start; Write8BitWriteDeviceAddress; TestAck; Write8Bitaddress; TestAck; Write8Bitch; TestAck; Stop; DelayMs10; } //从 24c02 中读出 8 个 bit uchar Read8Bit { unsigned char temp,rbyte0; fortemp8;temp0;temp-- { SCL1; rbyterbyte1; rbyterbyte|unsigned charSDA; SCL0; } returnrbyte; } //从 24c02 中读出 1 个字节 uchar Read24c02uchar address { uchar ch; Start; Write8BitWriteDeviceAddress; TestAck; Write8Bitaddress; TestAck; Start; Write8BitReadDviceAddress; TestAck; chRead8Bit; NoAck; Stop; returnch; } //本课试验写入一个字节到 24c02 并读出来验证 void mainvoid // 主程序 { uchar c1,c2; c1Read24c020 x02; Write24c020 x99,0 x03; c2Read24c020 x03; P100; while1; //程序挂起 } 在主程序中,我们将上一课写入的 0 x02 位置的数据读出来放在 c1 中,新写了一个数 据 0 x99 在 0 x03 位置中,并立即将它读出来放在 c2 中。 编译,运行,等 P10 灯亮后。我们看结果。 这次的看结果,我们要在仿真环境中直接看变量。点程序停止,观察 c1 和 c2 的值, 可以看到,分别为0 x88 和 0 x99。数据正确 作业在 24c02 的其他位置和写入不同的字节,用本课的方法观察结果。
展开阅读全文

资源标签

最新标签

长按识别或保存二维码,关注学链未来公众号

copyright@ 2019-2020“矿业文库”网

矿业文库合伙人QQ群 30735420