找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6038|回复: 14
收起左侧

基于51单片机的led自动台灯 仿真+源程序

  [复制链接]
ID:98792 发表于 2016-6-30 16:53 | 显示全部楼层 |阅读模式
基于51单片机的led自动台灯,有手动,自动,呼吸三种模式,可以通过按键控制
程序源代码是自己写的

资料

资料

proyues仿真

proyues仿真
0.png

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:98792 发表于 2016-6-30 16:54 | 显示全部楼层
这是源代码和电路图

灯.rar

113.23 KB, 下载次数: 105, 下载积分: 黑币 -5

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:98792 发表于 2016-6-30 16:57 | 显示全部楼层
用了一个adc0832,一个dac0832,还有一个ua741集成运放,运放输出端和地之间接led,注意:运放输出端电平比地低
回复

使用道具 举报

ID:1 发表于 2016-7-1 00:32 | 显示全部楼层
好东东啊,下面是楼主的程序,给大家省点黑币
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit cs=P2^0;
  6. sbit wr1=P2^1;
  7. sbit CS=P1^4;
  8. sbit CLK=P1^2;
  9. sbit DIO=P1^3;
  10. sbit s1=P2^2;
  11. sbit s2=P1^0;
  12. sbit led1=P3^0;
  13. sbit led2=P3^1;
  14. sbit led3=P3^2;
  15. void delays()
  16. {
  17.         _nop_();
  18.         _nop_();
  19.         _nop_();
  20.         _nop_();       
  21. }
  22. void delay(uint ms)
  23. {
  24.         uint m,n;
  25.         for(m=0;m<ms;m++)
  26.                 for(n=0;n<115;n++);
  27. }
  28. void shoudong()
  29. {
  30.         uchar m;
  31.         cs=0;
  32.         wr1=0;
  33.         _nop_();
  34.         cs=1;
  35.         wr1=1;
  36.         if(s1==0)
  37.         {
  38.                 delays();
  39.                 if(s1==0)
  40.                 {
  41.                         while(!s1);
  42.                         m++;
  43.                         if(m==7) m=0;
  44.                 }
  45.         }
  46.         switch (m)
  47.         {
  48.                 case 0:P0=35;break;
  49.                 case 1:P0=70;break;
  50.                 case 2:P0=105;break;
  51.                 case 3:P0=140;break;
  52.                 case 4:P0=175;break;
  53.                 case 5:P0=210;break;
  54.                 case 6:P0=255;break;
  55.                 default:;
  56.         }
  57.         cs=0;
  58.         wr1=0;
  59.         _nop_();
  60.         cs=1;
  61.         wr1=1;       
  62. }
  63. void huxi()
  64. {
  65.         uint j;
  66.         cs=0;
  67.         wr1=0;
  68.         _nop_();
  69.         cs=1;
  70.         wr1=1;
  71.         for(j=0;j<255;j++)
  72.         {
  73.                 P0=j;
  74.                 delay(1);
  75.         }
  76.         cs=0;
  77.         wr1=0;
  78.         _nop_();
  79.         cs=1;
  80.         wr1=1;       
  81. }
  82. unsigned char  A_D()
  83. {
  84.         unsigned char i,dat;
  85.         CS=1;  
  86.         CLK=0;  
  87.         CS=0;
  88.         DIO=1;
  89.         CLK=1;  
  90.         CLK=0;   
  91.         DIO=1;  
  92.         CLK=1;
  93.         CLK=0;  
  94.         DIO=0;   
  95.         CLK=1;
  96.         CLK=0;   
  97.         DIO=1;  
  98.         CLK=1;   
  99.         for(i=0;i<8;i++)
  100.         {
  101.                 CLK=1;        
  102.                 CLK=0;
  103.                 dat<<=1;   
  104.                 dat|=(unsigned char)DIO;        
  105.         }                                  
  106.         CS=1;         
  107.         return dat;          
  108. }         
  109. void zidong()
  110. {
  111.         uint AD_val,Int,Dec,c;
  112.         AD_val=A_D();
  113.         Int=(AD_val)/51;  
  114.         Dec=(AD_val%51)*100/51;
  115.         c=Int*100+Dec;
  116.         cs=0;
  117.         wr1=0;
  118.         _nop_();
  119.         cs=1;
  120.         wr1=1;
  121.         P0=c*0.51;
  122.         cs=0;
  123.         wr1=0;
  124.         _nop_();
  125.         cs=1;
  126.         wr1=1;          
  127. }       
  128. void main()
  129. {
  130.         uchar n;
  131.         while(1)
  132.         {
  133.                 if(s2==0)
  134.                 {
  135.                         delays();
  136.                         if(s2==0)
  137.                         {
  138.                                 n++;
  139.                                 while(!s2);
  140.                         }
  141.                         if(n==3) n=0;
  142.                 }
  143.                 if(n==0)
  144.                 {
  145.                         shoudong();
  146.                         led1=1;
  147.                         led2=0;
  148.                         led3=0;
  149.                 }
  150.                 if(n==1)
  151.                 {
  152.                         zidong();
  153.                         led2=1;
  154.                         led1=0;
  155.                         led3=0;
  156.                 }
  157.                 if(n==2)
  158.                 {
  159.                         huxi();
  160.                         led3=1;
  161.                         led2=0;
  162.                         led1=0;
  163.                 }
  164.         }
  165. }
复制代码
回复

使用道具 举报

ID:129239 发表于 2016-7-4 23:42 | 显示全部楼层
顶一个
回复

使用道具 举报

ID:129239 发表于 2016-7-4 23:45 | 显示全部楼层
顶一个
回复

使用道具 举报

ID:129296 发表于 2016-7-5 16:23 | 显示全部楼层
非常使用的分享
回复

使用道具 举报

ID:129546 发表于 2016-7-7 12:31 | 显示全部楼层
这种资料学习一下真好
回复

使用道具 举报

ID:150557 发表于 2016-11-27 16:11 来自手机 | 显示全部楼层
哇哦不错啊啊
回复

使用道具 举报

ID:149984 发表于 2016-11-28 15:18 | 显示全部楼层
看起来蛮不错的,多谢分享
回复

使用道具 举报

ID:99130 发表于 2017-1-23 15:51 | 显示全部楼层
我想知道负载LED能接多大的。以及741能用哪些代替
回复

使用道具 举报

ID:185946 发表于 2017-4-4 10:38 | 显示全部楼层
楼主  能不能具体讲一下它实现的功能
回复

使用道具 举报

ID:186472 发表于 2017-4-5 21:46 | 显示全部楼层
19960601 发表于 2016-6-30 16:54
这是源代码和电路图

henhao
回复

使用道具 举报

ID:541423 发表于 2019-5-20 12:35 | 显示全部楼层
器件库有么,
回复

使用道具 举报

ID:489394 发表于 2019-12-21 19:16 | 显示全部楼层
没用 错的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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