单片机实验报告串口通信.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

单片机实验报告

姓名 一、实验项目 单片机串行口通讯实验二、实验要求

_ 学号

利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。发送方读入按键值,并发送给接收方,接收方收到数据后在LED上显示。

三、实验目的

掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。

了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。

学习串口通讯的中断方式的程序编写方法。

四、实验说明

1、8051、80C196的RXD、TXD接线柱在POD51/96仿真板上,8088/86的TXD、RXD在POD8086

仿真板上的8251芯片旁边。

2、通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上,这样按下的键,就会在本机LED上显示出来。

3、若想与标准的RS232设备通信,就要做电平转换,输出时要将TTL电平换成RS232电平,输入时要将RS232电平换成TTL电平。可以将仿真板上的RXD、TXD信号接到实验板上的“用户串口接线”的相应RXD和TXD端,经过电平转换,通过“用户串口”接到外部的RS232设备。可以用实验仪上的逻辑分析仪采样串口通信的波形

五、程序框图

六、源程序

发射程序:

org 0000h

ljmp main

org 0023h

ljmp com_in ;串行口中断服务子程序入口org 1000h

main: mov sp,#50h ;设置堆栈指针

mov dptr,#7f00h ;81c55初始化mov a,#03h

movx @dptr,a

mov

mov

tmod,#20h

th1,#0f4h

;设置定时器T1工作方式为方式2

;设置定时器T1计数初值

mov

tl1,#0f4h

mov

pcon,#80h

;波特率加倍

setb

tr1

;打开定时器

mov scon,#40h;设置串行口工作方式为方式1,8位异步收发,波特率可变mov ie,#90h ;打开中断允许寄存器,采用中断方式发送数据

clr ti ;关闭发送中断标志位T1loop: acall key1 ;调用读取键值子程序

mov r0,a ;键值存入R0

setb ti ;开发送中断标志位T1ljmp loop

com_in: clr ti ;关闭发送中断标志位T1

mov

sbuf,r0

;发送数据

reti

key1:

acall

ks1

;调用判定有无键闭合子程序

jnz

lk1

;有键闭合,跳转lk1

acall

dir

;无键闭合,调用显示子程序

ajmp

key1

lk1:

acall

dir

;可能有键闭合,延时24ms

acall

dir

acall

ks1

;调用判定有无键闭合

jnz

lk2 ;经去抖动,判断有键闭合跳转lk2

acall

dir ;无键闭合,调用延时子程序

ajmp

key1

lk2:

mov

r2,#0feh ;列选码送到R2

mov

r4,#00h ;r4为列号计数器

lk4:

mov

dptr,#7f01h ;列选码送到PA口

mov

a,r2

movx

@dptr,a

mov

dptr,#7f03H

movx

a,@dptr ;读PC口

jb

acc.0,lone

;0行线为高电平,无键闭合,跳转lone,转判1行

mov

a,#00h

;0行有键闭合,首键号0→A

ajmp

lkp

;跳转lkp,计算键号

lone:

jb

acc.1,ltw0

;1行线为高电平,无键闭合,跳转ltwo,转判2行

mov

a,#06h

;1行有键闭合,首键号8→A

ajmp

lkp

;跳转lkp,计算键号

ltw0:

jb

acc.2,lthr

;2行线为高电平,无键闭合,跳转lthr,转判3行

mov

a,#12h

;2行有键闭合,首键号10H→A

ajmp

lkp

;跳转lkp,计算键号

lthr:

jb

acc.3,next;3行线为高电平,无键闭合,跳转next,准备下一列扫描

mov

a,#18h ;3行有键闭合,首键号18H→A

lkp:

add

a,r4 ;计算键号,即行首键号+列号=键号

push

a ;键号进栈保护

lk3:

acall

dir ;调用显示子程序,延时6ms

acall

ks1 ;调用判定有无键闭合子程序,延时6ms

jnz

lk3 ;判定键释放否,未释放,则循环

pop

a ;键已释放,键号出栈→A

ret

next:

inc

r4 ;列计数器加1,为下一列扫描做准备

mov

a,r2 ;判定是否已扫到最后一列

jnb

acc.5,knd ;键

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档