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

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

?? pump.c

?? 畢業(yè)設(shè)計做的東西的硬件程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
/***********************************************************************************************
模塊名:pump.h
創(chuàng)建人:王恩剛
************************************************************************************************/
/**********************************************頭文件聲明***************************************/
#pragma src
#include "C8051F000.h"
#include <intrins.h>

/********************************************變量類型縮略定義***********************************/
#define uint unsigned int                    //縮略定義
#define uchar unsigned char 
#define ulint unsigned long 

/***********************************************常量定義****************************************/
#define Time_1ms    6		                 //時間常量(12M) 6x-x/8
#define Time_5ms    30          
#define Time_10ms   59
#define Time_15ms   88
#define Time_20ms   118
#define Time_50ms   294
#define Time_80ms   470		 
#define Time_100ms  588
#define Time_200ms  1175

#define DAC0_DATA   0x01BC	                 //斬波驅(qū)動參考電壓設(shè)定值
#define DAC1_DATA   0x0C00                   //比較器參考電壓設(shè)定值
#define Delay_STime 0x09C4	                 //檢測到氣泡報警的時間延遲(短)
#define Delay_LTime 0xF424	                 //檢測到氣泡報警的時間延遲(長)
#define Bubble_NUM  0x0001                   //累計氣泡為150個
/*******************************************I/O端口對應(yīng)輸出聲明*********************************/
sbit SDA=P0^0;			                     //SMBUS設(shè)置
sbit SCL=P0^1;				                 //用作T3定時器的自動重載觸發(fā)源
sbit CEX0=P0^2;				                 //PCA第一個比較、捕捉模塊
sbit T1=P0^3;				                 //定時器T1計數(shù)源輸入端,對小氣泡進行計數(shù)
sbit INT1=P0^4;				                 //鍵盤中斷
sbit T2EX=P0^5;				                 //由內(nèi)部計數(shù)器2對氣泡檢測脈沖進行計數(shù)
sbit CNVSTR=P0^6;                            //時鐘輸出
sbit SM_RST=P0^7;			                 //L297復(fù)位控制位
sbit Balarm_flag=P1^0;                       //氣泡報警標(biāo)志位,為1時正常,為0時報警
sbit Heat_flag=P1^1;                         //加熱標(biāo)志位
//sbit SHIFT_DATA=P1^2;                      //移位寄存器串行數(shù)據(jù)輸入位,H時為1,L時為0
sbit DI2PIN=P1^2;							 //LCD2時鐘輸入引腳
sbit Lpower_LED=P1^3;						 //低電壓報警
//sbit SHIFT_CLK=P1^3;                       //移位寄存器時鐘輸入
sbit CLK2PIN=P1^4;							 //LCD2數(shù)據(jù)輸入引腳
//sbit SHIFT_CLR=P1^4;                       //移位寄存器清零端
sbit CLKPIN = P1^5;                          //用戶自定義CLK對應(yīng)引腳
sbit T1IN=P1^6;	                             //定時器T1的輸入
sbit State_LED=P1^7;                         //狀態(tài)標(biāo)志位
sbit DIPIN = P2^0;                           //用戶自定義DI對應(yīng)引腳
sbit SM_CLK1=P2^2;      	                 //步進電機時鐘位
sbit SM_EN=P2^3;			                 //L297使能位
sbit SM_CW=P2^4;			                 //L297方向控制位
sbit SM_MODE=P2^5;			                 //L297環(huán)形分配器分配方式控制位
/*******************************************全局變量定義****************************************/
uchar temp[4];	                             //LCD顯示數(shù)字緩存
uchar temp2[4];	                             //LCD2顯示數(shù)字緩存
uchar code temp_code[4]={0,1,0,0};		     //LCD顯示數(shù)字的十進制形式
uchar code temp2_code[4]={0,5,0,0};		     //LCD2顯示數(shù)字的十進制形式
uchar Point_Flag;					         //小數(shù)點標(biāo)志位
uchar data l_data[5];                        //用戶自定義LCD緩沖區(qū)
uchar lcd_data[10];					         //0~9對應(yīng)的顯示代碼緩存;
uchar code lcd_data_code[10]={0x88,0xbb,0xc1,0x91,0xb2,0x94,0x84,0xb9,0x80,0xb0};  //0~9對應(yīng)的顯示代碼;
uchar code_h;                                //行掃描值
uchar code_l;                                //列掃描值
uchar keycode=0x00;                          //最終鍵值
uint k=0;                                    //LCD顯示段位置序號
uint kk=0;									 //LCD2顯示段位置序號
uint BUFFER; 			                     //步進電機轉(zhuǎn)速控制
uint Buffer_NUM;                             //T0循環(huán)次數(shù)
uint PWM_Width;                              //定時器0溢出周期控制
uint Drop_Num;                               //設(shè)定的液滴數(shù)
ulint Flux_Pulse;                            //設(shè)定的流速對應(yīng)的脈沖數(shù)
ulint All_Pulse;							 //需要產(chǎn)生的全部脈沖數(shù)
float Drop_NStep;    		                 //一滴所對應(yīng)的步進電機的步數(shù)
bit Fluxdrop_Flag;                           //流量和滴速單位標(biāo)志位,為0單位是流量,為1時單位是滴速
bit Speed_Set;                               //流速設(shè)置標(biāo)志位,為0時設(shè)置保存,為1時允許設(shè)置
bit Hold_Flag;                               //鍵盤鎖定標(biāo)志位,為1時鍵盤鎖定,為0時允許鍵盤動作 
bit SR_Flag;                                 // 運行/停止標(biāo)志位,為0時停止,為1時運行
bit PK_Flag;								 //排空標(biāo)志位,為0停止排空操作,為1時開始排空操作
bit Gross_Flag;								 //輸液量設(shè)置標(biāo)志,為1時允許設(shè)置,為0時保存設(shè)置
/******************************************函數(shù)聲明********************************************/
void SYSCLK_Init(void);                      //系統(tǒng)時鐘初始化
void IO_Init(void);		                     //I/O端口設(shè)置初始化
void ISR_Init(void);		                 //系統(tǒng)中斷設(shè)置初始化
void Global_Init(void);                      //全局變量初始化
void Bubble_alarm(void);                     //氣泡檢測報警
void delay( uint t);                         //軟件延遲,(102.647t+2.3646)us
void nop(uint t);                            //軟件短延遲函數(shù)
void pk(void);                               //輸液前的排空操作
void lcdwbit(bit n);                         //LCD位傳輸函數(shù)
void lcdwd(uchar data1);                     //LCD字節(jié)傳輸函數(shù)
void lcdwd1();                               //LCD4段數(shù)據(jù)傳輸函數(shù)
void l_set();                                //各段顯示數(shù)據(jù)設(shè)置
void display();                              //顯示設(shè)置數(shù)據(jù)
void noplay();                               //空白顯示
void lcd2wbit(bit n);                        //LCD2位傳輸函數(shù)
void lcd2wd(uchar data1);                    //LCD2字節(jié)傳輸函數(shù)
void lcd2wd1();                              //LCD2的4段數(shù)據(jù)傳輸函數(shù)
void l2_set();                               //LCD2各段顯示數(shù)據(jù)設(shè)置
void display2();                             //LCD2顯示設(shè)置數(shù)據(jù)
void noplay2();                              //LCD2空白顯示
void SM_Set(void);	                         //步進電機工作狀態(tài)設(shè)置
void T0_Set(void);	                         //定時器T0設(shè)置
void T0_ISR(void);                           //定時器T0中斷服務(wù)函數(shù)
void SM_SR(void);                            //步進電機運行停止控制函數(shù)
void DAC0_Set(void);                         //步進電機參考電壓設(shè)置
void DAC1_Set(void);                         //比較器參考電壓設(shè)置 
void data_inv(void);                         //流量參數(shù)變換
void pulse_inv(void);						 //輸液量參數(shù)變換
void ADC_Set(void);                          //ADC窗口比較器設(shè)置
void ADC_ISR(void);                          //ADC窗口比較器中斷服務(wù)函數(shù)
void T1_Set(void);                           //定時器T1參數(shù)設(shè)置
void T1_ISR(void);                           //定時器T1中斷服務(wù)函數(shù)
void T2_Set(void);                           //定時器T2參數(shù)設(shè)置
void T2_ISR(void);						     //定時器T2中斷服務(wù)函數(shù)
void T3_Set(void);							 //定時器T3參數(shù)設(shè)置
void T3_ISR(void);						     //定時器T3中斷服務(wù)函數(shù)
void PCA_ADC(void);						     //PCA高速輸出方式啟動ADC
void keyinterrupt(void);                     //INT1即鍵盤中斷服務(wù)函數(shù)
void main(void);                             //主函數(shù)
/***************************************函數(shù)定義***********************************************/

