找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 8298|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)雙機(jī)串行通信匯編語言程序+Proteus仿真

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
甲機(jī)按鍵控制乙機(jī)數(shù)碼管,乙機(jī)按鍵控制甲機(jī)LED燈
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1.            ORG 00H
  2.                    SJMP INIT
  3.                    ORG 0023H
  4.                    LJMP LOOP
  5.                    ORG 0030H
  6. INIT:     MOV SP,#5FH
  7.            MOV SCON,#50H              ;串行口工作方式1,允許接收
  8.            MOV TMOD,#20H              ;定時(shí)器1工作方式2
  9.                MOV PCON,#0H               ;波特率不加倍
  10.                MOV TH1,#0FDH              ;波特率9.6kbit/s
  11.                MOV TL1,#0FDH
  12.                SETB TR1                   ;啟動(dòng)定時(shí)器1
  13.                    SETB EA
  14.                    SETB ES
  15.                    CLR TI
  16.                    CLR RI
  17. KEYS:     MOV P0,#0FFH
  18.            MOV R1,#0EFH               ;初始化各寄存器
  19.            MOV R2,#4
  20.            MOV R3,#0FFH
  21.                    MOV 20H,#11101111B
  22.                    MOV 21H,#11111110B
  23. KEYREAD:  MOV A,R1
  24.            MOV P0,A                    ;送掃描碼至P0口
  25.                    MOV A,P0                    ;讀P0口按鍵狀態(tài)
  26.                    MOV R3,A                    ;將此狀態(tài)保存在寄存器R3中
  27.                    ORL A,#0F0H                 ;屏蔽P0口高四位
  28.                    CJNE A,#0FFH,KEYDOWN        ;若P0口低四位不全為1,有按鍵落下
  29.                    MOV A,R1
  30.            RL A                        ;若低四位全為1,掃描下一行
  31.                    MOV R1,A
  32.                    DJNZ R2,KEYREAD
  33.                    LJMP KEYS
  34. KEYDOWN:  MOV A,P0
  35.            ORL A,#0F0H
  36.            CJNE A,#0FFH,KEYTURN1        ;若按鍵確實(shí)落下,將按鍵轉(zhuǎn)換為按鍵碼
  37.            LJMP KEYS
  38. KEYTURN1: MOV R2,#4                   ;設(shè)循環(huán)次數(shù)
  39.            MOV B,#0                    ;按鍵碼初始值設(shè)為0
  40. LOOP1:    MOV A,P0
  41.            ORL A,#0F0H
  42.            CJNE A,21H,S1               ;判斷落下按鍵是否位于該列
  43.            SJMP KEYTURN2               ;是,跳轉(zhuǎn)判斷行
  44. S1:       INC B                       ;否,按鍵碼加1,(21H)左移,判斷是否位于下一列
  45.            MOV A,21H
  46.            RL A
  47.                    MOV 21H,A
  48.                    DJNZ R2,LOOP1
  49.                    SJMP KEYREAD
  50. KEYTURN2: MOV R2,#4
  51. LOOP2:    MOV A,P0
  52.            ORL A,#0FH
  53.            CJNE A,20H,S2                ;判斷落下按鍵是否位于該行
  54.            SJMP S3                     
  55. S2:       INC B                       ;否,按鍵碼加4,(20H)左移,判斷是否位于下一行
  56.            INC B
  57.            INC B
  58.                    INC B
  59.                    MOV A,20H
  60.                    RL A
  61.                    MOV 20H,A
  62.                    DJNZ R2,LOOP2
  63.                    SJMP KEYREAD
  64. S3:       MOV A,B                     ;將按鍵碼送給A
  65. SEND:     MOV SBUF,A                  ;發(fā)送數(shù)據(jù)
  66.            JNB TI,$
  67.                    CLR TI
  68.                    LJMP INIT
  69. LOOP:           MOV A,SBUF                  ;接收乙機(jī)數(shù)據(jù)
  70.            JNB RI,$
  71.                    CLR RI                      ;清接收中斷標(biāo)志
  72.                    MOV P1,#0FFH
  73.            LCALL LED8                  ;將乙機(jī)按鍵數(shù)據(jù)送P1口,點(diǎn)亮LED燈
  74.            RETI
  75. LED8:     JNB ACC.0,LIGHT1
  76.                    JNB ACC.1,LIGHT2
  77.                    JNB ACC.2,LIGHT3
  78. RETURN:   RET
  79. LIGHT1:   MOV A,#0FEH
  80.            MOV R2,#8
  81.     L1:           MOV P1,A
  82.                RL A
  83.                    ACALL DELAY
  84.                    DJNZ R2,L1
  85.            SJMP RETURN
  86. LIGHT2:   MOV A,#07FH
  87.            MOV R2,#8
  88.     L2:    MOV P1,A
  89.                RR A
  90.                    ACALL DELAY
  91.                    DJNZ R2,L2
  92.            SJMP RETURN
  93. LIGHT3:   MOV A,#0E7H
  94.            MOV P1,A
  95.                    ACALL DELAY
  96.                    SETB C
  97.         L31:   MOV R0,A
  98.                    ORL A,#0FH
  99.                    RLC A
  100.                    MOV R1,A
  101.                    MOV A,R0
  102.                    ORL A,#0F0H
  103.                    RRC A
  104.                MOV R2,A
  105.                ANL A,#0FH
  106.                    MOV R0,A
  107.                    MOV A,R1
  108.                    ANL A,#0F0H
  109.                    ADD A,R0
  110.                    MOV P1,A
  111.                    ACALL DELAY
  112.                JB P1.7,L31
  113.     L32:   SETB C
  114.            MOV R0,A
  115.                    ORL A,#0FH
  116.                    RRC A
  117.                    MOV R1,A
  118.                    MOV A,R0
  119.                    ORL A,#0F0H
  120.                    RLC A
  121.                    MOV R2,A
  122.                ANL A,#0FH
  123.                    MOV R0,A
  124. ……………………

  125. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
