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

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

?? test.c

?? 測試電動調節閥用處 測試電動調節閥用處
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*====================================================
設計項目:電動調節閥的校驗裝置的測試
單片機:	  AT89S52
連接方式:RS-232C
開發環境:Keil C
設 計 人:祝亮平
======================================================*/
#include <reg51.h>
#include <stdio.h> 
//#include "iic.h" 

#define uchar unsigned char 
#define uint unsigned int 

uint Timer_Pro_Flag=0;       //0為顯示處理,1為時序采集處理 

sbit TEST_CAP_VOL_CRLT=P1^0;//用于控制外部繼電器 
sbit PWM_Pin=P3^7;          //PWM輸出 
sbit IrDA_in_Pin=P1^0;      //紅外脈沖輸入檢測腳
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_0=P3^0;
sbit P3_1=P3^1;
sbit P3_2=P3^2;
sbit P3_3=P3^3;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;  //	設定I/O口各個腳位
 
bit PWMFlag=0; 
uchar OLD_TH0,OLD_TL0; 


#define MAXCMD_LENGTH 7 

#define AD_VOL_PER 1.04058             //正常采集時的電壓校準值 
#define AD_Loop_PickVol_PER 1.04058   //CD4051循環采集時的電壓校準值 
				                
sbit WDTRST=0xA6;           //At89S5x看門狗寄存器 
sbit ADCLK=P2^0; 
sbit ADOUT=P2^1; 
sbit ADCS=P2^2; 
//-------------------------- 
/************CD4051---8選1模擬開關芯片*****************/ 
/* 
|------------------------------------------------------| 
| 4 2 1 | 
|-----------------------------------------------|------| 
|端口 | INH C B A | | | 
|------ 7 6 5 4 3 2 1 0 | 正值 | 取反 | 
| 通道 |--------------------------------|-------|------| 
|------|...............|8 4 2 1 | | | 
|------|---------------|----------------|-------|------| 
| 0 |0 0 0 0 0 0 0 0 | 0x00 | 0xff | 
| 1 |0 0 0 0 0 0 1 0 | 0x02 | 0xf7 | 
| 2 |0 0 0 0 0 1 0 0 | 0x04 | 0xfb | 
| 3 |0 0 0 0 0 1 1 0 | 0x06 | 0xf3 | 
| 4 |0 0 0 0 1 0 0 0 | 0x08 | 0xfd | 
| 5 |0 0 0 0 1 0 1 0 | 0x0A | 0xf8 | 
| 6 |0 0 0 0 1 1 0 0 | 0x0C | 0xf9 | 
| 7 |0 0 0 0 1 1 1 0 | 0x0e | 0xf1 | 
|---------------------------------------|-------|------| 

*/ 
uchar CD4051_NUM[]={0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0e}; //0~7編碼 
sbit CD4051_A=P1^1; 
sbit CD4051_B=P1^2; 
sbit CD4051_C=P1^3; 
sbit CD4051_INH=P1^4; //CD4051_INH為1時,,所有通導都不導通 

bit CD4051_Vol_Conver_Flag=0; //0時為正常采集,1為CD4051循環采集 
//-------------------------- 
//LED顯示 
//-------------------------- 
uchar LedCount=0; 
uchar LED_BIT[5];      //用于顯示的每一位數據碼的內容 
uchar LED_NUM[]={0x00,0x10,0x20,0x40,0x80};   //選擇顯示位 
//-------------------------------------------------------- 

void SendByte(unsigned char word) 
{ 
TI=0; 
SBUF=word; 
while(TI==0); 
TI=0; 
} 

uchar ComBuf[MAXCMD_LENGTH];   //用于保存串口的數據 

/*---少量延時---*/ 
void delay(uint t) 
{ 
uint i=0; 
for(;i<=t;i++); 
} 

void Pluckdelay(uint t) 
{ 
uint i=0,j; 
for(;i<=t;i++) 
for(j=1;j<=1000;j++); 
} 
/*================================= 
ComBuf[5]加入CheckSUM校驗碼 
算法:0x01+not(字節1+字節2+...+字節N) 
=================================*/ 
void SetCheckSUM() 
{ 
ComBuf[5]=0x01+~(ComBuf[0]+ComBuf[1]+ComBuf[2]+ComBuf[3]+ComBuf[4]); 
} 
/*============================================================= 
檢測上位機發送來的ComBuf[5]checksum校驗碼和計算后的是否相等 
正確則返回:1 
錯誤則返回:0 
==============================================================*/ 
bit ISCheckSUM() 
{ 
uchar crc; 
crc=0x01+~(ComBuf[0]+ComBuf[1]+ComBuf[2]+ComBuf[3]+ComBuf[4]); 
if(ComBuf[5]==crc) 
return 1; 
else 
{ 
ComBuf[1]=crc;//如果錯誤,則返回計算后得到的CHECKSUM校驗碼 
ComBuf[2]=ComBuf[5];//返回原來上位機發送來的CHECKSUM校驗碼 
return 0; 
} 
} 

/*----------------------------------- 
* * 
* 等待接收上位機發來的指令 * 
* * 
-------------------------------------*/ 
void WaitComm() 
{ 
uchar n=0; 
RI=0; 
while (1) 
{ 
while(!RI);//等接收數據 
//----------------- 
ComBuf[n]=SBUF; 
RI=0; 
          // SBUF=ComBuf[n]; 
if (ComBuf[n]==0x7e) break;//接收到結束符則退出 
if (n>=MAXCMD_LENGTH) 
n=0;//接收10個字節,如果還沒有接收到0x7e結束符,就重新記錄 
else 
n++; 
} 
} 


/*------------------------------- 
* * 
* 發送combuf數據至上位機 * 
* * 
--------------------------------*/ 
void SendByteArray() 
{ 
unsigned i; 
SetCheckSUM();//加入ComBuf[5]的checkSUM校驗碼 
ComBuf[4]=P0;//取讀本模塊地址 
ComBuf[6]=0x7e;//結束符 
for(i=0;i<=MAXCMD_LENGTH-1;i++) 
{ 
SendByte(ComBuf[i]); 
} 
} 

/*------------------------------- 
* * 
* 送端口狀態至上位機 * 
* * 
--------------------------------*/ 
void GetP0() 
{ 
switch(ComBuf[2]) 
{ 
case 0x00: ComBuf[3]=P0_0; break; 
case 0x01: ComBuf[3]=P0_1; break; 
case 0x02: ComBuf[3]=P0_2; break; 
case 0x03: ComBuf[3]=P0_3; break; 
case 0x04: ComBuf[3]=P0_4; break; 
case 0x05: ComBuf[3]=P0_5; break; 
case 0x06: ComBuf[3]=P0_6; break; 
case 0x07: ComBuf[3]=P0_7; break; 
default: 
ComBuf[3]=P0;   //為8時...則以上傳整個port狀態 
} 
} 
//-------------------- 
void GetP1() 
{ 
switch(ComBuf[2]) 
{ 
case 0x00: ComBuf[3]=P1_0; break; 
case 0x01: ComBuf[3]=P1_1; break; 
case 0x02: ComBuf[3]=P1_2; break; 
case 0x03: ComBuf[3]=P1_3; break; 
case 0x04: ComBuf[3]=P1_4; break; 
case 0x05: ComBuf[3]=P1_5; break; 
case 0x06: ComBuf[3]=P1_6; break; 
case 0x07: ComBuf[3]=P1_7; break; 
default: 
ComBuf[3]=P1;    //為8時...則以上傳整個port狀態 
} 
} 
//---------------------------------- 
void GetP2() 
{ 
switch(ComBuf[2]) 
{ 
case 0x00: ComBuf[3]=P2_0; break; 
case 0x01: ComBuf[3]=P2_1; break; 
case 0x02: ComBuf[3]=P2_2; break; 
case 0x03: ComBuf[3]=P2_3; break; 
case 0x04: ComBuf[3]=P2_4; break; 
case 0x05: ComBuf[3]=P2_5; break; 
case 0x06: ComBuf[3]=P2_6; break; 
case 0x07: ComBuf[3]=P2_7; break; 
default: 
ComBuf[3]=P2;   //為8時...則以上傳整個port狀態 
} 
} 
//--------------------------------- 
void GetP3() 
{ 
switch(ComBuf[2]) 
{ 
case 0x00: ComBuf[3]=P3_0; break; 
case 0x01: ComBuf[3]=P3_1; break; 
case 0x02: ComBuf[3]=P3_2; break; 
case 0x03: ComBuf[3]=P3_3; break; 
case 0x04: ComBuf[3]=P3_4; break; 
case 0x05: ComBuf[3]=P3_5; break; 
case 0x06: ComBuf[3]=P3_6; break; 
case 0x07: ComBuf[3]=P3_7; break; 
default: 
ComBuf[3]=P3;      //為8時...則以上傳整個port狀態 
} 
} 
//-------發送AT89S5x的指定端口狀態到上位機-------- 
void SendPortData() 
{ 
switch (ComBuf[1])       /*Port號*/ 
{ 
case 0x00: GetP0(); break; 
case 0x01: GetP1(); break; 
case 0x02: GetP2(); break; 
case 0x03: GetP3(); break; 
} 

/*--------------------*/ 
SendByteArray();//發送數據 
} 




