找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2814|回復: 0
打印 上一主題 下一主題
收起左側

51單片機異步全雙工通信匯編源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:284541 發(fā)表于 2018-2-21 16:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機匯編語言源程序如下:
  1. org  0000h
  2.        ljmp reset
  3.        org  0003h
  4.        reti
  5.        org  000bh
  6.        reti
  7.        org  001bh
  8.        reti
  9.        org  0023h
  10.        ljmp tans_int     ;串口中斷入口

  11. reset:       mov r0,#0  ;先進行系統(tǒng)準備(可以不要)
  12.        djnz r0,$

  13. init:  mov r1,#4   ;各個寄存器初始化
  14.        mov tmod,#0020h
  15.        mov th1,#0fdh
  16.        mov tl1,#0fdh
  17.        setb tr1          ;打開定時器中斷
  18.        mov pcon,#00h

  19.        clr   sm0               ;設置工作方式1
  20.        setb sm1
  21.        setb ren    ;允許串行口接收數據
  22.        clr   ti
  23.        clr   ri
  24.        setb es           ;打開串行中斷
  25.        setb ea           ;打開全局中斷

  26. main:      
  27.        mov r0,#9
  28.        mov a,#0
  29. loop:            
  30.        mov dptr,#table        ;主函數主要實現串行發(fā)送
  31.        mov a,r0
  32.        movc      a,@a+dptr

  33.        mov sbuf,a
  34.        jb     ti,$          ;判斷發(fā)送中斷標志是否在中斷中清零
  35.        lcall  delay       ;若清零,則延時
  36.        inc   dptr
  37.        dec         r0
  38.        cjne r0,#255,loop ;減到0之后會變成255
  39.        ljmp main

  40. tans_int:
  41.        push       acc
  42.        push       psw
  43.        jnb   ti,recive_clr  ;判斷是否為發(fā)送中斷
  44.        clr   ti
  45.        sjmp       int_end

  46. recive_clr:
  47.        jnb   ri,int_end        ;判斷是否為接收中斷
  48.        clr   ri   
  49.        mov a,sbuf                   ;若是,則顯示出來
  50.        mov p2,a

  51. int_end:  
  52.        pop        psw
  53.        pop  acc
  54.        reti

  55. table:             ;共陽極數碼管掃描碼
  56.        db   0c0h,0f9h,0a4h,0b0h,99h
  57.        db   92h,82h,0f8h,80h,90h

  58. delay:   
  59.         mov    r3,#4              ;延時函數(延時大概5**255*255*2=500ms)
  60. l0:     mov r4,#0      
  61. l1:    mov r5,#0ffh
  62.          djnz r5,$
  63.          djnz r4,l1
  64.          djnz r3,l0
  65.       ret  

  66.        end

復制代碼

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表