标题: C51单片机+ADC0832声光控制电路原理图+源码 [打印本页]

作者: kevena    时间: 2018-12-3 18:06
标题: C51单片机+ADC0832声光控制电路原理图+源码
使用Proteus 8 Professional/Keil uVision5。

单片机源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. //ADC0832引脚定义
  6. sbit CS = P1^4;
  7. sbit CLK = P1^5;
  8. sbit DIO = P1^6;
  9. sbit External_Opto  = P1^3;//外部光控制
  10. sbit Lamp = P2^0;//灯光控制
  11. sbit K1 = P3^7;//外部声音模拟控制
  12. //延时
  13. void DelayMS(uint x)
  14. {
  15.   uchar t;
  16.   while(x--) for(t = 0;t<120;t++);
  17.   }
  18. //获取A/D转换结果(0通道)
  19. uchar Get_AD_Result()
  20. {
  21. uchar i,dat1 = 0,dat2 = 0;
  22. //起始控制位
  23. CS = 0;
  24. CLK = 0;
  25. DIO = 1; _nop_(); _nop_();
  26. CLK = 1; _nop_(); _nop_();
  27. //第一个下降沿之前,设DI=1/0
  28. //选择单端/差分(SGL/DIF)模式中的单端输入模式
  29. CLK = 0; DIO = 1; _nop_(); _nop_();
  30. CLK = 1;  _nop_(); _nop_();
  31. //第二个下降沿之前,设DI=1/0,选择CH0/CH1
  32. CLK = 0; DIO = 0; _nop_(); _nop_();
  33. CLK = 1; DIO = 1; _nop_(); _nop_();
  34. //第三个下降沿之前,设DI=1
  35. CLK = 0; DIO = 1; _nop_(); _nop_();
  36. //第4~11,共八个下降沿读数据(MSB->LSB)
  37.   for(i = 0;i < 8; i++)
  38.   {
  39.   CLK = 1; _nop_(); _nop_();
  40.    CLK =0; _nop_(); _nop_();
  41.    dat1 = dat1 << 1 |DIO;
  42.    }
  43. //第11~18,共八个下降沿读数据(LSB->MSB)

  44.   for(i = 0;i < 8; i++)
  45.   {
  46.   
  47.    dat2 = dat2 | ( (uchar) (DIO) << i );
  48.    CLK = 1; _nop_(); _nop_();
  49.    CLK = 0; _nop_(); _nop_();
  50.    }
  51.    CS = 1;
  52. //如果MSB->LSB和LSB->MSB读取的结果相同,则返回读取的结果,否则返回0
  53.    return (dat1 == dat2) ? dat1 : 0;
  54.    }
  55. //主程序
  56.    void main()
  57.    {
  58.    Lamp = 0;
  59.    while(1)
  60.    {
  61. //出现声音但没有光照时照明设备点亮后延时关闭
  62.    if ( K1 == 0 && External_Opto!= 0)
  63.    {
  64.    while (K1 == 0);
  65.    Lamp = 1;
  66.    DelayMS(100);
  67. //延时时间由模数转换结果决定
  68.    DelayMS(30 * Get_AD_Result());
  69.     DelayMS(100);
  70.         Lamp = 0;
  71.         }
  72.    }
  73. }
复制代码

所有资料51hei提供下载:
照明控制.rar (14.29 KB, 下载次数: 55)



作者: admin    时间: 2018-12-3 18:10
补全仿真工程详细说明一下电路连接即可获得100+黑币
作者: 尼克尼克    时间: 2020-7-4 10:15
不给电路图算是个什么行为????????




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1