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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? main.c

?? 單片機(jī)C51典型應(yīng)用設(shè)計(jì)代碼共11章包括液晶顯示代碼
?? C
字號(hào):

#ifdef MONITOR51                         /* Debugging with Monitor-51 needs   */
char code reserve [3] _at_ 0x23;         /* space for serial interrupt if     */
#endif                                   /* Stop Exection with Serial Intr.   */
                                         /* is enabled                        */
/*------------------------------------------------
The main C function.  Program execution starts
here after stack initialization.
------------------------------------------------*/
#include <stdio.h>
#include <reg51.h>
#include <math.h>

#define		DEBUG
#define		VALID			0
#define		INVALID			1
#define		TRUE			1
#define		FALSE			0
#define		ConstClockWise		1
#define		ConstAntiClock		0

#define		DELAY_VALVE		3

#define		MAXSTEPS		400			//maxsteps = 360/0.9=400
#define		HALFMAXSTEPS		200			//180 degree
#define		ONEQUARTERSTEPS		100
#define		THREEQUARTERSTEPS	300
#define		OCTANT			50

#define		MAXINPULSE		20


//#define    	PinZFeedBack	P0_0		//input,photoelectricity signal feed back ,to know where is the 0 angle position
#define		PinClockWiseRot	P0_1		//input,ClockWise Rotate Signal
#define		PinAntiClockRot	P0_2		//input,Anti-clock-wise rotate signal
#define    	PinInFree	P0_3		//input,Rotate to Zero Angle Signal
#define		PinDrvOPTO	P1_0		//output,opto.
#define		PinDrvFree	P1_1		//output,if ,then machine is free
#define    	PinDrvAntiClock	P1_2		//output,if VALID,then Drive the machine rotate ANTI-clock wise
#define    	PinDriver	P1_3		//output,give Pulse to control the machine's speed

#define    	PinXClockWise	P2_0		//input,X-array machine rotate clockwisely
#define    	PinYClockWise	P2_1		//input,Y-array machine rotate clockwisely


#define		PinLamp1	P1_4
#define		PinLamp2	P1_5
#define		PinLamp3	P1_6
#define		PinLamp4	P1_7

#define		PinLamp5	P2_2
#define		PinLamp6	P2_3

#define		PinLampBlink	PinLamp1
#define		PinRotIndicator	PinLamp2
#define		LampFatalError	PinLamp4
#define		PinLampDebug	PinLamp3
#define		LampOVErr	PinLamp5
#define		LampComm	PinLamp6


sbit		P0_0=P0^0;
sbit		P0_1=P0^1;
sbit		P0_2=P0^2;
sbit		P0_3=P0^3;
sbit		P0_4=P0^4;
sbit		P0_5=P0^5;
sbit		P0_6=P0^6;
sbit		P0_7=P0^7;

sbit		P1_0=P1^0;
sbit		P1_1=P1^1;
sbit		P1_2=P1^2;
sbit		P1_3=P1^3;
sbit		P1_4=P1^4;
sbit		P1_5=P1^5;
sbit		P1_6=P1^6;
sbit		P1_7=P1^7;

sbit		P2_0=P2^0;
sbit		P2_1=P2^1;
sbit		P2_2=P2^2;
sbit		P2_3=P2^3;
sbit		P2_4=P2^4;
sbit		P2_5=P2^5;
sbit		P2_6=P2^6;
sbit		P2_7=P2^7;

sbit		P3_2=P3^2;
sbit		P3_3=P3^3;


bit EvTimer=FALSE;
bit EvRcv=FALSE;

char rcvdata=0;
char workmode=2;
int delaycount=20;

long int XPulse=0,YPulse=0;
long int XPulseTemp=0,YPulseTemp=0;

//用最小步數(shù)表示角度

//int debugreg[4];
int debugYinput=0;
int debugXinput=0;
int counter10ms=0;
int debugtime=0;


void initial(void);              //初始化子程序
void delay(int i);
int FuncRotate(bit BClockWise,int step,int *PRegAngle);
int FuncGoAngleZ(int *PRegAngle);
void send(char *temp,int j);


void main(void)
{
	int RegAngle=0,RegNewAngle=0,temp=0;
	long int Xtmp=0,Ytmp=0;
	
	initial();                                 //初始化子程序
	PinDriver=VALID;
	PinLamp1=FALSE;
	PinLamp2=FALSE;
	PinLamp3=FALSE;
	PinLamp4=FALSE;
	PinLamp5=FALSE;
	PinLamp6=FALSE;
	
	PinDrvOPTO=FALSE;
	PinDrvFree=FALSE;
	delay(1);
	
	while(1)
	{
		while(PinInFree==VALID) 
		{
			TR0=0;
			PinDrvFree=TRUE;
			while(PinClockWiseRot==VALID) 
			{
				PinDrvFree=FALSE;
				FuncRotate(ConstClockWise,1,&RegAngle);
				delay(500);
			}
			while(PinAntiClockRot==VALID)
			{
				PinDrvFree=FALSE;
				FuncRotate(ConstAntiClock,1,&RegAngle);
				delay(500);
			}
			TR0=1;
			EvTimer=FALSE;
		}
		PinDrvFree=FALSE;
		if(EvRcv)
		{
			delaycount=rcvdata&0x1F;
			workmode=(rcvdata&0xE0)/32;
			EvRcv=FALSE;
		}
		
		
		if (EvTimer)
		{
			++debugtime;
			if(debugtime==5) 
			{
				PinLampBlink=TRUE;
			}
			else if(debugtime==10)
			{
				PinLampBlink=FALSE;
				debugtime=0;
			}
			
			RegNewAngle=XPulse*XPulse+YPulse*YPulse;
			RegNewAngle=(int)sqrt((float)RegNewAngle);
			
			temp=RegNewAngle-RegAngle;
			if(temp>HALFMAXSTEPS)
			{
				temp=temp-MAXSTEPS;
			}
			else if(temp<-HALFMAXSTEPS)
			{
				temp=temp+MAXSTEPS;
			}
			
			if(temp>0)
			{
				FuncRotate(ConstClockWise,temp,&RegAngle);
			}
			if(temp<0)
			{
				FuncRotate(ConstAntiClock,-temp,&RegAngle);}
		}
		
		if(workmode==1) 
		{
			send((char*)&RegAngle,2);
		}
		else if(workmode==2) 
		{
			send((char*)&RegAngle,2);
			send((char*)&XPulse,4);
			send((char*)&YPulse,4);
		}
		
		EvTimer=FALSE;
	}
}



void initial(void)
{
	
	//  IP=0x08;              //定義T1中斷優(yōu)先
	//  IE=0x87;              //允許中斷0、1、定時(shí)器0
	//  TCON=0x05;            //外部中斷為負(fù)邊沿中斷
	
	IP=0x10;              //定義串口為高優(yōu)先級(jí)中斷
	IE=0x97;              //允許串口、中斷0、1、定時(shí)器0
	TCON=0x05;
	
	//  TMOD=0x01;            //定時(shí)器0以十六位定時(shí)/計(jì)數(shù)器方式工作
	TMOD=0x21;            //定時(shí)器1為自動(dòng)裝入(auto-load)方式
	//  TMOD=0x22;            //定時(shí)器1為自動(dòng)裝入(auto-load)方式
	//  TH0=0xD8;             //10ms產(chǎn)生中斷
	//  TL0=0xEF;
	TH0=0xB1;             //10ms產(chǎn)生中斷 24Mhz
	TL0=0xE0;
	//  TH0=0x4E;             //10ms產(chǎn)生中斷 24Mhz
	//  TL0=0x20;
	//  TH0=0xFF;             //10ms產(chǎn)生中斷 24Mhz
	//  TL0=0x80;
	//  TH0=0xff;             //10ms產(chǎn)生中斷 24Mhz
	//  TL0=0x3f;
	//  TH0=0x00;
	//  TL0=0x00;             //
	TR0=1;
	
	
	PCON=0;               //SMOD(PCON.7)=1時(shí),baudrate doubled.//smod=1 (11M晶振時(shí)為0)
	
	SCON=0xD0;            //串行口工作方式 : 9位UART, 波特率可變
	TH1=0xf3;
	TL1=0xf3;             //
	PCON=0x80|PCON;	//  SMOD=1;		//波特率設(shè)置 : 9600 baud(E8--24MHZ)
	//SMOD=0=4.8kbps
	//th1=tl1=fd,smod=0 ,=19.2kbps
	TR1=1;                //啟動(dòng)定時(shí)器1
	
	
	XPulse=0;
	YPulse=0;
	XPulseTemp=0;
	YPulseTemp=0;
	
}

void send(char *temp,int j)
{
	int i=0;
	LampComm=TRUE;
	EA=0;
	for(i=0;i<=j-1;i++)
	{
		ACC=*(temp+i);
		TB8=P;
		SBUF=ACC;
		while(TI==0);
		TI=0;
	}
	EA=1;
	LampComm=FALSE;
}

