老鼠爱大米的乐谱到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_ 0x003b;//这是为了仿真设置的
#define writedeviceaddress 0xa0 //定义器件在iic总线中的地址
#define readdviceaddress 0xa1
sbit scl=p2^7;
sbit sda=p2^6;
sbit p10=p1^0;
//定时函数
void delayms(uint number)
{
uchar temp;
for(;number!=0;number--)
{
for(temp=112;temp!=0;temp--) ;
}
}
//开始总线
void start()
{
sda=1;
scl=1;
sda=0;
scl=0;
}
//结束总线
void stop()
{
scl=0;
sda=0;
scl=1;
sda=1;
}
//测试ack
bit testack()
{
bit errorbit;
sda=1;
scl=1;
errorbit=sda;
scl=0;
return(errorbit);
}
//写入8个bit到24c02
write8bit(uchar input)
{
uchar temp;
for(temp=8;temp!=0;temp--)
{
sda=(bit)(input&0x80);
scl=1;
scl=0;
input=input<<1;
}
}
//写入一个字节到24c02中
void write24c02(uchar ch,uchar address)
{
start();
write8bit(writedeviceaddress);
testack();
write8bit(address);
testack();
write8bit(ch);
testack();
stop();
delayms(10);
}
//老鼠爱大米
uchar code dami[]={
321-|3.2_1-|3231|3_6.5-|3_5_665|65-3_2_|122_3_2|12--|
};
//本课试验写老鼠爱大米的乐谱到24c02中
void main(void) // 主程序
{
uchar i;
for(i=0;dami[i]!=0;i++)
{
write24c02(dami[i],i);// 逐个写入到24c02的中
}
write24c02(0x00,i); //写入最后一个0
p10=0; //指示运行完毕
while(1); //程序挂起
}
――――――――――――――――――――――――
通过一个for循环,我们就把乐谱全部写入到了24c02中。看到for循环的条件是dami[i]!=0,这是因为字符串的最后一个字符是0,可以作为结束的判断,这个方法在前面的音乐播放等例子中已经见到。
编译,运行,看到p10的led亮了,乐谱已经写入。
国内“山寨”ChatGPT涌现,年费999元!阿里、京东、快手在研究类ChatGPT技术!
iphone8什么时候上市?iphone8这次曝光是真的了!从iOS11来还原iphone8的真面目和黑科技
回顾2016年全球新能源汽车市场
新品发布丨极海半导体推出工业级标准型APM32S103系列MCU
气体流量计有哪些_气体流量计的种类
老鼠爱大米的乐谱到24c02中(源程序)
华为Nova 8:搭载麒麟985芯片
华为全面升级CloudFabric 3.0数据中心网络解决方案
利用智能PLC压铸模温机提高5G基站产品的生产效率
跨境电商独立站太烧钱?中小企业老板快收藏华为云这份省钱秘笈
首家3D打印消费企业云迹创意获上海联创A轮投资
高效、灵活的华为CDMA2000基站
新闻|华为联合39所高校及机构重磅发布《高品质以太全光校园网建设白皮书》和《高品质万兆无线校园网建
AIGC时代的多模态知识工程思考与展望
RA6T2的16位模数转换器操作 [7] 配置RA6T2 ADC模块 (4)
您了解轮廓仪在轴承行业的应用吗?
怎样规避PCB设计过程中所存在的风险
MOSFET的结构和重点参数介绍及应用前景如何?
三星与谷歌合作,共同研发无缝折叠Galaxy Fold
三星表示将为5G通信设备业务投资220亿美元