找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 39777|回复: 78
打印 上一主题 下一主题
收起左侧

单片机太阳能自动追光系统程序+电路+仿真

  [复制链接]
跳转到指定楼层
楼主
用51单片机做的太阳能自动追光系统仿真图 电路图(proteus仿真文件可以从51黑本贴附件下载):

太阳能自动追光系统的全部文件:


全部资料(压缩包)下载: 太阳能自动追光系统.zip (48.51 KB, 下载次数: 1175)



下面是部分程序预览(完整版本请下载本帖附件):
  1. #include <reg52.h>                                                                                
  2. #include <intrins.h>                                                                        
  3. sbit            spb=P1^0;                                                                            //水平方向反转使能端
  4. sbit            czb=P1^1;                                                                        //垂直方向反转使能端
  5. sbit     spa=P1^2;                                                                                //水平方向正传使能端
  6. sbit     cza=P1^3;                                                                                //垂直方向正传使能端
  7. char    zhuan[8]={0xe6,0xc7,0xd3,0x9b,0xb9,0x3d,0x7c,0x6e};
  8. bit      ka,kb,ma,mb;                                                                        
  9. int      ia,ib;                                                                                       
  10. /*******************************************************
  11.                      电机转动延时子函数
  12. ********************************************************/
  13. void delay_dianji(unsigned int t)                                                        //电机转动延时函数
  14. {                           
  15.    unsigned int k;                                                                                
  16.    while(t--)                                                                                       
  17.    {
  18.      for(k=0; k<300; k++)                                                                //k从0自加一至300
  19.      { }
  20.    }
  21. }                                                                                                                                                
  22. /*******************************************************
  23.                      电机运转子函数
  24. ********************************************************/
  25. void  dianji()                                                                                        //电机运转子函数
  26. {                                                                                                                 
  27.     if(ma==1)                                                                                       
  28.         {                                                                                                
  29.             if(ka==0)                                                                                //若正传标志位有效
  30.             {                                                                                                                           
  31.                 ia++;                                                                                //水平数据位自加一
  32.                 if(ia>7)ia=0;                                                                //数据位大于7,变为0
  33.             }
  34.         if(ka==1)                                                                                //若反转标志位有效
  35.         {   
  36.                 ia--;                                                                                //水平数据位自减一
  37.                     if(ia<0)ia=7;                                                                   //数据位小于0,变为7
  38.         }
  39.         }
  40.         if(ma==0)ia=ia;                //若水平方向转动标志位失效,水平方向数据位维持不变
  41.         if(mb==1)                                                                                        //垂直转动标志位有效
  42.         {
  43.             if(kb==0)                                                                                 //若正转标志位有效
  44.             {   
  45.                     ib++;                                                                                //垂直数据位自加一
  46.                     if(ib>7)ib=0;                                                                //数据位大于7,变为0
  47.             }
  48.             if(kb==1)                                                                            //若反转标志有效
  49.             {                                                                                                                           
  50.                     ib--;                                                                            //垂直数据位自减一
  51.                     if(ib<0)ib=7;                                                            //数据位小于0,变为7
  52.             }
  53.         }
  54.         if(mb==0)ib=ib;                //若垂直方向转动标志位失效,垂直方向数据位维持不变
  55.         P0=zhuan[ia];                                                                            //P0发送水平转动码
  56.         P2=zhuan[ib];                                                                            //P2发送垂直转动码
  57.         delay_dianji(15);                                                                            //调用电机延时函数
  58.         ma=0;                                                                                            //水平转动标志位失效
  59.         mb=0;                                                                                            //垂直转动标志位失效
  60. }
  61. //*******************************************************
  62.                   
  63. //********************************************************
  64. void fangxiang()                                                                                    //识别方向子函数
  65. {
  66.     if(spa==1)                                                                                        //水平正传使能端有效
  67.         {
  68.             ma=1;                                                                                        //水平方向电机转动
  69.                 ka=0;                                                                                        //转动方向为正向
  70.         }
  71.         if(spb==1)                                                                               //水平反转使能端有效
  72.         {
  73.             ma=1;                                                                                        //水平方向电机转动
  74.                 ka=1;                                                                                        //转动方向为反向
  75.         }
  76.     if(cza==1)                                                                                        //垂直正传使能端有效
  77.         {                                                                                                                                       
  78.             mb=1;                                                                                        //垂直方向电机转动
  79.                 kb=0;                                                                                        //转动方向为正向
  80.         }                                                                                                                                       
  81.     if(czb==1)                                                                                        //垂直反转使能端有效
  82.         {                                                                                                                  
  83.             mb=1;                                                                                        //垂直方向电机转动
  84.                 kb=1;                                                                                        //转动方向为反向
  85.         }
  86. }
  87. /*******************************************************
  88.                         主程序
  89. ********************************************************/
  90. main()                                                                                                         
  91. {
  92.     while(1)                                                                                        //死循环
  93.         {
  94.             fangxiang();                                                                                //识别方向子函数
  95.             dianji();                                                                                 //电机运行子函数
  96.         }
  97. }
复制代码

评分

参与人数 9黑币 +92 收起 理由
wenkang + 5 共享资料的黑币奖励!
13622983180 + 7 绝世好帖!
yuan960221 + 5 赞一个!
zwjviki + 5 很给力!
GloomyHeart + 5 很给力!
一笑泯恩仇啊 + 5 绝世好帖!
ggg620 + 5
杰克稻草 + 5 很给力!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏43 分享淘帖 顶12 踩
回复

使用道具 举报

沙发
ID:118229 发表于 2016-5-3 20:51 | 只看该作者
感觉还行,看看,学习学习
回复

使用道具 举报

板凳
ID:147586 发表于 2016-11-12 23:46 | 只看该作者
51黑有你更精彩!!!
回复

使用道具 举报

地板
ID:105425 发表于 2016-11-18 07:58 | 只看该作者
感谢分享,good
回复

使用道具 举报

5#
ID:110780 发表于 2016-12-1 08:20 来自手机 | 只看该作者
没有原理图吗?
回复

使用道具 举报

6#
ID:82421 发表于 2016-12-12 18:09 | 只看该作者
15620604312 发表于 2016-5-3 20:51
**** 作者被禁止或删除 内容自动屏蔽 ****

你好!我看了你发的单片机的智能家居管理系统,请问方便告诉我一下这个系统的元件清单吗?
回复

使用道具 举报

7#
ID:155197 发表于 2016-12-16 10:29 | 只看该作者
感谢,先学习学习
回复

使用道具 举报

8#
ID:155317 发表于 2016-12-17 15:26 | 只看该作者
来学习了
回复

使用道具 举报

9#
ID:155466 发表于 2016-12-17 18:13 | 只看该作者
谢谢楼主。感谢你的提供的程序,先学习学习。
回复

使用道具 举报

10#
ID:73030 发表于 2016-12-19 09:18 来自手机 | 只看该作者
谢谢楼主分享,先学习一下。
回复

使用道具 举报

11#
ID:47652 发表于 2017-2-14 10:52 | 只看该作者
51黑有你更精彩!!!
回复

使用道具 举报

12#
ID:78465 发表于 2017-3-12 19:28 来自手机 | 只看该作者
不错值得学习…………
回复

使用道具 举报

13#
ID:86235 发表于 2017-4-5 08:58 | 只看该作者
为什么要用四个电机?做跟踪应该二轴就够了。
回复

使用道具 举报

14#
ID:189100 发表于 2017-4-13 10:41 | 只看该作者
谢谢老板!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

15#
ID:189100 发表于 2017-4-13 10:41 | 只看该作者
不错值得学习…………
回复

使用道具 举报

