微机原理串口通信.课程设计概要
串口通信的设计课程报告

录
摘
随着计算机技术尤其是单片机技术的发展,人们已越来越多
地采用单片机对控制系统中如温度、流量和压力等参数进行检测和
控制。计算机具有强大的监控和管理功能,而单片机则具有快速灵
活的控制特点。计算机与单片机、单片机与单片机之间的通信具有
非常重要的现实意义。本次设计在了解一定通信有关知识的基础上
利用单片机串口进行多个单片机通信。
目
一、课程设计内容 二、原理分析 三、硬件系统设计
3.1 主要芯片介绍 3.2 硬件设计框图 四、软件系统设计 4.1、软件流程图 4.2、程序的设计 五、系统硬件调试 六、结论与心得
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资0配不料置仅试技可卷术以要是解求指决,机吊对组顶电在层气进配设行置备继不进电规行保范空护高载高中与中资带资料负料试荷试卷下卷问高总题中体2资2配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况卷中下安,与全要过,加度并强工且看作尽护下可关都能于可地管以缩路正小高常故中工障资作高料;中试对资卷于料连继试接电卷管保破口护坏处进范理行围高整,中核或资对者料定对试值某卷,些弯审异扁核常度与高固校中定对资盒图料位纸试置,卷.编保工写护况复层进杂防行设腐自备跨动与接处装地理置线,高弯尤中曲其资半要料径避试标免卷高错调等误试,高方要中案求资,技料编术试写5交、卷重底电保要。气护设管设装备线备置4高敷、调动中设电试作资技气高,料术课中并3试中、件资且卷包管中料拒试含路调试绝验线敷试卷动方槽设技作案、技术,以管术来及架避系等免统多不启项必动方要方式高案,中;为资对解料整决试套高卷启中突动语然过文停程电机中气。高课因中件此资中,料管电试壁力卷薄高电、中气接资设口料备不试进严卷行等保调问护试题装工,置作合调并理试且利技进用术行管,过线要关敷求运设电行技力高术保中。护资线装料缆置试敷做卷设到技原准术则确指:灵导在活。分。对线对于盒于调处差试,动过当保程不护中同装高电置中压高资回中料路资试交料卷叉试技时卷术,调问应试题采技,用术作金是为属指调隔发试板电人进机员行一,隔变需开压要处器在理组事;在前同发掌一生握线内图槽部纸内故资,障料强时、电,设回需备路要制须进造同行厂时外家切部出断电具习源高题高中电中资源资料,料试线试卷缆卷试敷切验设除报完从告毕而与,采相要用关进高技行中术检资资查料料和试,检卷并测主且处要了理保解。护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
微机原理课程设计报告书-两台PC机之间进行串口通信

一、课程设计题目两台PC机之间进行串口通信。
二、课程设计目的与要求通过本次实训,加强学生们对微机原理与接口技术这门课程的理解和掌握,同时了解并掌握8250串口芯片和中断管理芯片8259的初始化编程和使用。
1.目的:俩个PC机通过串行口互联,实现文件的无差错传输。
2.基本要求:(1) PC机使用8250串口芯片。
中断管理芯片使用8259(2)要求用C语言或汇编语言完成程序的设计。
(3)程序必须用中断方式来实现。
(4)在U盘上自备TURBO C 2.0编译环境。
因为机房的计算机(C和D盘要还原)安装有还原卡。
(5)自购DB9P 公插头二个,2,3脚交叉连线,5脚直接连接,焊接。
电缆长度一米。
(6)不准带电拔插串行口插头。
三、实现方法1. 8250的初始化依据8250(16550)的寄存器如下表所示:基地址读/写寄存器缩写注释0Write-发送保持寄存器(DLAB=0)0Read-接收数据寄存器(DLAB=0)0Read/Write-波特率低八位(DLAB=1)1Read/Write IER中断允许寄存器1Read/Write-波特率高八位(DLAB=1)2Read IIR中断标识寄存器2Write FCR FIFO控制寄存器3Read/Write LCR线路控制寄存器4Read/Write MCR MODEM控制寄存器5Read LSR线路状态寄存器6Read MSR MODEM状态寄存器7Read/Write-Scratch RegisterPC机支持1-4个串行口,即COM1-COM4,其基地址在BIOS数据区0000:0400-0000:0406中描述,对应地址分别为3F8/2F8/3E8/2E8,COM1及COM3使用PC机中断4,COM2及COM4使用中断3。
在上表中,8250共有12个寄存器,使用了8个地址,其中部分寄存器共用一个地址,由DLAB=0/1来区分,在DLAB=1用于设定通讯所需的波特率。
串口通信rs232课程设计

