WWW.PLCJS.COM——可编程控制器技术门户
#include <mega16.h> plcjs.技.术_网
#include<math.h> WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
#include<delay.h> WW.W_PLCJS_COM-PLC-技.术_网
#include "lcdbn.h" plcjs.技.术_网
uchar data1[4]={0,2,5,0}; WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
uchar data2[4]={0,0,0,0}; ——可——编——程——控-制-器-技——术——门——户
uchar j,key=0; WWW_PLC※JS_COM-PmLC-技.术_网
uchar chr[]="pre: *2%"; P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
uchar *chr1[3]={"openc V: ", P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
"shutc V: ", WWW_P※LCJS_CO※M-PLC-技-.术_网
"acceler: "} ; W1WW_P4LCJS_COM-PLC-技.术_网
uchar counter1=0x84; P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
uchar counter2=0xc8; W1WW_P4LCJS_COM-PLC-技.术_网
uchar flag; //flag为开闭使能 WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
int E1r; P.L.C.技.术.网——可编程控制器技术门户
int E2r=0,E3r=0; WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
uint speedr=15,c_r=0;//maxc=700; WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
void init_intr(void) WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
{ WWW_P※LCJS_CO※M-PLC-技-.术_网
SREG=0x80; WW.W_PLC※JS_C,OM-PL,C-技.术_网
TIMSK=0x40; P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
TCCR2=0x06; P.L.C.技.术.网——可编程控制器技术门户
TCCR1A=0xe3; //A比较高电平,B比较低电平 WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
TCCR1B=0x0a; WW.W_PLCJS_COM-PLC-技.术_网
MCUCR=0x0a; ///外部INT1/0中断上升有效 WWW.PLCJS.COM——可编程控制器技术门户
GICR=0xc0; WWW_P※LCJS_COM-PLC-)技.术_网
} P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
//////////////////////////////////// W1WW_P4LCJS_COM-PLC-技.术_网
/////左右电机pwm设置 WWW_P※LCJS_COM-PLC-)技.术_网
/////////////////////////////////// WWW_PLCJS@_COM%-PLC-技.术_网
void setpwmr(uchar *p) WWW_PLCJS_COM-PLC-技.术_网
{ uint temp1; WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
temp1=(uint)p[1]*10+p[2]; plcjs.技.术_网
if(temp1<25) WWW_PLCJS@_COM%-PLC-技.术_网
{ WWW_PLCJS@_COM%-PLC-技.术_网
speedr=(uint)28-temp1*28/25; WWW_PLCJS_COM-PLC-技.术_网
} WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
else WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
{ WWW_PL※CJS_COM-PLC-技.术_网
speedr=(uint)temp1*28/25-28; WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
} P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
temp1=1023*temp1/50; WWcW_PLCJS_COM-PLC-技.术_网
OCR1A=temp1; WWW_P※LCJS_CO※M-PLC-技-.术_网
OCR1B=temp1; WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
} W1WW_P4LCJS_COM-PLC-技.术_网
/////转速加/减调速////// plcjs.技.术_网
void add(uchar*p) WW.W_PLC※JS_C,OM-PL,C-技.术_网
{ WW.W_PLC※JS_C,OM-PL,C-技.术_网
if(p[1]!=5) WW.W_PLCJS_COM-PLC-技.术_网
{ WWW_PLC※JS_COM-PmLC-技.术_网
p[2]++; P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
if(p[2]==10) WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
{ plcjs.技.术_网
p[2]=0;p[1]++; WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
} WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
} WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
} WWW.PLCJS.COM——可编程控制器技术门户
void sub(uchar *p) WW.W_PLCJS_COM-PLC-技.术_网
{ WWW_PLC※JS_COM-PmLC-技.术_网
uchar temp; ——可——编——程——控-制-器-技——术——门——户
temp=p[1]*20+p[2]*2; WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
if(temp!=0) WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
temp=temp-2; WWW_P※LCJS_CO※M-PLC-技-.术_网
p[1]=temp/20; //设定值还原// W1WW_P4LCJS_COM-PLC-技.术_网
p[2]=(temp-p[1]*20)/2; ——可——编——程——控-制-器-技——术——门——户
} WWW.PLCJS.COM——可编程控制器技术门户
void display() WWW_P※LCJS_COM-PLC-)技.术_网
{ write_string(0x80,chr); ——可——编——程——控-制-器-技——术——门——户
write_string(0xc0,chr1[key]); WWW.PLCJS.COM——可编程控制器技术门户
write_order(counter1+0); W1WW_P4LCJS_COM-PLC-技.术_网
write_Data(data1[0]+0x30); WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
for(j=1;j<3;j++) plcjs.技.术_网
{write_order(counter1+j); WWW_PLC※JS_COM-PmLC-技.术_网
write_Data(data1[j]+0x30); plcjs.技.术_网
} WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
for(j=0;j<4;j++) WWW_PLC※JS_COM-PmLC-技.术_网
{ WWW_P※LCJS_CO※M-PLC-技-.术_网
write_order(counter2+j); WWW_PLCJS_COM-PLC-技.术_网
write_Data(data2[j]+0x30); WW.W_PLC※JS_C,OM-PL,C-技.术_网
} WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
} WW.W_PLC※JS_C,OM-PL,C-技.术_网
//////速度调节//// P.L.C.技.术.网——可编程控制器技术门户
void speed_change(void) plcjs.技.术_网
{ WWW_P※LCJS_COM-PLC-)技.术_网
if(PINA.1==0) plcjs.技.术_网
{ WW.W_PLC※JS_C,OM-PL,C-技.术_网
delay_ms(100); WWW.PLCJS.COM——可编程控制器技术门户
if(PINA.1==0) WWW_PLCJS@_COM%-PLC-技.术_网
{add(data1); } W1WW_P4LCJS_COM-PLC-技.术_网
} WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
if(PINA.2==0) WWW_PLC※JS_COM-PmLC-技.术_网
{delay_ms(100); WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
if(PINA.2==0) WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
{sub(data1);} WWW_P※LCJS_COM-PLC-)技.术_网
} WWW_P※LCJS_CO※M-PLC-技-.术_网
} ——可——编——程——控-制-器-技——术——门——户
/////键盘读取//// WWcW_PLCJS_COM-PLC-技.术_网
void testkey(void) WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
{ WWW_P※LCJS_COM-PLC-)技.术_网
uchar flag2=0; WWW_P※LCJS_CO※M-PLC-技-.术_网
if(PINA!=0x0f) WW.W_PLCJS_COM-PLC-技.术_网
{ delay_ms(10); ——可——编——程——控-制-器-技——术——门——户
if(PINA!=0x0f) WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
{flag2=1;} WWW_PLCJS_COM-PLC-技.术_网
} WWW_PLC※JS_COM-PmLC-技.术_网
if(flag2) WWW_PLCJS_COM-PLC-技.术_网
{ WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
while(PINA.3!=0) P.L.C.技.术.网——可编程控制器技术门户
{ WWW_P※LCJS_CO※M-PLC-技-.术_网
while(PINA.0==0) WWcW_PLCJS_COM-PLC-技.术_网
{ delay_ms(100); WWW_P※LCJS_COM-PLC-)技.术_网
if(PINA.0==0) WWW_P※LCJS_COM-PLC-)技.术_网
{ WWW_P※LCJS_COM-PLC-)技.术_网
if(key<2) WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
{key++;} plcjs.技.术_网
WW.W_PLCJS_COM-PLC-技.术_网
else WWW_PL※CJS_COM-PLC-技.术_网
key=0;} P.L.C.技.术.网——可编程控制器技术门户
} WW.W_PLCJS_COM-PLC-技.术_网
WWW.PLCJS.COM——可编程控制器技术门户
switch (key) W1WW_P4LCJS_COM-PLC-技.术_网
{case 0: //模式1PID调节 WWW_P※LCJS_COM-PLC-)技.术_网