标题: 单片机中断实例 [打印本页]

作者: 1548261489    时间: 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;                   //右气泵吸紧


        }



}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1