中山大学左明老师实验(Word)_第1页
中山大学左明老师实验(Word)_第2页
中山大学左明老师实验(Word)_第3页
中山大学左明老师实验(Word)_第4页
中山大学左明老师实验(Word)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验八 器行接口实验一、实验目的1、掌握8031串行口方式1的工作方式及编程方法2、掌握串行通讯中波特率的设置,在给定通讯波特率的情况下,会计算时间常数3、掌握串行口工作方式的程序设计和单片机通讯程序的编制方法二、实验说明MCS-51单片机串行通讯的波特率随串行口工作方式选择的不同而不同,它除了与系统的振荡频率f,电源控制寄存器PCON的SMOD位有关外,还与定时器T1的设置有关。串行通信的四种模式:0:波特率固定的8位同步通信;1:波特率可变的8位异步通信;2:波特率固定的9位可多机的异步通信;3:波特率可变的9位可多机的异步通信。三、实验内容内容一:利用8031串行口发送和接收数据,并将接

2、收的数据通过扩展I/O口一、 连线方法:1、8031的TXD接RXD2、74L273的CS273接CS0;0007接发光二极管的L1L8二、代码;D81.ASMORG4000HLJMPSTARTORG4100HPORTEQU0CFA0HSTART:MOVTMOD,#20HMOVTL1,#0F2HMOVTH1,#0F2HMOV87H,#00HSETBTR1MOVSCON,#50H1 / 11MOVR1,#12HMOVDPTR,#TABLEMOVA,DPLMOVDPTR,#L1CLRCSUBBA,DPLMOVR5,AMOVR0,ASEND:MOVA,R0MOVCA,A+PCL1:MOVSBUF,A

3、WAIT:JBCRI,L2SJMPWAITL2:CLRRICLRTIMOVA,SBUFMOVDPTR,#PORTMOVXDPTR,AACALLDELAYINCR0DJNZR1,SENDMOVR1,#12HMOVA,R5MOVR0,AJMPSENDTABLE:DB01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, 0FFH, 0FEHDB0FCH, 0F8H, 0F0H, 0E0H, 0C0H, 80H, 00H, 0FFH, 00HDELAY:MOVR4,#05HDEL1:MOVR3,#200DEL2:MOVR2,#126DEL3:DJNZR2,DEL3DJNZR3,DEL2

4、DJNZR4,DEL1RETEND三、现象及分析开始仿真后LED循环变化出各种花样内容二:用中断方法,利用8031串行口发送和接收数据,并将接收的数据通过扩展I/O口接线方法:1、8031的TXD接RXD2、74L273的CS273接CS0;0007接发光二极管的L1L8二、代码分析;D81.ASMORG4000HLJMPSTARTORG4023HLJMPINTCORG4100HPORTEQU0CFA0HSTART:MOVTMOD,#20H;选择定时器模式2计时方式MOVTL1,#0F2H;预置时间常数,波特率为1200MOVTH1,#0F2HMOV87H,#00H;PCON=0,使SMOD=

5、0SETBTR1;启动定时器1MOVSCON,#50H;器行口工作于方式1,允许器行接收SETBEA;开总中断SETBES;开串行中断MAIN:MOVR1,#12H;需要循环12次MOVDPTR,#TABLEMOVA,DPLMOVDPTR,#L1CLRCSUBBA,DPL;计算偏移量MOVR5,AMOVR0,ASEND:MOVA,R0MOVCA,A+PCL1:MOVSBUF,A;串口发送显示码ACALLDLAYINCR0DJNZR1,SENDMOVR1,#12HMOVA,R5MOVR0,AJMPSENDTABLE:DB01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, 0FF

6、H, 0FEHDB0FCH, 0F8H, 0F0H, 0E0H, 0C0H, 80H, 00H, 0FFH, 00HDLAY:MOVR4,#05HDEL1:MOVR3,#200DEL2:MOVR2,#126DEL3:DJNZR2,DEL3DJNZR3,DEL2DJNZR4,DEL1RETINTC:PUSHACC;保护寄存器PUSHPSWANLPSW,#0C7HORLPSW,#10HL2:CLRRI;串口中断标志清零CLRTI;发送中断标志位清零MOVA,SBUF;读取数据MOVDPTR,#PORT;送外设的地址MOVXDPTR,A;送数据到外设ACALLDLAYPOPPSW;恢复数据寄存器PO

7、PACCSETBEARETIEND三、现象及分析与实验内容一的现象相同,都是LED彩灯循环变换四、结论中断方式传输可以产生与查询法相同的效果,而且中断的效率比查询法更高,不用占用CPU的资源内容三:双机实验一、 前期连接:1、 发送机的接法:74LS273的CS273接CS0,P1.0P1.5接数码管的LED16,P3.3接P-2、 接收机的接法:74LS273的CS273接CS0,P1.0P1.5接数码管的LED163、 发送机的GND接接收机的GND,发送机的TXD接接收机的RXD二、 代码分析发送机的代码ORG4000HLJMPSTARTORG4013HLJMPINTX1PORTEQU0

