第29课本课试验写老鼠爱大米的乐谱到24c02中.pdf

返回 相似 举报
第29课本课试验写老鼠爱大米的乐谱到24c02中.pdf_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述:
第第 29 课,本课试验写老鼠爱大米的乐谱到课,本课试验写老鼠爱大米的乐谱到 24c02 中中 这一课实际上纯粹是 24c02 的操作,是为了下一课的设计的。 从前我们只学习过写入一个字节到 24c02 中。在这一课中,我们将一首乐谱全部写入 到 24c02 中。在下一课时,我们将会读出 24c02 中的乐谱播放。 这种工作方式,可以比作一个简单的 mp3,将乐曲写在可以重复写入的存储器中,播 放时,读出来再播放。这样,只要换一个存有新的音乐的存储器,或者从外部将新的乐曲写 入到存储器中,就可以播放新的乐曲,而单片机的程序并没有改变。 define uchar unsigned char //定义一下方便使用 define uint unsigned int define ulong unsigned long include //包括一个 52 标准内核的头文件 //本课试验写入一个字节到 24c02 中 char code dx516[3] _at_ 0 x003b;//这是为了仿真设置的 define WriteDeviceAddress 0 xa0 //定义器件在 IIC 总线中的地址 define ReadDviceAddress 0 xa1 sbit SCLP27; sbit SDAP26; sbit P10P10; //定时函数 void DelayMsuint number { uchar temp; for;number0;number-- { fortemp112;temp0;temp-- ; } } //开始总线 void Start { SDA1; SCL1; SDA0; SCL0; } //结束总线 void Stop { SCL0; SDA0; SCL1; SDA1; } //测试 ACK bit TestAck { bit ErrorBit; SDA1; SCL1; ErrorBitSDA; SCL0; returnErrorBit; } //写入 8 个 bit 到 24c02 Write8Bituchar { uchar temp; fortemp8;temp0;temp-- { SDAbit SCL1; SCL0; 1; } } //写入一个字节到 24c02 中 void Write24c02uchar ch,uchar address { Start; Write8BitWriteDeviceAddress; TestAck; Write8Bitaddress; TestAck; Write8Bitch; TestAck; Stop; DelayMs10; } //老鼠爱大米 uchar code dami[]{ “321-|3.2_1-|3231|3_6.5-|3_5_665|65-3_2_|122_3_2|12--|“ }; //本课试验写老鼠爱大米的乐谱到 24c02 中 void mainvoid // 主程序 { uchar i; fori0;dami[i]0;i { Write24c02dami[i],i;// 逐个写入到 24c02 的中 } Write24c020 x00,i; //写入最后一个 0 P100; //指示运行完毕 while1; //程序挂起 } 通过一个 for 循环,我们就把乐谱全部写入到了 24c02 中。看到 for 循环的条件是 dami[i]0,这是因为字符串的最后一个字符是 0,可以作为结束的判断,这个方法在前面 的音乐播放等例子中已经见到。 编译,运行,看到 P10 的 LED 亮了,乐谱已经写入。 本课结束。 作业无
展开阅读全文

资源标签

最新标签

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

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

矿业文库合伙人QQ群 30735420