找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机控制陀螺仪

[复制链接]
跳转到指定楼层
楼主
ID:306518 发表于 2018-4-13 23:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
sbit hui = P1^0;
sbit  dir = P1^1;     //这是电机的正反转
sbit  shineng  = P1^2;  //电机使能端
int qw =9;
char quanshu = 0;           //保存旋转的圈数
                          


int main()
{          
     int counter = 0;
         int i;         int j;
         
     for( i = 0;i<200;i++)
         {
               for( j= 0;j<100;j++)
                  {
                     ;;
                  }
         }   
     TMOD = 0x21;
         TH0 = (65535-qw)/256;
         TL0 = (65535-qw)%256;
         TH1 = 0xfd;
         TL1 = 0xfd;
         SM0 = 0;                //串口SM0和SM1是工作方式选择位
         SM1 = 1;
         REN = 1;                    //串口允许接受
         EA = 1;                        //总中断
         ES = 1;                        //串口中断
         TR1 = 1;                        //打开定时器1
         TR0 = 1;                       
     shineng = 0;
         while(1)
         {   
                if(TF0 == 1)
                      {
                           TF0 = 0;
                               TH0 = (65535-qw)/256;
                       TL0 = (65535-qw)%256;
                             hui = !hui;
                                
                      }
                  ;
         }
         while(1)
         {
             
            
               
                if(quanshu != 0)
                {
                       if(TF0 == 1)
                      {
                           TF0 = 0;
                               TH0 = (65535-qw)/256;
                       TL0 = (65535-qw)%256;
                               hui = !hui;
                           counter++;
                  }  
                          if(counter == 396)
                  {
                          counter = 0;
                          quanshu--;
                        
                          ;
                     }  
                }
                else
                {
                    TR0 = 0;
                        hui = 0;
                        shineng = 1;
                }
           }
}
void asd() interrupt  4
{
     RI  = 0;
         quanshu = SBUF;
         TR0 = 1;                      //如果接受的到了数据就把计数器打开
         shineng = 0;
}


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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