16#
ID:171111 发表于 2017-4-13 18:21 来自手机 | 只看该作者
谢谢楼主分享  很好很有用 正好要做个太阳跟踪电路 太棒了
回复

使用道具 举报

17#
ID:191654 发表于 2017-4-20 17:47 来自手机 | 只看该作者
楼主。有没有家用太阳能发电系统的仿真和电路图
回复

使用道具 举报

18#
ID:193550 发表于 2017-4-25 19:52 | 只看该作者
可不可以发一下资源
回复

使用道具 举报

19#
ID:193550 发表于 2017-4-25 19:52 | 只看该作者
谢谢你,好人平安
回复

使用道具 举报

20#
ID:200595 发表于 2017-5-14 14:24 | 只看该作者
非常不错
回复

使用道具 举报

21#
ID:201612 发表于 2017-5-18 08:55 | 只看该作者
借鉴学习一下。谢谢分享
回复

使用道具 举报

22#
ID:253107 发表于 2017-11-24 16:16 | 只看该作者
如果用舵机替换电机可以嘛
回复

使用道具 举报

23#
ID:257624 发表于 2017-12-5 12:10 | 只看该作者
让我看看什么内容
回复

使用道具 举报

24#
ID:256455 发表于 2017-12-6 17:18 | 只看该作者
东西很不错,符合大家的需求
回复

使用道具 举报

25#
ID:264146 发表于 2017-12-22 17:01 | 只看该作者
楼主!你好,是这样的,我打算自己动手做一个小型的太阳能自动追光的装置,太阳能板大概是手机大小,我想问一下,我利用四个光敏装在太阳能板的四个角,通过光敏的电阻变化,给单片机信号,让垂直轴的舵机和水平轴的舵机自动调整实现追光,你觉得可行吗??
回复

使用道具 举报

26#
ID:271802 发表于 2018-1-9 16:30 | 只看该作者
感谢分享,正好想DIY呢
回复

使用道具 举报

27#
ID:86577 发表于 2018-2-19 13:36 | 只看该作者
不错,拿来学习学习
回复

使用道具 举报

28#
ID:76133 发表于 2018-2-20 14:13 | 只看该作者

感觉还行,看看,学习学习
回复

使用道具 举报

29#
ID:301818 发表于 2018-4-4 10:24 | 只看该作者
仿真时,运行后有两个错误怎么改
回复

使用道具 举报

30#
ID:301818 发表于 2018-4-4 13:17 | 只看该作者
请问楼主,有没有单片机控制的自动跟随吗太阳能窗台灯仿真
回复

使用道具 举报

31#
ID:320204 发表于 2018-5-2 09:21 | 只看该作者
有点看到懂
回复

使用道具 举报

32#
ID:328187 发表于 2018-5-12 13:32 | 只看该作者
学习一下
回复

使用道具 举报

33#
ID:396194 发表于 2018-9-10 19:53 | 只看该作者
51黑有你更精彩!!!
回复

使用道具 举报

34#
ID:394719 发表于 2018-9-14 09:22 | 只看该作者
可以      没事可以做着玩
回复

使用道具 举报

35#
ID:397735 发表于 2018-9-14 15:08 来自手机 | 只看该作者
学习了 感谢
回复

使用道具 举报

36#
ID:403696 发表于 2018-10-3 15:38 | 只看该作者
感谢你的程序及仿真图。麻烦问一下,这个有实物图吗?
回复

使用道具 举报

37#
ID:424539 发表于 2018-11-11 16:03 | 只看该作者
感谢分享,good
回复

使用道具 举报

38#
ID:450456 发表于 2018-12-20 09:15 | 只看该作者
非常感谢楼主分享
回复

使用道具 举报

39#
ID:450456 发表于 2018-12-20 09:24 | 只看该作者
可惜没有报告书文献
回复

使用道具 举报

40#
ID:450490 发表于 2018-12-20 09:44 | 只看该作者
好帖啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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