串口通信rs232 课程设计一、课程目标知识目标:1. 学生理解串口通信的基本概念,掌握RS232通信标准的基本原理和特点;2. 学生了解串口通信的硬件连接方式,掌握相关编程语言的串口通信库函数;3. 学生掌握数据帧的概念,能够解释串口通信中数据帧的结构和传输过程;4. 学生了解串口通信中的常见问题,如数据丢失、校验错误等,并掌握相应的解决方法。
技能目标:1. 学生能够运用所学知识,使用编程语言实现与外部设备的数据交换;2. 学生能够根据实际需求,配置串口参数,如波特率、数据位、停止位等;3. 学生能够利用串口调试工具进行数据收发测试,分析并解决通信过程中出现的问题;4. 学生具备实际操作能力,能够将理论知识应用到实际项目中。
情感态度价值观目标:1. 学生培养对计算机通信技术的兴趣,提高学习积极性;2. 学生在学习过程中,培养团队合作意识,学会与他人分享和交流;3. 学生通过实际操作,体验科技改变生活的魅力,增强创新意识;4. 学生认识到通信技术在国家发展和社会进步中的重要作用,树立正确的价值观。
课程性质:本课程为信息技术学科选修课程,以实践操作为主,理论联系实际。
学生特点:学生具备一定的编程基础,对通信技术有一定了解,但实际操作经验不足。
教学要求:注重理论与实践相结合,以学生为主体,充分调动学生的积极性和参与度,培养实际操作能力。
将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. 串口通信基本概念:介绍串口通信的定义、作用及其在计算机通信中的应用;- 相关章节:教材第3章“串行通信基础”2. RS232通信标准:讲解RS232标准的基本原理、电气特性、信号线功能等;- 相关章节:教材第4章“RS232通信接口”3. 串口编程基础:介绍串口通信的编程方法,包括API函数、串口通信库的使用;- 相关章节:教材第5章“串口编程技术”4. 串口通信参数配置:讲解波特率、数据位、停止位、校验等参数的设置方法;- 相关章节:教材第6章“串口通信参数设置”5. 数据帧结构与传输过程:分析串口通信中数据帧的构成,讲解数据传输过程;- 相关章节:教材第7章“数据帧格式与传输”6. 常见问题及解决方法:列举串口通信中常见的问题,分析原因并给出解决方案;- 相关章节:教材第8章“串口通信故障分析与处理”7. 实践操作与案例分析:安排实际操作环节,结合教材案例,让学生动手实践;- 相关章节:教材第9章“串口通信应用实例”教学内容安排与进度:第1-2课时:串口通信基本概念、RS232通信标准;第3-4课时:串口编程基础、串口通信参数配置;第5-6课时:数据帧结构与传输过程、常见问题及解决方法;第7-8课时:实践操作与案例分析,总结与反馈。
微机原理与接口技术课程设计(串行通讯)

