如何实现(电脑)PC机与单片机AT89C51的串行通信

嵌入式系统 时间:2015-05-03来源:网络

  org 0000h

  ajmpstart

  org0023h  ;串行中断入口

  ljmps&r

  org0100h

  start:mov tmod,#20h ;设置定时器T1方式2

  movpcon,#00h;使SMOD为0

  movtll,#0fdh;波特率为9600b/s

  movthl,#0fdh

  setbea;开全局中断

  clret1;关T1中断

  setbes;开串行中断

  setbtrl;开T1定时

  movscon,#50h;串行方式1,允许接收

  sjmp$

  S&r:movc,ri

  jcrecive;RI为1,执行接收子程序

  sjmpsend;否则,执行发送子程序

  recive:mova,sbuf;接收数据

  clrri

  cjnea,#52h,re;是否接收到“R”

  mova,#59h;是,发送“Y”

  movsbuf,a

  sjmpendtr

  re:mov @rl,a  ;r1为接收数据存放地址

  incr1

  sjmpendtr

  send:mova,@r0;发送数据,r0为存放数据的地址

  movsbuf,a

  jnbti,$

  clrti

  incr0

  endtr:reti;中断返回

  3 结束语

  串口通信是一种广泛应用于各个领域的通信方式,由于目前大部分计算机都安装了Windows95操作系统,所以本文具体实现了在Windows95下利用它的SDK函数来与单片机进行串口通信。本文所提出的实现函数在所有当前流行软件如VC++、Delphi等中都可实现。它不仅可以用于近距离的RS-232通信,而且,还可以实现中远距离RS-485通信。在使用该程序的通信系统中,近远距离的通信都取得良好的效果。

1 2

关键词: AT89C51 PC

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版