int FuncRotate(bit BClockWise,int step,int *PRegAngle)
{
	
	PinRotIndicator=TRUE;
	if (BClockWise)
    {
		PinDrvAntiClock=INVALID;
		*PRegAngle+=step;
		if (*PRegAngle>=MAXSTEPS) *PRegAngle-=MAXSTEPS;
    }
	else
    {
		PinDrvAntiClock=VALID;
		*PRegAngle-=step;
		if (*PRegAngle<0) *PRegAngle+=MAXSTEPS;
    }
	
	
	while(step)
    {
		PinDriver=INVALID;
		delay(delaycount);
		PinDriver=VALID;
		delay(delaycount);
		--step;
    }
	PinRotIndicator=FALSE;
	return(TRUE);
	
	
}
void delay(int i)
{
	int j=0;
	i=i*DELAY_VALVE;
	
	while (j<i)j++;
	
}

void XPulse_INT(void) interrupt 2
{
	EX0=0;
	
	if(PinXClockWise)   XPulseTemp++;
	else XPulseTemp--;
	
	EX0=1;
}
void  YPulse_INT(void)  interrupt 0
{
	EX1=0;
	
	if(PinYClockWise) YPulseTemp++;
	else YPulseTemp--;
	
	EX1=1;
}

void  TIMER(void)  interrupt 1
{
	TH0=0xB1;             //10ms產(chǎn)生中斷 24Mhz
	TL0=0xE0;
	
	counter10ms++;
	//  if(counter10ms==5)
	//    PinLampBlink=TRUE;
	
	if(counter10ms>=30)
    {
		counter10ms=0;
		if(EvTimer==TRUE){while(1){LampFatalError=TRUE;}}//for debug use
		EvTimer=TRUE;
		//	 PinLampBlink=FALSE;
		XPulse=XPulseTemp;
		YPulse=YPulseTemp;
		XPulseTemp=0;
		YPulseTemp=0;
    }
}