微机原理与接口技术课程设计(串行通讯)一、设计意义在信息飞速发展的时代,计算机的应用越来越广泛。
而微机原理是机械工业控制设备的理论基础,学好了就能在激烈的竞争环境中找到一份好一点的工作。
理论课程学习是让学生学习基本理论知识,对课程内容和原理有比较深刻的理解,只要从理论上理解,不用考虑实际的可行性。
通过本次课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,不仅需要在理论上能实现而且还要考虑实际的可行性,不能纸上谈兵。
二、设计目的1、了解串行通信的基本原理。
2、掌握串行接口芯片8251的工作原理。
3、掌握8251芯片的编程方法。
4、了解8253的初始化。
5、巩固和加深在微机原理课程中所学的理论知识。
通过课程设计加深理解课堂教学内容,掌握计算机接口技术的基本应用方法。
6、学会查阅相关手册与资料,培养独立分析与解决问题能力。
三、设计环境PC机一台,串行通讯接口芯片8251A一片,8253一片。
TC-1集成开发环境实验箱一台。
四、设计题目及要求4.1 设计题目2串行通讯4.2 设计要求设计一个串行通信系统,用软件编程和硬件实验来实现。
具体要求:用8253芯片作为计数器,用于产生8251的发送和接受时钟。
TXD和RXD连在一起。
从PC机的键盘输入一个字符,将其ASCII码加1后发送出去,在接受回来在屏幕上显示,实现自发自收。
8251的控制端口地址为2B9H ,数据口地址为2B8H.8253计数器的计算初值=时钟频率/(波特率*波特率因子),这里的时钟频率接1MHZ,波特率若选1200,波特因子若选16,则计数器初值为52。
收发采用查询方式。
五、设计原理5.1.8251A的基本性能8251A是可编程的串行通信接口芯片,基本性能:1.两种工作方式:同步方式,异步方式。
同步方式下,波特率为064K,异步方式下,波特率为0~19.2K。
串口通信课程设计(微机原理课程设计)

