標(biāo)題: 單片機(jī)中斷實(shí)例 [打印本頁]

作者: 1548261489    時(shí)間: 2017-5-10 19:39
標(biāo)題: 單片機(jī)中斷實(shí)例
#include "reg52.h"
#include "duoji.h"
#include "delay.h"

/*

這個(gè)程序如果有問題,很有可能是單舵機(jī)程序編程雙舵機(jī)程序的時(shí)候編號(hào)哪里沒改,
就是原來單舵機(jī)程序復(fù)制一個(gè),然后參數(shù)加上1,2形成雙舵機(jī)程序,
還有可能就是一個(gè)中斷變成兩個(gè)中斷開關(guān)參數(shù)有問題,因?yàn)槲也惶浀昧?br />
*/
sbit IN1=P1^2;
sbit IN2=P1^3;
sbit IN3=P1^4;
sbit IN4=P1^5;

void main()
{

TMOD |= 0x11;          //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響        TOMD = TOMD | 0X11
TH0=0x00;              //給定初值,這里使用定時(shí)器最大值從0開始計(jì)數(shù)一直到65535溢出
TL0=0x00;
TH1=0x00;              //給定初值,這里使用定時(shí)器最大值從0開始計(jì)數(shù)一直到65535溢出
TL1=0x00;
EA=1;            //總中斷打開
ET0=1;           //定時(shí)器0中斷打開
TR0=1;           //定時(shí)器0開關(guān)打開
ET1=1;           //定時(shí)器0中斷打開
TR1=1;

        while(1)
        {
        
           IN1=1; IN2=0;                   //左氣泵吸緊
           IN3=1; IN4=0;                   //右氣泵吸緊               
           duoji1(1000);
           duoji2(1000);                   //假設(shè)兩舵機(jī)的極限位置均分別在1000和2000
           DelayMs(3000);

           IN1=0; IN2=0;                   //左氣泵放松
           IN3=1; IN4=0;                   //右氣泵吸緊        
           DelayMs(3000);            //等待放松        
           duoji1(2000);
           duoji2(2000);                   //兩舵機(jī)反轉(zhuǎn)
           IN1=1; IN2=0;                   //左氣泵吸緊
           DelayMs(3000);

           IN1=1; IN2=0;                   //左氣泵吸緊
           IN3=0; IN4=0;                   //右氣泵放松        
           DelayMs(3000);            //等待放松        
           duoji1(1000);
           duoji2(1000);                   //兩舵機(jī)反轉(zhuǎn)
           IN3=1; IN4=0;                   //右氣泵吸緊


        }



}






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1