程序代碼.rar (2.64 KB, 下載次數(shù): 156)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:560533 發(fā)表于 2019-6-12 08:30 | 只看該作者
好好研究一哈
回復(fù)

使用道具 舉報(bào)

板凳
ID:332130 發(fā)表于 2019-8-15 08:51 | 只看該作者
沒有仿真圖啊,只有代碼
回復(fù)

使用道具 舉報(bào)

地板
ID:594353 發(fā)表于 2019-8-15 16:52 | 只看該作者
不應(yīng)該是甲乙各有程序嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:92827 發(fā)表于 2019-10-21 19:16 | 只看該作者
單片機(jī)房煙花雨 發(fā)表于 2019-8-15 16:52
不應(yīng)該是甲乙各有程序嗎

兩片單片機(jī)應(yīng)該是2套程序,看來程序還得自己編啊

回復(fù)

使用道具 舉報(bào)

6#
ID:583800 發(fā)表于 2019-12-1 16:29 | 只看該作者
littlejia 發(fā)表于 2019-10-21 19:16
兩片單片機(jī)應(yīng)該是2套程序,看來程序還得自己編啊

分別寫在兩個(gè)單片機(jī)里就可以了
回復(fù)

使用道具 舉報(bào)

7#
ID:518023 發(fā)表于 2019-12-4 21:18 | 只看該作者
liking 發(fā)表于 2019-12-1 16:29
分別寫在兩個(gè)單片機(jī)里就可以了

你們運(yùn)行成功了嗎?
回復(fù)

使用道具 舉報(bào)

8#
ID:613684 發(fā)表于 2019-12-9 21:59 | 只看該作者
有人成功了嗎,可不可行
回復(fù)

使用道具 舉報(bào)

9#
ID:716827 發(fā)表于 2020-3-27 13:04 | 只看該作者
有C的程序嗎
回復(fù)

使用道具 舉報(bào)

10#
ID:739434 發(fā)表于 2020-5-4 12:00 | 只看該作者
請問有仿真圖嗎?運(yùn)行沒有成功
回復(fù)

使用道具 舉報(bào)

11#
ID:764591 發(fā)表于 2020-5-29 21:15 | 只看該作者
cc5218 發(fā)表于 2020-5-4 12:00
請問有仿真圖嗎?運(yùn)行沒有成功

你有程序么發(fā)給我一份
回復(fù)

使用道具 舉報(bào)

12#
ID:763089 發(fā)表于 2020-6-3 19:05 | 只看該作者
我打不開那個(gè)asm
回復(fù)

使用道具 舉報(bào)

13#
ID:290578 發(fā)表于 2021-6-20 21:04 | 只看該作者
接收過程比較簡單,沒多少參考,多謝啦。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表