電話 : 010 80259761
手機 : 13601342066
郵箱 : 13601342066@163.com
網址 : www.zddc333.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變量控制電機起停。