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

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

?? pump.#3

?? 畢業(yè)設(shè)計做的東西的硬件程序
?? #3
?? 第 1 頁 / 共 3 頁
字號:
/***********************************************************************************************
模塊名:pump.h
創(chuàng)建人:王恩剛
************************************************************************************************/
/**********************************************頭文件聲明***************************************/
#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  0x004B                   //累計氣泡為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ù)源輸入端,對小氣泡進(jìn)行計數(shù)
sbit INT1=P0^4;				                 //鍵盤中斷
sbit T2EX=P0^5;				                 //由內(nèi)部計數(shù)器2對氣泡檢測脈沖進(jìn)行計數(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;      	                 //步進(jìn)電機時鐘位
sbit SM_EN=P2^3;			                 //L297使能位
sbit SM_CW=P2^4;			                 //L297方向控制位
sbit SM_MODE=P2^5;			                 //L297環(huán)形分配器分配方式控制位
/*******************************************全局變量定義****************************************/
uchar temp[4]={0,1,0,0};	                 //LCD顯示數(shù)字的十進(jìn)制形式
uchar temp2[4]={0,5,0,0};	                 //LCD2顯示數(shù)字的十進(jìn)制形式
uchar Point_Flag;					         //小數(shù)點標(biāo)志位
uchar data l_data[5];                        //用戶自定義LCD緩沖區(qū)
uchar code lcd_data[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; 			                     //步進(jìn)電機轉(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)的步進(jìn)電機的步數(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);	                         //步進(jìn)電機工作狀態(tài)設(shè)置
void T0_Set(void);	                         //定時器T0設(shè)置
void T0_ISR(void);                           //定時器T0中斷服務(wù)函數(shù)
void SM_SR(void);                            //步進(jìn)電機運行停止控制函數(shù)
void DAC0_Set(void);                         //步進(jìn)電機參考電壓設(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中斷允許寄存器進(jìn)行設(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=0;
  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);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区四区| 99久久精品国产网站| 国产精品久久久久影院老司| 日韩欧美国产三级电影视频| 欧美日韩三级视频| 欧美性猛交xxxx黑人交| 91尤物视频在线观看| 99精品在线免费| 国产电影一区二区三区| 亚洲制服欧美中文字幕中文字幕| 综合亚洲深深色噜噜狠狠网站| 久久众筹精品私拍模特| 精品粉嫩超白一线天av| 久久精品一区二区三区不卡牛牛 | 一本到不卡免费一区二区| 福利一区在线观看| 波多野结衣中文字幕一区二区三区 | 在线观看亚洲专区| 色香色香欲天天天影视综合网| 97久久人人超碰| 欧美优质美女网站| 亚洲精品乱码久久久久久黑人 | 日韩一区在线看| 日韩午夜精品视频| 国产日韩欧美亚洲| 亚洲日本在线a| 亚洲高清免费在线| 蜜桃精品视频在线观看| 国产成人精品免费网站| 99久久99久久久精品齐齐| 色综合久久综合网欧美综合网 | 国产精品香蕉一区二区三区| 处破女av一区二区| 精品视频一区三区九区| 精品国产一区久久| 亚洲女与黑人做爰| 国产精品正在播放| 一本色道a无线码一区v| 日韩精品在线一区二区| 中文字幕一区二区三区精华液| 亚洲一区二区三区在线| 青青青伊人色综合久久| 99久久亚洲一区二区三区青草 | 久久国产精品第一页| 波多野结衣中文字幕一区二区三区| 欧美久久久久久蜜桃| 中文字幕在线观看一区| 美女视频黄 久久| 在线看一区二区| 国产亚洲精品资源在线26u| 亚洲麻豆国产自偷在线| 国产一区二区三区香蕉| 91精品办公室少妇高潮对白| 精品视频全国免费看| 国产精品久久久久久久久免费丝袜 | 亚洲一区在线播放| 成人久久18免费网站麻豆 | 欧美日韩国产小视频| 欧美韩国日本不卡| 天天操天天色综合| 91亚洲资源网| 精品国产伦理网| 自拍偷在线精品自拍偷无码专区| 五月婷婷欧美视频| 色综合天天在线| 国产精品黄色在线观看| 国产成人日日夜夜| 久久久久9999亚洲精品| 精品一区二区成人精品| 日韩欧美在线123| 蜜桃av噜噜一区二区三区小说| 欧洲色大大久久| 亚洲综合色噜噜狠狠| 色94色欧美sute亚洲线路一ni | 久久久无码精品亚洲日韩按摩| 一区二区三区加勒比av| 91黄色小视频| 午夜精品久久久久久久| 在线视频观看一区| 亚洲制服丝袜av| 欧美伦理视频网站| 日本欧美在线观看| 欧美精品粉嫩高潮一区二区| 日产国产欧美视频一区精品| 在线观看视频一区二区| 一区二区三区成人在线视频| av网站一区二区三区| 一区二区三区日韩精品视频| 91久久奴性调教| 香蕉久久夜色精品国产使用方法| 欧洲视频一区二区| 日本特黄久久久高潮| 日韩午夜激情av| 丰满少妇久久久久久久| 国产精品久99| 在线观看免费亚洲| 日本欧美久久久久免费播放网| 欧美夫妻性生活| 亚洲成人久久影院| 日韩午夜激情视频| 国产成人免费av在线| 亚洲男人电影天堂| 欧美一区二区三区四区高清 | 国产精品国产精品国产专区不蜜 | 欧美嫩在线观看| 国产乱码精品1区2区3区| 国产精品美女久久久久aⅴ| 91国偷自产一区二区开放时间 | 综合久久国产九一剧情麻豆| 欧美日韩免费视频| 国产69精品久久777的优势| 一区二区三区在线视频免费| 538在线一区二区精品国产| 成人免费视频app| 亚洲第一福利一区| 国产女人aaa级久久久级| 欧美精品久久一区| 99视频在线精品| 午夜日韩在线观看| 亚洲欧美另类综合偷拍| 欧美成人aa大片| 欧美色倩网站大全免费| 国产经典欧美精品| 蜜桃视频免费观看一区| 《视频一区视频二区| 2021中文字幕一区亚洲| 欧美日韩一区高清| 91网站在线播放| 国产mv日韩mv欧美| 国产真实乱偷精品视频免| 一区2区3区在线看| 亚洲人成在线播放网站岛国| 精品国产网站在线观看| 欧美精品自拍偷拍| 色丁香久综合在线久综合在线观看 | 自拍偷自拍亚洲精品播放| 久久这里只有精品视频网| 欧美视频一区二区三区在线观看| 成人激情免费网站| 国产成人欧美日韩在线电影| 蜜臀av一区二区在线观看 | 精品国产三级a在线观看| 欧美性大战久久久久久久| proumb性欧美在线观看| 国产激情视频一区二区三区欧美 | 国产麻豆视频精品| 美女免费视频一区二区| 蜜桃一区二区三区在线观看| 亚洲sss视频在线视频| 亚洲亚洲人成综合网络| 一区二区三区高清| 亚洲第一主播视频| 洋洋成人永久网站入口| 亚洲激情自拍偷拍| 亚洲日本在线天堂| 亚洲美女在线国产| 一级特黄大欧美久久久| 国产精品成人免费精品自在线观看 | 亚洲精品免费播放| 亚洲视频一二三区| 亚洲欧美自拍偷拍| 国产精品美女久久久久久2018| ...中文天堂在线一区| 亚洲日本在线视频观看| 亚洲一区二区三区免费视频| 亚洲国产日韩精品| 美女视频一区二区三区| 国产乱人伦精品一区二区在线观看| 国产一区二区三区四区在线观看| 国产成人av在线影院| youjizz国产精品| 91九色最新地址| 欧美美女视频在线观看| 日韩免费视频线观看| 久久精品夜色噜噜亚洲a∨| 国产女同互慰高潮91漫画| 亚洲免费色视频| 日韩精品视频网| 精品一区二区三区的国产在线播放| 国产一区二区日韩精品| 国产.欧美.日韩| 99精品在线免费| 欧美日韩精品一区二区在线播放| 日韩欧美国产系列| 中文字幕色av一区二区三区| 午夜欧美在线一二页| 韩国理伦片一区二区三区在线播放| 成人免费不卡视频| 欧美精品 国产精品| 国产丝袜欧美中文另类| 亚洲国产综合人成综合网站| 韩日精品视频一区| 99久久99久久精品免费看蜜桃| 3d动漫精品啪啪一区二区竹菊| 欧美高清在线视频| 日韩成人伦理电影在线观看| 国产精品影视在线观看| 91丨九色丨国产丨porny| 欧美一区二区日韩一区二区| 亚洲视频你懂的|