点焊机控制器的C51完整实现源码
来源:互联网 发布:脑判定死亡意义知乎 编辑:程序博客网 时间:2024/05/16 02:12
/*
这是本人多年前开发的一款点焊机控制器源码,C51编程。
完整实现了点焊机的全部功能,包括以下过程:
预压->绶升->焊接1时间->保持时间->焊接2时间->冷却 焊接1电流->焊接2电流->休止
需要的朋友可以参考一下吧,还是不错的。
mzlyby@126.com
/*
#include <reg51.h>
#include <DN_C51.h>
#define uchar unsigned char
#define uint unsigned int
//***************************************************
// main program
void main(void)
{
delay(100);
delay(100);
delay(100);
init();
while(1)
{
ReadBCD();
BCD2BIN();
WeldPROC();
FsecEvent();// sec flush,no use
//---------------------------
}
}
void mInt0(void) interrupt 0 using 0
{
bSynClock = 1;
Weld_Out = 1; // stop output
count_sec++;
CLK_AD = !CLK_AD;// reset WDT
}
void timer0(void) interrupt 1 using 1
{
Weld_Out = 0;
TR0 = 0;
ET0 = 0;
}
void init(void)
{
//----------------------------
TMOD = 0x01; // 定时器0,方式1
TH0 = 0xFC;
TL0 = 0x66;
ET0 = 0 ;
TR0 = 0 ;
IT0 = 1; // pulse
EX0 = 1; // Enable Ext_interrupt
EA = 1 ;
//----------------------------
Weld_Out = 1;
bSynClock = 0;
P1_CS = 0;
P2_CS = 0;
P3_CS = 0;
P4_CS = 0;
}
void ReadBCD(void)
{
P1_CS = 1;
BCD_Buf[0] = P0;
P1_CS = 0;
P2_CS = 1;
BCD_Buf[1] = P0;
P2_CS = 0;
P3_CS = 1;
BCD_Buf[2] = P0;
P3_CS = 0;
P4_CS = 1;
BCD_Buf[3] = P0;
P4_CS = 0;
//-------------------
P5_CS = 1;
BCD_Buf[4] = P0;
P5_CS = 0;
P6_CS = 1;
BCD_Buf[5] = P0;
P6_CS = 0;
P7_CS = 1;
BCD_Buf[6] = P0;
P7_CS = 0;
P8_CS = 1;
BCD_Buf[7] = P0;
P8_CS = 0;
//--------------------
P9_CS = 1;
BCD_Buf[8] = P0;
P9_CS = 0;
}
void BCD2BIN(void)
{
uchar tempH,tempL;
uchar i;
for(i=0;i<9;i++)
{
tempH = BCD_Buf[i] & 0xF0;
tempH = tempH>>4;
tempH = tempH*10;
tempL = BCD_Buf[i] & 0x0F;
BCD_Buf[i] = tempH + tempL;
}
}
void WeldPROC(void)
{
if(!Start_SW)
{
delay(1000);
if(!Start_SW)
{
SlowRise();
WeldOne();
do
{
}while(!Start_SW);
}
}
}
void SlowRise(void)
{
BCD_Buf[1] = BCD_Buf[1]*2;
StepRise = BCD_Buf[6]/BCD_Buf[1];// current divide SlowRise
StepRise++;
WeldPoint = 0;
while(1)
{
if(BCD_Buf[1] == 0 || BCD_Buf[6] == 0)
break;
if(Start_SW)
{
TR0 = 0;
Weld_Out = 1;
W1_LED = 1;
RUN_LED = 1;
break;
}
RUN_LED = 0;
W1_LED = 0;
WeldPoint += StepRise;
Result = WeldData[WeldPoint];// get weld_data from table
//---------------------------------
do{
}while(!bSynClock);// wait synchronization signal
bSynClock = 0;// reset
//---------------------------------
if(WeldPoint < BCD_Buf[6])// if less-than current,then continue run "SlowRise"
{
TH0 = (uchar)(Result>>8);
TL0 = (uchar)Result;
TR0 = 1;
ET0 = 1;
}
else
{
TR0 = 0;
ET0 = 0;
Weld_Out = 1;
break;
}
}
}
//------------------------------------
// current control 1
void WeldOne(void)
{
uchar TimeCount;
Weld_Out = 1; // stop welding
TimeCount = BCD_Buf[2]*2;// 10ms*2,equal to a sine_cycle
WeldPoint = BCD_Buf[6];// weld current
Result = WeldData[WeldPoint];// get weld_data from table: Weld Time
//-----------------------------
TH0 = (uchar)(Result>>8);
TL0 = (uchar)Result;
TR0 = 1;
ET0 = 1;
while(1)
{
if(BCD_Buf[2] == 0 || BCD_Buf[6] == 0)
break;
if(Start_SW)
{
TR0 = 0;
Weld_Out = 1;
W1_LED = 1;
RUN_LED = 1;
break;
}
//---------------------------------
do{
}while(!bSynClock);// wait synchronization signal
bSynClock = 0;// reset
//---------------------------------
TH0 = (uchar)(Result>>8);
TL0 = (uchar)Result;
TR0 = 1;
ET0 = 1;
TimeCount--;
if(TimeCount == 0)
{
TR0 = 0;
ET0 = 0;
Weld_Out = 1;
W1_LED = 1;
RUN_LED = 1;
break;
}
}
}
void FsecEvent(void)
{
if(count_sec == 25)
{
bfSec = 0;
count_sec = 0;
RUN_LED = !RUN_LED;
}
}
void delay(uint DelayNum)
{
uint i;
uchar j;
for(i=0;i<DelayNum;i++)
{
j = 0;
}
}
- 点焊机控制器的C51完整实现源码
- 技术人生之三: 开发点焊机控制器
- 工业交流点焊机的缓升电流控制
- 在Proteus中实现C51源码级的调试
- 红黑树的C实现完整源码
- 红黑树的C++完整实现源码
- 红黑树的c++完整实现源码
- 红黑树----红黑树的C实现完整源码
- 红黑树 ----红黑树的C++完整实现源码
- 红黑树的C++完整实现源码
- Java实现的计算器(完整源码)
- 红黑树的C++完整实现源码
- 一体化点焊机将要取代分体式焊钳在汽车制造生产线上的使用
- JDK6的完整源码
- java 实现源码统计 完整
- Dijkstra 算法+Heap堆的完整c实现源码
- asp.net mvc 分页的完整实现及源码下载
- 基于PLC系统的点焊机器人联网监控
- iOS开发的一些奇巧淫技
- Excel Sheet Column Number
- VC++6.0 多线程问题
- 反弹小球和加速度传感器的使用
- 2015第四届中国国际现代农业装备及技术展览会
- 点焊机控制器的C51完整实现源码
- java 数组
- 常用的加密方式,C++
- java--深入研究java.lang.Runtime类
- Android ListView焦点事件冲突问题与解决
- C++自己实现一个简单地Vector
- Java 生成数字证书系列(一)了解数字证书
- 转 几种常用的JS类定义方法
- 销售-excel