電話 : 010 80259761
手機 : 13601342066
郵箱 : 13601342066@163.com
網(wǎng)址 : www.guokedianzi.cn
地址 : 北京市大興區(qū)西紅門開發(fā)區(qū)
智能密集架移動列命令接收
智能密集架移動列初始化時鐘和10端口后,進入while循環(huán)后等待命令消息的到來。各個移動列都有自己固定的列號,等待列號從RS一485總線上傳送到該列上時,移動列接收到列號信息后,便將總線上的列號與自身的列號比較,滿足條件則執(zhí)行相應(yīng)程序,否則移動列便繼續(xù)等待消息。其它消息例如:紅外感應(yīng)消息、接近開關(guān)消息和控制燈消息到來時,會根據(jù)此消息是由本列或其它列產(chǎn)生而對標志位做出不同的處理,并將處理后的消息在總線上返回固定列。
智能密集架移動列命令消息的接收都是通過UART中斷和10中斷實現(xiàn),其UART接收中斷程序如下:
#Pragmavector=UARTORX`VECTOR
一Interi'UPtvoidUA又I…oesRX(void)
{add一data二RXBUFO;
}
#Pragma編譯命令是用來控制編譯器存儲器分配的,vector代表中斷向量,hiten'Upt關(guān)鍵字聲明了在處理器發(fā)生中斷時調(diào)用的函數(shù),此函數(shù)必須為空,且無參數(shù)。adddata是接收數(shù)據(jù)的整型變量,RXBUFO是接收緩沖器。
10端口中斷接收程序如下:
#Pragmavecto二PORTZ一ECTOR
一nten衛(wèi)PtvoidPORI,2_ISR(void)
{datal“PZIN&BITS:
if(data1==0)//紅外中斷
{
PZOUT&=~BIT4;
vai讓red=0:
sel甘ed=0;
通過總線發(fā)送紅外標志狀態(tài)位
}
從datal=PZIN&BITS可以看出具有中斷能力的P2.5引腳控制紅外感應(yīng)信號。P2.5引腳在硬件電路上是強拉高電平,軟件設(shè)置PZIES=OXZO,即對應(yīng)的P2.5引腳可以由高到低的電平跳變中產(chǎn)生中斷。程序中,如果datal一0,則說明產(chǎn)生了紅外中斷,PZOUT&一BIT4為的是將控制紅外的LED燈亮起,varred變量是表示全局紅外標志,selfred是自身紅外標志,主程序會根據(jù)varred和Selfred變量控制電機起停。