📄 intermit.c
字号:
/*************************************************************************************************************
* 函数名称 :
* 功能描述 :
* 实际参数 :
* 返回值 :
* 说明 :
**************************************************************************************************************/
#include "define.h"
uchar Int0_Time = 0 ; // 累加定时器0中断
uchar TH0_Dat,TL0_Dat ;
uchar RunLed_Time ; // 运行灯时间
/*************************************************************************************************************
* 函数名称 :
* 功能描述 :
* 实际参数 :
* 返回值 :
* 说明 : 载入中断0初值
**************************************************************************************************************/
void InitialValue0(void)
{
TH0 = TH0_Dat ; /* 载入H初值 */
TL0 = TL0_Dat ; /* 载入L初值 */
}
/*************************************************************************************************************
* 函数名称 :
* 功能描述 :
* 实际参数 :
* 返回值 :
* 说明 : 载入中断0初值
**************************************************************************************************************/
void InitialValue1(void)
{
TH0_Dat = (TIME_S / 256) ; /* 载入H初值 */
TL0_Dat = (TIME_S % 256) ; /* 载入L初值 */
TH0 = TH0_Dat ; /* 载入H初值 */
TL0 = TL0_Dat ; /* 载入L初值 */
}
/*************************************************************************************************************
* 函数名称 :
* 功能描述 :
* 实际参数 :
* 返回值 :
* 说明 : 定时0中断
**************************************************************************************************************/
void timer0_int(void) interrupt 1
{
TH0 += TH0_Dat ; /* 载入H初值 */
TL0 += TL0_Dat ; /* 载入L初值 */
Int0_Time++ ; // 累加中断
if (Int0_Time >= 4)
{
TR0 = OFF ; // 关闭定时器0中断
InitialValue0() ; // 载入初始值
}
RunLed_Time++ ;
if (RunLed_Time >= (SEC_TIME / 2))
{
RunLed_Time = 0 ;
Run_Led =! Run_Led ; // 取反
}
HeatUPCheckTempTime() ; // 加温,检测计时器
}
/*************************************************************************************************************
* 函数名称 :
* 功能描述 :
* 实际参数 :
* 返回值 :
* 说明 : 串口中断
**************************************************************************************************************/
void comInte(void) interrupt 4 // 为什么指定寄存unsinged器,不能修改FLASH
{
if(TI == 1) // 判断是否是发送中断
{
TI = 0 ; // 清发送中断
SendDat() ;
}
else // 接收中断
{
ReceiptDat() ; // 接收到数据处理
RI = 0 ;
}
}
/*************************************************************************************************************
* 函数名称 :
* 功能描述 :
* 实际参数 :
* 返回值 :
* 说明 : 初始化变量
**************************************************************************************************************/
void InitializeDat(void)
{
uchar d,c ;
for (c = 0;c < 5;c++)
{
for (d = 0;d < 12;d++)
{
All_Temp0[c][d] = 0 ; // 全清零
All_Temp1[c][d] = 0 ;
}
}
for (c = 0;c < 10;c++)
{
Check_TempTime[c] = 0 ;
Old_NewTemp[c] = 0 ;
HeatUp_Time[c] = 0 ;
Site_TempDat[c] = 0 ;
}
Delay0(1) ;
InitialValue1() ;
TH1 = 0xfd ; /* 波特率为9600(11.0592M) */
TMOD = 0x21 ; /* 定时器0工作方式1,定时器1工作在方式2(自动载入,串口中断用) */
SCON = 0x50 ; /* 串行口工作在方式1,并允许接收 */
PCON = 0x00 ;
IP = 0x10 ; // 串口中断优先
Temp_Relay0 = ON ; /* 选通第一路热电偶 */
Temp_Relay5 = ON ;
_nop_() ;
SCK = ON ;
_nop_() ;
CS0 = ON ; /* 进行温度转换 */
CS1 = ON ;
_nop_() ;
EA = ON ;
ES = ON ; /* 开放串口中断 */
ET0 = ON ; /* 开放定时器0中断 */
TR1 = ON ;
TR0 = ON ;
}
/*************************************************************************************************************
* 函数名称 :
* 功能描述 :
* 实际参数 :
* 返回值 :
* 说明 : 延时子程序
**************************************************************************************************************/
void Delay0(uchar a)
{
uchar x ;
for (;a > 0;a--)
{
x = 200 ;
do{x = (x-1);}
while (x>1);
}
}
/*************************************************************************************************************
* 函数名称 :
* 功能描述 :
* 实际参数 :
* 返回值 :
* 说明 :
**************************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -