五邑大学本科毕业设计
短路保护中断入口保护现场启动中断(优先级最高)迅速输出分闸信号IGBT导通,分闸线圈通电设定等待时间T2分闸了?NY设置时间T2到?YN置已经分闸标志置拒分标志故障信息存储恢复现场中断返回
图7-3短路中断迅速处理流程图
27
五邑大学本科毕业设计
输出合闸信号M启动,合闸储能完毕等待时间T已经合闸?YNNT时间到?置合闸成功标志,利用转换开关,同时M反转,分闸储能完毕恢复现场返回主程序
图7-4合闸程序流程
Y置拒合标志程序:
#include #include
{ P0_0=1; //电动机转到,合闸储能
Delay_ns(4); //4s延迟,弹簧储能完毕 P2_1=1; //合闸线圈通电,开始励磁 Delay_nms(40); //延迟40ms,励磁完毕,合闸;合闸储能释放的同时,转换开关转动,合闸线圈解除励磁,另一组转换开关闭合,电机反转,分闸弹簧储能。
分闸流程图如图7-5
28
五邑大学本科毕业设计
输入分闸信号分闸簧释放能量等待设定时间T已经分闸?YN 等待时间T到?N置分断成功标志Y置拒分标志调整到初始状态返回主程序
图7-5分闸流程图
程序:
#include #include
{ P2_0=1;
Delay_nms(25); 延迟25ms,分闸完毕 }
7.5 温度检测程序设计
当断路器内部运行环境的温度超出了设定温度的上下限,就会启动报警装置,具体流程图见图7-6图7-7
29
五邑大学本科毕业设计
初始化显示程序N时间到?Y初次上电?N读出温度并显示数据刷新Y发送温度转换开始令命
图7-6主程序框图
发复位指令发跳过ROM命令发读取温度指令读取操作,CRC检验N检验完成?Y移入温度暂存器结束
图7-7读温流程图
程序如下:
#include #include
int P2_7 state(void) ; { if(P2_7=1) P0_0=1;
30
五邑大学本科毕业设计
Else break; } ??
7.6 LCD显示程序设计
#include #include
#define LCM_RW P3_6 // 引脚定义 #define LCM_RS P3_5 #define LCM_E P3_7 #define LCM_Data P0
Void main (void) {
LCM_Init(); // LCM 初始化 Delay_nms(5); While(1) {
Display_List_Char(0,0,”OK”);
Display_List_Char(1,0,”AT89C52”);
}
}
Int xianshi (void)
{ Char zhuangtai[]={‘T’, ‘F’, ‘H’}; Int address=0; LCM_Int();
Switch(zhuangtai[address]) {case ‘T’:Temp();
Display_List_Char(0,0,“case: T ”);
Display_List_Char(1,0,“?”); //显示当前温度 Delay_nms(500); Break;
Case ‘F’:fenzha();
Display_List_Char(0,0,“case: F ”); Display_List_Char(1,0,“yi fen zha ”); Delay_nms(500); Break;
Case ‘H’:hezha();
31
[9]