单片机点焊机控制完整程序+PCB电路图 | 您所在的位置:网站首页 › 点焊机控制线路图 › 单片机点焊机控制完整程序+PCB电路图 |
2019-8-25 15:20 上传
单片机源程序如下: /******************************************************************************* * * * 点焊机控制器 * -------------------------------------------------------------------------------- * 结构说明: 51单片机计时控制 * * 在检测到点焊手柄发出的工作信号时, * * 立即接通点焊机的电源,点焊机开始工作,设定的时间结束后切断电源,* * 在设定的间隔时间内,不接收点焊手柄发出的工作信号。 * * *******************************************************************************/ /* * 单片机P0^0~P0^4口分配给LCD5110使用:RET、CE、D/C、DIN、CLK(在LCD_5110.h中定义 * P0^5 设备等待(可以工作)信号灯 * P0^6 设备工作间隙(不接收点焊信号)信号灯 * * P1^0~P1^6 开关设置点焊时间(20毫秒为1单位,0~127单位) * P1^7 工作间隙:0=5秒,1=10秒 *******************************************************************************/ #include //#include #include"LCD_5110.h" //包含LCD显示驱动文件 #define u8 unsigned char //单字节 #define u16 unsigned int //双字节 #define u64 unsigned long //四字节 #define SZP1 P1 //P1口为初始设置的数据,低七位为定时数值(0-127)*20ms, //第八位为间隙时间,0=5秒,1=10秒 sbit LED_work = P0^5; //设备工作信号(低电平点焊机接通) sbit LED_read = P0^6; //设备就绪信号(低电平可以工作) sbit work = P0^7; //点焊按钮信号(低电平按下)
//--定义全局变量--// u8 sdsj = 0; //设定的点焊单位 u64 shsj = 0; //设定的点焊时间(双字节,以毫秒为单位) u8 wait = 5; //设置的间隔时间(5秒或10秒,根据P1.7确定)
u8 time_work = 0; //焊接时间计时(20毫秒/单位) u8 time_wait = 0; //等待时间计时(单位秒) bit time_1s = 0; //秒信号 bit time_20ms = 0; //20毫秒信号 bit flag = 0; //定时工作标志(0=待机或间隔,1=正在工作 /******************************************************************************* * 函 数 名 : ReadSet * 函数功能 : 读设置并显示 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void ReadSet(void) { sdsj = SZP1; //从P1口读入一个字节的数据 if (sdsj>127) wait = 10; //最高位1,间隔时间=10秒 else wait = 5; LCD_write_val(27,4,2,wait);//显示设定的间隔时间
sdsj = (sdsj & 0x7f) + 3; //取低7位定时值再加3(60毫秒) shsj = sdsj * 20; //20毫秒基本单位 LCD_write_val(27,2,4,shsj);//显示设定的点焊时间 } /******************************************************************************* * 函 数 名 : timehand * 函数功能 : 20毫秒处理函数,即每隔20毫秒处理一次 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void TimeHand(void) { if (flag == 0) //待机状态 { if (work == 0) //收到点焊按钮信号 { flag = 1; //设置工作标志 time_work = sdsj;//取设定时间 LED_work = 0; //开通工作电源 LED_read = 1; //关闭等待信号灯 } else //无点焊按钮信号 { ReadSet(); //检查更新设置 } } else //工作状态 { time_work--; if (time_work == 0)//定时时间到
|
CopyRight 2018-2019 实验室设备网 版权所有 |