串行通信实验报告

收藏

预览图
编号:96786148    类型:共享资源    大小:76.50KB    格式:DOC    上传时间:2020-09-27 上传人:Ni****66 IP属地:广东
12
积分
关 键 词:
串行 通信 实验 报告
资源描述:
— 串行通信实验报告 班级 姓名 学号 日期 一、实验目的: 1、掌握单片机串行口工作方式的程序设计,及简易 三线式通讯的方法。 2、了解实现串行通讯的硬环境、数据格式的协议、 数据交换的协议。 3、学习串口通讯的程序编写方法。 二、实验要求 1.单机自发自收实验:实现自发自收。编写相应程序,通过发光二极管观察收发状态。 2.利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。 三、实验说明 通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上。 连线方法:在第一个实验中将一台实验箱的RXD和TXD相连,用P1.0连接发光二极管。波特率定为600,SMOD=0。 在第二个实验中,将两台实验箱的RXD和TXD交叉相连。编写收发程序,一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器20H~3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。通过运行程序观察存储单元内数值的变化。 四、程序 甲方发送程序如下: ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INT ORG 1000H MAIN: MOV SP,#53H MOV 78H,#20H MOV 77H,00H MOV 76H,20H MOV 75H,40H ACALL TRANS HERE: SJMP HERE TRANS: MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1 MOV SCON,#40H MOV IE,#00H CLR F0 MOV SBUF,78H WAIT1: JNB TI,WAIT1 CLR TI MOV SBUF,77H WAIT2: JNB TI,WAIT2 CLR TI MOV SBUF,76H WAIT3: JNB TI,WAIT3 CLR TI MOV SBUF,75H WAIT4: JNB TI,WAIT4 CLR TI MOV IE,#90H MOV DPH,78H MOV DPL,77H MOVX A,@DPTR MOV SBUF,A WAIT: JNB F0,WAIT RET COM_INT: CLR TI INC DPTR MOV A,DPH CJNE A,76H,END1 MOV A,DPL CJNE A,75H,END1 SETB F0 CLR ES CLR EA RET END1: MOVX A,@DPTR MOV SBUF,A RETI END 乙方发送程序如下: ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INT ORG 1000H MAIN: MOV SP,#53H ACALL RECEI HERE: SJMP HERE RECEI: MOV R0,#78H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1 MOV SCON,#50H MOV IE,#90H CLR F0 CLR 7FH WAIT: JNB 7FH,WAIT RET COM_INT: PUSH DPL PUSH DPH PUSH Acc CLR RI JB F0,R_DATA MOV A,SBUF MOV @R0,A DEC R0 CJNE R0,#74H,RETN SETB F0 RETN: POP Acc POP DPH POP DPL RETI R_DATA: MOV DPH,78H MOV DPL,77H MOV A,SBUF MOVX @DPTR,A INC 77H MOV A,77H JNZ END2 INC 78H END2: MOV A,76H CJNE A,78H,RETN MOV A,75H CJNE A,77H,RETN CLR ES CLR EA SETB 7FH SJMP RETN END 五、实验过程中遇到的主要问题 OUTBIT equ 08002h ; 位控制口 OUTSEG equ 08004h ; 段控制口 IN equ 08001h ; 键盘读入口 HasRcv equ 20h.0 ; 接收标志位 LEDBuf equ 40h ; 显示缓冲 RCVBuf equ 50H ; 接收缓冲 ORG 0000H LJMP START ; 串行口中断程序 ORG 0023H JNB TI,S0_R CLR TI NOP SJMP S0_RET S0_R: ; 接收数据 CLR RI MOV RCVBUF,SBUF ; 保存数据 SETB HasRcv ; 提示收到数据 NOP S0_RET: RETI LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序 mov r7, #0 DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop ret DisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示 Loop: mov dptr, #OUTBIT mov a, #0 movx @dptr, a ; 关所有八段管 mov a, @r0 mov dptr, #OUTSEG movx @dptr,a mov dptr, #OUTBIT mov a, r2 movx @dptr, a ; 显示一位八段管 mov r6, #1 call Delay mov a, r2 ; 显示下一位 rr a mov r2, a inc r0 djnz r1, Loop ret TestKey: mov dptr, #OUTBIT mov a, #0 movx @dptr, a ; 输出线置为0 mov dptr, #IN movx a, @dptr ; 读入键状态 cpl a anl a, #0fh ; 高四位不用 ret KeyTable: ; 键码定义 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07h GetKey: mov dptr, #OUTBIT mov P2, dph mov r0, #Low(IN) mov r1, #00100000b mov r2, #6 KLoop: mov a, r1 ; 找出键所在列 cpl a movx @dptr, a cpl a rr a mov r1, a ; 下一列 movx a, @r0 cpl a anl a, #0fh jnz Goon1 ; 该列有键入 djnz r2, KLoop mov r2, #0ffh ; 没有键按下, 返回 0ffh sjmp Exit Goon1: mov r1, a ; 键值 = 列 X 4 + 行 mov a, r2 dec a rl a rl a mov r2, a ; r2 = (r2-1)*4 mov a, r1 ; r1中为读入的行值 mov r1, #4 LoopC: rrc a ; 移位找出所在行 jc Exit inc r2 ; r2 = r2+ 行值 djnz r1, LoopC Exit: mov a, r2 ; 取出键码 mov dptr, #KeyTable movc a, @a+dptr mov r2, a WaitRelease: mov dptr, #OUTBIT ; 等键释放 clr a movx @dptr, a mov r6, #10 call Delay call TestKey jnz WaitRelease mov a, r2 ret START: MOV SP, #60H MOV IE, #0 ; DISABLE ALL INTERRUPT MOV TMOD,#020H ; 定时器1工作于方式2 (8位重装) MOV TH1, #0F3H ; 波特率?2400BPS @ 12MHz MOV TL1, #0F3H ANL PCON,#07FH ; SMOD 位清零 orl PCON,#80h MOV SCON,#050H ; 串行口工作方式设置 MOV LEDBuf, #0ffh ; 显示 8.8.8.8. mov LEDBuf+1, #0ffh mov LEDBuf+2, #0ffh mov LEDBuf+3, #0ffh mov LEDBuf+4, #0 mov LEDBuf+5, #0 SETB TR1 SETB ES SETB EA ;mov sbuf,a ;jnb ti,$ MLoop: jb HasRcv, RcvData ; 收到数据? call DisplayLED ; 显示 call TestKey ; 有键入? jz MLoop ; 无键入, 继续显示 call GetKey ; 读入键码 anl a, #0fh ; 通讯口输出键码 MOV SBUF,A LJMP MLoop RcvData: clr HasRcv ; 是 mov a, RcvBuf ; 显示数据 mov b,a anl a,#0fh ; 显示低位 mov dptr, #LEDMap movc a, @a+dptr mov LEDBuf+5, a mov a,b swap a ; 显示高位 anl a,#0fh mov dptr, #LEDMap movc a, @a+dptr mov LEDBuf+4, a ljmp MLoop END 六、实验后的心得体会 10 欢迎下载
内容简介:
-
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:串行通信实验报告
链接地址:https://www.renrendoc.com/paper/96786148.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!