找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3534|回复: 1
收起左侧

IIC-24C04与蜂鸣器的单片机仿真图与程序

[复制链接]
ID:207959 发表于 2017-6-5 11:38 | 显示全部楼层 |阅读模式
蜂鸣器。。有用的

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载):
0.png 0.png

单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define NOP4() {_nop_();_nop_();_nop_();_nop_();}

  6. sbit SCL = P1^0;
  7. sbit SDA = P1^1;
  8. sbit SPK = P3^0;

  9. uchar code HI_LIST[] =
  10. {
  11.         0,226,229,232,233,236,238,240,241,242,245,246,247,248
  12. };
  13. uchar code LO_LIST[] =
  14. {
  15.         0,4,13,10,20,3,8,6,2,23,5,26,1,4,3
  16. };
  17. uchar code Song_24C04[] =
  18. {
  19.         1,2,3,1,1,2,3,1,3,4,5,3,4,5
  20. };
  21. uchar sidx;

  22. void DelayMS(uint x)
  23. {
  24.         uchar t;
  25.         while(x--)
  26.         {
  27.                  for(t=120;t>0;t--);
  28.         }
  29. }

  30. void Start()
  31. {
  32.         SDA=1;SCL=1;NOP4();SDA=0;NOP4();SCL=0;
  33. }

  34. void Stop()
  35. {
  36.         SDA=0;SCL=0;NOP4();SCL=1;NOP4();SDA=1;
  37. }

  38. void RACK()
  39. {
  40.         SDA=1;NOP4();SCL=1;NOP4();SCL=0;
  41. }

  42. void NO_ACK()
  43. {
  44.         SDA=1;SCL=1;NOP4();SCL=0;SDA=0;
  45. }

  46. void Write_A_Byte(uchar b)
  47. {
  48.         uchar i;
  49.         for(i=0;i<8;i++)
  50.         {
  51.                  b<<=1;SDA=CY;_nop_();SCL=1;NOP4();SCL=0;
  52.         }
  53.         RACK();
  54. }

  55. void Write_IIC(uchar addr,uchar dat)
  56. {
  57.         Start();
  58.         Write_A_Byte(0xa0);
  59.         Write_A_Byte(addr);
  60.         Write_A_Byte(dat);
  61.         Stop();
  62.         DelayMS(10);
  63. }

  64. uchar Read_A_Byte()
  65. {
  66.         uchar i,b;
  67.         for(i=0;i<8;i++)
  68.         {
  69.                  SCL=1;b<<=1;B|=SDA;SCL=0;
  70.         }
  71.         return b;
  72. }

  73. uchar Read_Current()
  74. {
  75.         uchar d;
  76.         Start();
  77.         Write_A_Byte(0xa1);
  78.         d=Read_A_Byte();
  79.         NO_ACK();
  80.         Stop();
  81.         return d;
  82. }

  83. uchar Random_Read(uchar addr)
  84. {
  85.         Start();
  86.         Write_A_Byte(0xa0);
  87.         Write_A_Byte(addr);
  88.         Stop();
  89.         return Read_Current();               
  90. }

  91. void T0_INT() interrupt 1
  92. {
  93.         SPK=!SPK;
  94.         TH0=HI_LIST[sidx];
  95.         TL0=LO_LIST[sidx];
  96. }

  97. void main()
  98. {
  99.         uchar i;
  100. ……………………

  101. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
05 IIC-24C04与蜂鸣器.zip (36.1 KB, 下载次数: 25)
回复

使用道具 举报

ID:566128 发表于 2019-8-9 20:32 | 显示全部楼层
程序出不了效果哎
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表