单片机仿真之IIC-24C04与蜂鸣器实验.doc

单片机仿真之IIC-24C04与蜂鸣器实验.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对应程序: //作者:安徽建筑工业学院08自动化一班 paladin //QQ:905408963 #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int #define NOP4() {_nop_();_nop_();_nop_();_nop_();} sbit SCL = P1^0; sbit SDA = P1^1; sbit SPK = P3^0; uchar code HI_LIST[] = { 0,226,229,232,233,236,238,240,241,242,245,246,247,248 }; uchar code LO_LIST[] = { 0,4,13,10,20,3,8,6,2,23,5,26,1,4,3 }; uchar code Song_24C04[] = { 1,2,3,1,1,2,3,1,3,4,5,3,4,5 }; uchar sidx; void DelayMS(uint x) { uchar t; while(x--) { for(t=120;t0;t--); } } void Start() { SDA=1;SCL=1;NOP4();SDA=0;NOP4();SCL=0; } void Stop() { SDA=0;SCL=0;NOP4();SCL=1;NOP4();SDA=1; } void RACK() { SDA=1;NOP4();SCL=1;NOP4();SCL=0; } void NO_ACK() { SDA=1;SCL=1;NOP4();SCL=0;SDA=0; } void Write_A_Byte(uchar b) { uchar i; for(i=0;i8;i++) { b=1;SDA=CY;_nop_();SCL=1;NOP4();SCL=0; } RACK(); } void Write_IIC(uchar addr,uchar dat) { Start(); Write_A_Byte(0xa0); Write_A_Byte(addr); Write_A_Byte(dat); Stop(); DelayMS(10); } uchar Read_A_Byte() { uchar i,b; for(i=0;i8;i++) { SCL=1;b=1;B|=SDA;SCL=0; } return b; } uchar Read_Current() { uchar d; Start(); Write_A_Byte(0xa1); d=Read_A_Byte(); NO_ACK(); Stop(); return d; } uchar Random_Read(uchar addr) { Start(); Write_A_Byte(0xa0); Write_A_Byte(addr); Stop(); return Read_Current(); } void T0_INT() interrupt 1 { SPK=!SPK; TH0=HI_LIST[sidx]; TL0=LO_LIST[sidx]; } void main() { uchar i; IE=0x82; TMOD=0x00; for(i=0;i14;i++) { Write_IIC(i,Song_24C04[i]); } while(1) { for(i=0;i14;i++) { sidx=Random_Read(i); TR0=1; DelayMS(300); } } }

文档评论(0)

zzqky + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档