找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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


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



下面是部分程序预览(完整版本请下载本帖附件):
  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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏44 分享淘帖 顶12 踩
回复

使用道具 举报

78#
ID:706290 发表于 2022-9-21 14:32 | 只看该作者
有用,先下载保存起
回复

使用道具 举报

77#
ID:1010734 发表于 2022-4-1 15:57 | 只看该作者

51黑有你更精彩!!!
回复

使用道具 举报

76#
ID:1003888 发表于 2022-2-10 21:56 | 只看该作者
666太感谢了,但是为什么keil编译的时候会失败啊?
回复

使用道具 举报

75#
ID:577857 发表于 2021-5-4 21:11 | 只看该作者

谢谢楼主。感谢你的提供的程序,先学习学习。
回复

使用道具 举报

74#
ID:829471 发表于 2021-4-17 16:06 | 只看该作者

俩电机的就可以吧?
回复

使用道具 举报

73#
ID:748033 发表于 2020-11-24 17:21 | 只看该作者
用的是什么电机呢!
回复

使用道具 举报

72#
ID:574202 发表于 2020-7-30 17:26 | 只看该作者
正想做一个追光系统,谢谢楼主资料
回复

使用道具 举报

71#
ID:782093 发表于 2020-6-17 15:49 | 只看该作者
仿真的时候出现错误
回复

使用道具 举报

70#
ID:621943 发表于 2020-5-20 17:28 | 只看该作者
这个帖子好!!!!!!完整
回复

使用道具 举报

69#
ID:697141 发表于 2020-4-23 23:19 来自触屏版 | 只看该作者
谢谢分享
回复

使用道具 举报

68#
ID:733441 发表于 2020-4-21 15:31 | 只看该作者
有人能给我这个小白解释一下吗
回复

使用道具 举报

67#
ID:725830 发表于 2020-4-9 22:31 | 只看该作者
大佬,不是只有两个方向么,怎么有四个电机呀?
回复

使用道具 举报

66#
ID:65237 发表于 2020-4-9 20:48 | 只看该作者
学习中 谢谢分享
回复

使用道具 举报

65#
ID:725311 发表于 2020-4-9 09:44 | 只看该作者
现在正在做这方面的东西,下下来学习一下
回复

使用道具 举报

64#
ID:688742 发表于 2020-2-1 19:44 | 只看该作者
13202036330 发表于 2017-12-22 17:01
**** 作者被禁止或删除 内容自动屏蔽 ****

可以,比较简单
回复

使用道具 举报

63#
ID:468456 发表于 2019-12-13 18:35 | 只看该作者
非常感谢楼主
回复

使用道具 举报

62#
ID:442436 发表于 2019-11-13 20:24 | 只看该作者
很厉害
回复

使用道具 举报

61#
ID:442436 发表于 2019-11-13 20:19 | 只看该作者
无敌了这个,,,解决燃眉之急
回复

使用道具 举报

60#
ID:599674 发表于 2019-10-25 11:18 | 只看该作者
感谢楼主的分享
回复

使用道具 举报

59#
ID:625982 发表于 2019-10-21 09:25 | 只看该作者
不错不错,值得借鉴
回复

使用道具 举报

58#
ID:349102 发表于 2019-10-7 16:33 来自触屏版 | 只看该作者
感觉还行,看看,学习学习
回复

使用道具 举报

57#
ID:538623 发表于 2019-10-4 08:57 | 只看该作者
十分感谢楼主
回复

使用道具 举报

56#
ID:593866 发表于 2019-8-1 22:37 | 只看该作者
感谢作者的分享
回复

使用道具 举报

55#
ID:574789 发表于 2019-7-15 14:34 | 只看该作者
为啥用四个电机
回复

使用道具 举报

54#
ID:568738 发表于 2019-6-21 11:36 | 只看该作者
不错不错
回复

使用道具 举报

53#
ID:517020 发表于 2019-6-1 17:43 | 只看该作者
请问楼主的程序是不需要读取光敏电阻的吗?
回复

使用道具 举报

52#
ID:539970 发表于 2019-5-16 16:43 | 只看该作者
良心贴
回复

使用道具 举报

51#
ID:531323 发表于 2019-5-9 10:18 | 只看该作者
感觉还行,看看,学习学习
回复

使用道具 举报

50#
ID:444172 发表于 2019-5-7 10:21 | 只看该作者
十分感谢分享楼主无私
回复

使用道具 举报

49#
ID:472844 发表于 2019-4-10 08:58 | 只看该作者
学习一下
回复

使用道具 举报

48#
ID:34932 发表于 2019-3-28 10:27 | 只看该作者
很好的资源,感谢分享
回复

使用道具 举报

47#
ID:111376 发表于 2019-3-15 17:32 | 只看该作者

正在下载,谢谢分享,收藏!
回复

使用道具 举报

46#
ID:491492 发表于 2019-3-15 15:25 来自触屏版 | 只看该作者
太感谢了。
回复

使用道具 举报

45#
ID:491410 发表于 2019-3-15 14:02 | 只看该作者

借鉴学习一下。谢谢分享
回复

使用道具 举报

44#
ID:490512 发表于 2019-3-14 10:27 | 只看该作者
好贴,看一下
回复

使用道具 举报

43#
ID:475102 发表于 2019-2-27 12:39 | 只看该作者
赞一个
回复

使用道具 举报

42#
ID:481414 发表于 2019-2-27 10:39 | 只看该作者
目前在学习中,已设计到控制部分,谢谢楼主的分享,对我的设计很有帮助!
回复

使用道具 举报

41#
ID:452539 发表于 2019-1-8 12:22 | 只看该作者
很棒的教程,谢谢楼主的提供,我下载学习一下。谢谢
回复

使用道具 举报

40#
ID:455053 发表于 2018-12-26 08:45 | 只看该作者
不错不错
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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