亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? working(偉福)

?? Main program running when workpiece is ready on deferent belt(deferent_ready=ture). * Call Squ
??
字號:
/*
*******************************************************************************************************************
*                                          XingChen
*                                (c)Copyright 2004,HangZhou,China
*                                     All Rights Reserved
*										   (2004/8/7)
*
*FileName  : Robot Control
*Programmer: Beyond Z.H.
* Version  : V1.0
*Finished  : 2004/8/26
******************************************************************************************************************
*/
/*$PAGE*/
/*
******************************************************************************************************************
*                                       INCLUDE FILES
*******************************************************************************************************************
*/
#include <AT89X52.H>					/* special function registers for AT89c52 device */
#include <math.h>						/* stanard C math-file 							*/
#include <stdio.h>						/* standard I/O .h-file							*/
#include "working.h"					/* selfdefined standard .h-file 	*/

/*$PAGE*/


/*
******************************************************************************************************************
*                                       MAIN PROGRAM
* Description: Main program running when workpiece is ready on deferent belt(deferent_ready=ture).
*			   Call Square_Wave subroutine to generate 0.5ms square wave on P1.2 to drive
*              electromotor,then drive deferent belt step forward. When it steps to the measure
*              zone, it stops to be measured. Then call A_D subroutine to transform analog
*              signals to digital signals , after then call serial subroutine to transfer
*              digital signals to PC. Call square wave subroutine to drive deferent belt step to
*              original position waitting for defere ready flag to run the next circle.
* Arguments  : none
*
* Returns    : none
*****************************************************************************************************************
*/
/*
******************************************************************************************************************
*                          通信數據格式
*          開中斷,等待上位機送正確的命令  ’CS'(0X43 0x53) 回送’R’     (0x52)
*			       錯誤的命令         ,回送‘W’             (0x57)
*          關中斷,開始AD()和送數   0XAD,K,低8位,高8位 ,和校驗,等等上位機回送‘R’    (0x52)
*                  重復共做20次
*                  工件轉回后,送通知‘CE’ (0x43 0x45),回收‘R’則一次操作結束,重新開始
*                                         ,10S沒有正確回收,則重發通知
*
*
*****************************************************************************************************************
*/
					/* private variables */

INT16U UIntCounter;

INT8U idata send[SEND_SIZE];           //自己:idata 是什么定義???
INT8U idata s_start ;
INT8U idata s_end ;
INT8U k ;

INT8U idata receive[RECE_SIZE];
INT8U idata r_start ;
//INT8U idata r_end ;
INT8U idata intcounter ;               //timer0 interrupt counter

 					/* Functions declared */

void   InitIOPort(void);                       // initialize I/O ports
void   Square_Wave(void);	//自己:產生方波做什么??  // generate 500us square wave on P1.2
void   Initial_Timer0(void);	//自己:怎么這個還有單獨列??(難道是控制波特率??)  // initialize Timer0
void   Time0_Interrupt(void);				   // interrupt subroutine
void   delay(void);							   // delay subroutine
void   A_D(void);                              // AD subroutine
//INT16U Serial(void); 						   // serial port subroutine
void  Serial_s(void);      //自己:串口發送
void  Serial_r(void);     //自己:串口接收
void  Serial_init(void);
void main(void)
{
 //   INT16U UIntForwardSteps1,UIntForwardSteps2,UIntCounter;
     Serial_init();
     Initial_Timer0();
	for(;;){
                 Deferent_Ready=False;						// workpiece ready flag
                  ES=1;         //自己:ES為1是 允許還禁止 串口通信????
  //        Deferent_Ready=True;
	//	UIntForwardSteps  = 28000;					// steps per circle  28000
	//	UIntForwardSteps1 = 14;					// steps from ready position to measure position  14000
	//	UIntForwardSteps2 = UIntForwardSteps-UIntForwardSteps1;

               while(Deferent_Ready==False) ;
                //UIntForwardSteps1=receive[0]+256*receive[1] ;
                //UIntForwardSteps2 = UIntForwardSteps-UIntForwardSteps1;
               ES=0;
               for(UIntCounter=0;UIntCounter<=UIntForwardSteps1;++UIntCounter)
                  {
		    Square_Wave();
                  }
 //               delay();									// delay for workpieces to be measured
//		A_D();
 //               Serial_s();
        //        INT8U k ;
                for(k=0;k<20;k++)
                   { for(UIntCounter=0;UIntCounter<=iUIntForwardSteps;++UIntCounter)
                      {
		       Square_Wave();
                       }
                    delay();									// delay for workpieces to be measured
		    A_D();
                    Serial_s();
                    }
		for(UIntCounter=0;UIntCounter<=UIntForwardSteps2;++UIntCounter)
                   {
                          Square_Wave();
                   }
                  Deferent_Ready=False;

            SBUF='C';
            while(TI==0);TI = 0;
            SBUF='E';
            while(TI==0);TI = 0;

            while(RI==0);RI=0;		// wait for PC reply  ‘R’
            while(SBUF!=0x52);
            //ES=1;
		}

}
/*$PAGE*/
/*
******************************************************************************
Function name  : InitIOPort
Description    : initialize whole IO port Parameters

Input param    : none.

Output param   : none.

return         : none
******************************************************************************
*/
void InitIOPort(void)
{
	P1_0  =  0;
	P0    =  1;

}
/*
******************************************************************************************************************
*                                       SQUARE WAVE GENERATE
* Description: Interrupt mode generate 0.25ms square wave on P1.2 to drive electromotor
*
* Arguments  : none
*
* Returns    : none
*****************************************************************************************************************
*/
void Square_Wave()
{
       P1_0=0;                               //interrupt mode generate 0.5ms squre wave
       intcounter=0;
       TR0=1;
       ET0=1;
       EA=1;
       while(intcounter!=2);
       TR0=0;
       ET0=0;

}
/*$PAGE*/
/*
******************************************************************************************************************
*                                      INITIALIZE TIMEER0
* Description: none
*
* Arguments  : none
*
* Returns    : none
*****************************************************************************************************************
*/

