View Single Post
Old 21-12-2005, 08:37 PM   #7
ThanhPhuc
Đệ tử 2 túi
 
Tham gia ngày: Jul 2005
Bài gửi: 35
:
Chương trình điều khiển moto bước .
Bàn phím có 5 phím:quay thuận,quay ngược,quay thuận bước nhỏ,quay ngược bước nhỏ,stop. Trình dịch CCS.Mong các bạn cho ý kiến để cải tiến

Code:
 #include "C:\Comport\ccs\DKMOTOR.h"
               #define  stop PIN_C0
	   #define  dkth PIN_C1
	   #define  dkng PIN_C2
	   #define  hpb1 PIN_C3
               #define  hpb2 PIN_C4
      #BYTE trisb =0x86
      #BYTE OSCCON=0x8F
      #BYTE trisc = 0x87
        char a,b ;
        char PeekKey() ;
        char GetKey();
        void buoc1();
        void buoc2();
        void stp();
        void dkthuan();
        void dknghich();
 void main()
  {  //su dung loai 2cuon co chan giua noi B+
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_spi(FALSE);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
        trisc=7F;
        b=2;
        while(1)
        {
         a=PeekKey();
         switch(a)
         {
          case 0 : stp();
            break;
          case 1 : dkthuan();
           break;
          case 2 : dknghich();
           break;
          case 3 : buoc1();
           break;
          case 4 : buoc2();
          break;
          case 5 : stp();
          break;
         }
        }
  }
   //***************
        char PeekKey(void)
            {  if(input(stop)==0) return(0);
               if(input(dkth)==0) return(1);
               if(input(dkng)==0) return(2);
               if(input(hpb1)==0) return(3);
               if(input(hpb2)==0) return(4);
                  else return (a);  }
         // **********
           char GetKey(void)
            {  char nKey;
              nKey=PeekKey();
        // wait for key release
              while ((input(stop)==0)||(input(dkth)==0) )
              (input(dkng)==0 )||(input(hpb1)==0 )||(input(hpb2)==0) ;
                delay_ms(10);
              return(nKey);  }
            // *************
            void dkthuan()
            { output_b(8);
              delay_ms(b);
              output_b(2);
               delay_ms(b);
              output_b(1);
               delay_ms(b);
              output_b(4);
               delay_ms(b);
               output_b(0);
            }
            //*******
            void dknghich()
            { output_b(4);
             delay_ms(b);
            output_b(1);
             delay_ms(b);
            output_b(8);
             delay_ms(b);
            output_b(2);
             delay_ms(b);
             output_b(0);
            }
            // *********
            void stp()
             { output_b(0);
            delay_ms(2);
            }
            //*******
            void buoc1()
            { char i;
             for (i=1;i<=15;++i)
               dkthuan();
                a=0;
            }
            //**********
            void buoc2()
            { char i;
             for (i=1;i<=15;++i)
               dknghich();
                a=0;
            }
// Thanhphuc email thuyphuc81@yahoo.com
// Dieu khien moto buoc loai 2 cuon day co chan giua

thay đổi nội dung bởi: falleaf, 23-09-2008 lúc 03:18 PM.
ThanhPhuc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn