⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 water.h

📁 详细介绍了怎么利用单片机实现自身温度控制的程序!通过了实验验证!效果不错!
💻 H
字号:
#include<aduc842.h>
#include<absacc.h>
#include<intrins.h>
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


#define  uint    unsigned int
#define  uchar   unsigned char


#define nop      _nop_

#define  TsetL  500   //设定温度的下限值为5度
#define  TsetH  3500  //设定温度上限值为35度
#define  LimL   50    //设定最低流量为0.5升
#define  LimH   100   //设定最高流量为1升
#define CUR      		0.0001      //温控恒流源100uA

#define N0   5
#define N2   5
#define N3   5
#define N4   3
#define N5   5
#define N6   5
#define N7   5

uint xdata filter0_buf[N0];
uint xdata filter2_buf[N2];
uint xdata filter3_buf[N3];
uint xdata filter4_buf[N4];
uint xdata filter5_buf[N5];
uint xdata filter6_buf[N6];
uint xdata filter7_buf[N7];
uchar xdata array0,array2,array3,array4,array5,array6,array7;



/* *************************7279 operation *************************************/
#define  CMD_RESET  0xa4
#define  CMD_TEST   0xbf
#define  DECODE0    0x80
#define  DECODE1    0xc8
#define  CMD_READ   0x15
#define  UNDECODE   0x90
#define  RTL_CYCLE  0xa3
#define  RTR_CYCLE  0xa2
#define  RTL_UNCYL  0xa1
#define  RTR_UNVYL  0xa0
#define  ACTCTL     0x98
#define  SEGON      0xe0
#define  SEGOFF     0xc0
#define  BLINKCTL   0x88


/*KEY number*/
#define  KEY_STANDBY  2
#define  KEY_ADD      5
#define  KEY_SUB      3 
#define  KEY_MODE     1
#define  KEY_DISPLAY  0
#define  KEY_ENTER    4   //service

/*LED number */
#define LED_Enter     19
#define LED_Internal  21
#define LED_External  20
#define LED_CW        22
#define LED_Power     10
#define LED_LackWater 11
#define LED_FlowLow   12
#define LED_Fault     13
#define LED_Standby   18


sbit CS    = P0^4;
sbit CLK   = P0^5;
sbit DAT   = P0^6;
sbit KEY   = P0^7;


void delay(uint i);
void long_delay(void);
void short_delay(void);
void send_byte( uchar out_byte);
uchar receive_byte(void);
void write7279(uchar cmd, uchar dta);
uchar read7279(uchar cmd);
void GetFlow();
void GetTemset();
void GetTemTin();
void GetTemTout();
uint  filter(uchar channel);
uint GetADCData(uchar channel);
void TempContral(uint t);
void initlization();
void key_detect();
void key_process(uchar key_number);
void AddProcess(void);
void SubProcess(void);
void AdjustProcess(void);
void ScreenFresh();
void DispPage(uchar page);
void FaultDisp();
void Fault();
void FaultDisp();
void StoreData2();
void RetriveData2();
void ExTempSet();
void Excontrol();
void closeWater();
void Ldelay();
void SendLim();
void SendTout();

/********************************************* 液晶 ********************************************/
//指令集定义
#define	SClear			0x01				//清显示指令
#define	SOrigin			0x80				//屏幕开始处
#define	SEntryMode		0x06				//设置输入模式
#define	SDispOn			0x0c				//设置开显控制
#define	SDispOff		0x08				//设置关显控制
#define	SCursorOn		0x0e				//设置光标显示
#define	SConvertOn		0x0f				//设置光标处反白
#define	SFunSetB		0x30				//功能设定(基本指令)
#define	SFunSetE		0x24				//功能设定(扩充指令)
#define	SFunDrawOn		0x36				//设置绘图功能

//逻辑
#define	OFF			0						//逻辑关
#define	ON			1						//逻辑开

sbit SCLK=P2^0;
sbit SID=P2^1;
sbit SCS=P0^3;



uint  Tout,Tin,Pout,Timernum;
uint Lim=80,Tset=2500,Tc,TsetB;
uchar Moder,Second=0;
uint TL=0;
uint xdata Ni;
uint xdata Rate,T;
uint xdata count=0;
uint xdata NT,N;
uint xdata Toutc,ToutB;


uchar xdata DataChflag = 0; 
uchar I=0;
bit longflag=0;
bit Star=0;						//制冷开启标志位
bit Time=0;
bit Time1=0;
bit Time2=0;
bit Time3=0;
bit Time4=0;
bit Time5=0;
bit begin=1;					//内控按键控制标志位


sbit PWM=P2^7;
sbit WATER=P2^6;               //水泵
sbit Ready=P2^4;				//外控制冷启动端口需确定
sbit water=P2^5;






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -