附录A 电路原理图(protel)
附录A 电路原理图(protel)
33
西安交通大学城市学院本科毕业生(论文)
附录B 电路仿真图(proteus)
34
附录C 程序
附录C 程序
#include
uchar code LEDData[]=%uchar TX[6]={0,};
uchar run[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
/******************************************************** 控制口定义
*********************************************************/
sbit EnA =P2^6;
sbit SA1 =P2^2; sbit SA2 =P2^3; sbit EnB =P2^7;
sbit SB1 =P2^4; sbit SB2 =P2^5; sbit en =P3^3; sbit rw =P3^1; sbit rs =P3^0; sbit start=P1^4; sbit vh =P1^5; sbit vl =P1^6; sbit stop =P1^7;
/***************************************************** 延时1ms程序
*****************************************************/ void delay0(int t)
{int w; for(;t>0;t--)
35
西安交通大学城市学院本科毕业生(论文)
for(w=110;w>0;w--); }
/***************************************************** 键盘扫描程序
*****************************************************/ void key()
{if(start==0) {delay0(10); while(start==0); {j++; }
if(stop==0) {delay0(10); while(stop==0); {n--; } if(vh==0) {delay0(10); while(vh==0); {m++; } if(vl==0) {delay0(10); while(vl==0); {m--; } }
/***************************************************** 写指令程序
*****************************************************/ 36
n=1; }
j=0;
}
a++;}
b--;}
附录C 程序
void write_com(uchar com) { rs=0; P0=com; delay0(5); en=1; delay0(5); en=0; }
/************************************************************* 写数据程序
*************************************************************/ void write_data(uchar date)
{ rs=1; P0=date; delay0(5); en=1; delay0(5); en=0; }
/****************************************************** PID程序
*******************************************************/
void PID() {uint e1,e2,e3; e1=TX[5]-TX[4]; e2=TX[3]-TX[2]; e3=TX[1]-TX[0]; if(e1>e2>10)
{ t=10*e1-6*e2+4*e3; } if(2 37