void Initial_Timer0()
{
	TMOD=	(TMOD|0x0f)&0xf2;  				// initialize Timer0 mode 2
	TL0 =	0x20;					//TL0 =	0x12;
	TH0 =	0x20;
}


/*$PAGE*/
/*
******************************************************************************************************************
*                                      INTERRUPT SUBROUTINE
* Description: none
*
* Arguments  : none
*
* Returns    : none
*****************************************************************************************************************
*/
void timer0(void) interrupt 1 using 1
{
 	P1_0 =!	P1_0;                   // reverse P1_2
        intcounter++ ;
}

/*$PAGE*/
/*
****************************************************************************************************
*										DELAY SUBROUTINE
* Description: delay
*
* Arguments  : none
*
* Returns    : none
*****************************************************************************************************
*/
 void delay(){
	unsigned int i;
	for(i=0;i<=2;i++);
}
/*$PAGE*/


/*
******************************************************************************************************************
*                                      A/D
* Description: none
*
* Arguments  : none
*
* Returns    :
*****************************************************************************************************************
*/
void  A_D(void)
 {
         INT16U i,AD,AD_SUM=0 ;
         INT8U	ADHI,ADLO;
    for(i=0;i< AD_SIZE; i++ )
       {
	write = 0;
        ADCOM = AD_8EAB;		/*RC=0;A0=0;CS=0 enable 12 bit switch  */
        while(adbusy==1);
        read=0;
        ADCOM = AD_READH;		/*RC=1;A0=0;CS=0 enable high 8 bit out */
	ADHI  = P0;
	ADCOM = AD_READL;		/*RC=1;A0=1;CS=0 enable low 4 bit out  */
	ADLO  = P0;
	read  = 1;
	write = 1;
	CS    = 1;
        AD=ADHI*16+ADLO/16;
        AD_SUM+=AD ;
       }
        send[0]=0x0ad ;
        send[1]=k;
        send[2]=(AD_SUM/AD_SIZE)%256;
        send[3]=(AD_SUM/AD_SIZE)/256;

}
/*$PAGE*/
/*
******************************************************************************************************************
*                                      SERIAL SUBROUTE
* Description: none

* Arguments  : none
*
* Returns    : none
*****************************************************************************************************************
*/
void Serial_init(void)
{            TMOD = (TMOD|0xf0)&0x2f;			// Timer1 Mode 1
             TH1 = 0x0f3;			// Baud 2400, 11.059 MHZ
             TL1=0x0f3;
             TR1=1;
             SCON = 0x50;			// Serial port Mode 1, enable receive and  send
             EA=1;                              // Enable interrupt
            // ES=1;
}


/*
*********************************************************************************************************************
*send data format:flag byte(0xad,AD valve(L),AD valve(H),checkout byte(wait reply 0x00 is correct flag)
* after send 4 bytes,wait for pc reply,if pc receive correct flag byte and checkout byte,reply is 0x00,
*else should send again

*/

