版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华北科技学院计算机学院综合性实验实验报告课程名称接口技术实验学期2015至2016学年第2学期学生所在学院部年级专业班级学生姓名学号任课教师实验成绩计算机学院制编辑版 word接口技术课程综合性实验报告开课实验室: 接口实验室2016 年 5 月 20日实验题目串口通信一、实验目的1 、了解 RS232串口通信原理。2 、掌握串口波特率设置方法。3 、通过简单 101 规约开发,掌握通信协议的开发过程。掌握串行接口芯片8251 的工作原理和编程方法。二、设备与环境TPC-2003A微机。Vc+编译器。三、实验内容1、 8251可进行同步异步接收 / 发送 , 采用全双工,双缓冲发送 / 接收。
2、按原理图连接好电路 , 其中 8254计数器用于产生 8251的发送和接收时钟, TXD和RXD连在一起。原理图如下所示:2、补充知识:可编程串行接口芯片 8251A:通用同步 / 异步接收 / 发送器 USART1)基本结构接收部分:异步方式时,能把接收到的数据去掉起始位、停止位,检查有无编辑版 word奇偶错,然后经过移位寄存器变为并行格式后,送至接收缓冲器,以便CPU用输入指令( IN指令)取走;同步方式时,能够自动识别同步字符。发送部分:能接收并暂存由CPU并行输出的数据。在异步方式时,通过移位寄存器变为串行数据格式并添加上起始位、奇偶校验位及停止位,由一条数据线发送出去;在同步方式时
3、,能自动插入同步字符。2)初始化:同步还是异步方式;字符格式;时钟脉冲频率与波特率的比例系数;有关命令位的确定。3) 8251A的主要特性:可进行同步异步接收 / 发送;波特率: 064Kbit (同步); 0 19.2Kbit (异步);全双工,双缓冲发送 / 接收;可产生中止字符,可产生、.5 或位的停止位;出错检测:具有奇偶、溢出和帧错误等检测电路;全部输入 / 输出与 TTL电平兼容,单一的 +5V电源,单相 TTL电平时钟, 28脚双列直插式封装。4 ) 8251A的编程 : 8251A 各种工作方式及工作进程都是用初始化及实时控制实现的。初始化主要是写入控制字,其顺序是: 8251
4、A复位后先写入方式指令字,后写入同步字符和命令指令3、编程 :按101协议格式编写通信协议。发送接收方数据帧格式如下所示:发送方数据包格式:开始标志:30H(8位) +发送序号( 8位) +发送数据( 7位)+校验位( 1位) +停止标志: 50H(8位)接收方返回确认数据包格式:开始标志:60H( 8位) +确认序号(发送序号 +1)+停止标志( 80H)接收方返回错误数据格式:开始标志: 70H(8位) +确认序号(发送序号 +1) + 停止标志( 90H)4、报文实例:Msg1=2<WPZD-163R>18:59:26:437<串口 1>发送 <请求链路 &
5、gt;:10 49 01 00 4A1 6编辑版 wordMsg2=2<WPZD-163R>18:59:26:453<串口 1>接收 <链路响应 >:108B 01 00 8C 16Msg3=2<WPZD-163R>18:59:31:953<串口 1>发送 <复位链路 >:1040 01 00 41 16Msg4=2<WPZD-163R>18:59:31:968<串口 1>接收 <确认帧 >:10 80 01 00 81 16Msg5=2<WPZD-163R>18:59:31
6、:968<串口 1>接收 <复位链路 >:10 C0 01 00 C1 16Msg6=2<WPZD-163R>18:59:32:156<串口 1>发送 <确认帧 >:10 00 01 00 01 165、程序流程图6、程序及其部分解释:data segment编辑版 wordio8253aequ 280hio8253bequ 283hio8251aequ 2b8hio8251bequ 2b9hmes1db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd m
7、es1message1 db 'success!$'message2 db 'failed!$'counter db '1'buffer1db 4dup(?)buffer2db 3dup(?)buffer3db 3dup(?)flag1db ?data endscode segmentassume cs:code, ds:datastart:mov ax,datamov ds, axmov dx,io8253b; 设置计数器工作方式mov al ,16houtdx, almov dx,io8253amov al ,52; 给计数器送初值outdx
8、, almov dx,io8251b; 初始化xoral , almov cx,03; 向控制端口送个delay:callout1loop delaymov al ,40h; 向控制端口送 H, 使其复位callout1mov al ,4eh; 设置为个停止位 ,8 个数据位 , 波特率因子为callout1mov al ,27h; 向送控制字允许其发送和接收callout1ldsdx,mes2; 显示提示信息mov ah,09int21hmov ah,09h; 显示序号 1waiti:calltestsendmovah,01; 是, 从键盘上读一字符int21hcmpal ,27; 若为 E
9、SC,结束jnzcontinue编辑版 wordexit:mov ah,4ch; 退出int21hcontinue:mov dx,io8251apush axcall testsendmov al ,30houtdx, alcalltestrecmov dx,io8251ainal , dx;准备好,接收movbuffer1,almov dx,io8251acalltestsendmov al ,counteradd counter,byteptr 1outdx, alcalltestrecmov dx,io8251ainal , dx;准备好,接收movbuffer1+1,almov dx,
10、io8251apop axcallcomflagshlal ,1add al , blcalltestsendoutdx, alcalltestrecmov dx,io8251ainal , dx;准备好,接收movbuffer1+2,almov dx,io8251acalltestsendmov al ,50houtdx, alcalltestrecmov dx,io8251ainal , dx;准备好,接收movbuffer1+3,alcmpbuffer1+3,50h; 数据包检查jnzerrormov al ,buffer1+2push axand al ,01h编辑版 wordmovf
11、lag1, alpop axshral ,1callcomflagcmp bl ,flag1jnzerrorpush axpush dxmov ah,09hleadx,message1int21hmov dl ,buffer1+1incdlmov ah,02; 将接收到的字符显示在屏幕上int21hmov dl , ' 'mov ah,02; 将接收到的字符显示在屏幕上int21hpop dxpop axmov dx,io8251a;push axcalltestsendmov al ,60houtdx, alcalltestrecmov dx,io8251ainal , dx
12、;准备好,接收movbuffer2,almov dx,io8251acalltestsendmov al ,buffer1+1incaloutdx, alcalltestrecmov dx,io8251ainal , dx;准备好,接收movbuffer2+1,almov dx,io8251acalltestsendmov al ,80houtdx, alcalltestrecmov dx,io8251ainal , dx;准备好,接收movbuffer2+2,al编辑版 wordjmp waitierror:push axpush dxmov ah,09hleadx,message2int
13、21hmov dl ,buffer1+1mov ah,02; 将接收到的字符显示在屏幕上int21hpop dxpop axmov dx,io8251a;push axmov al ,70houtdx, alcalltestrecmov dx,io8251ainal , dx;准备好,接收movbuffer3,almov dx,io8251acalltestsendmov al ,buffer1+1outdx, alcalltestrecmov dx,io8251ainal , dx;准备好,接收movbuffer3+1,almov dx,io8251acalltestsendmov al ,
14、90houtdx, almov dx,io8251ainal , dx;准备好,接收movbuffer3+2,aljmp exitout1proc near; 向外发送一字节的子程序outdx, alpush cxmovcx,40hgg:loopgg; 延时popcxretout1endp编辑版 wordtestsendproc nearpush dxpush axwaitii:mov dx,io8251binal , dxtestal ,01; 发送是否准备好jz waitiipop axpop dxrettestsendendptestrecproc nearpush axpush dxn
15、ext:mov dx,io8251binal , dxtestal ,02; 检查接收是否准备好jz next; 没有 , 等待pop dxpop axrettestrecendpcomflagproc nearmov bl ,0add al ,0jp flagendmov bl ,1flagend:retcomflagendpcode endsend start四、实验结果及分析编辑版 word1、运行结果截图如下所示:2、结果分析从键盘输入数据后,计算机将输入数据将其封装成为数据帧后发送出去, 并进行差错检测及奇偶校验,再接收回来在屏幕上显示。发送方发送数据,接收方检测是否允许接收数据,若允许接收数据并且遇到数据开始位30H 则开始接收数据,接收后发出 60H 开始的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福州理工学院《耳鼻喉头颈外科学》2025-2026学年期末试卷
- 湄洲湾职业技术学院《证券投资学》2025-2026学年期末试卷
- 福建生物工程职业技术学院《经济学基础》2025-2026学年期末试卷
- 南昌大学共青学院《社会工作实务手册》2025-2026学年期末试卷
- 厦门海洋职业技术学院《材料力学性能》2025-2026学年期末试卷
- 盐城工学院《家政学》2025-2026学年期末试卷
- 仰恩大学《犯罪心理学》2025-2026学年期末试卷
- 长春财经学院《公告关系学》2025-2026学年期末试卷
- 福建江夏学院《金融法》2025-2026学年期末试卷
- 泉州工艺美术职业学院《全新大学英语》2025-2026学年期末试卷
- 人工智能助力智慧护理的发展
- 全国职业院校技能大赛高职组(市政管线(道)数字化施工赛项)考试题库(含答案)
- 2025年江西赣州市政公用集团招聘笔试参考题库含答案解析
- 胆管癌介入治疗护理
- 鸟的天堂(说课稿)部编版语文五年级上册
- EN-ISO-5817-焊缝检验及评定缺欠-质量分级指南
- 妇产科品管圈汇报提高产房医护人员感控执行率
- SY-T 5412-2023 下套管作业规程
- DL∕T 656-2016 火力发电厂汽轮机控制及保护系统验收测试规程
- 胰腺癌的超声诊断
- (正式版)JTT 1497-2024 公路桥梁塔柱施工平台及通道安全技术要求
评论
0/150
提交评论