电话 : 010 80259761
手机 : 13601342066
邮箱 : 13601342066@163.com
网址 : www.mijigui001.com
地址 : 北京市大兴区西红门开发区
智能密集架移动列命令接收
智能密集架移动列初始化时钟和10端口后,进入while循环后等待命令消息的到来。各个移动列都有自己固定的列号,等待列号从RS一485总线上传送到该列上时,移动列接收到列号信息后,便将总线上的列号与自身的列号比较,满足条件则执行相应程序,否则移动列便继续等待消息。其它消息例如:红外感应消息、接近开关消息和控制灯消息到来时,会根据此消息是由本列或其它列产生而对标志位做出不同的处理,并将处理后的消息在总线上返回固定列。
智能密集架移动列命令消息的接收都是通过UART中断和10中断实现,其UART接收中断程序如下:
#Pragmavector=UARTORX`VECTOR
一Interi'UPtvoidUA又I…oesRX(void)
{add一data二RXBUFO;
}
#Pragma编译命令是用来控制编译器存储器分配的,vector代表中断向量,hiten'Upt关键字声明了在处理器发生中断时调用的函数,此函数必须为空,且无参数。adddata是接收数据的整型变量,RXBUFO是接收缓冲器。
10端口中断接收程序如下:
#Pragmavecto二PORTZ一ECTOR
一nten卫PtvoidPORI,2_ISR(void)
{datal“PZIN&BITS:
if(data1==0)//红外中断
{
PZOUT&=~BIT4;
vai让red=0:
sel甘ed=0;
通过总线发送红外标志状态位
}
从datal=PZIN&BITS可以看出具有中断能力的P2.5引脚控制红外感应信号。P2.5引脚在硬件电路上是强拉高电平,软件设置PZIES=OXZO,即对应的P2.5引脚可以由高到低的电平跳变中产生中断。程序中,如果datal一0,则说明产生了红外中断,PZOUT&一BIT4为的是将控制红外的LED灯亮起,varred变量是表示全局红外标志,selfred是自身红外标志,主程序会根据varred和Selfred变量控制电机起停。