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

📄 main.c

📁 为苏州一家公司所做的的恒温恒湿车间控制 系统
💻 C
字号:
/*-----------------------------------------------------*
*工 程 名:Assistant.prj	                                
*硬件连接:                                
*程序描述: SD-HC08 模板生成                            
*/
/*[头文件]*/
#include "Includes.h"
//变量定义
INT8U MACHINE_NO=1;        //本机编号
//SCI变量
INT8U ReBuf[];
INT8U SendBuf[];
INT8U ReSendFlag=0;      //接受发送标志(1-接受成功)
INT16U ADValue[22];      //存放22路AD值
INT16U DAvalue[16];      //存放8路DA转换的16位数据
//Key使用变量
INT8U KB_DefValue=0xff;  //键盘定义值
INT8S MoveBtn;           //LCD切屏标志(1-上移;-1-下移)
INT8U CertenFlag=0;      //确定按钮标志(0-上/下移按钮为行切换功能,1-上/下移按钮为温湿度加减按钮)
INT8U CurrentRow=1;      //当前光标所在行

INT8U TimeFlag;          //定时标志字节
//LCD显示和温湿度调节变量
INT8U LcdShowBuff[64]={" 125.3℃(130℃) ""  55.3% ( 55% ) "
                       "  舒适  送风    ""2007.04.03 22:20"};//LCD显示的初始信息    
INT16U BasicT;        //温度设定值(温度范围-40~+140℃)
INT8U SignBT;         //设定温度符号(+/-)
INT8U SignCT;         //当前温度符号
INT16U CurrentT;      //当前温度
INT16U BasicH;        //湿度设定值(范围0~100%)
INT16U CurrentH=2;    //当前湿度
INT8U ColdHotFlag=0;  //当前风机状态(0舒适/1制冷/2制热),
INT8U ColdHot[12]={"舒适制冷制热"};
INT8U Hour[5];        //系统时间(y-m-d-h-s)
//控制信息变量
INT8U WindState;      //风机状态(76排风阀,54送风阀,32新风阀,10回风阀)
INT16U BackWindT;     //回风管温度的数值
INT8U  BackWindST;    //回风管温度的符号
INT16U BackWindH;     //回风管湿度
/*[主函数]*/
void main()
{  
   INT8U buff[2];
   INT8U SendBuff[22];
   INT8U data[3];INT8U buf[6];
   
   INT8U tmp,k; 
   int i,j;
   INT8U cs,channel;   
   
   //各个模块初始化   
   asm("SEI");
   SCIInit();Lcdinit();AD_SPIInit();DA_SPIInit();
   TLV5608Init();KeyInput_Init();
   INTKBSCR&= ~(1<<IntBit); //开放键盘中断(IMASKk=0)
   SCC2|=(1<<5);            //令SCC2.5=1,允许接收中断
   asm("CLI"); 
   //LCD初始化信息----------------------
   Print(CurrentRow,1,">",1);//在当前行显示选中标志'>>'  
   LcdShCh(LcdShowBuff);
   //0:等待接收设定温湿度和系统时间,ReSendFlag=1时执行主循环     
   while(ReSendFlag)
   {     
     //1:Key功能[S]----------------------------------------------------------
     //Key.1:上移按钮标志
     tmp=KB_DefValue&0x20;     
     if(tmp==0) {KB_DefValue|=0xF0;MoveBtn=1;}    
     //Key.2:下移按钮标志      
     tmp=KB_DefValue&0x40;
     if(tmp==0) {KB_DefValue|=0xF0;MoveBtn=-1;}     
     //Key.3:确定按钮
     tmp=KB_DefValue&0x80;              
     if(tmp==0) {KB_DefValue|=0xF0;CertenFlag=(CertenFlag+1)%2;} 
     //Key.4:上移按钮功能  
     if((MoveBtn==1)&&(CertenFlag==0)){MoveBtn=0;UpBtn(&CurrentRow);} 
     //Key.5:下移按钮功能
     if((MoveBtn==-1)&&(CertenFlag==0)){MoveBtn=0;DownBtn(&CurrentRow);} 
     //Key.6:加1
     if(MoveBtn==1&&CertenFlag==1){MoveBtn=0;AddBtn(CurrentRow);}  
     //Key.7:减1  
     if(MoveBtn==-1&&CertenFlag==1){MoveBtn=0;SubBtn(CurrentRow);}  
     ////Key功能[E]--------------------------------------------------------   

   }//[主循环结束]        
}//[main结束]



 /*
 //3.AD采集测试--------------------
  AD_SPIInit();  //初始化SPI模块
 //AD采集测试-------------------------
 while(1)
 {
    //采集2片3542-22路的AD值    
   ADC22P(ADValue);  
   for(i=0;i<10;i++)
   {
     SCISend1(ADValue[i]>>8);
     SCISend1(ADValue[i]);    
   }
   SCISend1('A');
     for(i=0;i<500;i++)
      for(j=0;j<500;j++);             	   
 }
 //------------------------------------  
 */ 
   /*
   //DA转换测试-----------------------
   DA_SPIInit();
   TLV5608Init();
   for(i=0;i<16;i++)
      DAvalue[i]=0x03ff;//1.25V
   DAC(DAvalue);
   //---------------------------------
   */
  
  
 /*
   //RS485测试--------------
   RS485Init();   
   //(1)发送方
   for(i=0;i<1000;i++)
       for(j=0;j<1000;j++);    
   SCISend1(0);
   SCISend1(1);
   SCISend1('A');
   SCISend1(0); 
   //(2)接受方
   while(1)
     {  
       j=SCIRe1(&i); 
       if(j=='A') 
       {  
         SCISend1(j); 
       }
     }
   //RS485------------------
*/

⌨️ 快捷键说明

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