/*------------------------------- 
* * 
* 各個端口的狀態設定 * 
* * 
--------------------------------*/ 
void SetP0() 
{ 
switch(ComBuf[2]) 
{ 
case 0x00: P0_0=ComBuf[3]; break; 
case 0x01: P0_1=ComBuf[3]; break; 
case 0x02: P0_2=ComBuf[3]; break; 
case 0x03: P0_3=ComBuf[3]; break; 
case 0x04: P0_4=ComBuf[3]; break; 
case 0x05: P0_5=ComBuf[3]; break; 
case 0x06: P0_6=ComBuf[3]; break; 
case 0x07: P0_7=ComBuf[3]; break; 
default: 
P0=ComBuf[3];//為8時...則設置整個port狀態 
} 
} 
//================================= 
void SetP1() 
{ 
switch(ComBuf[2]) 
{ 
case 0x00: P1_0=ComBuf[3]; break; 
case 0x01: P1_1=ComBuf[3]; break; 
case 0x02: P1_2=ComBuf[3]; break; 
case 0x03: P1_3=ComBuf[3]; break; 
case 0x04: P1_4=ComBuf[3]; break; 
case 0x05: P1_5=ComBuf[3]; break; 
case 0x06: P1_6=ComBuf[3]; break; 
case 0x07: P1_7=ComBuf[3]; break; 
default: 
P1=ComBuf[3];//為8時...則設置整個port狀態 
} 
} 
//================================= 
void SetP2() 
{ 
switch(ComBuf[2]) 
{ 
case 0x00: P2_0=ComBuf[3]; break; 
case 0x01: P2_1=ComBuf[3]; break; 
case 0x02: P2_2=ComBuf[3]; break; 
case 0x03: P2_3=ComBuf[3]; break; 
case 0x04: P2_4=ComBuf[3]; break; 
case 0x05: P2_5=ComBuf[3]; break; 
case 0x06: P2_6=ComBuf[3]; break; 
case 0x07: P2_7=ComBuf[3]; break; 
default: 
P2=ComBuf[3];//為8時...則設置整個port狀態 
} 
} 
//================================= 
void SetP3() 
{ 
switch(ComBuf[2]) 
{ 
case 0x00: P3_0=ComBuf[3]; break; 
case 0x01: P3_1=ComBuf[3]; break; 
case 0x02: P3_2=ComBuf[3]; break; 
case 0x03: P3_3=ComBuf[3]; break; 
case 0x04: P3_4=ComBuf[3]; break; 
case 0x05: P3_5=ComBuf[3]; break; 
case 0x06: P3_6=ComBuf[3]; break; 
case 0x07: P3_7=ComBuf[3]; break; 
default: 
P3=ComBuf[3];   //為8時...則設置整個port狀態 
} 
} 

