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

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

?? main.c

?? 單片機與計算機的通訊應用程序,運行KEIL C51軟件,可以直接使用!
?? C
字號:
/*
   //*************************************************************************
   //
   //                  串口輸入輸出控制器
   //
   //           COPYRIGHT (c)   2005 BY 11 
   //                     --  ALL RIGHTS RESERVED  --
   //
   // File Name:	main.c
   // Created:		2005.7.4
   // Modified:		2005.7.5
   // Revision:		1.0
   //
   //*************************************************************************
   // 芯片類型 AT89S51
   //*************************************************************************
*/

#include <at89x52.h>
#include <INTRINS.H>

void InitCom(void);
void ComOutChar(unsigned char OutData);
void PackCheck(void);
void SendErrMsg(void);
void SendCRCMsg(void);
void SendTeMsg(void);
void SendNSMsg(void);
void RunPack(void);
void CheckID(void);
void SendPack(void);
void Write(void);
void Read(void);

static unsigned char Pack[9]; //數據包數組
static unsigned char PN = 0; //接收指針
static unsigned char TN = 0; //超時標識
static unsigned char SN = 0;	
unsigned char code SNID[] = {"SN0001"}; //固件的序列號

void main(void)
{
	unsigned int a;

	InitCom();
	do
		{	
			for (a=0; a<30000; a++)
				P3_6 = 1;
			for (a=0; a<30000; a++) //指示燈閃動
				P3_6 = 0;
		}
	while(1);
}

//串口初始化 晶振為11.0592M 方式1 波特率57600
void InitCom(void)
{
	SCON = 0x50; //串口方式1,允許接收
	TMOD = 0x21; //定時器1定時方式2,定時0為模式1,16位模式
	TCON = 0x40; //設定時器1開始計數
	TH1 = 255;	//設波特率為57600
	TL1 = 255;
	PCON = 0x80; //波特率加倍控制,SMOD位
	RI = 0;	//清收發標志
	TI = 0;
	TR1 = 1; //啟動定時器
	EA = 1; //開總中斷
	ES = 1; //開串口中斷
}


//向串口輸出一個字符(非中斷方式)
void ComOutChar(unsigned char OutData)
{
	SBUF = OutData; //輸出字符
	while(!TI); //空語句判斷字符是否發完
	TI = 0; //清TI
}

//串口接收中斷
void ComInINT(void) interrupt 4
{
	if (RI) //判斷是不是收完字符
		{
			ET0 = 0; //開定時中斷
			TR0 = 0;
			TN = 0; //接收超時變量清零
			RI = 0; //RI清零
			Pack[PN] = SBUF; //存數據
			PN++;  //指針加1
			if (PN == 9)
				{
					PN = 0; //指針清零 一幀數據收完后
					PackCheck(); //調用數據包檢查
				}
			else
				{
					TH0 = 0x70; //設定時值,收到數據時設定時值
					TL0 = 0x43;
					ET0 = 1; //定時器中斷0開
					TR0 = 1; //啟動定時器 定時器用于在一幀數據接收時如有丟包則返回錯誤信息12個0xEE
				}
		}
}

//定時器中斷用于處理丟包
void Timer0(void) interrupt 1
{
	if (TN>2) // 幀中的兩字符間隔tn*40ms則為出錯
		{
			ET0 = 0;
			TR0 = 0; //關定時中斷

			SendTeMsg(); //發送超時錯誤信息
			PN = 0; //pack指針清零
			TN = 0;
		}
	else
		TN++;		
}

//信息包校驗
void PackCheck(void)
{
	unsigned char CRCL = 0, CRCH = 0; //CRC高低字節暫存
	unsigned char TempCyc;
	
	for (TempCyc=0; TempCyc<7; TempCyc++)
		{
			CRCL = CRCL + Pack[TempCyc]; //把信息包中的前十個相加
			if (CY) //當CRCL大于0xFF時,CY為1
				CRCH++; //CY為1時CRCH加1
		}
	if ((CRCL == Pack[8]) && (CRCH == Pack[7]))
		RunPack(); //校驗正確時執行包
	else
		SendCRCMsg(); //CRC校驗不對時,這個包將不執行,并向PC發送CRC錯誤信息		
}

//發送SN錯誤信息
void SendErrMsg(void)
{
	ComOutChar(0x0A);
}

//發送命令完成
void SendOKMsg(void)
{
	ComOutChar(0x0B);
}

//發送CRC錯誤
void SendCRCMsg(void)
{
	ComOutChar(0x0C);
}

//發送超時錯誤
void SendTeMsg(void)
{
	ComOutChar(0x0D);
}


//發送命令不支持錯誤
void SendNSMsg(void)
{
	ComOutChar(0x0E);
}

