微机原理课程设计报告-双机串行通信_第1页
微机原理课程设计报告-双机串行通信_第2页
微机原理课程设计报告-双机串行通信_第3页
微机原理课程设计报告-双机串行通信_第4页
微机原理课程设计报告-双机串行通信_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

河北科技大学河北科技大学 课程设计报告 学生姓名 学 号 专业班级 课程名称 微型计算机原理及应用技术 学年学期 2 0 1 2 2 0 1 3 学年第一学期 指导教师 2 0 1 3 年 1 月 课程设计成绩评定表课程设计成绩评定表 学生姓名学 号10L成绩 专业班级L101起止时间 设计题目双机通过两台实验箱串行通信 指 导 教 师 评 语 学习态度 端正 较端正 一般 较差 学习纪律 好 较好 一般 较差 出勤情况 好 较好 一般 较差 方案设计与连线 好 较好 一般 较差 程序设计 好 较好 一般 较差 动手能力 强 较强 一般 较差 团队精神 好 较好 一般 较差 创新意识 强 较强 一般 较差 课程设计完成情况 优秀 好 一般 较差 课程设计报告完成情况 优秀 好 一般 较差 指导教师 年 月 日 目录 一 设计题目 1 二 设计目的 1 三 设计原理及方案 1 1 8251A 的基本性能 1 2 8251A 的内部结构 1 3 8251 外部引脚图 2 4 8251A 的编程 2 5 8251A 的初始化 4 四 实现方法 5 1 程序流程图如下 5 2 连线图 6 3 8251A 操作过程流程图 7 4 试验程序 见附录 7 五 实施结果 7 六 改进意见及建议 8 七 个人所做贡献 8 八 设计体会 8 九 同组成员名单 8 十 附录 9 1 一 设计题目 双机通过两台试验箱串行通讯 二 设计目的 1 掌握 8088 86 实验串行口通信的方法 2 了解实现串行通讯的硬环境 数据格式的协议 数据交换的协议 3 学习串行口通讯程序编写方法 三 设计原理及方案 1 8251A 的基本性能 8251A 是可编程的串行通信接口芯片 基本性能有 1 两种工作方式 同步方式 异步方式 同步方式下 波特率为 064K 异步方 式下 波特率为 0 19 2K 2 同步方式下的格式 每个字符可以用 5 6 7 或 8 位来表示 并且内部能自动检测同步字符 从而实现同 步 除此之外 8251A 也允许同步方式下增加奇 偶校验位进行校验 3 异步方式下的格式 每个字符也可以用 5 6 7 或 8 位来表示 时钟频率为传输波特率的 1 16 或 64 倍 用 1 位作为奇 偶校验 1 个启动位 并能根据编程为每个数据增加 1 个 1 5 个或 2 个停 止位 可以检查假启动位 自动检测和处理终止字符 4 全双工的工作方式 5 提供出错检测 2 8251A 的内部结构 发送器由发送缓冲器和发送 控制电路两部分组成 接收器由 接收缓冲器和接收控制电路两部 分组成 数据总线缓冲器 读 写 控制电路 调制解调控制电路 8251A 内部结构图 2 3 8251 外部引脚图 8251 的外部引脚下图所示 共 28 个引脚 每个引脚信号的输入输出方式如图中的箭 头方向所示 8251 外部引脚图 4 8251A 的编程 编程的内容包括两大方面 一是由 CPU 发出的控制字 即方式选择控制字和操作命令控制字 二是由 8251A 向 CPU 送出的状态字 1 方式选择控制字 模式字 方式选择控制字的格式如图所示 2 操作命令控制字 控制字 操作命令控制字的格式如下 3 3 状态字 状态字的格式如下 5 8251A 的初始化 8251 的初始化和操作流程下图所示 4 8251 初始化流程图 a 芯片复位以后 第一次用奇地址端口写入的值作为模式字进入模式寄存器 b 如果模式字中规定了 8251A 工作在同步模式 c 由 CPU 用奇地址端口写入的值将作为控制字送到控制寄存器 而用偶地址端口 写入的值将作为数据送到数据输出缓冲寄存器 5 四 实现方法 1 程序流程图如下 串口发送子程序 2 连线图 主程序 连线连接孔 1连接孔 2 1KEY LED CSCS0 是 否 有 无 开始 设置串口通讯 方式及波特率 LED 显示 读入键值 检测键盘输入 转换成键码 串口发送键码 收到数据 接收数据送显示缓冲 是 接收子程序 是否已收 到数据 读入数据 返回 否 串口接收子程序 是 发送子程序 发送缓冲 为空 发送数据 返回 否 清出错标志 6 28251 CSCS1 38251 TxCLK1MHz 48251 RxCLK1MHz 58251 CLK10MHz 6 甲方 8251 TXD乙方 8251 RXD 7 甲方 8251 RXD乙方 8251 TXD 8 甲方 GND乙方 GND 7 3 8251A 操作过程流程图 8251A 操作过程流程图 4 试验程序 见附录 五 实施结果 双机串行通信实现了数据的双项收发 两台试验箱 A B 可相互发送 接受数据 在一台小 键盘键入字符 由 8251A 的发送端发送给另一台的 8251A 的接收端接收 然后在另一台 LED 数码显示器上显示出来 同样另一台也可做发送端发送字符 六 改进意见及建议 本次课程设计是通过 8251 的收发功能将两个试验箱实现串行通讯 我们组顺利实现了两 台机箱的同时发送和接收数据的双机通讯 而在本次试验中发送的一直都是一个字符而不能发 送多位字符 我希望改进的是可以发送任意长短的字符 由用户自己定义 8 七 个人所做贡献 在本次试验中我负责程序的编写 修改和调试 我们在网上查找 在本机实验程序中查找 修改 在一条一条指令的研究后 在询问了别人意见后 最后定下了附录里的这段程序 八 设计体会 学生学习完理论后就要进行课程设计 因为理论课程学习是让学生学习基本理论知识 对 课程内容和原理有比较深刻的理解 只要从理论上理解 不用考虑实际的可行性 而课程设计 是培养学生综合运用所学知识 发现 提出 分析和解决实际问题 锻炼实践能力的重要环节 是 对学生实际工作能力的具体训练和考察过程 不仅需要在理论上能实现而且还要考虑实际的可 行性 不能纸上谈兵 随着科学技术发展的日新日异 微型计算机已经成为当今计算机应用中 空前活跃的领域 在生活中可以说得是无处不在 因此作为二十一世纪的大学来说掌握微型 计算机的开发技术是十分重要的 尤其是在现在这个金融危机的时刻 找工作越来越难 只有 加强自身的能力才能有一席立足之地 回顾起此次接口课程设计 至今我仍感慨颇多 的确 从选题到定稿 从理论到实践 在 整整一星期的日子里 可以说得是苦多于甜 但是可以学到很多很多的的东西 同时不仅可以 巩固了以前所学过的知识 而且学到了很多在书本上所没有学到过的知识 通过这次课程设计 使我懂得了理论与实际相结合是很重要的 只有理论知识是远远不够的 只有把所学的理论知 识与实践相结合起来 从理论中得出结论 才能真正为社会服务 从而提高自己的实际动手能 力和独立思考的能力 在设计的过程中遇到问题 可以说得是困难重重 这毕竟第一次做的 难免会遇到过各种各样的问题 同时在设计的过程中发现了自己的不足之处 对以前所学过的 知识理解得不够深刻 掌握得不够牢固 比如说 8251A 芯片的使用 软件的应用技巧 对汇 编语言掌握得不好 通过这次课程设计之后 一定把以前所学过的知识重新温故 九 同组成员名单 9 十 附录 OUTBIT equ 08002h 位控制口 OUTSEG equ 08004h 段控制口 IN KEY equ 08001h 键盘读入口 CS8251D equ 09000h 串行通信控制器数据口地址 CS8251C equ 09001h 串行通信控制器控制口地址 data segment LEDBuf db 6 dup 显示缓冲 Num db 1 dup 显示的数据 DelayT db 1 dup RBuf db 0 TBuf db 0 LEDMAP 八段管显示码 db 3fh 06h 5bh 4fh 66h 6dh 7dh 07h db 7fh 6fh 77h 7ch 39h 5eh 79h 71h 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 code segment assume cs code ds data Delay proc near push ax 延时子程序 push cx mov al 0 mov cx ax loop pop cx pop ax ret Delay endp DisplayLED proc near 10 mov bx offset LEDBuf mov cl 6 共 6 个八段管 mov ah b 从左边开始显示 DLoop mov dx OUTBIT mov al 0 out dx al 关所有八段管 mov al bx mov dx OUTSEG out dx al mov dx OUTBIT mov al ah out dx al 显示一位八段管 push ax mov ah 1 call Delay pop ax shr ah 1 inc bx dec cl jnz DLoop mov dx OUTBIT mov al 0 out dx al 关所有八段管 ret DisplayLED endp TestKey proc near mov dx OUTBIT mov al 0 out dx al 输出线置为 0 mov dx IN KEY in al dx 读入键状态 not al and al 0fh 高四位不用 ret TestKey endp GetKey proc near mov ch b mov cl 6 11 KLoop mov dx OUTBIT mov al ch 找出键所在列 not al out dx al shr ch 1 mov dx IN KEY in al dx not al and al 0fh jne Goon 该列有键入 dec cl jnz KLoop mov cl 0ffh 没有键按下 返回 0ffh jmp Exit1 Goon dec cl shl cl 2 键值 列 X 4 行 mov ch 4 LoopC test al 1 jnz Exit1 shr al 1 inc cl dec ch jnz LoopC Exit1 mov dx OUTBIT mov al 0 out dx al mov ch 0 mov bx offset KeyTable add bx cx mov al bx 取出键码 mov bl al WaitRelease mov dx OUTBIT mov al 0 out dx al 等键释放 mov ah 10 12 call Delay call TestKey jne WaitRelease mov al bl ret GetKey endp IInit proc near 8251 初始化 mov dx CS8251C mov al b 1 停止位 无校验 8 数据位 x64 out dx al mov al b 清出错标志 允许发送接收 out dx al ret IInit endp Send proc near 串口发送 mov dx CS8251C mov al b 清出错 允许发送接收 out dx al WaitTXD in al dx test al 1 发送缓冲是否为空 jz WaitTXD mov al TBuf 取要发送的字 mov dx CS8251D out dx al 发送 push cx mov cx 0ffffh loop pop cx ret Send endp Receive proc near 串口接收 mov dx CS8251C WaitRXD in al dx test al 2 是否已收到一个字 je WaitRXD mov dx CS8251D in al dx 读入 mov RBuf al ret Receive endp 13 start proc near mov ax data mov ds ax call IInit 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 MLoop call DisplayLED 显示 mov dx CS8251C in al dx 是否接收到一个字 test al 2 jnz RcvDa

温馨提示

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

评论

0/150

提交评论