找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2452|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机异步全双工通信汇编源码

[复制链接]
跳转到指定楼层
楼主
ID:284541 发表于 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  ;先进行系统准备(可以不要)
  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        ;主函数主要实现串行发送
  31.        mov a,r0
  32.        movc      a,@a+dptr

  33.        mov sbuf,a
  34.        jb     ti,$          ;判断发送中断标志是否在中断中清零
  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  ;判断是否为发送中断
  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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表