void  Serial_s(void)
{

             ES=0;     			// disable serial port interrupt
   do {
        INT8U k,pf=0;
        for(k=0;k<SEND_SIZE;k++ )
        {
	   SBUF=send[k];			// transfer AD value to PC
           pf+=send[k];
	   while(TI==0);
           TI = 0;
           delay();		// wait for Transfer Interrupt enable   , clear TI
         }
           SBUF=pf;
           while(TI==0);
           TI = 0;
           while(RI==0);
           RI=0;		// wait for PC reply
        }while(SBUF!=0x52);		// PC transfer a flag to MCU if false then repeat
          ES=1;
}

/**************************************************************************************
*format:flag byte 0x0aa(reply 0x00(true) or 0x0ff),step number(L),step number(h),checkout type(reply 0x00(true) or 0x0ff)
*receive flag word=0x0aa,answer 0x0aa,else answer 0x0ff  and return
**receive motor step number
**then receive checkout word,if correct,send 0x00,then Deferent_Ready=True and return.
**else send 0x0ff,repeat receive motor step number
***************************************************************************************/

void  Serial_sr(void)   interrupt 4 using 3
{
   INT8U k,i,pf=0;
   INT8U srtemp ;
   ES=0;             			// disable serial port interrupt
      if(RI)
       {
           srtemp=SBUF;
           RI=0;
           receive[r_start]=srtemp;
           pf+=receive[r_start];
           if(r_start<(RECE_SIZE-1))
              {
                r_start++;
               }
           else
              {
                r_start=0;
                   // if( (receive[0]-'c')||(receive[1]-'s')==0)
                    if( (receive[0]=='C')&& (receive[1]=='S') )
                     {
                       Deferent_Ready=True;          // deferent start

	                 SBUF='R';			// send correct flag to PC
                         while(TI==0);TI = 0;
                      }
                    else
                      {
                       SBUF='W';			// send correct flag to PC
                       while(TI==0);
                       TI = 0;
                      }

              }
     ES=1;                            //enable serial port interrupt
     }
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区在线观看视频 | 欧日韩精品视频| 日韩高清电影一区| 国产精品伦一区| 欧美一区二区美女| 91免费观看视频在线| 麻豆精品视频在线观看| 亚洲欧美在线aaa| 欧美精品一区二区在线观看| 色av一区二区| 成人在线综合网站| 久久不见久久见中文字幕免费| 亚洲女性喷水在线观看一区| 精品国产欧美一区二区| 91蝌蚪porny| 成人一级视频在线观看| 欧美aaa在线| 亚洲国产乱码最新视频| 国产精品色一区二区三区| 精品国产乱码久久久久久老虎| 欧美亚洲精品一区| 91在线观看美女| 国产精品亚洲一区二区三区妖精| 强制捆绑调教一区二区| 亚洲一区二区三区爽爽爽爽爽| 欧美激情一区二区三区不卡| 精品国产露脸精彩对白| 555www色欧美视频| 欧美中文字幕一区| 91视频一区二区| 不卡一区在线观看| 国产黄人亚洲片| 激情五月激情综合网| 蜜臀av性久久久久蜜臀aⅴ| 亚洲午夜免费福利视频| 亚洲蜜桃精久久久久久久| 亚洲欧美自拍偷拍色图| 国产精品久久久久久久第一福利 | 亚洲一区在线观看免费观看电影高清 | 国产大陆亚洲精品国产| 国产麻豆成人传媒免费观看| 麻豆国产欧美日韩综合精品二区| 午夜精品久久久久久不卡8050| 一区二区三区中文字幕精品精品| 国产精品久久久久久久久晋中| 亚洲国产精品ⅴa在线观看| 国产清纯白嫩初高生在线观看91| 久久精品日产第一区二区三区高清版| 精品成人免费观看| 久久蜜桃一区二区| 国产视频一区在线观看| 国产精品萝li| 一区二区三区精品久久久| 亚洲精品欧美激情| 亚洲国产视频一区| 日本欧美在线看| 激情久久五月天| a在线播放不卡| 欧美少妇一区二区| 日韩欧美视频在线| 国产精品系列在线| 亚洲综合成人在线视频| 日本成人中文字幕在线视频| 精品写真视频在线观看| 高清在线不卡av| 在线免费观看日本欧美| 91精品国产综合久久久久久| 精品国产精品网麻豆系列 | 久久久国产午夜精品| 国产精品你懂的| 午夜精品福利在线| 国内一区二区在线| 99视频有精品| 欧美一级免费大片| 国产女人18水真多18精品一级做| 亚洲精品成人少妇| 日韩av二区在线播放| 成人一区二区三区| 欧美日韩电影一区| 欧美极品aⅴ影院| 亚洲一区二区高清| 国产精品一卡二卡在线观看| 白白色 亚洲乱淫| 欧美日韩国产系列| 久久久亚洲精品石原莉奈| 亚洲特黄一级片| 免费精品视频最新在线| 国产91色综合久久免费分享| 在线看一区二区| 久久久亚洲精品石原莉奈| 一区二区三区视频在线观看| 另类成人小视频在线| 色综合天天综合网天天看片| 欧美一区二区三区电影| 亚洲色图19p| 九色综合国产一区二区三区| 99re免费视频精品全部| 久久综合色综合88| 五月激情综合色| 99久久婷婷国产综合精品| 日韩欧美亚洲国产另类| 亚洲国产精品久久一线不卡| 国产成人av电影在线播放| 欧美一区二区三区在线看| 亚洲精品精品亚洲| 国产精品99久久久久久似苏梦涵| 欧美日韩国产三级| 综合色中文字幕| 国产大陆a不卡| 日韩欧美亚洲国产另类| 一卡二卡三卡日韩欧美| 北条麻妃国产九九精品视频| 精品99999| 免费在线观看日韩欧美| 欧美性猛片aaaaaaa做受| 日本一区二区三区四区| 韩日av一区二区| 欧美一级视频精品观看| 亚洲一二三区在线观看| 91在线播放网址| 日韩美女视频一区| 高清av一区二区| 久久久三级国产网站| 精品一区二区在线播放| 日韩欧美一区在线| 日韩精彩视频在线观看| 欧美日韩中文字幕一区二区| 亚洲日本中文字幕区| 成人免费视频国产在线观看| 国产亚洲成aⅴ人片在线观看| 免费成人深夜小野草| 7777精品伊人久久久大香线蕉 | 欧美日韩高清一区二区三区| 一片黄亚洲嫩模| 欧美伊人久久久久久午夜久久久久| 亚洲视频免费在线| 91在线视频播放地址| 亚洲欧美在线视频| 91久久线看在观草草青青| 亚洲色图在线看| 色狠狠色狠狠综合| 亚洲一区二区精品久久av| 欧美日高清视频| 日韩成人免费在线| 精品国一区二区三区| 国产麻豆视频精品| 国产精品女同互慰在线看| 99精品国产99久久久久久白柏 | 中文字幕在线观看一区| 91亚洲永久精品| 伊人一区二区三区| 56国语精品自产拍在线观看| 蜜桃传媒麻豆第一区在线观看| 日韩午夜激情电影| 高清shemale亚洲人妖| 亚洲蜜臀av乱码久久精品蜜桃| 欧美做爰猛烈大尺度电影无法无天| 亚洲高清免费在线| 日韩美一区二区三区| 国产在线精品一区二区夜色| 亚洲国产高清aⅴ视频| 色综合天天综合色综合av| 午夜精品一区二区三区三上悠亚| 欧美一区二区三区在线看| 国产精品白丝jk黑袜喷水| 亚洲天堂精品在线观看| 欧美老肥妇做.爰bbww| 久久99精品一区二区三区| 欧美国产综合一区二区| 欧美色视频在线观看| 久久国产人妖系列| 中文字幕的久久| 欧美乱熟臀69xxxxxx| 国产乱码一区二区三区| 亚洲精品videosex极品| 91精品国产综合久久久蜜臀粉嫩 | 激情小说亚洲一区| 国产精品狼人久久影院观看方式| 欧美伊人精品成人久久综合97| 老司机精品视频一区二区三区| 中文字幕一区二区三区不卡在线| 欧美日韩国产综合一区二区三区| 国产精品一级在线| 亚洲成人一区二区在线观看| 国产日产欧产精品推荐色| 色偷偷88欧美精品久久久| 激情综合网激情| 亚洲va天堂va国产va久| 国产日韩一级二级三级| 欧美日韩国产欧美日美国产精品| 国产成人av一区二区三区在线观看| 亚洲一区二区欧美| 国产欧美1区2区3区| 欧美精品第1页| 99久久久久久| 国产精品一区二区91| 免费观看成人av| 亚洲国产wwwccc36天堂| 国产精品网曝门| 久久综合九色综合97婷婷|