实验七,双机串行通信

合集下载

单片机双机串口通信

单片机双机串口通信

单片机双机串口通信在现代电子技术领域,单片机的应用无处不在。

而单片机之间的通信则是实现复杂系统功能的关键之一。

其中,双机串口通信是一种常见且重要的通信方式。

什么是单片机双机串口通信呢?简单来说,就是让两个单片机能够通过串口相互交换数据和信息。

想象一下,两个单片机就像是两个小伙伴,它们需要交流分享彼此的“想法”和“知识”,串口通信就是它们交流的“语言”。

串口通信,顾名思义,是通过串行的方式来传输数据。

这和我们日常生活中并行传输数据有所不同。

在并行传输中,多个数据位同时传输;而在串行传输中,数据一位一位地按顺序传送。

虽然串行传输速度相对较慢,但它所需的硬件连线简单,成本较低,对于单片机这种资源有限的设备来说,是一种非常实用的通信方式。

在进行单片机双机串口通信时,我们首先要了解串口通信的一些基本参数。

比如波特率,它决定了数据传输的速度。

就像两个人说话的快慢,如果波特率设置得不一致,那么双方就无法正常理解对方的意思,数据传输就会出错。

常见的波特率有 9600、115200 等。

还有数据位、停止位和校验位。

数据位决定了每次传输的数据长度,常见的有 8 位;停止位表示一个数据帧的结束,通常是 1 位或 2 位;校验位则用于检验数据传输的正确性,有奇校验、偶校验和无校验等方式。

为了实现双机串口通信,我们需要在两个单片机上分别进行编程。

编程的主要任务包括初始化串口、设置通信参数、发送数据和接收数据。

初始化串口时,我们要配置好相关的寄存器,使其工作在我们期望的模式下。

比如设置波特率发生器的数值,以确定合适的波特率。

发送数据相对来说比较简单。

我们将要发送的数据放入特定的寄存器中,然后启动发送操作,单片机就会自动将数据一位一位地通过串口发送出去。

接收数据则需要我们不断地检查接收标志位,以确定是否有新的数据到来。

当有新数据时,从接收寄存器中读取数据,并进行相应的处理。

在实际应用中,单片机双机串口通信有着广泛的用途。

比如在一个温度监测系统中,一个单片机负责采集温度数据,另一个单片机则负责将数据显示在屏幕上或者上传到网络。

07实验七 Linux环境下的串行通信实验

07实验七 Linux环境下的串行通信实验

连接驱动器的使能端,使得当RTS设置成高(逻辑1)时,有效RS485驱动器;设置RTS为低 时,使驱动器处于三态,这时候实际上从总线上断开了驱动器,从而允许其他节点可以使 用同一传输线。当使用RTS时,必须确保发送数据前将RTS设置成高,在发送完数据的最 后一位后,将RTS线设成低。。另一种可选方法是自动发送数据控制。这种方法要求特殊 的电路,当数据传输时自动使能或无效驱动器。它减少了软件开销和程序员的潜在错误。
五、基础知识
串行通信 1、基本原理 串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行 端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。 串口是系统资源的一部分,应用程序要使用串口进行通信,必须在使用之前向操作系统提 出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。 2、串口通信的基本任务 (1) 实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实 现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的 帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2) 进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是 并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送 入计算机处理。因此串并转换是串行接口电路的重要任务。 (3) 控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选 择和控制的能力。 (4) 进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他 校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。 (5) 进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用

双机之间的串行通信设计

双机之间的串行通信设计

双机之间的串行通信设计随着计算机技术的快速发展,双机之间的串行通信变得越来越重要。

无论是在数据传输、系统控制还是协同处理方面,双机之间的串行通信都扮演着关键角色。

本文将探讨双机之间的串行通信设计,包括串行通信的原理、串行通信的应用、串行通信的优势以及设计双机之间串行通信的步骤。

一、串行通信的原理串行通信是一种逐位传输数据的通信方式。

在双机之间的串行通信中,一台机器将数据一位一位地发送给另一台机器,接收方接收到数据后将其重新组装为完整的信息。

串行通信常用的协议有RS-232、RS-485、SPI等。

二、串行通信的应用1.数据传输:双机之间通过串行通信传输大量数据,例如在两台计算机之间传输文件、传输实时音视频数据等。

2.系统控制:双机之间通过串行通信进行系统控制,例如一个机器向另一个机器发送指令,控制其执行特定的任务。

3.协同处理:双机之间通过串行通信进行协同处理,例如在分布式系统中,各个节点之间通过串行通信共同完成复杂的任务。

三、串行通信的优势相比于并行通信,双机之间的串行通信具有以下几个优势:1.传输距离更远:串行通信可以在较长的距离上进行数据传输,而并行通信受到信号干扰和传输线损耗的限制。

2.更少的传输线:串行通信只需要一条传输线,而并行通信需要多条传输线。

3.更快的速度:串行通信在同等条件下具有更快的传输速度,因为每一位数据传输所需的时间更短。

4.更可靠的传输:串行通信可以通过校验位等方式来保证数据传输的可靠性。

四、设计双机之间串行通信的步骤设计双机之间的串行通信需要经过以下几个步骤:1.确定通信协议:首先需要确定双机之间的通信协议,例如RS-232、RS-485等。

不同的通信协议有着不同的特点和适用范围,需要根据具体的应用需求进行选择。

2.确定物理连接方式:根据通信协议的选择,确定双机之间的物理连接方式,例如使用串口线连接、使用网络连接等。

3.确定数据传输格式:确定数据传输的格式,包括数据的编码方式、数据的起始位和停止位等。

单片机实验报告实验7双机通信

单片机实验报告实验7双机通信

学号姓名专业电气工程及其自动化班级
实验7双机通信
一、实验目的
掌握串行口通信工作原理。

二、实验内容
(1)掌握串行通信原理和中断法通信软件编程
(2)完成实验7的C51语言编程
三、实验设备
计算机(已安装Keil和Proteus软件),89C51,CRYSTAL,CAP,CAP-ELEC,RES,7SEG-BCD-GRN 四、实验硬件电路
实验源程序:
#include<reg51.h>
#define uchar unsigned char
uchar receiv;
void main(void)
{P2=0x3f;
TMOD=0x20;
TH1=0xf4;
TL1=0xf4;
PCON=0x00;
TR1=1;
SCON=0x50;
ES=1;
EA=1;
while(1)
{}}
void output () interrupt 4
{if(RI==1)
{RI=0;
receiv=SBUF;
SBUF=receiv;}
if(TI==1)
{TI=0;
P2=receiv;}}
五、实验要求
(1)、根据实验内容设计相应的调试程序,并通过仿真,运行正确。

(2)、掌握A/D转换器0809的工作原理。

(3)、掌握A/D转换器0809的编程方法。

(4)、认真整理实验报告并按时提交。

单片机单片机课程设计-双机串行通信

单片机单片机课程设计-双机串行通信

单片机单片机课程设计-双机串行通信单片机课程设计双机串行通信在当今的电子信息领域,单片机的应用无处不在。

而双机串行通信作为单片机系统中的一个重要环节,为实现设备之间的数据交换和协同工作提供了关键的技术支持。

一、双机串行通信的基本原理双机串行通信是指两个单片机之间通过串行接口进行数据传输的过程。

串行通信相较于并行通信,具有线路简单、成本低、抗干扰能力强等优点。

在串行通信中,数据是一位一位地按顺序传输的。

常见的串行通信协议有 UART(通用异步收发器)、SPI(串行外设接口)和 I2C(内部集成电路)等。

在本次课程设计中,我们主要采用 UART 协议来实现双机串行通信。

UART 协议包括起始位、数据位、奇偶校验位和停止位。

起始位用于标识数据传输的开始,通常为逻辑 0;数据位可以是 5 位、6 位、7 位或 8 位,具体取决于通信双方的约定;奇偶校验位用于检验数据传输的正确性,可选择奇校验、偶校验或无校验;停止位用于标识数据传输的结束,通常为逻辑 1。

二、硬件设计为了实现双机串行通信,我们需要搭建相应的硬件电路。

首先,每个单片机都需要有一个串行通信接口,通常可以使用单片机自带的UART 模块。

在硬件连接方面,我们将两个单片机的发送端(TXD)和接收端(RXD)交叉连接。

即单片机 A 的 TXD 连接到单片机 B 的 RXD,单片机 B 的 TXD 连接到单片机 A 的 RXD。

同时,还需要共地以保证信号的参考电平一致。

此外,为了提高通信的稳定性和可靠性,我们可以在通信线路上添加一些滤波电容和上拉电阻。

三、软件设计软件设计是实现双机串行通信的核心部分。

在本次课程设计中,我们使用 C 语言来编写单片机的程序。

对于发送方单片机,首先需要对 UART 模块进行初始化,设置波特率、数据位、奇偶校验位和停止位等参数。

然后,将要发送的数据放入发送缓冲区,并通过 UART 发送函数将数据一位一位地发送出去。

对于接收方单片机,同样需要对 UART 模块进行初始化。

单片机单片机课程设计-双机串行通信

单片机单片机课程设计-双机串行通信

单片机单片机课程设计-双机串行通信摘要由单片机构成的双机通信系统采用总线型主从式结构。

程设计就是要利用单片机来完成一个系统,实现双片单片机串行通信。

通信的结果实用数码管进行显示,数码管采用查表方式显示。

所谓主从式结构,即在两个单片机中,一个主机负责通信管理,另一个为从机,从机要负责主机的调度与支配。

该设计用A T89C51芯片,并用C语言程序来控制A T89C51,使之能实现两个单片机之间的通信。

通信方式为单工通信,一个为主单片机,作为发送方,另一个为从单片机,作为接收方。

关键字:单片机.AT89C51.C语言目录摘要 (1)前言 (3)二绪论 (4)2.1单片机 (4)2.2C语言: (4)2.3双机通信 (5)三.系统分析 (6)3.1 基本原理 (6)3.2波特率选择 (7)3.3通信协议的使用 (7)四、硬件设计 (7)4.1单片机串行通信功能 (10)4.2 MAX232芯片 (12)4.3整体电路设计 (13)五、软件设计 (14)5.1串行通信软件实现 (14)5.2程序流程图 (14)六.联合调试 (17)总结 (18)参考文献 (23)前言近年来,在自动化控制和只能仪器仪表中,单片机的应用越来越广泛,由于单片机的运算功能较差,往往需要借助计算机系统,因此单片机和PC机进行远程通信更具有实际意义,通信的关键在于互传数据信息。

51单片机内部的串行口具有通信的功能,该串口可作为通信接口,利用该串口与PC机的串口通信进行串行通信,将单片机采集的数据进行整理及统计等复杂处理就能满足实际的应用需要。

51单片机的开发除了硬件支持外,同样离不开软件。

用汇编语言或C 语言等高级语言编写的源程序必须转化为机器码才能被执行。

目前流行的Keil 8051c编译器。

它提供了集成开发环境,包括C编译器、宏编码、连接器、库管理和仿真调制器。

利用keil 8051ccuvision编写的程序可直接调用编译器编译,连接后可直接运行。

实验七_双机通信实验

实验七_双机通信实验

实验七、双机通信实验 一、实验目的掌握单片机串行口的工作原理及编程。

二、实验内容用两台单片机进行双机通讯,主控制器识别到按键按下,控制从机显示0-9字符。

三、实验接线图四、实验程序1、程序流程图如图7-1所示。

主机识别到键按下,向从机发送数据块长度、0-9数据及校验和。

从机接收到数据后,显示数据并向主机发应答码00H ,主机根据应答信号,显示通信状态代码。

2、波特率计算选fosc=11.0592MHz, 波特率=2400bps ,通信为方式1,(SMOD)为1,(TMOD)=0x20;( PCON) =0x80; 由波特率计算公式算得 (TH1)≈e8H 。

图7-1 实验接线图[](TH1)-25612T1T1322osc SMOD⨯=⨯=f 溢出率溢出率,波特率3、源程序 1)主机源程序// 识别到按键按下,发送0-9数据给从机,并显示通信状态码 #include<reg51.h> #include<intrins.h>#define uint unsigned int #define uchar unsigned charsbit K=P3^2; //定义按键K ,用于控制U2void SEND(uchar s_data)//发送一个字节数据 {SBUF=s_data; while(TI==0); TI=0;}uchar RCV(void)//接收一个字节数据 {while(RI==0); RI=0; return(SBUF);}void D_1S(void) {uint N=500,i;while(N--) for(i=0;i<100;i++) _nop_();}void DIS(uchar dis)//显示dis 中字形码对应的字符 { P0=dis; D_1S(); P0=~0x00;}void MAIN(void){ uchar data SUM,LEN;// SUM,校验和;LEN ,数据块长度; uchar i,ans; //ans 接收的应答数据图7-2 主机程序流程图 图7-3 从机程序流程图SP=0x5f; P0=~0x00; //数码块消隐TMOD=0x20; //T1:8位自动重装定时器TL1=0xe8;TH1=0xe8;PCON=0x80;TR1=1;//F=11.0592MHz,BPS=2400SCON=0x40; //10位,禁止接收//-------扫描按键-------key0:K=1; if(K!=0) goto key0;//-------发送数据块和校验和-------S_0:SUM=0x00; LEN=10; SEND(LEN);for(i=0;i<LEN;i++){SEND(i); SUM+=i; }SEND(SUM);//-------接收从机发来的响应数据-------REN=1; ans=RCV(); REN=0;if(ans==0x00) //发送正常,显示“0”{ DIS(~0x3f); goto key0;}else //发送异常,显示“1”,并重新发送数据{ DIS(~0x06); goto S_0;}}2)从机源程序// 接收数据0-9,并用数码块显示,之后接收正常向主机发00H,否则发送01H#include<reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar data LS0[]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F};void SEND(uchar s_data)//发送一个字节数据{SBUF=s_data; while(TI==0); TI=0;}uchar RCV(void)//接收一个字节数据{while(RI==0); RI=0; return(SBUF);}void D_1S(void){uint i,N=500;while(N--) for(i=0;i<100;i++) _nop_();}void DIS(uchar LEN,uchar r_data[11])//显示0-9{uchar data i;for(i=0;i<LEN;i++) {P0=LS0[r_data[i]]; D_1S(); P0=~0x00;}}void MAIN(void){ uchar data SUM,LEN; //SUM,校验和;LEN,数据块长度;ID,从站地址uchar data i,r_data[10],RSUM;//r_data接收的数据,RSUM接收的校验和SP=0x5f; P0=~0x00; TMOD=0x20;TL1=0xe8;TH1=0xe8;PCON=0x80;TR1=1; SCON=0x40;R_D:REN=1;SUM=0x00;LEN=RCV();for(i=0;i<LEN;i++){r_data[i]=RCV(); SUM+=r_data[i];}RSUM=RCV();if(RSUM==SUM){DIS(10,r_data);SEND(0x00);goto R_D;}else {SEND(0x01);goto R_D;}}五、实验步骤1、按图7-1接线;2、用keil软件编辑、编译源程序,生成两个hex文件。

双机串行通讯设计实验报告

双机串行通讯设计实验报告
洛阳理工学院实验报告
系别
计算机系
班级
B140502
学号
B14050226
姓名
韩亚辉
课程名称
单片机原理及组成
实验日期
2016/5/28
实验名称
双机串行通讯设计
成绩
实验目的:1.用全双共数据传送法实现两机互相通信。
2.完成双机通信的设计制作及仿真。
实验条件:计算机,Keil uVision4,ISIS 7 Professional,实验箱
(1)数据缓冲器(SBUF)
(2)串行控制寄存器(PCON)
(3)输入移位寄存器
(4)波特率发生器
(5)电源控制寄存器PCON
(6)波特率计算
三.实验电路图:
四.实验程序代码:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define duan P1
#define dis P2
void main()
{
uchar key_in=0xff; //I/O口作输入时,检测外设状态,允许输出高电平
TMOD=0x20;//设置为定时器1方式2
TH1=0xfd;//装初值,波特率设为9600
TL1=0Xfd;
EA=1;//开总中断
一.实验要求:
1)能本机显示按键的数值。
2)能向对方机发送按键的数。
3)能接收对方机发送的数并显示。
4)发送数及按键用中断实现。
5)用串行口的全双工方式通信。
二、实验原理:
(1)单片机串行接口通信功能
计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七、双机串行通信一、实验目的1、熟悉微机接口实验装置的结构及使用方法2、掌握通信接口芯片8251和8250的功能和使用方法3、学会串行通信程序的编制方法二、实验仪器1、PC实验箱及连接线2、两台计算机3、9针接头串行电缆三、芯片介绍(见实验七)四、实验内容实验原理图和接线同图4.12和4.13,不同的是要将串行电缆从实验箱上的RS-232接口连接到另外一台计算机上的串口,两台机子通过8250和8251进行字串信息的相互传输。

两台机子分别设置为发送和接收状态,发送端从键盘输入一段字符信息送8250或8251,接收端则从8251或8250接收一段字符。

发送和接收结束后回到主选菜单,可进行再次通信。

在发送和接收过程中,有一个出错处理过程,采用接收方回传和发送方确认来保证发送和接收正确。

五、预习要求1、熟悉8250和8251的工作原理2、熟悉实验原理3、编制实验要求的汇编语言源程序五、程序流程图和程序清单1、主程序1、发送子程序:3、接收子程序:程序清单:;SY51-2.ASMTIMCTL EQU 293HTIMER0 EQU 290HCLK EQU 3000BPS EQU 9600FACTOR EQU 16DATA51 EQU 280HCTRL51 EQU 281HDATA50 EQU 2F8HDRL50 EQU 2F8HDRH50 EQU 2F9HIER50 EQU 2F0HIIR50 EQU 2FAHLCR50 EQU 2FBHMCR50 EQU 2FCHLSR50 EQU 2FDHMSR50 EQU 2FEHDIVL EQU 0CHDIVH EQU 00HDATA SEGMENTMESS1 DB 'PRESS 1 TO SEND MESSAGE!',0AH,0DHDB 'PRESS 2 TO RECEIVE MESSAGE!',0AH,0DHDB 'PRESS 3 TO QUIT!',0AH,0DH,0AH,0DH,'$' ERROR DB '*****PLEASE SELECT AGAIN!*****',0AH,0DH,'$'MES1 DB 'Sending message......',0AH,0DH,0AH,0DH,'$'MES2 DB 'Receiving message......',0AH,0DH,0AH,0DH,'$'MESS2 DB 50DB ?MES DB 50 DUP(?)MESS3 DB 50 DUP(?)BUF1 DB ?BUF2 DB ?DATA ENDSSTACK SEGMENT PARA STACKDB 128 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXCALL SETTIMCALL INIT51CALL INIT50AG: LEA DX,MESS1MOV AH,09HINT 21HAG1: MOV DL,0FFH ;显示提示信息,MOV AH,06H ;进行菜单选择INT 21HJZ AG1CMP AL,'1'JZ SDCMP AL,'2'JZ RCCMP AL,'3'JZ EXITLEA DX,ERRORMOV AH,09HINT 21HJMP AGSD: CALL SENDJMP AGRC: CALL RECEJMP AGEXIT: MOV AX,4C00HINT 21HSEND PROC ;发送子程序MOV AH,09HLEA DX,MES1INT 21H ;显示提示信息MOV AH,0AHLEA DX,MESS2INT 21H ;从键盘输入字串信息MOV CL,MESS2[1]LOP1: MOV AL,CLMOV BUF1,ALCALL SED ;发送一个字符(字串长度) CALL REC ;接收回传字符CMP AL,CLJZ SKIP1MOV AL,15H ;回传字符不同于发送字符MOV BUF1,AL ;有错,发出错标志,重发字符CALL SEDJMP LOP1SKIP1: LEA SI,MES ;发送字串内容(含出错处理)LOP2: MOV AL,[SI]MOV BUF1,ALCALL SEDCALL RECMOV AL,BUF2CMP AL,[SI]JZ SKIP2MOV AL,15HMOV BUF1,ALCALL SEDJMP LOP2SKIP2: DEC CLJZ EXIT1INC SIJMP LOP2EXIT1: MOV CX,3LOOP1: MOV AH,06HMOV DL,0AHINT 21HMOV DL,0DHINT 21HLOOP LOOP1RETSEND ENDPRECE PROC ;接收子程序MOV AH,09HLEA DX,MES2INT 21H ;显示提示信息LOP3: CALL REC1 ;接收一个字符;并保存在CL中 MOV CL,BUF2MOV BUF1,CLCALL SED1 ;回送字符CALL REC1 ;接收字符MOV AL,BUF2CMP AL,15HJZ LOP3 ;是出错标志,表明上一个接收;字符已经出错,需要重现接收LEA DI,MESS3LOP4: MOV [DI],AL ;将刚才接收字符送缓冲区MOV BUF1,ALCALL SED1 ;回送字符DEC CL ;判断是否接收完毕,没有则继JZ EXIT2 ;续进行接收、回传、判断操作CALL REC1MOV AL,BUF2CMP AL,15HINC DIJMP LOP4SKIP3: CALL REC1MOV AL,BUF2JMP LOP4EXIT2: INC DI ;已经接收所有要发送字符,MOV AL,'$' ;在屏幕上显示出来MOV [DI],ALLEA DX,MESS3MOV AH,09HINT 21HMOV CX,3LOOP2: MOV AH,06HMOV DL,0AHINT 21HMOV DL,0DHINT 21HLOOP LOOP2RETRECE ENDPSED PROC ;8251发送单个字符子程序 MOV DX,CTRL51WAIT1: IN AL,DXTEST AL,01HJZ WAIT1MOV DX,DATA51MOV AL,BUF1OUT DX,ALRETSED ENDPSED1 PROC ;8250发送单个字符子程序 MOV DX,LSR50WAIT3: IN AL,DXTEST AL,20HJZ WAIT3MOV DX,DATA50MOV AL,BUF1OUT DX,ALRETSED1 ENDPREC PROC ;8251接收单个字符子程序 MOV DX,CTRL51WAIT2: IN AL,DXTEST AL,02HJZ WAIT2MOV DX,DATA51IN AL,DXMOV BUF2,ALRETREC ENDPREC1 PROC ;8250接收单个字符子程序 MOV DX,LSR50WAIT4: IN AL,DXJZ WAIT4MOV DX,DATA50IN AL,DXMOV BUF2,ALRETREC1 ENDPSETTIM PROC ;8251时钟设定(9600波特率) MOV DX,00HMOV AX,CLKMOV BX,1000MUL BXMOV BX,BPSDIV BXMOV DX,00HMOV BX,FACTORDIV BXMOV BX,AXMOV DX,TIMCTLMOV AL,00110110BOUT DX,ALMOV DX,TIMER0MOV AX,BXOUT DX,ALMOV AL,AHOUT DX,ALRETSETTIM ENDPINIT51 PROC ;8251初始化MOV DX,CTRL51MOV AL,00HMOV CX,3S1: CALL RELOOP S1MOV AL,40HCALL REMOV AL,4EHCALL REMOV AL,37HCALL RECALL DELAYRETINIT51 ENDPINIT50 PROC ;8250初始化MOV DX,LCR50MOV AL,80HCALL REMOV DX,DRL50MOV AL,DIVLCALL REMOV DX,DRH50MOV AL,DIVHCALL REMOV DX,LCR50MOV AL,03HCALL REMOV AL,00HCALL RECALL DELAYRETINIT50 ENDPRE PROCOUT DX,ALPUSH CXMOV CX,3REP1: LOOP REP1POP CXRETRE ENDPDELAY PROCMOV CX,0FFFFH DL1: LOOP DL1MOV CX,0FFFFH DL2: LOOP DL2RETDELAY ENDPCODE ENDSEND START。

相关文档
最新文档