void Rcv_INT(void) interrupt 4
{
	LampComm=TRUE;
	if(RI)
	{
		ACC=SBUF;
		if(P==RB8)
		{
			rcvdata=ACC;
			EvRcv=TRUE;
		}
		
		RI=0;
		
	}
	LampComm=FALSE;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品中文在线观看| 精品一区二区成人精品| 亚洲精品一区二区三区精华液| 99精品偷自拍| 日韩精品最新网址| 成人精品亚洲人成在线| 日本午夜精品视频在线观看| 亚洲三级小视频| 精品国产sm最大网站免费看| 欧美午夜影院一区| 成人av网站免费| 国产乱码精品一区二区三区忘忧草 | 精东粉嫩av免费一区二区三区| 一区二区三区四区在线播放 | 成人久久久精品乱码一区二区三区| 亚洲国产婷婷综合在线精品| 中文字幕一区二区不卡| 久久久综合视频| 日韩欧美国产综合| 欧美丰满嫩嫩电影| 欧美性猛片aaaaaaa做受| 99精品黄色片免费大全| 国产91精品欧美| 国内精品写真在线观看 | 99精品国产热久久91蜜凸| 国产美女在线观看一区| 久久精品国产精品亚洲红杏| 日韩精品亚洲一区| 亚洲成人第一页| 午夜影院久久久| 亚洲一二三四区不卡| 日韩伦理av电影| 成人欧美一区二区三区白人| 国产精品女人毛片| 国产精品久久久久一区| 亚洲国产精品成人综合| 亚洲国产精品精华液ab| 国产精品国产三级国产a| 中文字幕欧美区| 国产精品国产a级| 中文字幕在线一区二区三区| 国产精品情趣视频| 亚洲三级在线免费| 亚洲国产日韩a在线播放性色| 亚洲福利一区二区三区| 日韩制服丝袜av| 另类小说图片综合网| 国产中文字幕一区| 国产白丝精品91爽爽久久| 成人av网址在线| 在线观看www91| 制服丝袜国产精品| 精品国产在天天线2019| 欧美日韩一区二区在线视频| 色综合一个色综合| 欧美日韩国产123区| 51久久夜色精品国产麻豆| 欧美一区二区三区在线视频| 欧美岛国在线观看| 国产精品视频在线看| 亚洲欧美另类综合偷拍| 日韩精品电影一区亚洲| 激情五月播播久久久精品| 成人午夜看片网址| 日本韩国一区二区| 欧美成人福利视频| 国产精品免费久久久久| 一级日本不卡的影视| 久久综合综合久久综合| 成人免费高清在线| 欧美精品粉嫩高潮一区二区| 久久精品亚洲麻豆av一区二区| 亚洲人成精品久久久久久| 亚洲1区2区3区4区| 国产精品羞羞答答xxdd| 日本韩国欧美国产| 2024国产精品| 亚洲一级不卡视频| 国产福利91精品一区二区三区| 欧美最新大片在线看| 久久久亚洲精华液精华液精华液| 亚洲精品视频自拍| 久久国产尿小便嘘嘘尿| 色综合一区二区三区| 欧美精品一区男女天堂| 亚洲国产综合在线| 国产99久久久国产精品潘金网站| 欧美在线小视频| 国产视频在线观看一区二区三区 | 色久优优欧美色久优优| 精品少妇一区二区| 亚洲毛片av在线| 国产在线播放一区三区四| 欧美性大战久久| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲.国产.中文慕字在线| 国内精品伊人久久久久av影院| 欧美性猛交一区二区三区精品| 国产无人区一区二区三区| 日韩精品色哟哟| 色婷婷久久一区二区三区麻豆| 久久久久国产精品人| 免费三级欧美电影| 欧美自拍丝袜亚洲| 17c精品麻豆一区二区免费| 精品制服美女丁香| 欧美久久久久久久久| 亚洲女与黑人做爰| 粉嫩aⅴ一区二区三区四区五区 | 亚洲人吸女人奶水| 国产精品一二三四| 日韩视频在线观看一区二区| 亚洲va韩国va欧美va| 色婷婷精品久久二区二区蜜臂av| 久久久综合视频| 精彩视频一区二区三区| 欧美一区午夜视频在线观看| 亚洲综合在线第一页| 99久久99久久综合| 欧美国产国产综合| 国产精品538一区二区在线| 日韩女同互慰一区二区| 水蜜桃久久夜色精品一区的特点| 在线观看网站黄不卡| 亚洲精品视频在线观看免费 | 26uuu成人网一区二区三区| 日本免费在线视频不卡一不卡二| 欧美日韩色综合| 亚洲成人激情av| 欧美日韩久久久久久| 亚洲mv在线观看| 777xxx欧美| 久久91精品国产91久久小草| 日韩精品一区二区三区视频播放 | 精品中文字幕一区二区小辣椒| 欧美一二区视频| 男男成人高潮片免费网站| 日韩一区二区三区四区 | 欧美色综合久久| 亚洲成人福利片| 欧美男男青年gay1069videost| 亚洲大尺度视频在线观看| 8v天堂国产在线一区二区| 久久精品久久久精品美女| 精品国产青草久久久久福利| 国产在线日韩欧美| 国产欧美精品国产国产专区| 成人av电影在线| 一区二区三区日韩| 欧美区在线观看| 精品一区二区久久久| 亚洲国产成人私人影院tom| 99视频国产精品| 玉足女爽爽91| 91精品久久久久久久久99蜜臂| 裸体一区二区三区| 国产欧美日韩久久| 91传媒视频在线播放| 日韩和的一区二区| 久久这里都是精品| 色综合天天综合在线视频| 亚洲va韩国va欧美va精品| 日韩欧美第一区| 高清成人免费视频| 亚洲国产成人精品视频| 欧美电影免费观看高清完整版在线 | 国产大片一区二区| 亚洲欧美另类图片小说| 欧美剧情片在线观看| 精品一区二区免费看| 日韩一区中文字幕| 欧美一区二区观看视频| 国产成人激情av| 亚洲成人av免费| 国产欧美中文在线| 欧美日韩精品久久久| 国产精品一区三区| 亚洲国产精品自拍| 国产日韩欧美综合一区| 日本韩国欧美在线| 国产乱码精品1区2区3区| 亚洲激情自拍偷拍| 久久久久久久久久久久久久久99| 色香蕉久久蜜桃| 国产九色精品成人porny| 亚洲一区二区视频在线| 欧美极品xxx| 日韩一区二区在线观看视频| 不卡一区二区在线| 麻豆精品在线看| 亚洲女人小视频在线观看| 亚洲精品一区二区三区精华液 | 日韩一二三四区| 91亚洲国产成人精品一区二三 | 成人av免费在线播放| 美国一区二区三区在线播放| 一区二区三区中文字幕精品精品| 欧美精品一区二区三区视频| 欧美老肥妇做.爰bbww| 91麻豆视频网站|