网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > 单片机 > 正文
单片机间的串口通信(发送端)
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 09/07/22

  ; ***************************************************************************

  ;文件名“6_2OUT.ASM”

  ;功能:单片机间的串口通信(发送端)。

  ; ***************************************************************************

  STATUSEQU03H;定义状态寄存器地址

  PORTCEQU07H;定义端口C的数据寄存器地址

  PORTDEQU08H;定义端口D的数据寄存器地址

  TRISCEQU87H;定义端口C的方向寄存器

  TRISDEQU88H;定义端口D的方向寄存器

  INTCONEQU0BH;定义INTCON控制寄存器

  SPBRGEQU99H;定义SPBRG寄存器

  RCSTAEQU18H;定义RCSTA寄存器

  TXREGEQU19H;定义TXREG寄存器

  TXSTAEQU98H;定义TXSTA寄存器

  RCREGEQU1AH;定义RCREG寄存器

  PIR1EQU0CH;定义第一外设中断标志寄存器

  SPENEQU07H;定义SPEN标志位

  TXENEQU05H;定义TXEN标志位

  BRGHEQU02H;定义BRGH标志位

  PIR1EQU0CH;定义PIR1标志位

  TXIFEQU04H;定义TXIF标志位

  CRENEQU04H;定义CREN标志位

  RCIFEQU05H;定义RCIF标志位

  RP1EQU06H;定义状态寄存器中的页选位RP1

  RP0EQU05H;定义状态寄存器中的页选位RP0

  SENDBUFFEQU20H;定义SENDBUFF

  SENDNUMEQU21H;定义SENDNUM

  SENDCODEEQU22H;定义SENDCODE

  DLYCNTLEQU23H;定义DLYCNTL

  DLYCNT2EQU24H;定义DLYCNT2

  DATA1EQU25H;定义外循环变量

  DATA2EQU26H;定义内循环变量

  RCODEEQU27H;定义RCODE

  TEMPEQU28H;定义TEMP输出变量

  COUNT1EQU2FH;定义存储外循环次数的变量

  COUNT2EQU0FFH;定义存储内循环次数的变量

  ; ***************************主程序开始*********************************

  ORG00H

  NOP;空指令

  GOTO MAIN

  ; ********************************开始*****************************

  MAIN

  CALL INITIAL;调初始化子程序

  LOOP

  BSFSTATUS,RP0;转到体1

  BCFSTATUS,RP1;

  BSFTXSTA,TXEN;发送使能

  BCFSTATUS,RP0;转到体0

  BCFSTATUS,RP1;

  MOVFTEMP,0;在端口D显示TEMP

  MOVWFPORTD;

  BSFRCSTA,CREN;接受使能

  MOVLW1;

  ADDWFRCODE,1;设置受到数据后自加1

  MOVFTEMP,0;将TEMP装入TXREG

  MOVWFTXREG;以发送

  RWAIT

  BTFSSPIR1,RCIF;是否有接受

  GOTORWAIT;否,继续监视

  INCFTEMP;TEMP自加1

  CALLDELAY;延时1s

  CALLDELAY;调用DELAY一次延时0.2s

  CALLDELAY;

  CALLDELAY;

  CALLDELAY;

  GOTOLOOP;继续进行下一次传输

  ; ***************************************************************************

  ; ***************************初始化子程序开始*********************************

  INITIAL

  BSFSTATUS,RP0;转到体1

  BCFSTATUS,RP1;

  MOVLW16H;设置波特率发生器

  MOVWFSPBRG;

  MOVLW0C0H;设置端口C

  MOVWFTRISC;

  BCFSTATUS,RP0;转到体0

  BCFSTATUS,RP1;

  CLRFRCSTA;设置接受状态兼控制寄存器

  ;异步接受

  BSFRCSTA,SPEN;接受使能

  CLRFPIR1;清中断使能

  BSFSTATUS,RP0;转到体1

  BCFSTATUS,RP1;

  CLRFTXSTA;设置发送状态兼控制寄存器

  ;异步接受

  BSFTXSTA,BRGH;发送使能

  MOVLW00H;TEMP置为0

  MOVWFTEMP;

  RETURN

  ; ***************************初始化子程序结束*********************************

  ; ***************************延时子程序****************************************

  DELAY

  MOVLWCOUNT1;设置外部循环的次数

  MOVWFDATA1;

  LOOP1

  MOVLWCOUNT2;设置内部循环的次数

  MOVWFDATA2;

  LOOP2

  DECFSZDATA1,1;内部循环变量自减1,为0则跳转

  GOTOLOOP2;

  DECFSZDATA2,1;外部循环变量自减1,为0则跳转

  GOTOLOOP1;

  RETURN;返回主程序

  ; ***************************延时子程序结束*************************************

  ; ***************************主程序结束*************************************

  END

  • 上一篇资讯: 课程设计
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 电话:013574892963 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号