//運行信息包
void RunPack(void)
{
	switch(Pack[0])
		{
			case 1: CheckID(); 	break;
			case 2: Write();   	break;
			case 3: Read();	break;
			default: SendNSMsg(); //命令不支持
		}
}

//校驗序列號
void CheckID(void)
{
	unsigned char TempCyc;
	for (TempCyc=1; TempCyc<7; TempCyc++)
		{
			if (SNID[TempCyc-1]!=Pack[TempCyc])
				{
					TempCyc=7; //如有一個不對時跳出循環
					SN = 0;
				}
			else
				{
					SN = 1;
				}
		}
	if (SN)
		SendOKMsg(); //返回OK
	else
		SendErrMsg(); //發送SN錯誤信息
}

//發送信息包
void SendPack(void)
{
	unsigned char CRCL = 0, CRCH = 0; //CRC高低字節暫存
	unsigned char TempCyc;
	
	for (TempCyc=0; TempCyc<7; TempCyc++)
		{
			CRCL = CRCL + Pack[TempCyc]; //把信息包中的前十個相加
			if (CY) //當CRCL大于0xFF時,CY為1
				CRCH++; //CY為1時CRCH加1
		}
	Pack[7] = CRCH;
	Pack[8] = CRCL; //計算要發送的信息包CRC
	for (TempCyc=0; TempCyc<9; TempCyc++)
		ComOutChar(Pack[TempCyc]); //發送錯誤信息包
}

//寫命令的信息包處理
void Write(void)
{
if (SN)
{
	switch(Pack[1])  //0為P0,1為P1,2為P2,3為關閉所有
		{
			case 0:
				P0 = Pack[2];
				SendOKMsg();
			break;
			case 1:
				P1 = Pack[2];
				SendOKMsg();
			break;
			case 2:
				P2 = Pack[2];
				SendOKMsg();	
			break;
			case 3:
				P0 = 0xFF;
				P1 = 0xFF;
				P2 = 0xFF;
				SendOKMsg();
			break;
			case 4:
				P0 = 0x00;
				P1 = 0x00;
				P2 = 0x00;
				SendOKMsg();
			break;
			default: SendNSMsg();
		}
}
else
{
	SendErrMsg();
}
}