/**********************************************************************************************
 函數(shù):void SYSCLK_Init(void)
 說明:系統(tǒng)時鐘初始化,選擇外部12M晶振,關(guān)閉看門狗。
***********************************************************************************************/
void SYSCLK_Init(void)	          
{
int i;                          
WDTCN=0x07;	                                 //最大時間延遲
WDTCN=0xDE;
_nop_();
WDTCN=0xAD;                                  //禁止看門狗中斷	
OSCXCN=0x77;                                 //外部時鐘寄存器設(shè)置
for(i=0;i<256;i++) ;		                 // 至少等待1ms
while(!(OSCXCN&0x80)) ;                      //等待晶振穩(wěn)定,
OSCICN=0x88;                                 // 采用外部晶振作為時鐘源
WDTCN=0xFF;					                 //鎖定看門狗禁止功能禁止,看門狗在程序中一直有效
WDTCN=0xA5;				                     //喂狗
}
/**********************************************************************************************
 函數(shù):void IO_Init()
 說明:I/O端口設(shè)置初始化,內(nèi)部資源和IO端口交叉開關(guān)設(shè)置;輸入和5V輸出采用開漏輸出,3.3V輸出采用
       推挽輸出,允許全局弱上拉
***********************************************************************************************/
void IO_Init()		              
{	
    XBR0 = 0x09;	                          // 交叉開關(guān)設(shè)置
	XBR1 = 0x58;	                          
	XBR2 = 0x41;	
  	PRT0CF = 0x04;                            // 端口輸出方式寄存器設(shè)置 
	PRT1CF = 0xA3;  
	PRT2CF = 0x01;   
	PRT3CF = 0x00;   
}
/**********************************************************************************************
 函數(shù):void ISR_Init(void)
 說明:系統(tǒng)中斷設(shè)置初始化
***********************************************************************************************/
void ISR_Init(void)				  
{ 
  IT1=1;                                      //設(shè)置外部中斷1為下降沿觸發(fā)
  EA=1;                                       //開全局中斷
  EX1=1;                                      //打開外部中斷1
  ET0=1;                                      //定時器0開中斷
  ET1=1;		                              //定時器1開中斷
  PT0=1;                                      //置定時器0中斷為高優(yōu)先級
  PT1=1;                                      //置定時器1中斷為高優(yōu)先級  
  EIP1=0x04;                                  //置ADC0窗口比較器中斷為高優(yōu)先級
//IE=0xAE;									  //或?qū)E中斷允許寄存器進行設(shè)置
  EIE1=0x04;                                  //允許ADC0窗口比較器中斷
  EIE2=0x01;	                              //定時器3開中斷
}
/**********************************************************************************************
 函數(shù):void Global_Init(void)
 說明:全局變量初始化
***********************************************************************************************/
void Global_Init(void)			   
{ P3=0x0F;									  
  Heat_flag=1;
  Fluxdrop_Flag=1;
  Speed_Set=0;
  Lpower_LED=1;
  Hold_Flag=0;
  SR_Flag=0;
  Point_Flag=0x02;
  BUFFER=0;
  Buffer_NUM=1;
  PWM_Width=0x07D0;
  Drop_NStep=50.0;
  SM_CLK1=0;
  SM_RST=0;
  SM_EN=0;
  T1IN=1;									   
  Balarm_flag=1;
  PK_Flag=0;
  State_LED=1;
  Gross_Flag=0;
}
/**********************************************************************************************
 函數(shù):void Bubble_alarm(void)
 說明:氣泡檢測報警、處理
***********************************************************************************************/
void Bubble_alarm(void)				 
{ Balarm_flag=0;
  SR_Flag=0;
  SM_SR();
}
/**********************************************************************************************
 函數(shù):void delay( uint t) 
 說明:延時子程序,延遲時間[(12.144*TIMER1+17.365)*TIMER2+28.375]/f,當(dāng)t=16M時,為(76.9853t+1.7
       734)us,當(dāng)t=12M時,為(102.647t+2.3646)us
***********************************************************************************************/
void delay( uint t)               
{  uint i,j;								 
   for(i=0;i<t;i++)			
      for(j=0;j<100;j++)	
         ;					
}						    
/**********************************************************************************************
 函數(shù):void nop(uint t) 
 說明:軟件短時間精確延時子程序,相當(dāng)于t個空操作
***********************************************************************************************/
void nop(uint t)
{ uint i;
   for(i=0;i<t;i++)
          _nop_();
}
/**********************************************************************************************
 函數(shù):void pk(void) 
 說明:輸液前的排空操作,電機快速轉(zhuǎn)動,迅速排出氣泡
***********************************************************************************************/
void pk(void)                     
{ 
  if(PK_Flag==1)
    {SR_Flag=1;
     SM_SR();
	 }
  else 
    {SR_Flag=0;
	 SM_SR();
	}									 
}
/**********************************************************************************************
 函數(shù):void lcdwbit(bit n) 
 說明:LCD位傳輸函數(shù)
***********************************************************************************************/
void lcdwbit(bit n)                 			
{  DIPIN = n;
   CLKPIN = 1;
   CLKPIN = 0;
   CLKPIN = 1;
}
/**********************************************************************************************
 函數(shù):void lcdwd(uchar data1) 
 說明:LCD字節(jié)傳輸函數(shù)
***********************************************************************************************/
void lcdwd(uchar data1)             			
{  uchar i;
   for(i=0;i<8;i++)
   {  if((data1&0x01)==0x01)
         lcdwbit(1);
      else 
         lcdwbit(0);
      data1>>=1;
   }
}
/**********************************************************************************************
 函數(shù):void lcdwd1(void) 
 說明:LCD4段數(shù)據(jù)傳輸函數(shù)
***********************************************************************************************/
void lcdwd1(void)                     			
{  uchar i;
   for(i=0;i<5;i++) 
      {lcdwd(l_data[i]);
}	   delay(1);}
/**********************************************************************************************
 函數(shù):void l_set(void) 
 說明:各段顯示數(shù)據(jù)設(shè)置,若存在小數(shù)點,則相應(yīng)位的顯示數(shù)據(jù)改變
***********************************************************************************************/
void l_set(void)                        
{uchar i;
 l_data[0]=0xff;
 if(Fluxdrop_Flag)								//判斷是流量還是滴數(shù)模式
    Point_Flag=0xff;
 else
    Point_Flag=2;
 for(i=1;i<5;i++)
   {l_data[i]=lcd_data[temp[i-1]];
   } 
 if(Point_Flag!=0xff)                           
    l_data[(Point_Flag+1)]=l_data[(Point_Flag+1)]&0x7F;  
}
/**********************************************************************************************
 函數(shù):void display(void) 
 說明:顯示設(shè)置數(shù)據(jù)
***********************************************************************************************/
void display(void)                                   
{l_set();
 lcdwd1();
 delay(Time_50ms);
 WDTCN=0xA5;
 delay(Time_50ms);
 WDTCN=0xA5;
  delay(Time_50ms);
 WDTCN=0xA5;
 delay(Time_50ms);
 WDTCN=0xA5;
}
/**********************************************************************************************
 函數(shù):void noplay(void) 
 說明:為實現(xiàn)閃爍,需要一段時間空白顯示
***********************************************************************************************/
void noplay(void)                      		    
{uchar i;
 for(i=1;i<6;i++)
  l_data[i]=0xff;
  lcdwd1();
  delay(Time_50ms);
  WDTCN=0xA5;
  delay(Time_50ms);
  WDTCN=0xA5;
  delay(Time_50ms);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品五月天| 91国产成人在线| 国产精品一区二区在线看| www.欧美.com| 精品国产伦理网| 一区二区三区欧美在线观看| 国产精品一区二区黑丝| 欧美高清你懂得| 亚洲天堂av一区| 国产伦理精品不卡| 欧美精品自拍偷拍动漫精品| 国产精品电影院| 国产剧情一区在线| 日韩国产成人精品| 激情都市一区二区| 欧美一卡2卡3卡4卡| 亚洲小说春色综合另类电影| 国产a精品视频| 国产亚洲一区二区三区在线观看 | 亚洲高清中文字幕| 一本在线高清不卡dvd| 国产日韩欧美综合一区| 韩国精品在线观看| 精品福利视频一区二区三区| 蜜桃一区二区三区四区| 欧美浪妇xxxx高跟鞋交| 亚洲午夜一区二区| 欧美日韩五月天| 亚洲国产cao| 欧美美女bb生活片| 视频一区二区国产| 91精品在线免费| 免费精品99久久国产综合精品| 欧美人妇做爰xxxⅹ性高电影| 一区二区不卡在线视频 午夜欧美不卡在 | 美女视频网站黄色亚洲| 欧美高清视频不卡网| 日本亚洲视频在线| 日韩一区二区电影在线| 麻豆一区二区三区| 久久婷婷一区二区三区| 成人综合日日夜夜| 中文字幕日韩一区| 色一情一乱一乱一91av| 亚洲精品国产品国语在线app| 在线欧美小视频| 天天综合网天天综合色| 日韩精品资源二区在线| 久久精品夜色噜噜亚洲aⅴ| 国产成人午夜99999| 日本一区二区三区在线观看| 不卡av在线网| 亚洲高清免费在线| 日韩欧美不卡在线观看视频| 欧美不卡一区二区| 成a人片国产精品| 亚洲妇女屁股眼交7| 精品国产免费久久| 91美女在线视频| 日韩精品视频网| 国产精品久久久久久久久免费桃花| 91在线看国产| 日本在线播放一区二区三区| 久久久久国产一区二区三区四区| 成人sese在线| 日韩av中文字幕一区二区| 久久你懂得1024| 欧洲在线/亚洲| 精品一区二区三区不卡 | 中文字幕一区二区在线观看 | 精品国产乱子伦一区| 99精品欧美一区二区三区综合在线| 亚洲第一福利视频在线| 久久久精品综合| 欧美年轻男男videosbes| 精品成人一区二区三区| 色婷婷综合久久久中文字幕| 亚洲影视资源网| 国产无遮挡一区二区三区毛片日本| 欧美亚洲国产一区二区三区| 国产一区二区三区视频在线播放| 亚洲一区在线观看免费 | 亚洲一区二区三区三| 一区二区三区鲁丝不卡| 狂野欧美性猛交blacked| 国产精品久久久久久久久图文区 | 麻豆成人av在线| 亚洲男人的天堂在线aⅴ视频| 日韩午夜av电影| 欧美日韩专区在线| 国产91丝袜在线观看| 美腿丝袜在线亚洲一区| 亚洲国产日日夜夜| 亚洲视频一二三| 国产精品区一区二区三区| 日韩欧美一区二区免费| 亚洲综合视频网| 国产精品系列在线| 日韩精品中午字幕| 欧美日韩国产小视频| 色狠狠综合天天综合综合| 成人夜色视频网站在线观看| 麻豆91免费看| 欧美aa在线视频| 三级一区在线视频先锋| 亚洲国产一区二区在线播放| 国产精品国模大尺度视频| 国产亚洲精久久久久久| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | av电影在线观看一区| 国产伦精品一区二区三区视频青涩 | 国产精品自产自拍| 久久成人精品无人区| 久久超碰97中文字幕| 国产精华液一区二区三区| 蜜桃视频免费观看一区| 日本va欧美va欧美va精品| 视频在线观看国产精品| 欧洲国内综合视频| 国产成人av影院| 成人av网站免费观看| 成人av资源站| 91啪亚洲精品| 欧美吞精做爰啪啪高潮| 欧美日本高清视频在线观看| 精品视频全国免费看| 欧美日产在线观看| 日韩写真欧美这视频| 久久综合久久鬼色| 国产欧美va欧美不卡在线| 国产精品久久久久久久久免费相片 | 久久综合久久综合九色| 国产欧美一区视频| 1024成人网色www| 亚洲一区二区欧美| 蜜臀久久久99精品久久久久久| 日本视频一区二区| 国产在线一区二区综合免费视频| 九色综合狠狠综合久久| 成人免费视频国产在线观看| 91热门视频在线观看| 在线成人高清不卡| 久久久久久久综合狠狠综合| 国产精品麻豆99久久久久久| 9191久久久久久久久久久| 久久亚洲二区三区| 亚洲三级久久久| 蜜臀av一区二区三区| 国产成人av影院| 欧美日韩国产综合视频在线观看| 欧美成人艳星乳罩| 日韩一区中文字幕| 午夜精品在线看| 国产成人欧美日韩在线电影| 欧美图片一区二区三区| 欧美不卡一区二区三区| 国产精品久久久久久久久免费桃花| 一区二区三区精密机械公司| 国内精品久久久久影院色| 色播五月激情综合网| 欧美优质美女网站| 欧美日韩久久久久久| 国产日韩欧美不卡在线| 一二三区精品福利视频| 奇米影视一区二区三区小说| 97精品视频在线观看自产线路二| 91精品视频网| 亚洲人吸女人奶水| 国产在线看一区| 7777精品伊人久久久大香线蕉的| 久久久久久免费| 蜜臀av性久久久久蜜臀av麻豆| 91一区在线观看| 国产三区在线成人av| 日韩成人一区二区| 在线免费不卡视频| 国产日韩三级在线| 国产一区二区三区免费播放| 欧美色图第一页| 亚洲色图欧美激情| 国产999精品久久久久久绿帽| 日韩视频中午一区| 亚洲日本免费电影| 99视频国产精品| 国产精品免费观看视频| 国产乱国产乱300精品| 日韩视频免费观看高清完整版在线观看 | 色婷婷亚洲一区二区三区| 久久先锋影音av| 激情文学综合网| 欧美videos大乳护士334| 日韩电影在线免费观看| 欧美视频一区在线| 一区二区三区国产| 97成人超碰视| 亚洲精品免费一二三区| 91同城在线观看| 最新成人av在线| 色999日韩国产欧美一区二区| 亚洲青青青在线视频|