找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3475|回复: 3
收起左侧

单片机远近光灯源码和仿真电路图(带距离检测)

[复制链接]
ID:215823 发表于 2017-6-29 15:05 | 显示全部楼层 |阅读模式
远近光灯课设实验源码及电路图

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

0.png 0.png 0.png 0.png

单片机源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #include <absacc.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. sbit ADCS=P3^5;
  7. sbit ADDI=p3^7;
  8. sbit ADDO=p3^7;
  9. sbit ADCLK=p3^6;
  10. sbit control1=p3^0;
  11. sbit control2=p3^1;
  12. uchar ad_data;

  13. void delay(uint);
  14. uchar Adc0832(unsigned char channel);

  15. void main(void)
  16. {
  17.         ad_data=0;
  18.         ad_data=0;
  19.         control1=1;
  20.         while(1){
  21.                 ad_data=Adc0832(0);
  22.                 if(ad_data>=150){
  23.                                         control1=1;
  24.                                         control2=0;
  25.                                 }else
  26.                                 {
  27.                                         control1=0;
  28.                                         control2=1;

  29.                                 }
  30.                 }
  31. }

  32. void delay(uint k)
  33. {
  34.         uint i,j;
  35.         for(i=0;i<k;i++)
  36.            for(j=0;j<100;j++)
  37.         uchar Adc0832(unsigned char channel){
  38.                 uchar i=0;
  39.                 uchar j;
  40.                 uint dat=0;
  41.                 uchar ndat=0;
  42.                
  43.                 if(channel==0) channel=2;
  44.                 if(channel==1) channel=3;
  45.                 ADDI=1;
  46.                 _nop_();
  47.                 _nop_();
  48.                 ADCS=0;//1
  49.                 _nop_();
  50.                 _nop_();
  51.                 ADCLK=1;//2
  52.                 _nop_();
  53.                 _nop_();
  54.                 ADCLK=0;//3
  55.                 _nop_();
  56.                 _nop_();
  57.                 ADCLK=1;
  58.                 ADDI=channel&0x1;
  59.                 _nop_();
  60.                 _nop_();
  61.                 ADCLK=0;
  62.                 _nop_();
  63.                 _nop_();
  64.                 ADCLK=1;
  65.                 ADDI=(channel>>1)&0x1;
  66.                 _nop_();
  67.                 _nop_();
  68.                 ADCLK=1;
  69.                 ADDI=1;
  70.                 _nop_();
  71.                 _nop_();
  72.                 dat=0;
  73.                 for(i=0;i<8;i++)
  74.                 {
  75.                         dat |=ADDO;
  76.                         ADCLK=1;
  77.                         _nop_();
  78.                         _nop_();
  79.                         ADCLK=0;
  80.                         _nop_();
  81.                         _nop_();
  82.                         dat<<1;
  83.                         if(i==7)dat |=AADO;
  84.                 }
  85.                 for(i=0;i<8;i++)
  86.                 {
  87.                         j=0;
  88.                         j=j|ADDO;
  89.                         ADCLK=1;
  90.                         _nop_();
  91.                         _nop_();
  92.                         ADCLK=0;       
  93.                         _nop_();
  94.                         _nop_();
  95.                         j=j<<7;
  96.                         ndat=ndat|j;
  97.                         if(i<7)ndat>>=1;
  98.                 }
  99.                 ADCS=1;
  100. ……………………

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

所有资料51hei提供下载:
远近光灯.zip (41.4 KB, 下载次数: 57)
回复

使用道具 举报

ID:415378 发表于 2018-10-25 21:49 | 显示全部楼层
楼主啊,为什么我仿真不出来啊
回复

使用道具 举报

ID:651061 发表于 2019-11-30 09:59 | 显示全部楼层
重要事情说三遍 发表于 2018-10-25 21:49
楼主啊,为什么我仿真不出来啊

你好,红蓝灯是什么意思啊
回复

使用道具 举报

ID:116941 发表于 2022-1-8 11:03 | 显示全部楼层
坑挺多 IO口改了 继电器也不对
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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