找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1709|回复: 0
收起左侧

单片机中断实例

[复制链接]
ID:199241 发表于 2017-5-10 19:39 | 显示全部楼层 |阅读模式
#include "reg52.h"
#include "duoji.h"
#include "delay.h"

/*

这个程序如果有问题,很有可能是单舵机程序编程双舵机程序的时候编号哪里没改,
就是原来单舵机程序复制一个,然后参数加上1,2形成双舵机程序,
还有可能就是一个中断变成两个中断开关参数有问题,因为我不太记得了

*/
sbit IN1=P1^2;
sbit IN2=P1^3;
sbit IN3=P1^4;
sbit IN4=P1^5;

void main()
{

TMOD |= 0x11;          //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响        TOMD = TOMD | 0X11
TH0=0x00;              //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
TL0=0x00;
TH1=0x00;              //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
TL1=0x00;
EA=1;            //总中断打开
ET0=1;           //定时器0中断打开
TR0=1;           //定时器0开关打开
ET1=1;           //定时器0中断打开
TR1=1;

        while(1)
        {
        
           IN1=1; IN2=0;                   //左气泵吸紧
           IN3=1; IN4=0;                   //右气泵吸紧               
           duoji1(1000);
           duoji2(1000);                   //假设两舵机的极限位置均分别在1000和2000
           DelayMs(3000);

           IN1=0; IN2=0;                   //左气泵放松
           IN3=1; IN4=0;                   //右气泵吸紧        
           DelayMs(3000);            //等待放松        
           duoji1(2000);
           duoji2(2000);                   //两舵机反转
           IN1=1; IN2=0;                   //左气泵吸紧
           DelayMs(3000);

           IN1=1; IN2=0;                   //左气泵吸紧
           IN3=0; IN4=0;                   //右气泵放松        
           DelayMs(3000);            //等待放松        
           duoji1(1000);
           duoji2(1000);                   //两舵机反转
           IN3=1; IN4=0;                   //右气泵吸紧


        }



}

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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