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

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

?? lcd.c

?? 智能車源代碼
?? C
字號:
#include <intrins.h>						 
#include <AT89X51.h>
/*--------------------系統(tǒng)變量定義------------------*/
//LCD模塊
#define LCD_RW  			P2_6 					//讀寫控制端
#define LCD_RS  			P2_7					//數(shù)據(jù)命令選擇端
#define LCD_E   			P2_5					//執(zhí)行使能端
#define LCD_Data			P1  					//P1口
#define Write				0x00					//低電平寫入
#define	Read				0x01					//高電平讀出
#define	Data				0x01					//高電平選擇數(shù)據(jù)
#define	Cmd					0x00					//低電平選擇命令

#define Enable				0x00					//躍變到低電平時執(zhí)行命令 
#define	Disable				0x01    
#define True				0x01
#define	False				0x00
#define LCD_Init			0x38					//初始化模式							
#define LCD_DispCtr    		0x0C					//開顯示及光標(biāo)設(shè)置
#define LCD_CloseCtr		0x08					//關(guān)顯示
#define LCD_CLS        		0x01					//清屏幕
#define LCD_EnterSet   		0x06					//顯示光標(biāo)  
#define Busy				P1_7					//忙信號


//測速/測距/測時模塊
#define CircleLength		0x0C					//小車轉(zhuǎn)一輪的長度為12cm

//控速模塊
#define P00					P0_0  
#define LowSpeedHighTime 	0x04
#define HighSpeedHighTime	0x08 



/*--------------------------------------------------*/

/*--------------------全局函數(shù)----------------------*/
//LCD顯示模塊
void LCDInit(void);									//LCD初始化
void SetWriteCmd(void);								//設(shè)置寫命令模式
void SetReadCmd(void);								//設(shè)置讀命令模式
void SetWriteData(void);							//設(shè)置寫數(shù)據(jù)模式
void WriteCmd(char cmd);							//寫命令
void WriteData(char ddata);							//寫數(shù)據(jù)
void ExecuteCmd(void);								//執(zhí)行命令
void SetXY(char x,char y);							//定位顯示地址
void DisplaySingleChar(char x,char y,char cchar);	//顯示單個字符
void DisplayString(char x,char y,char *str); 		//顯示一段字符串
void Delay(unsigned int time);						//延時主程序
void DelayUs(unsigned int time);					//延時子程序
bit  IsBusy(void);									//判斷忙標(biāo)志函數(shù)
void DisplayTime(void);								//顯示時間
void DisplaySpeedANDDistance(void);					//顯示速度和時間
void DisplayAverageSpeed(void);						//顯示平均速度


//測速/測距/測時模塊					 	
void INTInit(void);				          			//所有中斷初始化
void Clock0_Init(void);					  			//時鐘0中斷初始化
void SpeedINT(void);					   			//測速中斷
void Time0INT(void);					  			//測速單位時間中斷

//控速模塊
void CtrSpeedINT(void);            		 			//控速中斷
void Time1INT(void);				       			//控速單位時間中斷
void Clock1_Init(void);             	   			//時鐘1中斷初始化
void CtrSpeed(void);

/*--------------------------------------------------*/


/*--------------------全局變量----------------------*/
char SpeedCount = 0;			      				//測速計數(shù)脈沖
char SpeedStr[] = "V:";					    		//速度提示符
char SpeedUnitStr[] = "cm/s";                       //速度單位提示符
int  Speed = 0;										//速度顯示
char TimeStr[] = "T:";								//小車行走時間提示符
char TimeUnitStr[] = "s";                           //時間單位提示符
int  Time0INTCount = 0;              				//T0中斷時間計時
char DistanceStr[] = "S:";                	        //行走路程提示符
char DistanceUnitStr[] = "cm";                      //路程單位提示符
int  Distance = 0;                 					//行走路程

char Time;							   				//高電平持續(xù)時間變量
char Period=0x0A;									//輸出方波周期
char Area=0;										//區(qū)域變量
char HighTime;										//高電平持續(xù)時間
char Time1INTCount=0;								//T1中斷時間計時 
char PassTime=0;									//小車行走的時間
char DisplaySwitch=0;								//顯示切換變量
bit  IsT0INT;									    //判斷T0是否已經(jīng)響應(yīng)中斷

char Maker[]="106Pro";								    //制作單位名稱
int  AverageSpeed;

/*---------------------主函數(shù)-----------------------*/
void main()
{
	INTInit();										//初始化所有中斷
	Clock0_Init();                 					//初始化時鐘中斷0
	Clock1_Init();      							//初始化時鐘中斷1
	Delay(40);										//延時等待LCD啟動
	LCDInit();										//初始化LCD
	DisplayString(0x0A,0,TimeStr);				    //顯示時間提示符
	DisplayString(0x0F,0,TimeUnitStr);
	DisplayString(0,0,SpeedStr);					//顯示速度提示符
	DisplayString(0x05,0,SpeedUnitStr);
	DisplayString(0,1,DistanceStr);			        //顯示路程提示符
	DisplayString(0x06,1,DistanceUnitStr);
	DisplayString(0x0A,1,Maker)	;					//顯示制作單位
	while(1)
	{
		if (IsT0INT==1 && Area>=1 && Area<6)
			DisplayTime();
	    if (IsT0INT==1 && Area>=6)
			{
			DisplayAverageSpeed();
			EX0=0;
			ET0=0;
			P00=0;
			}
	}
	while(1);										//等待中斷,循環(huán)處理
}



void LCDInit(void)
{
    //三次顯示模式設(shè)置
	LCD_Data=0;
	LCD_E=Disable;
	Delay(5);
	WriteCmd(LCD_Init);
	Delay(5);
	WriteCmd(LCD_Init);
	Delay(5);
	WriteCmd(LCD_Init);

	WriteCmd(LCD_Init);	   							//初始化
	WriteCmd(LCD_CloseCtr);							//關(guān)顯示
	WriteCmd(LCD_CLS);								//清屏幕
	WriteCmd(LCD_EnterSet);							//光標(biāo)移動設(shè)置
	WriteCmd(LCD_DispCtr);							//顯示開以及光標(biāo)設(shè)置
	
}

void SetWriteCmd(void)
{
	LCD_RW=Write;
	LCD_RS=Cmd;
}

void SetReadCmd(void)
{
	LCD_RW=Read;
	LCD_RS=Cmd;
}

void SetWriteData(void)
{
	LCD_RW=Write;
	LCD_RS=Data;
}


void WriteCmd(char cmd)
{
	while(IsBusy());
	LCD_Data=cmd;	
	SetWriteCmd();
	ExecuteCmd();
}

void WriteData(char ddata)
{
	while(IsBusy());
	LCD_Data=ddata;
	SetWriteData();	
	ExecuteCmd();
}

void ExecuteCmd(void)
{
	LCD_E=Enable;
	LCD_E=Disable;
}

void SetXY(char x,char y)
{
	if (y)
		x|=0x40;
	x|=0x80;
	Delay(5);
	WriteCmd(x);

}

void DisplaySingleChar(char x,char y,char cchar)
{
	SetXY(x,y);
	WriteData(cchar);	
}

void DisplayString(char x,char y,char *str)
{
	while(*str)
	{
		Delay(5);
		DisplaySingleChar(x++,y,*str);
		str++;
	}
}

void Delay(unsigned int time)
{
    unsigned int timeCounter = 0;
	for (timeCounter = time;timeCounter > 0 ;timeCounter --)
		DelayUs(255);
}

void DelayUs(unsigned int time)
{
	unsigned int timeCounter = 0;
	for (timeCounter = 0;timeCounter < time;timeCounter ++)
		_nop_();
}

bit IsBusy(void)
{
	LCD_Data=0xFF;
	SetReadCmd();
	ExecuteCmd();
	return (bit)(P1 & 0x80);	
}

void INTInit(void)
{
	EA=1;			//開總中斷
	EX0=1;			//開INTO中斷
	IT0=1;			//INTO邊沿觸發(fā)
	PX0=1;          //INTO優(yōu)先級為高級
	EX1=1;			//開INT1中斷
	IT1=1;			//INT1邊沿觸發(fā)
	PX1=1;          //INT1優(yōu)先級為高級
	
	TMOD=0x01;		//T0定時方式1
	ET0=0x01;		//開T0中斷
	ET1=0x01;       //開T1中斷
	

	Time=0;
	HighTime=LowSpeedHighTime;

}

/*-----------------中斷處理----------------------*/

void SpeedINT(void) interrupt 0 using 0
{
	SpeedCount++;	 	
}

void Time0INT(void) interrupt 1 using 1
{
	Clock0_Init();
	Time0INTCount++;
	if (Time0INTCount == 20)   	        			     //1S時間到
	{
		EX0=0x00;              							//關(guān)INT0中斷
		IsT0INT=1;
	    DisplaySpeedANDDistance();
	    SpeedCount=0;
	    Time0INTCount=0;			       				  //計數(shù)清0
		EX0=0x01;										//重開INT0
	}
														  
}

void CtrSpeedINT(void) interrupt 2 using 2
{
	TR1=0x00;										//關(guān)閉T1計時
	Area++;
	if (Area==2)   		              	 			//區(qū)域1--低速區(qū)
		HighTime=LowSpeedHighTime;		
	else if (Area==3)								//區(qū)域2--高速區(qū)
		HighTime=HighSpeedHighTime;			  
	else if (Area==4)			    	  			//區(qū)域3--低速區(qū)
	 	HighTime=LowSpeedHighTime;		 	
	else if (Area>4 && Area<6)
		HighTime=LowSpeedHighTime;
	else 
		HighTime=0;			                        //經(jīng)過3個區(qū)域后停止
	if (Area<6)
		TR1=0x01;								    //重新開啟T1	
}

void Time1INT(void) interrupt 3 using 3
{
	Clock1_Init();
	CtrSpeed();
}

void Clock0_Init(void)
{
	TR0=0x01;		//啟動T0
	TH0=0x3C;		//定時初值				   		
	TL0=0x0B0;		
}

void Clock1_Init(void) 
{
	TR1=0x01;       //啟動T1
	TH1=0x3C;		//定時初值
	TL1=0x0B0;
}

void DisplayTime(void)
{
	char PassTime1=0x30;
	char PassTime2=0x30;
	IsT0INT=0;
	PassTime++;
	PassTime1+=(PassTime%10);
	if (PassTime > 9)
		PassTime2+=(PassTime/10);

	DisplaySingleChar(0x0D,0,PassTime2);		     
	DisplaySingleChar(0x0E,0,PassTime1);
}

void CtrSpeed(void)
{	
	//方波控制--速度控制
	if (++Time==HighTime)		  
		P00=0;
    if (Time==Period)
	{
		P00=1;
		Time=0;
	}		
}

void DisplaySpeedANDDistance(void)
{
	char Speed1=0x30;							         //初始化為0的ASCII碼
	char Speed2=0x30;
	char Distance1=0x30;
	char Distance2=0x30;
	char Distance3=0x30;
	char Distance4=0x30;
	Speed=SpeedCount*CircleLength;							 //計算速度
	Speed1+=(Speed%10);                  		     //取個位數(shù)
	Speed2+=(Speed/10);			   					 //取十位數(shù)
	
	Distance+=Speed;              					 //路程計算
	
	Distance1+=(Distance%10);
	Distance4+=(Distance/1000);
		
	if (Distance > 99)
		Distance2+=(Distance/10%10);
	else 
     	Distance2+=(Distance/10);

    if (Distance > 999)
		Distance3+=(Distance/100%10);
	else 
     	Distance3+=(Distance/100);
        
					   		 
	DisplaySingleChar(0x3,0,Speed2); 				  //顯示速度
	DisplaySingleChar(0x4,0,Speed1);  
	
	DisplaySingleChar(0x02,1,Distance4);			 
	DisplaySingleChar(0x03,1,Distance3);        	  //顯示路程		 
	DisplaySingleChar(0x04,1,Distance2);
	DisplaySingleChar(0x05,1,Distance1);			 

	
}

void DisplayAverageSpeed(void)
{
    char AverageSpeed1=0x30;							         //初始化為0的ASCII碼
	char AverageSpeed2=0x30;
	AverageSpeed=Distance/PassTime%100;
	AverageSpeed1+=(AverageSpeed%10);                  		     //取個位數(shù)
	AverageSpeed2+=(AverageSpeed/10);	
	
	DisplaySingleChar(0x3,0,AverageSpeed2); 				   //顯示平均速度
	DisplaySingleChar(0x4,0,AverageSpeed1);

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕亚洲欧美在线不卡| 免费在线观看精品| 欧美电视剧免费观看| 99精品视频在线观看| 天天操天天综合网| 久久久国际精品| 欧美日韩视频在线观看一区二区三区 | 欧美一a一片一级一片| 亚洲综合一区二区精品导航| 久久久噜噜噜久久人人看| 欧美人牲a欧美精品| 粉嫩一区二区三区在线看| 亚洲精品v日韩精品| 久久影院视频免费| 一本久久a久久免费精品不卡| 亚洲一区二区三区四区不卡| www亚洲一区| 欧美日韩在线精品一区二区三区激情 | 国产精品国产三级国产普通话99 | 午夜精品aaa| 亚洲免费在线观看| 久久久亚洲精品石原莉奈| 91精品久久久久久久99蜜桃 | 老鸭窝一区二区久久精品| 亚洲国产精品一区二区久久恐怖片| 国产日韩欧美高清在线| 日韩精品一区二区三区中文不卡 | 国产精品99久| 青青草国产成人av片免费| 视频一区免费在线观看| 亚洲激情自拍视频| 欧美激情一区三区| 精品国产99国产精品| 91麻豆精品国产自产在线 | 久久99国内精品| 同产精品九九九| 亚洲一线二线三线视频| 日韩精品一二三区| 美女www一区二区| 亚洲情趣在线观看| 亚洲电影激情视频网站| 免费在线观看成人| 国产成人欧美日韩在线电影| 国产精品亚洲成人| 不卡的av网站| 在线观看视频91| 欧美精品1区2区3区| 日韩欧美高清dvd碟片| 欧美视频一区二区在线观看| 91.com在线观看| 日韩欧美国产麻豆| 久久精品亚洲国产奇米99 | 日韩欧美一级二级| 日韩精品最新网址| 国产色产综合产在线视频| 久久综合九色综合欧美就去吻| 精品免费视频.| 欧美激情一区二区三区蜜桃视频| 国产日产欧美一区| 亚洲综合一区二区三区| 日韩电影网1区2区| 日韩va欧美va亚洲va久久| 国产乱子轮精品视频| 91视频在线观看免费| 69久久夜色精品国产69蝌蚪网| 精品国产一区久久| 亚洲一卡二卡三卡四卡无卡久久| 毛片基地黄久久久久久天堂| 国产成人午夜精品5599 | 欧美色窝79yyyycom| 精品国产91久久久久久久妲己 | 2021国产精品久久精品| 亚洲欧美视频在线观看视频| 日本中文字幕一区| 国产麻豆91精品| 99麻豆久久久国产精品免费优播| 9191国产精品| 亚洲视频在线观看三级| 麻豆精品久久精品色综合| 国产成人无遮挡在线视频| 寂寞少妇一区二区三区| 欧美日韩综合不卡| 久久日一线二线三线suv| 亚洲综合成人网| 欧美日韩一区二区不卡| 欧美裸体一区二区三区| 欧美国产97人人爽人人喊| 日韩国产高清影视| 色狠狠av一区二区三区| 91精品国产色综合久久久蜜香臀| 国产婷婷色一区二区三区四区| 丝袜脚交一区二区| 91美女福利视频| 精品国产乱码久久久久久浪潮| 一区二区三区加勒比av| www.亚洲在线| 欧美一区二区三区精品| 欧美精选在线播放| 亚洲欧美中日韩| 99精品久久免费看蜜臀剧情介绍| 精品欧美一区二区在线观看| 中文字幕亚洲一区二区av在线| 韩国精品主播一区二区在线观看| 在线不卡的av| 又紧又大又爽精品一区二区| 不卡一区中文字幕| 欧美日韩日日夜夜| 国产视频一区不卡| 蜜臀99久久精品久久久久久软件| 欧美精品成人一区二区三区四区| 亚洲免费电影在线| 色综合久久中文综合久久97| 91精品国产入口| 亚洲人成小说网站色在线| 婷婷久久综合九色综合伊人色| 91国产丝袜在线播放| 久久久久久**毛片大全| 久久99国内精品| 精品精品国产高清a毛片牛牛| 香蕉加勒比综合久久| 国产精品99久久久久久似苏梦涵| 7777精品伊人久久久大香线蕉完整版 | 国产91丝袜在线观看| 精品国产免费人成在线观看| 久久蜜桃av一区精品变态类天堂 | 欧美一区二区精品在线| 一区二区三区不卡视频| 99久久99久久久精品齐齐| 日韩色在线观看| 日韩激情一二三区| 日韩欧美一二三| 国产精品资源在线看| 欧美激情一区不卡| 91黄色在线观看| 午夜精品久久久久久久久久| 欧美一级淫片007| 男女性色大片免费观看一区二区| 日韩免费一区二区三区在线播放| 久久激情五月激情| 国产精品国产三级国产普通话三级 | 久久久精品国产99久久精品芒果 | 亚洲国产成人va在线观看天堂| 色综合久久中文字幕| 视频一区中文字幕国产| 久久久亚洲高清| 国产成人精品免费网站| 亚洲欧美电影一区二区| 欧美三级中文字幕| 亚洲国产精品久久一线不卡| 日韩欧美中文字幕精品| 成人黄页毛片网站| 一区二区三区日韩精品视频| 日韩欧美国产综合| 色综合中文字幕| 亚洲国产精品一区二区www| 精品毛片乱码1区2区3区| 成人ar影院免费观看视频| 亚洲蜜桃精久久久久久久| 欧美私人免费视频| 国产精品一色哟哟哟| 亚洲午夜激情av| 欧美国产精品v| 日韩视频在线永久播放| 成人性生交大片免费看视频在线| 亚洲一区免费在线观看| 精品噜噜噜噜久久久久久久久试看 | 久久99久久久久| 一区二区三区四区视频精品免费| 91精品国产综合久久精品| 色婷婷激情久久| 成人动漫中文字幕| 精品亚洲成a人| 亚洲一二三四在线观看| 欧美一区二区美女| 色综合久久综合网97色综合| 精品一区二区三区在线播放| 亚洲电影一区二区| 亚洲综合在线视频| 国产精品久久久久天堂| 欧美一区二区三级| 国产98色在线|日韩| 亚洲va国产va欧美va观看| 中文字幕在线不卡视频| 欧美videofree性高清杂交| 欧美日韩精品专区| 一本久道久久综合中文字幕| 男男视频亚洲欧美| 亚洲国产日韩a在线播放性色| 国产农村妇女精品| 精品国产髙清在线看国产毛片| 91麻豆高清视频| 成人一区二区三区在线观看| 国产精品一卡二| 国产原创一区二区三区| 午夜精品一区二区三区电影天堂| 国产精品大尺度| 亚洲精品免费一二三区| 国产精品盗摄一区二区三区| 国产精品久久久久久久久果冻传媒| 欧美成人一区二区三区片免费|