单片机制作的点焊机电路与程序分享

北京专门治疗白癜风的医院 https://wapjbk.39.net/yiyuanfengcai/video_bjzkbdfyy/
单片机制作的点焊机PCB控制电路单片机控制原理图

#includereg51.h

#defineu8unsignedchar

#defineu16unsignedint

u8b1,ss1,ss2,i,js;

bitdd;

sbitout=P3^5;  ///输出控制口

sbits0=P3^0;  ///启动键

sbits1=P3^1;  ///设置键

sbits2=P3^2;  ///减

sbits3=P3^3;  ///加

sbitge=P3^7;

sbitshi=P3^4;

charcodeshu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//数码管段码

voiddelay(u16q)  //普通延时函数

{

chard;

while(q--)

for(d=;d0;d--);

}

voidZD_Init()            //中断初始化子函数

{

EA=1;              //打开总中断开关

ET0=1;              //打开定是器0开关

TR0=0;              //定时器0开始工作

TMOD=0X01;            //选择定时器0工作模式位定时器

TH0=(-)/;      //定时器高8位装初值  定时50MS

TL0=(-)%;      //定时器低8位装初值  

}  

voidxianshi(u8ss,u8gg)  //显示函数

{  

if(b1==2)        //判断各十位数闪烁标志位

{

if(dd)

{

ss=10;

}

}

if(b1==1)        //判断各位数闪烁标志位

{

if(dd)

{

gg=10;

}

}

P1=shu[ss]+0x80;

shi=0;

delay(2);

shi=1;

P1=shu[gg];

ge=0;

delay(2);

ge=1;

}

voidjianpan()    //键盘扫描子程序

{

if(s3==0)    ///设置建

{

delay(5);

if(s3==0)

{

while(s3==0)xianshi(ss1,ss2);  //松手检测

b1++;

TR0=1;

if(b1=3)

{

b1=0;

TR0=0;

}

}

}

if(b1!=0)    ///判断是否按下设置健

{

if(s2==0)  ///加建

{

delay(5);

if(s2==0)

{

while(s2==0)xianshi(ss1,ss2);  //松手检测

if(b1==1)      ////判断各位数加

{

ss2++;

if(ss2==10)ss2=0;

}

if(b1==2)    ///判断十位数加

{

ss1++;

if(ss1==10)ss1=0;

}

}

}

if(s1==0)    //减键

{

delay(5);

if(s1==0)

{

while(s1==0)xianshi(ss1,ss2);  ///松手检测

if(b1==1)        ///判断各位数减

{

ss2--;

if(ss2==)ss2=9;  

}

if(b1==2)      ////判断十位数减

{

ss1--;

if(ss1==)ss1=9;

}

}

}

}

if(b1==0)      ///启动电焊键

{

if(s0==0)

{

delay(5);

if(s0==0)

{

while(s0==0);

js=ss1*10+ss2;

if(js!=0)

{

TR0=1;

out=0;

}  

}

}

}

}

voidmain()

{  

ZD_Init();  //中断初始化

while(1)

{

xianshi(ss1,ss2);//显示子函数

jianpan();    //键盘子程序

}

}

voidTime0()interrupt1using0      //中断函数

{

TH0=(-)/;      //定时器高8位装初值    重装初值

TL0=(-)%;      //定时器低8位装初值    重装初值

if(b1!=0)            

{

i++;

if(i==10)      //数码管的闪烁      

{

i=0;

dd=~dd;  

}

out=1;

}

else

{

js--;

if(js==0)      //点焊延时输出

{

TR0=0;

out=1;

}

}

}




转载请注明:http://www.aierlanlan.com/rzdk/5671.html