欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

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

作者:佚名   來源:本站原創   點擊數:  更新時間:2010年02月04日   【字體:

/*
發送程序
程序效果:發送數值給從機,讓從機顯示該數值
*/

   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  //發送中斷標志位清零
   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  //判斷數據是否發送完
   LJMP START   //發送完了,回到初始情況下

SENDDATA:   MOV SBUF,A  //把要發送的數據送給緩沖區
WAITS:        JNB TI,WAITS //等待數據發送完
   CLR TI   //發送完了,把發送中斷標志位清零,準備下次發送
   INC DPTR //加1,準備發送下一個數據
   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 //數碼管顯示的數值  
   DB  6DH,7DH,07H,7FH,6FH,'#'
   END

/*
接收程序
程序效果:一個數碼管顯示主機發送來的數值
*/
   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   //開定時器
   SETB ES  //允許串口中斷
   SETB TR1   //啟動定時器
   CLR RI   //接收中斷標志位清零
MAIN:   JB RI,DISP//判斷是否接收完
   SJMP  MAIN //沒有,繼續等待
DISP:   CLR RI    //接受完了,接收中斷標志位清零
DISP1:   MOV A,SBUF   //同時把該數據送給A
   MOV P2,#7FH //點亮一個數碼管
   MOV P0,A //顯示該數值 
   LCALL DELAY   //延時0.1s,便于眼睛能夠看清該數據,時間適宜即可
   MOV P0,#00 //消隱
   JNB RI,DISP1 //判斷下一個數據是否接受完,沒有則繼續顯示
   SJMP  DISP
//延時0.1s子程序
DELAY:   MOV 61H,#200
DEL2:     MOV 62H,#250
DEL1:     DJNZ 62H,DEL1
   DJNZ 61H,DEL2
   RET
   END
/*
只需用3根線連接2個單片機即可實現,gnd連gnd ,rxd連txd ,txd連rxd,可從這里下載完整的程序:http://www.raoushi.com/ziliao/file/shuangjiasm.rar
注:本程序相對簡單,只是對雙機通信接觸很少,所以會感覺無從下手,其實不然。
*/

關閉窗口

相關文章