專注電子技術學習與研究
當前位置:單片機教程網(wǎng) >> MCU設計實例 >> 瀏覽文章

單片機雙機通信(匯編程序)

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2010年02月04日   【字體:

/*
發(fā)送程序
程序效果:發(fā)送數(shù)值給從機,讓從機顯示該數(shù)值
*/

   ORG 0000H
   LJMP START
   ORG 0030H
START:      MOV TMOD,#20H //定時器1工作在方式2
   MOV TH0,#0F4H //設置波特率為4800
   MOV TL0,#0F4H
   MOV PCON,#80H  //把SMOD置1
   MOV SCON,#50H  //串口工作在方式1,允許接收
   SETB ET1   //開定時器1
   SETB ES   //允許串行口中斷
   SETB TR1  //啟動定時器
   CLR TI  //發(fā)送中斷標志位清零
   MOV P2,#00H  //高八位
   MOV DPTR,#TAB   //賦表首地址
MAIN:        JNB P3.6,KEY2 //判斷按鍵是否按下
   LJMP MAIN
KEY2:        LCALL DELAY10MS //延時,消抖
   JB P3.6,MAIN //再判斷按鍵是否真的按下
WAIT:        JNB P3.6,WAIT   //等待按鍵松手
LOP1:        MOV A,#00   //清零
   MOVC A,@A+DPTR
   CJNE A,#'#',SENDDATA  //判斷數(shù)據(jù)是否發(fā)送完
   LJMP START   //發(fā)送完了,回到初始情況下

SENDDATA:   MOV SBUF,A  //把要發(fā)送的數(shù)據(jù)送給緩沖區(qū)
WAITS:        JNB TI,WAITS //等待數(shù)據(jù)發(fā)送完
   CLR TI   //發(fā)送完了,把發(fā)送中斷標志位清零,準備下次發(fā)送
   INC DPTR //加1,準備發(fā)送下一個數(shù)據(jù)
   LJMP MAIN  
//延時消抖程序
DELAY10MS: MOV 63H,#200
DE2:   MOV 64H,#250
DE1:   DJNZ 64H,DE1
   DJNZ 63H,DE2
   RET
TAB:         DB 3FH,06H,5BH,4FH,66H //數(shù)碼管顯示的數(shù)值  
   DB  6DH,7DH,07H,7FH,6FH,'#'
   END

/*
接收程序
程序效果:一個數(shù)碼管顯示主機發(fā)送來的數(shù)值
*/
   ORG 0000H
   LJMP START
   ORG 0030H
START:   MOV TMOD,#20H  //定時器1工作在方式2
   MOV TH0,#0F4H  //波特率為4800,發(fā)送與接收的波特率要相等
   MOV TL0,#0F4H
   MOV PCON,#80H //SMOD為1
   MOV SCON,#50H //串口工作在方式1,允許接收
   SETB ET1   //開定時器
   SETB ES  //允許串口中斷
   SETB TR1   //啟動定時器
   CLR RI   //接收中斷標志位清零
MAIN:   JB RI,DISP//判斷是否接收完
   SJMP  MAIN //沒有,繼續(xù)等待
DISP:   CLR RI    //接受完了,接收中斷標志位清零
DISP1:   MOV A,SBUF   //同時把該數(shù)據(jù)送給A
   MOV P2,#7FH //點亮一個數(shù)碼管
   MOV P0,A //顯示該數(shù)值 
   LCALL DELAY   //延時0.1s,便于眼睛能夠看清該數(shù)據(jù),時間適宜即可
   MOV P0,#00 //消隱
   JNB RI,DISP1 //判斷下一個數(shù)據(jù)是否接受完,沒有則繼續(xù)顯示
   SJMP  DISP
//延時0.1s子程序
DELAY:   MOV 61H,#200
DEL2:     MOV 62H,#250
DEL1:     DJNZ 62H,DEL1
   DJNZ 61H,DEL2
   RET
   END
/*
只需用3根線連接2個單片機即可實現(xiàn),gnd連gnd ,rxd連txd ,txd連rxd,可從這里下載完整的程序:http://www.torrancerestoration.com/ziliao/file/shuangjiasm.rar
注:本程序相對簡單,只是對雙機通信接觸很少,所以會感覺無從下手,其實不然。
*/

關閉窗口

相關文章