//跟據相應的芯片類型去讀芯片
void Read(void)
{
if (SN)
{
	switch(Pack[1])  //0為P0,1為P1,2為P2,3為返回全部
		{
			case 0:
				Pack[1] = P0;
				Pack[2] = 0;
				Pack[3]	= 0;
				SendPack();
			break;
			case 1:
				Pack[1] = 0;
				Pack[2] = P1;
				Pack[3]	= 0;
				SendPack();
			break;
			case 2:
				Pack[1] = 0;
				Pack[2] = 0;
				Pack[3]	= P2;
				SendPack();
			break;
			case 3:
				Pack[1] = P0;
				Pack[2] = P1;
				Pack[3]	= P2;
				SendPack();
			break;
			default: SendNSMsg();
		}
}
else
{
	SendErrMsg();
}
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av资源下载| 欧美色中文字幕| 粉嫩嫩av羞羞动漫久久久| 91免费看片在线观看| 欧美精品免费视频| 精品国偷自产国产一区| 国产日韩精品一区| 一区二区三区日本| 日本女人一区二区三区| 丁香婷婷深情五月亚洲| 久久影院视频免费| 一区二区三区中文字幕| 91黄视频在线观看| 欧美成人bangbros| 一区二区三区免费网站| 色偷偷成人一区二区三区91| 精品国产百合女同互慰| 精品中文av资源站在线观看| 色先锋资源久久综合| 亚洲女同一区二区| 精品无码三级在线观看视频| 精品国产成人在线影院 | 日韩中文字幕av电影| 国产精品1区二区.| 欧美视频完全免费看| 亚洲第一久久影院| 国产1区2区3区精品美女| 中文字幕不卡的av| 黄色日韩网站视频| 欧美高清hd18日本| 久久精品久久综合| 欧美美女激情18p| 日本三级亚洲精品| 337p日本欧洲亚洲大胆精品| 国产91精品一区二区麻豆网站 | 国产一区视频在线看| 欧美日产国产精品| 一区二区三区日韩欧美精品 | 色94色欧美sute亚洲线路一久 | 日韩国产欧美在线播放| 精品av久久707| 成人国产精品免费观看视频| 亚洲美女屁股眼交3| 91精品国产色综合久久| 亚洲欧美日韩中文字幕一区二区三区| 91老司机福利 在线| 天堂影院一区二区| 久久久一区二区| 蜜桃av噜噜一区二区三区小说| 在线观看欧美日本| 亚洲欧美日韩久久| 欧美情侣在线播放| 国产精品亚洲人在线观看| 亚洲天堂2016| 99国产精品久| 亚洲蜜桃精久久久久久久| 777午夜精品免费视频| 午夜av一区二区三区| 欧美性猛交xxxx乱大交退制版| 麻豆一区二区99久久久久| 国产精品福利影院| 成人久久18免费网站麻豆| 日本一区二区三区电影| 欧美系列日韩一区| 国产福利一区在线观看| 国产欧美日韩麻豆91| 欧美日韩在线精品一区二区三区激情| 亚洲国产成人va在线观看天堂| 在线视频你懂得一区| 激情综合色播激情啊| 亚洲人精品一区| 欧美videos中文字幕| 91老师国产黑色丝袜在线| 蜜臀av一区二区三区| 亚洲视频在线观看三级| 精品乱人伦小说| 欧美伊人精品成人久久综合97| 国产激情视频一区二区三区欧美| 亚洲免费电影在线| 欧美老肥妇做.爰bbww视频| 国产大陆精品国产| 亚洲福利视频三区| 国产午夜精品一区二区| 亚洲区小说区图片区qvod| 欧美大片一区二区| 精东粉嫩av免费一区二区三区| 中文字幕一区在线观看视频| 91丨porny丨国产入口| 蜜桃视频一区二区| 亚洲欧美一区二区三区孕妇| 欧美一级片免费看| 99久久精品情趣| 黄页视频在线91| 亚洲电影一区二区| 国产亚洲欧美中文| 欧美猛男超大videosgay| 成人国产电影网| 蜜桃av一区二区在线观看| 国产精品久久夜| 久久久激情视频| 91.麻豆视频| 色国产综合视频| 国产高清成人在线| 日韩国产欧美三级| 亚洲美腿欧美偷拍| 国产精品不卡在线| 26uuu欧美| 欧美巨大另类极品videosbest | 亚洲欧洲无码一区二区三区| 欧美刺激午夜性久久久久久久| 欧美三片在线视频观看| 成+人+亚洲+综合天堂| 美女mm1313爽爽久久久蜜臀| 亚洲一区二区三区四区五区中文| 国产精品拍天天在线| 色999日韩国产欧美一区二区| 丁香六月综合激情| 日韩国产一区二| 日韩高清在线一区| 亚洲在线成人精品| 国产精品白丝在线| 国产日韩三级在线| 日韩欧美你懂的| 欧美一级二级在线观看| 久久精品国产秦先生| 午夜久久久久久| 亚洲男人的天堂网| 国产精品成人一区二区三区夜夜夜| 久久美女艺术照精彩视频福利播放| 日韩视频免费观看高清在线视频| 欧美午夜精品电影| 色天天综合久久久久综合片| 韩国成人福利片在线播放| 麻豆精品久久久| 日韩精品一区第一页| 亚洲国产cao| 亚洲午夜激情av| 一区二区三区欧美亚洲| 中文字幕不卡在线| 综合自拍亚洲综合图不卡区| 亚洲国产高清在线| 亚洲国产激情av| 国产精品久久久久久久久免费相片| 国产欧美一区二区在线观看| 久久久久久9999| 久久久久九九视频| 国产欧美日韩亚州综合| 精品国产百合女同互慰| 欧美电影免费观看高清完整版在线观看 | 亚洲国产精品视频| 亚洲欧美日韩国产综合在线| 亚洲午夜视频在线观看| 夜夜爽夜夜爽精品视频| 亚洲成av人在线观看| 亚洲一区在线免费观看| 亚洲成人免费在线| 免费一级片91| 国产精品色婷婷| 欧美韩国日本不卡| 久久久国产精华| 国产色婷婷亚洲99精品小说| 欧美精品一区二区三区很污很色的| 欧美电视剧在线看免费| 久久久久高清精品| 国产日韩精品视频一区| 亚洲免费av在线| 午夜一区二区三区视频| 日本亚洲视频在线| 精品一区二区免费| 国产福利不卡视频| 91麻豆.com| 欧美日韩国产精品成人| 欧美一个色资源| 精品国产伦一区二区三区观看方式 | 欧美精品精品一区| 在线不卡的av| 久久综合丝袜日本网| 国产精品亲子伦对白| 亚洲宅男天堂在线观看无病毒| 一区二区视频在线| 麻豆精品视频在线观看视频| 国产成人在线观看免费网站| av高清不卡在线| 欧美日韩情趣电影| 欧美r级在线观看| 亚洲欧美日韩系列| 日本欧美一区二区在线观看| 国产乱妇无码大片在线观看| 99国产精品视频免费观看| 91免费版在线| 日韩免费看的电影| 国产精品欧美一区二区三区| 亚洲第一搞黄网站| 国产中文字幕一区| 91色.com| 日韩欧美中文字幕精品| 国产精品久久久爽爽爽麻豆色哟哟| 一区2区3区在线看| 久久精品国产精品青草| 北条麻妃国产九九精品视频|