微机汇编实验报告七_第1页
微机汇编实验报告七_第2页
微机汇编实验报告七_第3页
微机汇编实验报告七_第4页
微机汇编实验报告七_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

14/14微机原理与接口技术课程实验报告实验名称:___16550串行通讯基础实验姓名:学号:同组:学号:实验日期:1、实验目的掌握16550的工作方式及应用编程。掌握16550的典型应用电路接法。2、实验内容串行通讯基础实验。编写程序,向串口连续发送一个数据(55H)。将串口输出连接到示波器上,用示波器观察数据输出产生的波形,分析串行数据格式。修改程序,向串口连续发送一个数据(73H),观察并分析波形和数据格式。根据目标波形设置程序发送的数据。3、实验原理16550是一种连接任何类型虚拟串行接口的可编程通信接口,与Intel微处理器完全兼容的使用非常广泛的异步接收器/发送器(UART)。它内置了16字节的FIFO缓冲,最大通讯速率可达115Kb/s,是现代基于微处理器设备包括PC机和许多调制解调器的最普遍的通信接口。16550的引脚如图5-2-1所示,其内部结构如图5-2-2所示。图5-2-116550引脚图图5-2-216550的内部结构图端口地址的使用16550内部有11个寄存器,在芯片选择有效的前提下,由芯片的寄存器选择输入线A2,A1和A0来确定访问的寄存器,芯片中采用两条措施来解决端口地址少的问题(只有8个地址)。保持寄存器和接收数据寄存器共用一个地址,以“写入”访问前者、“读出”访问后者加以区分。除数寄存器的高字节与中断允许寄存器使用相同地址,高字节和接收数据寄存器、发送保持寄存器使用相同的地址,为了区分,借用线路控制寄存器的最高位DLAB位来区分。访问除数寄存器时,令DLAB位为“1”;访问接收数据寄存器、发送保持寄存器和中断允许寄存器时,则将DLAB位置“0”。具体说明如表5-2-1所示。表5-2-116550内部寄存器地址及其选择方法寄存器控制字说明线路控制寄存器(LCR),主要用于指定异步串行通信的数据格式。见表5-2-2。表5-2-2LCR格式线路状态寄存器(LSR),主要是向处理器提供有关数据传输的状态。见表5-2-3。表5-2-3LSR格式波特率除数寄存器,用该寄存器设置串行数据的传送波特率。除数寄存器值=基准时钟频率÷(16×波特率)16550芯片输入的基准时钟频率为1.8432MHz,若波特率为9600b/s,则除数寄存器值为000CH,DLH中应填00H,DLL中应填0CH。16550常用波特率参数见表5-2-4。表5-2-4常用的波特率参数表FIFO控制寄存器(FCR),16550增加了一个FIFO缓冲器,用于缓冲正在发出或接收的数据,这是早期的UART器件所没有的。FCR各位意义见表5-2-5。表5-2-5FCR格式4、实验方案及流程图串行通讯基础实验对16550进行编程,不断向发送寄存器写数,用示波器观察TXD信号脉冲变化,仔细分析波形,理解波形原理。串行传输的数据格式可设定如下:传输波特率为9600baut,每个字节有一个逻辑“0”的起始位,8位数据位,1位逻辑“1”的停止位,如图5-2-3所示。图5-2-316550串口应用实验参考程序流程图实验步骤如下:(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。(2)首先运行CHECK程序,查看I/O空间始地址。(3)利用查出的地址编写程序,连续向发送寄存器写55H,然后编译链接。(4)参考图5-2-5所示连接实验线路。并将TXD与实验装置GND同示波器相连接。(5)运行程序,在示波器上观察波形。(6)可以改变发送的数据,再仔细观察波形。图5-2-4串行传输的数据格式图5-2-516550串口应用实验参考接线图5、实验代码及注释;16550串行通讯基础实验输出55H的波形;************根据查看端口资源修改下列符号值********************IOY0EQU0D800H;片选IOY0对应的端口始地址;**************************************************************MY16550_0EQUIOY0+00H*4;16550数据缓冲寄存器端口地址MY16550_1EQUIOY0+01H*4;16550中断允许寄存器端口地址MY16550_3EQUIOY0+03H*4;16550线路控制寄存器端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,MY16550_3;设置16550线路控制寄存器MOVAL,80H;准备设置波特率除数寄存器OUTDX,ALMOVDX,MY16550_0;设置除数寄存器低字节0CHMOVAL,0CH;000C对应9600bit/sOUTDX,ALMOVDX,MY16550_1;设置除数寄存器高字节00HMOVAL,00HOUTDX,ALMOVDX,MY16550_3;设置线路控制寄存器,初始化数据格式MOVAL,1BH;偶校验,1位停止位,字符宽度为8OUTDX,ALMOVDX,MY16550_1;设置中断允许寄存器MOVAL,00H;中断不打开OUTDX,ALSEND:MOVDX,MY16550_0;向发送缓冲寄存器写数MOVAL,55H ;改变输出波形OUTDX,ALCALLDALLYMOVAH,1;判断是否有按键按下INT16HJZSEND;无按键则跳回继续等待,有则退出QUIT:MOVAX,4C00H;结束程序退出INT21HDALLYPROCNEAR;软件延时子程序PUSHCXPUSHAXMOVCX,0100HD1:MOVAX,1000HD2:DECAXJNZD2LOOPD1POPAXPOPCXRETDALLYENDPCODEENDSENDSTART;16550串行通讯基础实验输出73H的波形;************根据查看端口资源修改下列符号值********************IOY0EQU0D800H;片选IOY0对应的端口始地址;**************************************************************MY16550_0EQUIOY0+00H*4;16550数据缓冲寄存器端口地址MY16550_1EQUIOY0+01H*4;16550中断允许寄存器端口地址MY16550_3EQUIOY0+03H*4;16550线路控制寄存器端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,MY16550_3;设置16550线路控制寄存器MOVAL,80H;准备设置波特率除数寄存器OUTDX,ALMOVDX,MY16550_0;设置除数寄存器低字节0CHMOVAL,0CH;000C对应9600bit/sOUTDX,ALMOVDX,MY16550_1;设置除数寄存器高字节00HMOVAL,00HOUTDX,ALMOVDX,MY16550_3;设置线路控制寄存器,初始化数据格式MOVAL,1BH;偶校验,1位停止位,字符宽度为8OUTDX,ALMOVDX,MY16550_1;设置中断允许寄存器MOVAL,00H;中断不打开OUTDX,ALSEND:MOVDX,MY16550_0;向发送缓冲寄存器写数MOVAL,73H ;改变输出的波形OUTDX,ALCALLDALLYMOVAH,1;判断是否有按键按下INT16HJZSEND;无按键则跳回继续等待,有则退出QUIT:MOVAX,4C00H;结束程序退出INT21HDALLYPROCNEAR;软件延时子程序PUSHCXPUSHAXMOVCX,0100HD1:MOVAX,1000HD2:DECAXJNZD2LOOPD1POPAXPOPCXRETDALLYENDPCODEENDSENDSTART;16550串行通讯基础实验输出指定(8DH)的波形;************根据查看端口资源修改下列符号值********************IOY0EQU0D800H;片选IOY0对应的端口始地址;**************************************************************MY16550_0EQUIOY0+00H*4;16550数据缓冲寄存器端口地址MY16550_1EQUIOY0+01H*4;16550中断允许寄存器端口地址MY16550_3EQUIOY0+03H*4;16550线路控制寄存器端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,MY16550_3;设置16550线路控制寄存器MOVAL,80H;准备设置波特率除数寄存器OUTDX,ALMOVDX,MY16550_0;设置除数寄存器低字节0CHMOVAL,0CH;000C对应9600bit/sOUTDX,ALMOVDX,MY16550_1;设置除数寄存器高字节00HMOVAL,00HOUTDX,ALMOVDX,MY16550_3;设置线路控制寄存器,初始化数据格式MOVAL,1BH;偶校验,1位停止位,字符宽度为8OUTDX,ALMOVDX,MY16550_1;设置中断允许寄存器MOVAL,00H;中断不打开OUTDX,ALSEND:MOVDX,MY16550_0;向发送缓冲寄存器写数MOVAL,8DH ;改变输出的波形OUTDX,ALCALLDALLYMOVAH,1;判断是否有按键按下INT16HJZSEND;无按键则跳回继续等待,有则退出QUIT:MOVAX,4C00H;结束程序退出INT21HDALLYPROCNEAR;软件延时子程序PUSHCXPUSHAXMOVCX,0100HD1:MOVAX,1000HD2:DECAXJNZD2LOOPD1POPAXPOPCXRETDALLYENDPCODEENDSENDSTART6、实验结果及分析基础实验:地址查询结果:接线图:输入代码如图:编译连接后,运行实验程序,观察示波器:观察到的波形为:实验结果:示波器显示波形代表的数据流为:01010101001分析:第一位为起始位0;后面八位反过来看是01010101,代表是55H;倒数第二0奇偶校验位,表示1的个数为偶数;最后一位1是停止位。成功发送数据55H,实验成功修改发送数据73H,观察波形:将代码数据中的55H改为73H,如图所示:编译连接后

温馨提示

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

评论

0/150

提交评论