找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求18B20控制四线双极型电机正反转程序(部分程序已给)

[复制链接]
跳转到指定楼层
楼主
ID:190289 发表于 2017-4-24 23:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//以下电机程序
#include <reg52.h>
#include <intrins.h>  
sbit MOTOA = P1^0;
sbit MOTOB = P1^1;
sbit MOTOC = P1^2;
sbit MOTOD = P1^3;


void delay(int time)
{
  int i,j;

  for(j=0; j <= time; j++)
   for(i =0 ; i <= 120; i++);
}

void main()
{
        P1 = 0x00;
        while (1)
        {                
                        MOTOA = 1;
                        MOTOB = 0;
                        MOTOC = 1;
                        MOTOD = 1;
                        delay(2);

                        MOTOA = 1;
                        MOTOB = 1;
                        MOTOC = 1;
                        MOTOD = 0;
                        delay(2);

                        MOTOA = 0;
                        MOTOB = 1;
                        MOTOC = 1;
                        MOTOD = 1;
                        delay(2);

                        MOTOA = 1;
                        MOTOB = 1;
                        MOTOC = 0;
                        MOTOD = 1;
                        delay(2);
       
        }

}

//以下温传程序
#include<reg51.h>
#include"lcd.h"
#include"temp.h"
void LcdDisplay(int);


void main()
{
        LcdInit();                         //初始化LCD1602
        LcdWriteCom(0x88);        //写地址 80表示初始地址
        LcdWriteData('C');
        while(1)
        {
                LcdDisplay(Ds18b20ReadTemp());
//                Delay1ms(1000);//1s钟刷一次
        }
}

void LcdDisplay(int temp)          //lcd显示
{

          unsigned char datas[] = {0, 0, 0, 0, 0}; //定义数组
        float tp;  
        if(temp< 0)                                //当温度值为负数
          {
                  LcdWriteCom(0x80);                //写地址 80表示初始地址
            LcdWriteData('-');                  //显示负
                temp=temp-1;
                temp=~temp;
                tp=temp;
                temp=tp*0.0625*100+0.5;         
          }
        else
          {                       
                  LcdWriteCom(0x80);                //写地址 80表示初始地址
            LcdWriteData('+');                 //显示正
                tp=temp;
                temp=tp*0.0625*100+0.5;       
                        }
        datas[0] = temp / 10000;
        datas[1] = temp % 10000 / 1000;
        datas[2] = temp % 1000 / 100;
        datas[3] = temp % 100 / 10;
        datas[4] = temp % 10;

        LcdWriteCom(0x82);                  //写地址 80表示初始地址
        LcdWriteData('0'+datas[0]); //百位

       
        LcdWriteCom(0x83);               
        LcdWriteData('0'+datas[1]); //十位

        LcdWriteCom(0x84);               
        LcdWriteData('0'+datas[2]); //个位

        LcdWriteCom(0x85);               
        LcdWriteData('.');                

        LcdWriteCom(0x86);       
        LcdWriteData('0'+datas[3]);

        LcdWriteCom(0x87);       
        LcdWriteData('0'+datas[4]);
}


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

使用道具 举报

沙发
ID:192589 发表于 2017-4-25 10:51 | 只看该作者
楼主请问你做过蓝牙控制电机正反转吗
回复

使用道具 举报

板凳
ID:194844 发表于 2017-5-7 09:41 | 只看该作者
自己找百度原理图 用仿真文件画吧      
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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