📄 main.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 + -