8、CFA8HORG4100HSTART:MOV31H,#05HMOV32H,#01HMOV33H,#01HMOV34H,#01HMOV35H,#0EHMOV36H,#10HMOVR0,#30H;选取数值存储的地址首位MOVP3,#0FFHMOVTCON,#04HSETBEASETBEX1MAIN:;*显示模块开始PUSHACCPUSHPSWANLPSW,#0C7HORLPSW,#10HDISPLAY:;调用显示函数MOVB,#36HNOPDS1:MOVR0,B;R0赋予要显示的最后一个数据地址MOVR4,#60H;扫描需要显示60次MOVR2,#20H;位码的初值DS2:MOVA,R0;A里面暂

9、存RAM里的数据ACALLTABLE;取段码MOVDPTR,#PORT;送段码的入口地址MOVXDPTR,A;送段码MOVA,R2;读位码CPLA;取反MOVP1,A;送位码MOVR3,#0FFH;适当延时DEL:NOPDJNZR3,DEL;判断地是否结束CLRC;清CMOVA,R2RRCAMOVR2,A;右移位码DECR0MOVA,R0CJNEA,#30H,DS2;若没有显示到足够的码,则继续扫描MOVR0,B;重新赋给R0要显示的最后一个数的地址MOVR2,#20H;重新赋给R2显示的位码DJNZR4,DS2;扫描60次完毕MOVR4,#60HJMPNONUM;显示程序完,准备退出显示程序

10、TABLE:INCA;算上RET一个字节MOVCA,A+PCRETDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00HNONUM:POPPSWPOPACC;*显示模块结束JMPMAININTX1:PUSHACC;保护寄存器PUSHPSWANLPSW,#0C7HORLPSW,#08HMOVTMOD,#20H;设计时器为工作方式2MOVTL1,#0F2HMOVTH1,#0F2HSETBTR1MOVSCON,#80H;设为工作方式2MOVPCON,#80H;SMOD=1,波特率为2400SEN:MOVR0,#31H

11、;要发送的数据的第一位地址MOVR6,#06H;要发送6位数据TRS:MOVA,R0MOVSBUF,A;发送数据WAIT:JBTI,CONT;发送内部采用查询方式AJMPWAITCONT:INCR0CLRTIDJNZR6,TRSPOPPSWPOPACCRETIEND接收机代码ORG4000HLJMPSTARTORG4023HLJMPINTCPORTADEQU0CFA0HPORTEQU0CFA8HORG4100HSTART:MOV31H,#10H;在未接收到断据的时候,LED不显示MOV32H,#10HMOV33H,#10HMOV34H,#10HMOV35H,#10HMOV36H,#10HMOV

12、37H,#00H;37位为判断是传输是否正确的标志位MOVP3,#0FFHMOVTMOD,#20H;定时器为工作方式2MOVTL1,#0F2HMOVTH1,#0F2HSETBTR1MOVSCON,#80H;串口工作方式2,波特率为2400MOVPCON,#80HSETBRENSETBEASETBESPUSHACCPUSHPSWANLPSW,#0C7HORLPSW,#08HMOVR0,#31H;R0为接收数据存储的首地址POPPSWPOPACC;*显示函数开始MAIN:MOVA,37H;判断其是否接收到正确的据,如果没有,LED数码CJNEA,#01H,OK;管显示“Error”MOV31H,#

13、11HMOV32H,#12HMOV33H,# 11 HMOV34H,#11HMOV35H,#0EHMOV36H,#10HOK:PUSHACCPUSHPSWANLPSW,#0C7HORLPSW,#10HDISPLAY:;调用显示函数MOVB,#36HNOPDS1:MOVR0,B;R0赋予要显示的最后一个数据地址MOVR4,#60H;扫描需要显示60次MOVR2,#20H;位码的初值DS2:MOVA,R0;A里面暂存RAM里的数据ACALLTABLE;取段码MOVDPTR,#PORT;送段码的入口地址MOVXDPTR,A;送段码MOVA,R2;读位码CPLA;取反MOVP1,A;送位码MOVR3,

14、#0FFH;适当延时DEL:NOPDJNZR3,DEL;判断地是否结束CLRC;清CMOVA,R2RRCAMOVR2,A;右移位码DECR0MOVA,R0CJNEA,#30H,DS2;若没有显示到足够的码,则继续扫描MOVR0,B;重新赋给R0要显示的最后一个数的地址MOVR2,#20H;重新赋给R2显示的位码DJNZR4,DS2;扫描60次完毕MOVR4,#60HJMPNONUM;显示程序完,准备退出显示程序TABLE:INCA;算上RET一个字节MOVCA,A+PCRETDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79

15、H,71H,00,50H,5CHNONUM:POPPSWPOPACC;*显示函数结束JMPMAININTC:CLREA;关中断CLRRI;中断标志位清零PUSHACC;保护寄存器PUSHPSWANLPSW,#0C7HORLPSW,#08HMOVA,SBUF;读出接收到的数据MOVR0,ACJNER0,#31H,RIGHT;是否接收第一位数据MOV37H,#00H;若为第一位,则判断其是否为“05”MOVA,31H,CJNEA,#05H,ERR1;若不为“05”,跳到ERR1JMPRIGHTERR1:MOV37H,#01H;37位置1CJNER0,#35H,RIGHT;判断其是否接收第五位数据MOVA,35HCJNEA,#0EH,ERR5;若是则判断其是否为“0E”JMPRIGHTERR5:MOV37H,#01H;若不为“0E”,其将37置1RIGHT:INCR0CJNER0,#37H,GOONMOVR0,#31HGOON:MOV31H,#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论