/*================================= 
WritePortData() 

按上位機傳來的格式進行端口的設置 
=================================*/ 
void WritePortData() 
{ 
switch (ComBuf[1])/*Port號*/ 
{ 
case 0x00: SetP0(); break; 
case 0x01: SetP1(); break; 
case 0x02: SetP2(); break; 
case 0x03: SetP3(); break; 
} 
} 

/*---------------------------------- 
* SetEA() * 
* * 
* 中斷允許設定,(EA寄存器) * 
* ComBuf[1]==>0x00為EA設定 * 
* 0x01為讀取EA值 * 
------------------------------------*/ 
void SetEA() 
{ 
if (ComBuf[1]==0x00) 
EA=ComBuf[3]; 
else 
{ 
ComBuf[3]=EA; 
SendByteArray();//發送數據 
} 
}
/*--------------------------------------------------------------- 
* * 
* float型轉為2位char型,并發送至串行 * 
* void Convert_AD_VOL_ValueToChar() * 
* * 
---------------------------------------------------------------*/ 
void Convert_AD_VOL_ValueToChar(uint vol) 
{ 
float temp_float_vol; 
unsigned int temp; 
uchar AD_Hight,AD_Low; 

temp_float_vol=vol*0.0048*AD_VOL_PER; 
temp=temp_float_vol*100; 
AD_Hight=temp /100;         //取個位數 
AD_Low=temp-AD_Hight*100;   //取2位小數 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日产亚洲精品系列| 视频一区在线视频| 午夜精品久久久久久久99樱桃| 久久99国产精品麻豆| 日本韩国一区二区三区| 久久亚洲综合色| 日产欧产美韩系列久久99| 91色视频在线| 国产精品理论片| 国产毛片精品视频| 欧美一区二区三区四区视频| 亚洲一二三四久久| 91网上在线视频| 国产精品每日更新| 国产精品白丝jk白祙喷水网站| 欧美一区二区在线免费播放| 亚洲精品国产精华液| 成人黄色免费短视频| 精品国产凹凸成av人导航| 天天操天天干天天综合网| 日本精品裸体写真集在线观看| 亚洲欧洲日本在线| 99免费精品在线观看| 欧美激情一区二区三区| 国产一区二区三区av电影 | 国产传媒日韩欧美成人| 91超碰这里只有精品国产| 亚洲综合色成人| 色婷婷综合久久久中文一区二区| 欧美国产精品久久| 国产99一区视频免费| 中文一区一区三区高中清不卡| 国产福利不卡视频| 亚洲国产精品国自产拍av| 成人免费视频网站在线观看| 国产视频一区在线观看| 国产成人精品免费网站| 国产精品久久久久久久久搜平片 | 国产精品视频观看| av在线不卡免费看| 亚洲视频小说图片| 日本电影亚洲天堂一区| 亚洲成人第一页| 日韩欧美在线影院| 激情图区综合网| 国产精品国产馆在线真实露脸| aaa亚洲精品| 亚洲已满18点击进入久久| 欧美性极品少妇| 蜜桃在线一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 国产麻豆一精品一av一免费| 自拍偷拍欧美精品| 欧美日韩一区三区四区| 麻豆精品一区二区三区| 国产精品乱码久久久久久| 色综合中文字幕国产| 一区二区三区在线免费播放| 欧美精品v日韩精品v韩国精品v| 老司机精品视频导航| 欧美激情综合五月色丁香 | 99久久精品免费观看| 亚洲精品中文在线| 在线播放欧美女士性生活| 国产成人av电影在线播放| 亚洲裸体xxx| 日韩欧美专区在线| av电影天堂一区二区在线观看| 亚洲成人av中文| 国产欧美日韩卡一| 在线不卡一区二区| 高清不卡在线观看| 日本少妇一区二区| 一色屋精品亚洲香蕉网站| 91精品免费在线观看| 成人app在线| 热久久免费视频| 亚洲视频一区在线观看| 欧美电影免费观看高清完整版在| 99re热视频精品| 韩国精品主播一区二区在线观看| 专区另类欧美日韩| 久久精品日产第一区二区三区高清版 | 日韩不卡一二三区| 国产精品乱子久久久久| 欧美一级淫片007| 91国产免费观看| 成人av第一页| 国产伦精品一区二区三区免费| 天天综合网 天天综合色| 一区在线播放视频| 久久免费国产精品| 日韩免费高清av| 欧美午夜精品一区二区三区 | 国产精品国产三级国产a| 精品国产乱码久久久久久夜甘婷婷 | 欧美日韩国产系列| av一区二区不卡| 国产精品乡下勾搭老头1| 久久精品国产第一区二区三区| 亚洲午夜精品17c| 一区二区三区.www| 亚洲少妇最新在线视频| 成人免费小视频| 国产精品久久久久久久蜜臀 | 色一情一伦一子一伦一区| 成人教育av在线| 国产精品综合av一区二区国产馆| 开心九九激情九九欧美日韩精美视频电影| 亚洲一区二区视频| 一区二区三区在线视频观看 | 欧美在线小视频| 91麻豆福利精品推荐| 91亚洲精品久久久蜜桃| 99久久综合狠狠综合久久| 国产成人啪免费观看软件 | 在线成人免费观看| 日韩一区和二区| 久久九九99视频| 久久久精品综合| 亚洲国产精品传媒在线观看| 国产精品初高中害羞小美女文| 一区在线观看视频| 亚洲一区二区五区| 亚洲mv在线观看| 久久精品二区亚洲w码| 久久国产日韩欧美精品| 国产精品综合一区二区| 国产jizzjizz一区二区| av在线综合网| 在线观看欧美精品| 91精品久久久久久蜜臀| 2017欧美狠狠色| 成人欧美一区二区三区白人 | 国产精品电影一区二区| 亚洲一区二区偷拍精品| 日本va欧美va欧美va精品| 精品一区二区三区视频 | 国产69精品久久久久毛片| 99免费精品视频| 在线电影院国产精品| 久久久美女毛片| 亚洲精品高清在线| 久久成人免费网| 波多野结衣欧美| 欧美久久久久免费| 久久久精品免费免费| 亚洲永久免费视频| 久久99精品久久久久久国产越南| 成人精品国产一区二区4080| 欧美色视频在线观看| 久久影音资源网| 一区二区三区四区不卡在线 | 国产欧美日韩精品在线| 亚洲国产一区二区三区 | 日韩一区二区三区视频| 国产精品久久久久影院色老大| 亚洲裸体在线观看| 国产福利视频一区二区三区| 91视视频在线观看入口直接观看www | 天天影视网天天综合色在线播放| 国产综合色视频| 欧美欧美欧美欧美| 中文字幕巨乱亚洲| 日本人妖一区二区| 91成人免费网站| 日本一二三不卡| 黄一区二区三区| 欧美挠脚心视频网站| 国产精品高潮久久久久无| 成人黄色网址在线观看| 欧美一区二区二区| 午夜影院在线观看欧美| 成人综合婷婷国产精品久久免费| 91麻豆精品国产91久久久更新时间| 国产精品久久久久久久蜜臀| 极品少妇xxxx偷拍精品少妇| 在线播放国产精品二区一二区四区| 国产精品久久久久久久久免费丝袜| 麻豆精品精品国产自在97香蕉| 欧美视频在线观看一区二区| 国产精品久久久久婷婷| 久久99精品久久久久久| 9191成人精品久久| 亚洲一区在线看| 一本色道久久综合亚洲aⅴ蜜桃 | 成人福利视频网站| 精品99一区二区三区| 日本少妇一区二区| 欧美一区中文字幕| 日日摸夜夜添夜夜添精品视频| 色噜噜偷拍精品综合在线| 亚洲日本va午夜在线电影| eeuss国产一区二区三区| 2022国产精品视频| 国内精品伊人久久久久av一坑| 欧美顶级少妇做爰| 日本三级亚洲精品| 欧美一卡2卡3卡4卡| 九九**精品视频免费播放|