SerialPort serialPort = (SerialPort)serialPortobj; System.Threading.Thre源自d.Sleep(500); try {
三、实验步骤
1、打开 Visual Studio 2008,新建C# Windows窗体应用程序项目 2、设计界面,添加界面元素 3、为各个控件设置事件响应代码 4、调试并完成程序
四、设计的控制界面及其操作
设计的控制界面如下所示: 通过“串口设置”可以选择串口、设置帧格式、打开及关闭串口等 通过“状态”可以查看串口状态、发送的数据帧数和接受的数据帧数 在“发送数据”窗口中输入内容,点击“发送”,即把数据发送给对方 在“数据显示”窗口中会显示接受的数据
//开启接收数据线程 ReceiveData(serialPort1); }
private void SendStringData(SerialPort serialPort1) {
serialPort1.Write(txtSend.Text); //发送数据帧加1 lbSendNum.Text = (int.Parse(lbSendNum.Text.Trim()) + 1).ToString(); }
串行通信控制
理学院
一、实验目的
1、掌握串行通信的原理和控制方法。 2、采用三线连接方法,编程控制,实现两台微机异步串行通信。
二、实验原理
1、串口通信连接 本次实验使用了 RS-232C 接口,其标准规定有25根连线,在一般的 微机通信中,只有9个信号经常使用,它们的引脚定义如下表和图所 示:
微机原理串口通信.课程设计

1基础理论知识1.1通信的方式通信的基本方式可以分为并行通信和串行通信两种。
串行通信时数据用一根传输线逐为顺序传送。
并行通信和串行通信是CPU与外部设备之间进行信息交换的基本方法。
采用并行通信时,构成一个字符或数据的各位同时传送,每一位都占用一条通信线,另外还需要联络以保证和外围设备协调地工作,它具有较高的传输速度。
但由于在长线上驱动和接收信号较困难,驱动和接收电路较复杂,因此并行通信的传输距离受到限制,这种通信方式多用于计算机内部,或者作为计算机与近距离外围设备传输信息用。
1.2串行通信串行通信分为两种类型:串行异步通信和串行同步通信。
串行异步通信是指通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。
同步通信时指在约定的数据通信数率下,发送方和接收方的时钟信号频率和相位始终保持一致,通信双方发送数据和接收数据具有完全一致的定时关系。
串行通信的数据传输方式分为单工传送,半双工传送,全双工传送。
单工传送:单工传送时指在通信时只能由一方发送数据,另一方接收数据的通信方式。
半双工传送:指在通信时双方都能够接收或者发送,但是不能够同时接收和发送的通信方式。
全双工传送:通信双方之间有两条通路,发送信息和接收信息可以同时进行。
2 串口通信芯片82502.1 8250的内部结构INS 8250是通用异步收发器UART,用作异步通信接口电路。
INS 8250的引脚信号基本上可以分为两大类:与CPU系统总线相连的信号线和与通信设备MODEM连接的信号线2.2 8251的内部寄存器及其编程方法在微机中用可编程芯片8250来实现串行通信。
由于8250的引脚较多,在此就不列出了,仅列出它的几个寄存器,因为在编写串行通信程序时要使用这些寄存器。
2.2.1波特率因子寄存器(DLL/DLH)8250芯片规定当线路控制寄存器写入D7=1时,接着对口地址3F8H、3F9H可分别写入波特率因子的低字节和高字节,即写入除数寄存器(L)和除数寄存器(H)中。
串行通信系统课程设计

串行通信系统课程设计一、课程目标知识目标:1. 让学生理解串行通信系统的基本原理,掌握其与并行通信的区别;2. 学会使用相关编程语言实现串行通信,了解串行通信接口和协议;3. 掌握串行通信系统的数据传输速率、误码率等性能指标的计算方法。
技能目标:1. 培养学生运用所学知识解决实际问题的能力,能够独立设计简单的串行通信系统;2. 提高学生的编程实践能力,熟练使用相关开发工具进行串行通信程序设计;3. 培养学生的团队协作和沟通能力,能够就串行通信系统设计方案进行讨论和改进。
情感态度价值观目标:1. 培养学生对通信技术发展的关注,激发学习兴趣,提高学习积极性;2. 培养学生的创新意识,鼓励学生尝试不同的设计方案,勇于克服困难;3. 增强学生的环保意识,认识到通信技术在环境保护中的重要作用。
课程性质:本课程为电子信息类学科的专业课程,旨在让学生掌握串行通信系统的基本原理和实际应用。
学生特点:学生已具备一定的电子技术和编程基础,对通信技术有一定的了解,但实践经验不足。
教学要求:结合学生特点和课程性质,采用理论教学与实践教学相结合的方式,注重培养学生的实际操作能力和团队协作能力。
通过本课程的学习,使学生能够达到上述课程目标,为后续相关课程和实际工作打下坚实基础。
二、教学内容1. 串行通信系统基本原理:介绍串行通信与并行通信的区别,分析串行通信的优缺点,探讨串行通信在现实生活中的应用。
- 教材章节:第一章 串行通信概述- 内容:串行通信原理、串行通信接口、串行通信协议。
2. 串行通信编程实践:讲解使用C语言、Python等编程语言实现串行通信的方法,分析串行通信接口的编程接口和函数库。
- 教材章节:第二章 串行通信编程- 内容:编程环境搭建、串行通信接口编程、数据发送与接收、常见问题及解决方法。
3. 串行通信系统性能分析:介绍串行通信系统的数据传输速率、误码率等性能指标,分析影响性能的因素。
- 教材章节:第三章 串行通信性能分析- 内容:数据传输速率、误码率、性能优化方法。
微机原理课程设计-UART

微机原理课程设计报告摘要由于微电子学和计算机科学的迅速发展,给EDA(电子设计自动化)行业带来了巨大的变化。
特别是进入20世纪90年代后,电子系统已经从电路板级系统集成发展成为包括ASIC、FPGA/CPLD和嵌入系统的多种模式。
可以说EDA产业已经成为电子信息类产品的支柱产业。
EDA之所以能蓬勃发展的关键因素之一就是采用了硬件描述语言(HDL)描述电路系统。
就FPGA和CPLD开发而言,比较流行的HDL主要有Verilog HDL、VHDL、ABEL-HDL和 AHDL 等,其中VHDL和Verilog HDL因适合标准化的发展方向而最终成为IEEE标准。
下面的设计就是用VHDL来完成实现的。
关键词:VHDL UART正文:1.UART设计实例通常设计数字电路大都采用自顶向下将系统按功能逐层分割的层次化设计方法,这比传统自下向上的EDA设计方法有更明显的优势(当时的主要设计文件是电路图)。
因为由自顶向下的设计过程可以看出,从总体行为设计开始到最终逻辑综合,形成网络表为止。
每一步都要进行仿真检查,这样有利于尽早发现系统设计中存在的问题,从而可以大大缩短系统硬件的设计周期。
UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是一种应用广泛的短距离串行传输接口。
UART允许在串行链路上进行全双工的通信。
串行外设用到的RS232-C异步串行接口,一般采用专用的集成电路即UART实现。
如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。
或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。
使用VHDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。
2.设计要求采用8位宽数据总线,16位宽地址总线;完整的数据收/发功能,波特率可调;支持5-8位数据位、1-2位停止位、1位奇偶校验位;一级数据缓冲,不使用FIFO;具备奇偶校验错能力;支持接收数据完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1基础理论知识1.1通信的方式通信的基本方式可以分为并行通信和串行通信两种。
串行通信时数据用一根传输线逐为顺序传送。
并行通信和串行通信是CPU与外部设备之间进行信息交换的基本方法。
采用并行通信时,构成一个字符或数据的各位同时传送,每一位都占用一条通信线,另外还需要联络以保证和外围设备协调地工作,它具有较高的传输速度。
但由于在长线上驱动和接收信号较困难,驱动和接收电路较复杂,因此并行通信的传输距离受到限制,这种通信方式多用于计算机内部,或者作为计算机与近距离外围设备传输信息用。
1.2串行通信串行通信分为两种类型:串行异步通信和串行同步通信。
串行异步通信是指通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。
同步通信时指在约定的数据通信数率下,发送方和接收方的时钟信号频率和相位始终保持一致,通信双方发送数据和接收数据具有完全一致的定时关系。
串行通信的数据传输方式分为单工传送,半双工传送,全双工传送。
单工传送:单工传送时指在通信时只能由一方发送数据,另一方接收数据的通信方式。
半双工传送:指在通信时双方都能够接收或者发送,但是不能够同时接收和发送的通信方式。
全双工传送:通信双方之间有两条通路,发送信息和接收信息可以同时进行。
2 串口通信芯片82502.1 8250的内部结构INS 8250是通用异步收发器UART ,用作异步通信接口电路。
INS 8250的引脚信号基 本上可以分为两大类:与 CPU 系统总线相连的信号线和与通信设备 MODEM 连接的信号 线CTS2. 8251A的数据总线缓冲器状态字 寄存器 发送数据 寄存器 接收数据 寄存器发送 缓冲器 并一串TxDRESET ----CLK ——C/D ---RD ----WR —y CS —— DTR ~KCDSRRTS - 读/写控制逻辑 调制解调 控制逻辑* TxRDY ■ TxE -TxC--- RxRDYRxC SYDNETZBRKDET6 〜D ()2.2 8251的内部寄存器及其编程方法在微机中用可编程芯片8250来实现串行通信。
由于8250的引脚较多,在此就不列出了,仅列出它的几个寄存器,因为在编写串行通信程序时要使用这些寄存器。
2.2.1波特率因子寄存器(DLL/DLH8250芯片规定当线路控制寄存器写入D7=1时,接着对口地址3F8H、3F9H可分别写入波特率因子的低字节和高字节,即写入除数寄存器(L)和除数寄存器(H)中。
而波特率为1.8432MHZ/ (波特率因子X 16),波特率和除数对照表见下表:2.2.2通信线路控制寄存器(LCR)(3FBH)该寄存器规定了异步串行通信的数据格式。
各位含义如下:其中:D1〜D0是字长。
它们的取值和对应的字长如下表:D2是停止位。
它的取值和对应的停止位如下表:D3说明是否允许奇偶校验。
如果为0无奇偶校验,如果为1允许奇偶校验。
D4说明是奇校验还是偶校验。
如果为0是奇校验,如果为1是偶校验。
这一位起作用的前题是D3为1。
D5说明是否有附加奇偶校验位。
如果为0无附加奇偶校验位,如果为1有附加奇偶校验位。
D6如果为0正常,如果为1发空缺位。
D7如果为0允许访问接收、发送数据寄存器或中断允许寄存器。
如果为0允许访问波特率因子寄存器。
通信线路控制寄存器LCR主要用来指定异步通信数据格式,即字符长度、停止位位数、奇偶校验。
LCR的控制字如下2.2.3通信线路状态寄存器(3FDH)该寄存器向CPU提供有关数据传输的状态信息,各位含义如下:D 0:DR接收数据就绪D 1: OE数据重叠错D2:PE数据奇偶错D 3:FE,缺少正确停止位D4: BI,接收空缺位D 5:THRE发送保持器空D 6:TSRE发送移位寄存器空读入时各数据位等于1有效,读入操作后各位均复位。
除D6位外,其它位还可被CPU 写入,同样可产生中断请求。
224中断允许寄存器(3F9H)该寄存器允许8250四种类型中断(相应位置1)并通过IRQ4向8088CPU发中断请求各位含义如下:D0:为1允许接收缓冲区满中断D1:为1允许发送保持器空中断D2:为1允许接收数据出错中断D3:为1允许Modems态改变中断2.2.5中断识别寄存器(3FAH)为了具体识别时哪种事件引起的中断,直到该中断请求被CPJ向应并服务之后,才能2.2.6调制解调控制寄存器(3FCH)MODEM控制寄存器用来设置对MODEM联络控制信号和芯片自检,寄存器的各位定义D0: DTR=1数据终端就绪,输出端DTF为低电平D1: RTS=1请求发送,输出端RTS为低电平D2: OUT1=1用户指令输出,输出端OUT伪低电平D3: OUT2=1输出端OUT2为低电平,允许发送IRQ4中断请求D4:循环(自诊断用)=1,发送数据立即被接收,可用于自检227 MODEM犬态寄存器(3FEHModem!犬态寄存器用来检测和记录来自Modem勺联络信号及其状态变化。
此寄存器的各位定义为:2.2.8发送保持寄存器和接收缓冲寄存器(3F8H)发送时,CPU首先将待发送的字符写到8250的发送保持寄存器THR中,然后进入发送移位寄存器,在发送始终的作用下,从SOUT引脚输出。
一旦THR的内容送到发送移位寄存器TSR后, THF就变空,同时将LSR的THRE位置“1”产生中断请求,要求CPU发送下一个字符。
CPU向THR写入下一个字符后,THRE位自动清“ 0”如此重复,直到全部数据发送完毕。
接收时,串行数据在接收时钟的作用下,从SIN引脚先输入到移位寄存器RSR然后由RSR并行输入到接收缓冲寄存器RBR 一旦RBR变满,将LSR的DR位置“1”产生中断请求,要求CPU卖取数据字符。
CPU从RBR卖取该字符后,DR位自动清“ 0”如此重复,直到所有的数据接收完毕。
2.3 8250的各寄存器的地址3程序设计3.1程序设计思路根据设计要求,要实现通过串口进行通信,就必须有一个发送端和一个接收端,因此 要编写两个程序,在发送端编写发送程序,在接受端编写接收程序。
发送PC 机和接收PC机通过RS-232C 的3根信号线(TXD RXD GND 进行相连。
我决定采用查询方式编写发 送程序和接收程序。
编写发送程序的时候,首先要初始化段寄存器,设置发送缓冲区指针。
然后初始化8250,通过初始化8250来设置串口的参数。
再根据线路状态寄存器的内容,测试发送保 持寄存器是否为空,如果不为空,继续读线状态寄存器的内容,判断发送保持寄存器是否 为空,如果为空的话,读取按键字符并显示和发送它。
我事先规定当输入某一个字符的时 候发送结束,这时候我就要判断按键是否为该字符,是该字符的时候结束程序。
编写接收程序的时候首先要设置接收缓冲区,设置接收错信息,初始段寄存器,设置接收缓冲寄存器地址指针然后初始化 8250,初始设置和接收端的保持一置。
以上完成后开 始接收,在屏幕上显示接收开始。
然后读线状态寄存器,判断是否接收错,在屏幕上显示 接收错误,继续读线状态寄存器,如果接收无误,则测试接收数据是否准备好了,为准备 好则循环测试,准备好了则接收字符。
判断接收的字符是否为规定的结束字符,如果是结 束程序,如果不是显示字符。
两台机器的连接图如下。
T引脚号T信号名3.2程序流程图321发送端程序流程图322接收端的程序流程图显示:接收错接收数据,取AL低7位3.3具体的程序331发送端的程序代码STACK SEGMENT PARA STACK 'STACK'DB 200 DUP(O)STACK ENDSDATA SEGMENTDISP DB 'TRANSMISSION START:',0AH,0DH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV DX,3FBH ;置DLAB=1MOV AL,80HOUT DX,ALMOV DX,3F8H ;置波特率因子寄存器MOV AL,0CH ;波特率因子低字节OUT DX ,ALMOV DX,3F9HMOV AL,0 ;波特率因子高字节OUT DX,ALMOV DX,3FBH ;置线路控制寄存器MOV AL,03H ;数据位8位,停止位1位、无校验OUT DX,ALMOV DX,3FCH ;置MODEM制寄存器MOV AL,02H ;禁止中断OUT DX,ALMOV DX,3F9H ;置中断允许寄存器MOV AL,0 ;屏蔽所有中断OUT DX,ALMOV DX,OFFSET DISP ;显示发送提示信息MOV AH,9INT 21HLO0P: MOV DX,3FDH ;读线路状态寄存器IN AL,DXTEST AL,20H ;测试发送保持寄存器JZ L0OP ;不空,则循环测试MOV AH,1 ;读取按键字符并显示INT 21HMOV DX,3F8H OUTDX,ALCMP AL, ' P 'JZ OVERJMP LOPOVER: MOV AH,4CHINT 21HCODE ENDSEND START 3.3.2接收端的程序源代码STACK SEGMENT PARA STACK 'STACK'DB 200 DUP(0)STACK ENDSDATA SEGMENTRBUF DB 30 DUP(0)DISP DB 'RECEIVE START:',0AH,0DH,'$'ERROR DB 'RECEIVE ERRO!',OAH,ODH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AXMOV AX,STACKMOV SS,AXLEA SI,RBUF;置接收缓冲区地址指针 MOV DX,3FBH;置DLAB=1 MOV AL,80HOUT DX,ALMOV DX,3F8H;置波特率因子寄存器 MOV AL,0CH;波特率因子低字节 OUT DX,ALMOV DX,3F9HMOV AL,0;波特率因子高字节 OUT DX,ALMOV DX,3FBH;置通信线路控制寄存器 MOV AL,0AH;数据位8位,停止位1位、无校验 OUT DX,ALMOV DX,3FCH;置MODEM 制寄存器 MOV AL,02;禁止中断 OUT DX,AL;发送该字符 ;判断按下的字符是否为P ;是,贝U 结束 ;不是继续循环 ;返回DOSMOV DX,3F9H ;置中断允许寄存器MOV AL,0 ;屏蔽所有中断JMP LOPER: MOV DX,3F8H;清标志位 IN AL,DXMOV DX,OFFSET ERROR;显示错误信息 MOV AH,9INT 21HJMP LOPOVER: MOV DL,ALMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND STARTOUT DX,ALMOV DX,OFFSET DISPMOV AH,9INT 21HMOV DX,3F8HIN AL,DXLOP: MOV DX,3FDHIN AL,DXTEST AL,1EHJNZ ERTEST AL,01HJZ LOPMOV DX,3F8HIN AL,DXAND AL,7FHCMP AL,' P 'JZ OVERMOV [SI],ALINC SIMOV DL,AL;显示接收提示信息 ;读接收缓冲器内容,不处理 ;读线路状态寄存器 ;测试接收错误? 有,转错误显示 ;无,则测试接收数据准备好 ;未准备好则循环测试 ;判断接收结束吗? ;结束转OVER ;未结束则存入缓冲区 ;显示该字符 ;返回DOS4•心得体会这次微机原理课程里我学到了很多在书本上所没有学到过的知识。