搜档网
当前位置:搜档网 › 用VisualC_实现计算机串行通信的几种方法

用VisualC_实现计算机串行通信的几种方法

用VisualC_实现计算机串行通信的几种方法
用VisualC_实现计算机串行通信的几种方法

用Visual C++实现计算机串行通信的几种方法

刘 鎏

(解放军电子工程学院 合肥 230037)

摘 要:首先介绍了串行通信的一般概念,然后说明了利用RS-232口进行串行通信的一般步骤,并介绍了三种用VC ++实现串行通信的具体方式:使用VC++提供的MSComm控件实现串口通信、利用API函数实现串口通信和多线程下实现串行通信方法,最后比较了三种方法的利与弊。

关键词:串行通信;VC++;多线程

中图分类号:TP312

Discussion on Computer Serial Communication Technology Based on VC++

Liu Liu

(EEI of PLA,Hefei 230037)

Abstract:This paper introduces the universal of serial communicati on at first.T hen the steps of the serial com munication are ex plained.And also the three ways to achieve the serial communication are discussed,that is,the way based on the MSComm of VC++,the way based on the API function and the way of mul tithreading.At last the three ways are compared.

Key words:serial communication,VC++,multithreading

Class number:TP312

1 引言

Microsoft Visual C++以其界面的开放性著称,其32位面向对象的程序设计及Active X控件的灵活性深受广大计算机开发者的青睐,可广泛应用于各个领域,特别是在实时监控、大小型设备的整个生产过程控制等方面,VC++的串口编程显得尤为重要。

串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以VC+ +的串口编程应用广泛。我们应根据不同的条件实现对串口的编程控制。Windo ws不提倡应用程序直接控制硬件,而是通过Windo ws操作系统提供的设备驱动程序来进行数据传递。串口在Win32中是作为文件来进行处理的,而不是直接对端口进行操作。

2 串行通信的一般步骤

利用微机RS-232口进行串行通信的一般步骤如下:

(1)打开串口

在32位Windows中,串口和其它通信设备都被作为文件进行处理,在使用前必须先将其打开。为了保证串口通信数据传输的可靠性,串口打开时一般都设置为非共享模式,串口一旦被打开后,其它的应用程序将无法打开或使用它。

(2)配置串口

在使用串口进行数据通信前必须对其进行配置,串口配置主要包括波特率、数据位数、停止位数、奇偶校验、发送缓冲区大小、接受缓冲区大小等。

(3)超时设置

在串口通信时如果数据传输突然中断,对串口的读写操作可能会进入无限期的等待状态,为避免这种情况发生,必须设置串口读写操作的等待时间,等待时间超过后,串口的读写操作将被主动放弃,这样即使数据传输突然中断程序也不会被挂起或阻塞。

(4)数据读写

串口打开并配置好后即可对其进行读写操作

总第151期2006年第1期 舰船电子工程

Ship Electronic Engineering

Vol.26No.1

94

收稿日期:2005年7月4日,修回日期:2005年8月1日

了,对串口的读写操作可采用查询、同步、异步和事件驱动等方式。

(5)关闭串口

在串口使用完成后应将其关闭,否则如果没有关闭串口,该串口将始终处于打开状态,其它的应用程序就将无法打开或使用它。

VC++实现串行通信的方法主要有以下三种。

3 使用VC++提供的MSComm控件

实现串口通信

首先,在对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project->Add to Project->Components and C ontrol插入即可,再将该控件从工具箱中拉到对话框中。此时,你只需要关心控件提供的对Windows通信驱动程序的API函数的接口。换句话说,只需要设置和监视MSComm 控件的属性和事件。

在ClassWizard中为新创建的通信控件定义成员对象(C MSC omm m_Serial),通过该对象便可以对串口属性进行设置,MSC om m控件共有27个属性,这里只介绍其中几个常用属性:

CommPort设置并返回通信端口号,缺省为COM1。

Settings以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。

PortOpen设置并返回通信端口的状态,也可以打开和关闭端口。

Input从接收缓冲区返回和删除字符。

Output向发送缓冲区写入一个字符串。

InputLen设置每次Input读入的字符个数,缺省值为0,表明读取接收缓冲区中的全部内容。

InputMode定义Input属性获取数据的方式(0代表文本方式,1代表二进制方式)。

Rthreshold和Sthreshold属性,表示在OnComm 事件发生之前,接收缓冲区或发送缓冲区中可以接收的字符数。

以下是通过设置控件属性对串口进行初始化的实例:

B OOL CsampleDlg::PortOpen()

{

B OOL m Opened;

......

m Serial.SetCommPort(2);//指定串口号

m SetSettings(4800,N,8,1);//通信参数设置

m Serial.SetInBufferSize(1024);//指定接收缓冲区大小

m Serial.SetInB ufferCount(0);//清空接收缓冲区

m Serial.Inpu tMode(1);//设置数据获取方式

m Serial.SetInpu tLen(0);//设置读取方式

m Opened=m Serial.SetPortOpen(1);//打开指定的串口

return m Opened;

}

打开所需串口后,需要考虑串口通信的时机。在接收或发送数据过程中,可能需要监视并响应一些事件和错误,所以事件驱动是处理串行端口交互作用的一种非常有效的方法。使用OnComm事件和C ommEvent属性捕捉并检查通信事件和错误的值。发生通信事件或错误时,将触发OnC omm事件,C ommEvent属性的值将被改变,应用程序检查C om mE vent属性值并作出相应的反应。在程序中用ClassWizard为CMSC om m控件添加OnComm消息处理函数:

Void CsampleDlg::OnCom m()

{

......

s witch(m Serial.GetCommEvent())

{

case2:

//串行口数据接收、处理

}

}

4 利用API函数实现串口通信

在32位Windows中可以使用Win32通信API 函数实现对RS232串行通信口的访问,Windows95和Windows98中对串口的打开、读取、写入和关闭所用的函数和对文件进行打开、读取、写入和关闭所用的函数相同,以下对串口的操作在Windows 95和Windows98中均可使用。

(1)打开串口

Win32中用于打开串口的API函数位Create File,其原型为:

CreateFile(szDevice,fdwAccess,fdwShareMode, lpsa,fdwCreate,fdwAttrsAndFlags,hTemplateFile);

其中各参数的意义如下:

szDevice将要打开的串口逻辑名,如COM1或C OM2

fdwAccess指定串口访问的类型,可以是读取、

95

2006年第1期 舰船电子工程

写入或两者并列

fdwShareMode指定共享属性,由于串口不能共享,该参数必须置为0

lpsa引用安全性属性结构,缺省值为NULL

fdwCreate创建标志,对串口操作该参数必须置为OPENEXISTING

fdwAttrsAndFlags属性描述,用于指定该串口是否可进行异步操作

hTemplateFile指向模板文件的句柄,对串口而言该参数必须置为NULL

以下程序用于以同步读写方式打开串口COM1:

HANDLE hCom;

DWORD d wError;

hCom=CreateFile(!COM1!,GENERIC?READ| GENERIC?WRITE,

0,NULL,OPEN?EXISTING,0,NULL);

if(hCom==(HANDLE)0xFFFFFFFF)

{dwError=GetLastError();

MessageBox(d wError);}

(2)配置串口

配置串口是通过改变设备控制块DCB(Device Control Block)的成员变量值来实现的,接收缓冲区和发送缓冲区的大小可通过SetupComm函数来设置。

以下程序将串口设置为:波特率:9600,数据位数:7位,停止位:2位,偶校验,接收缓冲区和发送缓冲区大小均为1024个字节,最后用PurgeComm 函数终止所有的后台读写操作并清空接收缓冲区和发送缓冲区。

DCB dcb;

dcb.BaudRate=9600;

dcb.ByteSize=7;

dcb.Parity=EVE NPARITY;

dcb.StopBits=2;//TWOSTOPBIT;

dcb.fBi nary=TRUE;

dcb.fParity=TRUE;

if(!SetCommState(hCom,&dcb))

MessageBox(!串口设置(SetCommState)出错!!!!);

SetupComm(hCom,1024,1024);

PurgeCom m(hCom,PURGE TXABORT|PURGE RX AB ORT|

PURGE TXCLEAR|PURGE RXCLEAR);

(3)超时设置

超时设置是通过改变COMMTIME OUTS结构的成员变量值来实现的,以下程序将串口读操作的超时设定为10毫秒。

COMMT IME OUTS to;

memset(&to,0,sizeof(to));

to.ReadIntervalTimeout=10;

SetCommTimeouts(hCom,&to);

配置串口和超时设置也可以用BuildDCB And Timeouts函数一次完成,该函数原型如下:

BuildDCB AndTimeouts(lpszString,&dcb, &timeouts)

(4)数据读写

对串口进行读取、写入所用的函数和对文件进行读取、写入所用的函数相同,具体实现可采用查询、同步、异步或事件驱动等方法,对串口进行读取、写入所用的函数原型如下:

Read File(hCom,inBuff,nBytes,&nBytesRead, &overlapped);

WriteFile(hCom,outBuff,nToWrite,&actual Write, &overlapped);

(5)关闭串口

利用API函数实现串口通信时关闭串口非常简单,只需使用CreateFile函数返回的句柄作为参数调用Close Handle即可:

CloseHandle(hCom);

5 多线程下实现串行通信

前两种方法适用于单线程通信。在很多控制系统中,常通过扩展串口连接多个外设,各外设发送数据的重复频率不同,要求后天实时无差错捕捉、采集、处理、记录各端口数据,这就需要在自定义的串行通信类中创建端口监视线程,以便在指定的事件发生时向相关的窗口发送通知消息。

Windows内部的抢先调度程序在活动的线程之间分配CPU时间,Win32区分两种不同类型的线程,一种是用户界面线程UI(User Interface Thread),它包含消息循环或消息泵,用于处理接收到的消息;另一种是工作线程(W ork Thread),它没有消息循环,用于执行后台任务。用于监视串口事件的线程即为工作线程。

多线程通信类的编写在端口的配置,连接部分与单线程通信类相同,在端口配置完毕后,最重要的是根据实际情况,建立多线程之间的同步对象,如信号灯、临界区、事件等,相关细节可参考VC+ + 6.0中的同步类。

一切就绪后即可启动工作线程:

C winThrea*CommThread=

AfxBegin Thread(Comm Watch Thread,//线程函数名

96

刘 鎏:用Visual C++实现计算机串行通信的几种方法 总第151期

(LPVOID)m pTTYInfo,//传递的参数

THREAD_PRIORITY ABOVE NOR MAL,//设置线程优先级

(UNIT)0,//最大堆栈大小

(DWORD)CREATE S USPENDED,//创建标志

(LPSECURITY ATTRIB UTES)NULL);//安全性标志

同时,在串口事件监视线程中:

if(WaitCommEvent(p TTYInfo->idComDev,&d wEvtMask, NULL))

{

if((dwEvtMask&p TTYInfo->dwEvtMask)

==p TTYInfo->dwEvt M ask)

{

Wai tForSingleObject(p TTYInfo->hPostEvent, 0xFFFFFFFF);

ResetEvent(p TTYInfo->hPostEven t);//置同步事件对象为非信号态

::Pos tMessage(CsampleView,ID COM1DATA,0,0); //发送通知消息

}

}

用PostMessage()向指定窗口的消息队列发送通知消息,相应地,需要在该窗口建立消息与成员函数间的映射,用ON_MESSAGE将消息与成员函数名相关联。

B EGIN MESSAGE MAP(CsampleView,Cview)

//{{AFX MSG MAP(CsampleView)

ON MESSAGE(ID COM1DATA,OnProcessCom1Data) ON MESSAGE(ID COM2DATA, OnProcessCom2Data)......

//}}AFX MSG MAP

END MESS AGE MAP()

然后在各成员函数中完成对各串口数据的接收处理,但必须保证在下一次监测到有数据到来之前,能够完成所有的中间处理工作,否则将造成数据的捕捉错误。

多线程的实现可以使得各端口独立,准确地实现串口通信,使串口通信具有更广泛的灵活性与严格性,且充分利用了CPU时间。但在具体的实时监控系统中如何协调多个线程,线程之间以何种方式实现同步也是在多线程串行通信程序实现的难点。

6 计算机仿真结果

用VC++ 6.0编程仿真,采用单线程,用Csocket类,最常用的方法是编写客户端/服务器模型。由于程序比较简单,故采用VC++提供的

图1 服务器端

MSC omm控件来实现

串口通信。仿真共两

个子程序,一个充当

服务器端,另一个充

当客户端。编写完成

后编译并运行程序,

生成两个对话框(如

图1和图2所示),在服务器对话框内输入#计算机串行通信的实现字样,点击#Send TC P(如图1),在客户框内就接收到

图2 客户端

数据(如图2)。

7 结束语

以VC++ 6.0为

工具,实现串行通信

的上述三种方法各有

利弊,MSCom m控件是单线程,简洁易用,但它只在对话框中使用,不够灵活;利用API函数实现串口通信的编程方法功能强大,灵活性好,但原理上比较复杂,需要编程人员对串口的硬件工作原理有较深入的了解;多线程的方法灵活准确,C PU利用率高,适用于要求较高的实时临近系统,它的缺点是同步较难。

我们应当根据不同的需要,选择合适的方法,在Windows98、Windows2000上运行稳定,将会取得事半功倍的效果。

参考文献

[1]David J.Kruglinski.Programming Visual C++ 6.0技术内幕[M].北京:清华大学出版社,1999

[2]张宏,阎淑君.V i sual C++ 5.0与MFC简明参考手册[M]北京:电子工业出版社,1998

[3]王宏伟,吴建设.基于VC++ 6.0的串行通信设计与实现[J].黄石高等专科学校学报,2003,(2):16~19

[4]陈细军,谭民.VC编程中的串口通信技术[J].计算机应用,2001,(9):94~95

[5]袁志勇,苏光奎.用VC++ 6.0编写串行通信程序[J].电脑学习,2000.(6):26~27

[6]张卫钢,陈文斌.用VC++实现多线程方式下的串行通信[J].长安大学学报(自然科学版),2003,(3):101~ 103

97

2006年第1期 舰船电子工程

计算机接口与通信习题答案

第一章 1.答:接口,是指计算机和其他设备之间的物理和逻辑系统的连接结构。它用于解决计算机和相关设备的硬件连接及信息联通的问题。 2.答:计算机传送控制信息、状态信息和数据信息。传送的方式有无条件传送方式、有条件传送方式、中断传送方式、DMA传送方。 3.答:计算机的硬接口有专门的集成式电路组成,可分为系统内部部件接口芯片、串并行数据传送接口芯片和外部设备接口芯片。它们用于CPU和各种部件或外部设备进行数据交换。 7.答:串口进行通信的方式有两种:同步通信方式和异步通信方式。同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高;异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。 查阅资料: 8254的引脚功能 8254芯片由数据总线缓冲器、读/写控制逻辑、控制字寄存器和3个计数器通道组成。3个计数器通道和控制字寄存器通过内部总线相连,内部总线再经缓冲器与CPU数据总线相接。 控制字寄存器是8位只写寄存器,用于存放由CPU写入芯片的方式选择控制字或命令字,由它来控制8254中各计数器通道的工作方式。 3个计数器通道相互间是完全独立的,但结构和功能完全相同。每个通道的内部结构大体如图8.1所示,只是其中的控制字寄存器并非每个通道各有一个,而是3个通道共用一个。当写入控制字时,将同时清除计数初值寄存器的内容。计数工作单元(CE)和计数初值寄存器(CR)、输出锁存器(OL)均为16位,而内部总线的宽度为8位,因此CR的写入和OL的读出都必须分两次进行。若在初始化时只写入CR的一个字节,则另一个字节的内容保持为0。CE是CPU不能直接读/写的,需要修改其初值时,只能通过写入CR实现;需要读CE的当前内容时,必须先写入读回命令,将CE的内容锁存于OL,然后再读出OL内容。经锁存后的OL内容将一直保持至CPU读出时为止。在CPU读出OL之后,OL又跟随CE变化。状态寄存器保持有当前控制字寄存器的内容、输出状态以及CR内容是否已装入CE的指示状态,同样必须先锁存到状态锁存器,才允许CPU读取。(8253中没有状态寄存器和状态锁存器,这是8254和8253的主要区别之一)。OUT、CLK和GA TE的作用已在前面说明过,它们是每个通道和外界联系的引脚信号。当某通道用作计数器时,应将要求计数的次数预置到该通道的CR中,被计数的事件应以脉冲方式从CLKi端输入,每输入一个计数脉冲,计数

(最新整理)10月全国自考计算机通信接口技术试题及答案解析

全国2018年10月自学考试计算机通信接口技术试题 课程代码:02369 注:接口芯片的控制字请参阅附录。 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.IBM PC/XT机的内部数据总线为16位,地址总线为( ) A.16位 B.20位 C.24位 D.32位 2.Pentium机的内部数据总线为64位,系统总线标准是( ) A.ISA总线 B.PCI总线 C.ISA+PCI总线 D.HOST总线 3.PC机可屏蔽硬件中断结构由两片8259A中断控制器串级构成,允许连接15个硬件中断源,其中中断级别最低的是( ) A.IRQ0计时器 B.IRQ1键盘 C.IRQ3串行口2 D.IRQ7并行口1 4.RS-232C标准规定控制信号的接通电平是( ) A.+3V~-3V B.+5V~-5V C.-15V~-5V D.+5V~+15V 5.在串行异步数据传送时,如果格式规定8位数据位,1位奇偶校验位,1位停止位,则一帧的长度是( ) A.8位 B.9位 C.10位 D.11位 6.82C55端口引脚在复位时被内部编程为( ) A.输入引脚 B.输出引脚 C.控制引脚 D.状态引脚 7.74LS244是( ) A.八位缓冲器 B.单稳态触发器 1

C.八位锁存器 D.译码器 8.设8254的f clk2=3.2768MHz,控制字=0B6H,要求=50Hz,则指令格式中写入的计数初值应为( ) A.65536 B.16位全1 C.0 D.一个计数器无法实现 9.以下为Windows编程服务的是( ) A.DOS功能调用 B.BIOS调用 C.DPMI调用 D.宏调用 10.下列设备系统中,一般不.直接与三总线连接的是( ) A.I/O接口 B.外设 C.ROM D.RAM 11.除了保护模式中断使用IDT与中断描述符,而实模式中断使用IVT和中断向量之外,保 护模式中断与实模式中断是相同的,它们用来从中断服务程序返回的指令是( ) A.RET B.RETI C.IRET D.END 12.INS8250接口芯片实现的主要功能是( ) A.异步串行 B.同步串行 C.同步与异步串行 D.并行 13.82C55的A口工作于方式1输入,当A口允许中断时,需置1的控制位是( ) A.PC2 B.PC4 C.PC5 D.PC6 14.执行返回指令,退出中断服务程序,此时的返回地址来自( ) A.ROM区 B.IP C.堆栈区 D.中断向量表 15.对于外设引发的可屏蔽中断,CPU的输入端引脚是( ) A.INTR B.INT C.CLK D.ALE 16.与并行通信相比,串行通信的优点是( ) A.传送距离远 B.传送速度快 C.传送信号好 D.传送费用高 2

微机系统与接口技术复习题

微机系统与接口技术复习 一、选择题 1.8086/8088系统中堆栈以 C 为单位进行操作的。 A.半字节 B. 字节 C. 字 D. 双字 2.在下列指令中,不影响堆栈内容的指令是 A 。 A. JMP B. POP C. CALL D. IRET 3.标志寄存器中的TF位可以用来屏蔽 A 。 A. 单步中断 B. INT n中断 C. 可屏蔽中断 D. 以上都不行4.V AR是数据段中定义的变量,指令CMP V AR[BX][DI],AX中目的操作数的寻址方式是 C 。 A.寄存器相对寻址B.直接寻址C.相对基址变址 D.比例变址寻址 5.下列指令执行后,不影响标志位的指令是 A 。 A.PUSH [1000h] B.DEC DX C.AND CX,AX D.IRET 6.下面关于PC机串行通信接口的叙述中,正确的是 A 。 A)异步通信时,一帧信息以起始位开始、停止位结束,起始位之后是数据的最高位。 B)系统A和系统B以半双工方式进行串行通信时,数据能从A传送到B,也能从B传送到A,并且可以同时进行。 C)PC机的串行通信接口采用同步通信方式。 D)PC机的串行通信接口采用RS-232标准。 7.若82C55A组工作在方式1,输出,B组工作在方式0,输入,则其方式控制字为 B 。 A. 23H B. A3H C. 80H D. 85H 8. 在8086系统中,假设SS=2000H SP=0102H,则执行PUSH AX指令后,栈顶的物理地址是 C 。 A. 20104H B. 20102H C. 20100H D. 200FEH 9.设DS=6321H,SS=6232H,BP=1860H,指令DEC BYTE PTR [BP+3]操作数的物理地址是 D 。 A. 64A73H B. 64183H C. 65073H D. 63B83H

C51单片机和电脑串口通信电路图

C51单片机和电脑串口通信电路图与源码 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 串口通讯的硬件电路如上图所示 在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错,下图就是MAX232的基本接线图。

按图7-3加上MAX232就可以了。这大热天的拿烙铁焊焊,还真的是热气迫人来呀:P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。

为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。本串口软件在本网站https://www.sodocs.net/doc/0f4780179.html,可以找到 软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源。

计算机通信接口技术试题

中国自考人——700门自考课程 永久免费、完整 在线学习 快快加入我们吧! 全国2005年10月高等教育自学考试 计算机通信接口技术试题 课程代码:02369 一、单项选择题(本大题共13小题,每小题1分,共13分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 XT 机,在I/O 端口写周期中IOW 信号有效的开始时刻大约是( ) 的后半周期 开始 的后半周期 2.关于总线周期的叙述不正确... 的是( ) 完成一次读/写操作所需的时间为一个总线周期 B.不同类型的CPU 总线周期所含的T 周期数可能不同 C.总线周期可能要插入Tw 周期 D.总线周期就是指令周期 3.设中断向量表18CH ~18FH 单元中,依次存放着12H 、34H 、56H 、78H ,则中断服务程序的入口地址(段基址:偏移地址)为( ) :5678H :7856H :1234H :3412H 系列机,CPU 响应非屏蔽中断时,其中断号( ) A.由CPU 自动产生 B.由INT 指令给出 C.由中断控制器给出 D.由中断源提供 5.系统规定:串行口1的中断号是( ) 6.假设74LS138的G 1、A G 2、B G 2、B 端子依次和地址线A 9~A 7、AEN 相连,用4Y 输出低电平作片选信号,端口寻址范围是240H ~25FH ,则138译码器的A 、C 端应和( ) 、A 5相连 、A 4相连 、A 6相连 、A 5相连 7.82C55B 口工作在方式1输入,当外设输入数据时,还必须向下列哪个端子输入负脉冲信号( ) 1 C 8.82C55A 口工作在方式1输出,当输出设备收到数据之后,还需向下列哪个端子发出认可信号( )

1月全国自学考试计算机通信接口技术试题及答案解析

全国2018年1月自学考试计算机通信接口技术试题 课程代码:02369 注:接口芯片的控制字请参阅附录。 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.在PC系列机中,执行OUT指令时,CPU进入( ) A.存储器读周期B.存储器写周期 C.I/O读周期D.I/O写周期 2.82C55 A口工作在方式1输出,用程序控制方式输出数据时应先查询( ) A.PC3B.PC4 C.PC6D.PC7 3.82C55 B口工作在方式1输出,允许中断,则输出中断请求信号的端子是( ) A.PC0B.PC3 C.PC4D.PC6 4.8254的一个计数器计数结束时输出周期性负脉冲信号,则其工作在( ) A.方式0 B.方式1 C.方式2 D.方式3 5.微机系统与I/O设备交换信息时,不需要CPU干涉的是( ) A.无条件输入/输出B.程序控制(查询)输入/输出 C.中断驱动输入/输出D.直接存储器存取(即DMA方式) 6.在HDLC高级数据链路协议的帧格式中,作为测试用的无站地址的地址字段是( ) A.00000000 B.00001111 C.11110000 D.11111111 7.XT总线I/O读写周期是从( ) A.ALE有效开始的B.BALE有效开始的 C.IOR有效开始的D.IOW有效开始的 8.因为采用了‘0’位插入/删除技术,所以HDLC用户数据中如果有与标志模式相同的位组合,在传送时需 变为( ) A.01111110 B.011111010 C.01010101 D.010101010 9.执行IRET指令,CPU从栈顶依次弹出6个字节(每两个字节为一个字),并依次写入( ) A.标志寄存器,IP,CS B.IP,CS,标志寄存器 C.CS,IP,标志寄存器 D.标志寄存器,CS,IP

计算机编程及常用术语大全(英汉对照)

第一部分、计算机算法常用术语中英对照 Data Structures 基本数据结构 Dictionaries 字典 Priority Queues 堆 Graph Data Structures 图 Set Data Structures 集合 Kd-Trees 线段树 Numerical Problems 数值问题 Solving Linear Equations 线性方程组 Bandwidth Reduction 带宽压缩 Matrix Multiplication 矩阵乘法 Determinants and Permanents 行列式 Constrained and Unconstrained Optimization 最值问题Linear Programming 线性规划 Random Number Generation 随机数生成 Factoring and Primality Testing 因子分解/质数判定Arbitrary Precision Arithmetic 高精度计算Knapsack Problem 背包问题 Discrete Fourier Transform 离散Fourier变换Combinatorial Problems 组合问题 Sorting 排序

Searching 查找 Median and Selection 中位数 Generating Permutations 排列生成 Generating Subsets 子集生成 Generating Partitions 划分生成 Generating Graphs 图的生成 Calendrical Calculations 日期 Job Scheduling 工程安排 Satisfiability 可满足性 Graph Problems -- polynomial 图论-多项式算法Connected Components 连通分支 Topological Sorting 拓扑排序 Minimum Spanning Tree 最小生成树 Shortest Path 最短路径 Transitive Closure and Reduction 传递闭包Matching 匹配 Eulerian Cycle / Chinese Postman Euler回路/中国邮路Edge and Vertex Connectivity 割边/割点 Network Flow 网络流 Drawing Graphs Nicely 图的描绘 Drawing Trees 树的描绘 Planarity Detection and Embedding 平面性检测和嵌入

通信接口介绍

一IIC通信 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips (for IIC)和Motorola(for SPI)出于不同背景和市场需求制定了这两种标准通信协议。 IIC 开发于1982年,当时是为了给电视机内的CPU和外围芯片提供更简易的互联方式。电视机是最早的嵌入式系统之一,而最初的嵌入系统是使用内存映射(memory-mapped I/O)的方式来互联微控制器和外围设备的。要实现内存映射,设备必须并联入微控制器的数据线和地址线,这种方式在连接多个外设时需大量线路和额外地址解码芯片,很不方便并且成本高。 为了节省微控制器的引脚和和额外的逻辑芯片,使印刷电路板更简单,成本更低,位于荷兰的Philips实验室开发了‘Inter-Integrated Circuit’,IIC 或IIC ,一种只使用二根线接连所有外围芯片的总线协议。最初的标准定义总线速度为100kbps。经历几次修订,主要是1995年的400kbps,1998的3.4Mbps。 有迹象表明,SPI总线首次推出是在1979年,Motorola公司将SPI总线集成在他们第一支改自68000微处理器的微控制器芯片上。SPI总线是微控制器四线的外部总线(相对于内部总线)。与IIC不同,SPI没有明文标准,只是一种事实标准,对通信操作的实现只作一般的抽象描述,芯片厂商与驱动开发者通过data sheets和application notes沟通实现上的细节。IIC(INTER IC BUS) IIC的数据输入输出用的是一根线,但是由于IIC的数据线是双向的,所以隔离比较复杂,SPI则比较容易。所以系统内部通信可用IIC,若要与外部通信则最好用SPI带隔离(可以提高抗干扰能力)。但是IIC和SPI都不适合长距离传输。 IIC总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。 IIC通信:是两根线,发送的开始状态和结束状态都与SCL有关,SDA上先发送设备地址,后发送寄存器地址和数据。硬件简单,软件协议稍微多点,比如开始状态,结束状态,数据变化状态对时序都有严格要求 IIC 是多主设备的总线,IIC没有物理的芯片选择信号线,没有仲裁逻辑电路,只使用两条信号线——‘serial data’(SDA) 和‘serial clock’(SCL)。IIC协议规定: 1.每一支IIC设备都有一个唯一的七位设备地址; 2. 数据帧大小为8位的字节; 3. 数据(帧)中的某些数据位用于控制通信的开始、停止、方向(读写)和应答机制。IIC 数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps),另外一些变种实现了低速模式(10 kbps)和快速+模式(1 Mbps)。 物理实现上,IIC 总线由两根信号线和一根地线组成。两根信号线都是双向传输的,参考下图。IIC协议标准规定发起通信的设备称为主设备,主设备发起一次通信后,其它设备均为从设备。

微型计算机原理与接口技术第十章课后答案

第十章 1. 串行通信与并行通信的主要区别是什么?各有什么优缺点? 答:计算机与外部的信息交换称为通信,基本的通信方式有两种,并行通信和串行通信。 并行通信:数据各位同时传送,此方式传输数据的速度快,但使用的通信线多,若要并行传送8位数据,需要用8根数据线,另外还需一些控制信号线。随着传输距离的增加,通信线成本的增加将成为突出的问题,而且传输的可靠性随着距离的增加而下降。因此,并行通信适用于近距离传送数据的场合。 串行通信:将要传送的数据或信息按一定的格式编码,然后在单根线上按一位接一位的先后顺序进行传送。发送完一个字符后,再发送第二个。接收数据时,每次从单根线上一位接一位的接收信息,再把它们拼成一个字符,送给CPU作进一步处理。适用于远距离通信,需要的通信线少和传送距离远等优点。 2. 在串行通信中,什么叫单工、半双工、全双工工作方式? 答:串行通信时,数据在两个站A与B之间传送,按传送方向分成单工、半双工和全双工三种方式。 单工数据线仅能在一个方向上传输数据,两个站之间进行通信时,一边只能发送数据,另一边只能接收数据,也称为单向通信。 在半双工方式中,数据可在两个设备之间向任一个方向传输,但两个设备之间只有一根传输线,故同一时间内只能在一个方向上传输数据,不能同时收发。 全双工:对数据的两个传输方向采用不同的通路,可以同时发送和接收数据。 3. 什么叫同步工作方式?什么叫异步工作方式?哪种工作方式的效率更高?为什么? 答:串行通信有两种基本工作方式:异步方式和同步方式 异步方式:不发送数据时,数据信号线总是呈现高电平,称为MARK状态,也称空闲状态。当有数据要发送时,数据信号线变成低电平,并持续一位的时间,用于表示字符的开始,称为起始位。起始位后,在信号线上依次出现待发送的每一位字符数据,最低有效位D0最先送出,根据不同编码,有效数据位可由5位、6位、7位或8位构成,数据位后面有一个奇偶校验位,校验位后至少有一位高电平表示停止位,用于指示字符的结束。由此可见,异步方式发送一个7位的ASCII码时,实际需发送10位、10.5位或11位信息,故影响传输效率。 同步方式:没有数据传送时,传输线处于MARK状态,为了表示数据传输的开始,发送方式发送一个或两个特殊字符,称为同步字符。当发送法和接收方达到同步后,就可以一个字符接一个字符发送一大块数据,不再需要用起始位和停止位了,这样就可以明显的提高数据的传输速率。同步方式传送数据时,在发送过程中,收发双发还必须用同一个时钟进行协调,用于确定串行传输中每一位的位置。接收数据时,接受方可利用同步字符将内部时钟与发送方保持同步,然后将同步字符后面的数据逐位移入,并转换成并行格式,供CPU读取,直至收到结束符为止。 4. 用图表示异步串行通信数据的位格式,标出起始位,停止位和奇偶校验位,在数字位上标出数字各位发送的顺序。 答:

计算机常见算法面试题

简介:计算机考研之家搜集的华为C语言经典面试题,来试试你的C语言水平吧。每道题都附有详细解答和讲解,很有参考价值的C语言面试题。 怎么判断链表中是否有环? bool CircleInList(Link* pHead) { if(pHead = = NULL || pHead->next = = NULL)//无节点或只有一个节点并且无自环 return (false); if(pHead->next = = pHead)//自环 return (true); Link *pTemp1 = pHead;//step 1 Link *pTemp = pHead->next;//step 2 while(pTemp != pTemp1 && pTemp != NULL && pTemp->next != NULL) { pTemp1 = pTemp1->next; pTemp = pTemp->next->next; } if(pTemp = = pTemp1) return (true); return (false); } 两个字符串,s,t;把t字符串插入到s字符串中,s字符串有足够的空间存放t字符串 void insert(char *s, char *t, int i) { memcpy(&s[strlen(t)+i],&s[i],strlen(s)-i); memcpy(&s[i],t,strlen(t)); s[strlen(s)+strlen(t)]='\0'; } 1。编写一个C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。 char * search(char *cpSource, char ch) { char *cpTemp=NULL, *cpDest=NULL; int iTemp, iCount=0; while(*cpSource) { if(*cpSource == ch) { iTemp = 0; cpTemp = cpSource; while(*cpSource == ch) ++iTemp, ++cpSource; if(iTemp > iCount)

计算机常见外部接口图解

计算机常见外部接口图解 3.5mm插头 USB接口 串口 VGA接口 网卡(LAN)接口 并口 电脑内数据接口 IEEE1394接口 eSATA接口 Micro-USB DVI HDMI

3.5mm插头 最常见的立体声耳机分三层,也有两层的,每一层都有对应的功能,要DIY的话一定要分层。标准分布为“左右地红白”(从端部到根部依次是左声道、右声道、地线,其中左声道常用红色线皮,右声道常用白色的)。 最常见的是银白色的和铜黄色的,银色的是铜镀银,铜黄色的就是铜。由于银的稳定性和电子工程性优于铜,所以铜镀上银后可以升级使用该插头设备的用户体验。 USB接口 USB是一种常用的pc接口,他只有4根线,两根电源两根信号,故信号是串行传输的,usb接口也称为串行口,usb2.0的速度可以达到480Mbps。可以满足各种工业和民用需要.USB接口的输出电压和电流是: +5V 500mA 实际上有误差,最大不能超过+/-0.2V 也就是4.8-5.2V 。usb接口的4根线一般是下面这样分配的,需要注意的是千万不要把正负极弄反了,否则会烧掉usb设备或者电脑的南桥芯片:黑线:gnd 红线:vcc 绿线:data+ 白线:data-

USB接口定义图 USB接口定义颜色 一般的排列方式是:红白绿黑从左到右 定义: 红色-USB电源:标有-VCC、Power、5V、5VSB字样 白色-USB数据线:(负)-DATA-、USBD-、PD-、USBDT- 绿色-USB数据线:(正)-DATA+、USBD+、PD+、USBDT+ 黑色-地线: GND、Ground USB接口的连接线有两种形式,通常我们将其与电脑接口连接的一端称为“A”连接头,而将连接外设的接头称为“B”连接头(通常的外设都是内建USB数据线而仅仅包含与电脑相连的“A”连接头)。 USB接口是一种越来越流行的接口方式了,因为USB接口的特点很突出:速度快、兼容性好、不占中断、可以串接、支持热插拨等等,

计算机接口技术..

计算机接口技术 既然是在数据传输率相同的情况下,那么,又说同步字符传输速度要高于 异步字符传输其原因是()。 ? B. 附加位信息总量少 关于EPROM下面的说法中,正确的是()。 ? D. EPROM 是可改写的,但它不能作为随机读写存储 在异步串行输入/输出接口中,实现并行数据与串行数据的转换的主要功能部件是()。? A. 发送和接收移位寄存器 若同时锁存8254的0通道和1通道的状态和计数值,则其对应的回读命令字为()。? A. 1100 0110 8259中断屏蔽寄存储器的作用是( )。 ? B. 禁止外设向CPU发中断请求 8259中断屏蔽寄存储器的作用是( )。 ? B. 禁止外设向CPU发中断请求 ?在Intel 8255A中可以进行按位置位/复位的端口是()。 ? C. 端口C 在正常EOI方式下, 中断结束命令是清除( )中的某一位。 ? B. ISR 8237DMA控制器不能控制的传送是()。 ? B. 外设与外设之间传送 当多片8259A级联使用时,对于从8259A,级联信号CAS2~CAS0是()。 ? A. 输入信号 在微型机中,主存是由()组成。 ? D. RAM和ROM AD574采用的转换原理是()。

? A. 逐次逼近式 在正常EOI方式下, 中断结束命令是清除( )中的某一位。 ? B. ISR 针式点阵打印机的主要缺点是()。 ? C. 噪音大 当多片8259A级联使用时,对于从8259A,级联信号CAS2~CAS0是()。 ? A. 输入信号 8086对下列中断优先级响应最高的请求是()。 ? C. 内部软件中断 设异步串行通信的波特率为2400波特,若传送1KB的数据,每帧信息占10个数据位,则传送所需的时间为()秒。 ? B. 4.3 对于开关型设备的控制,适合采用的I/O传送方式是( )。 ? A. 无条件 当用 8259A中断控制器时,其中断服务程序执行EOI命令的作用是()。 ? B. 清除该中断服务寄存器中的对应位,以允许同级或低级的中断能被响应波特率是串行通信中的一项重要参数,以下说明中正确的是() ? B. 波特率是指单位时间内传送的二进制数的位数 异步串行通信的收/发双方无需用同一时钟源,只需用同一频率的收发时钟,就能保证可靠的通信。() 答案对 DMA方式的I/O操作与程序查询方式和中断控制式相比,用硬件控制代替了那里的软件控制,且无需经CPU传数,因此数据传送速度明显提高。() 答案对 静态随机存储器的内容可以永久性保存。()

10月全国自考计算机通信接口技术试题及答案解析

1 全国2018年10月高等教育自学考试 计算机通信接口技术试题 课程代码:02369 一、单项选择题(本大题共13小题,每小题1分,共13分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.PC/XT 机,在I/O 端口写周期中IOW 信号有效的开始时刻大约是( ) A.T 1的后半周期 B.T 2开始 C.T 2的后半周期 D.Tw 2.关于总线周期的叙述不正确... 的是( ) A.CPU 完成一次读/写操作所需的时间为一个总线周期 B.不同类型的CPU 总线周期所含的T 周期数可能不同 C.总线周期可能要插入Tw 周期 D.总线周期就是指令周期 3.设中断向量表18CH ~18FH 单元中,依次存放着12H 、34H 、56H 、78H ,则中断服务程序的入口地址(段基址:偏移地址)为( ) A.1234H :5678H B.3412H :7856H C.5678H :1234H D.7856H :3412H 4.PC 系列机,CPU 响应非屏蔽中断时,其中断号( ) A.由CPU 自动产生 B.由INT 指令给出 C.由中断控制器给出 D.由中断源提供 5.系统规定:串行口1的中断号是( ) A.0BH B.0CH C.0DH D.0EH 6.假设74LS138的G 1、A G 2、B G 2、B 端子依次和地址线A 9~A 7、AEN 相连,用4Y 输出低电平作片选信号,端口寻址范围是240H ~25FH ,则138译码器的A 、C 端应和( ) A.A 4、A 5相连 B.A 5、A 4相连 C.A 5、A 6相连 D.A 6、A 5相连 7.82C55B 口工作在方式1输入,当外设输入数据时,还必须向下列哪个端子输入负脉冲信

微机系统原理与接口技术答案

第1章习题解答 1、冯诺依曼计算机的内涵是什么?这种计算机程序运行是由指令流驱动的还是数据流驱动的? 答:冯诺依曼计算机的内涵: 由运算器、控制器、存储器、输入设备、输出设备5大部分组成计算机硬件。 数据和计算机指令采用二进制数形式表示,存储在计算机内部存储器中。 计算机工作原理的核心是“存储程序”和“程序控制”。事先编制好的由计算机指令组成的程序在执行前先装入存储器,控制器依据程序中的指令顺序周而复始地取出指令、分析指令、执行指令,根据指令的功能进行相应的运算,直到完成全部指令操作为止. 程序的运行是通过指令流来驱动的。 2、微型计算机系统有哪三个层次?试简述它们的内涵及其联系和区别。 答:微型计算机系统的三个层次:微处理器、微型计算机和微型计算机系统。 三者的内涵: 微处理器是利用大规模集成电路技术,将组成计算机的核心部件——运算器和控制器集成在一块硅片上的集成电路,简称MPU,习惯上称CPU。 微型计算机则是以微处理器为核心,配以内存储器、输入/输出(I/O)接口电路,通过总线结构连接而构成的裸机。 微型计算机系统是由微型计算机配以相应的外围设备(如键盘、显示器、打印机、外存储器等)、电源和其他辅助设备(如面板、机架等),以及控制微型计算机工作的软件而构成的完整的计算系统。 它们三者之间是从局部到全局的关系。单纯的微处理器和单纯的微型计算机都不能独立工作。只有微型计算机系统才是完整的计算系统,才可正常工作。 3、为什么把微型计算机的基本结构说成是总线结构?试简述总线结构的优点。 答:在微型计算机中,各组成部分之间是通过总线(包括地址总线、数据总线、控制总线)连接在一起而构成一个整体的,它们之间的信息交换也是通过总线进行。CPU通过总线与存储器和I/O接口电路连接,I/O接口和外设也是通过总线连接,即使在CPU内部,它的各功能部件也是通过总线相连的。因此微型计算机的基本结构就是总线结构。 微型计算机采用总线结构后,系统中各功能部件之间的相互关系变为各部件面向总线的单一关系。一个部件只要满足总线标准,就可直接连接到采用这种总线标准的系统中。这使得系统的设计与构造非常方便,同时也便于系统的扩充、升级和维修。 4、微型计算机硬件系统由哪些部分组成?各组成部分的功能是什么? 答:微型计算机硬件系统主要由CPU、存储器、I/O接口电路、输入/输出设备、总线,以及电源和一些辅助设备构成。 CPU:微机系统的核心部件,是运算和指挥控制中心。 存储器:包括内存和外存,是微机系统的存储和记忆部件,用以存放数据和程序。 I/O接口电路:CPU与输入/输出设备的连接与信息交换不能直接进行,I/O接口电路充当了二者之间的“桥梁”。 输入/输出设备:计算机与外界(人或其他设备,包括另一台计算机)联系和沟通的桥梁,用户通过输入/输出设备与微机系统互相通信。 总线:以上各组成部分是通过总线连接在一起构成一个整体的,各部件之间的信息运载和传输由总线承担。 5、计算机分那几类?各有什么特点? 答:传统上分为三类:大型主机、小型机、微型机。大型主机一般为高性能的并行处理系统,存储容量大,事物处理能力强,可为众多用户提供服务。小型机具有一定的数据处理能力,提供一定用户规模的信息服务,作为部门的信息服务中心。微型机一般指在办公室或家庭的桌面或可移动的计算系统,体积小、价格低、具有工业化标准体系结构,兼容性好。 6、微处理器应包含的最基本功能部件是哪些? 答: 算术逻辑单元,寄存器阵列,控制器部件。 7、微计算机应包含的最基本功能部件是哪些?

VB程序设计的常用算法

VB程序设计的常用算法 算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,……个位是0的个数存放在x(10)。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来 For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 x(p) = x(p) + 1 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数 分析:求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数) (1) 对于已知两数m,n,使得m>n; (2) m除以n得余数r; (3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4); (4) m←n,n←r,再重复执行(2)。 例如:求m=14 ,n=6的最大公约数. m n r

全国10月高等教育自学考试计算机通信接口技术试题及答案解析

全国2018年10月高等教育自学考试 计算机通信接口技术试题 课程代码:02369 说明:有关接口芯片的控制字请参阅附录。 一、填空题(每空1分,共10分) 1.在现代计算机中,CPU是通过数据总线、地址总线和________与RAM、ROM和I/O设备 三大功能模块进行数据交换。 2.Pentium机地址总线位数是________位。 3.GPIB最重要的特点,就是可使一个接口连接多到________个设备(包括计算机)和它们进行 通信。 4.在进行同步传送时,一帧内位于同步字符与报文之间的数据是________。 5.程序控制I/O的所有操作都是由执行程序来启动,因此,程序控制I/O接口一般需要有两个 端口,即数据端口和________。 6.ISA总线的SA0~SA19是在系统板上经过锁存的地址总线,在BALE________沿开始有效。 7.MC146818芯片有更新周期结束中断、________中断和________中断三种中断,系统初始 化时,它们都是被禁止的。 8.假设异步通信一帧数据为10位,连续传送,每秒传送240个字符,则通信速率是________ 波特。 9.82C55端口引脚在复位时,被内部编程为________引脚。 二、单项选择题(在每小题的四个备选答案中选出一个正确答案,并将其号码填在题干的括号 内。每小题1分,共15分) 1.中断驱动I/O方式,是( ) A.以CPU为主动方 B.以存储器为主动方 C.以外设为主动方 D.外设直接和存储器交换数据 2.IBM PC/XT的中央处理器是( ) A.Intel 8086 CPU B.Intel 8088 CPU C.Intel 80286 CPU D.Intel 80386 CPU 3.Centronics并行接口协议,规定了打印机标准插头座是( ) A.36脚簧片式 B.24脚簧片式 C.9脚簧片式 D.25脚簧片式 4.Ins8250接口芯片支持( )通信。 A.异步串行 B.同步串行 C.同步与异步串行 D.并行 5.8254共有( )个引脚。 A.12 B.24 C.36 D.48 6.Intel 8086/8088中存储器控制信号是( ) A.IOR和IOW B.MEMR和MEMW C.INTA和INTR D.HLDA和HRQ 7.同步串行通信与异步串行通信比较,以下说法错误的是( ) A.异步通信按字符成帧,同步通信以数据块成帧

计算机接口与通信技术一

复习题1 一、填空题 1.计算机系统由()子系统和()子系统组成。 2.由于各种外设的工作原理、工作速度、信息格式、驱动方式差异很大,无法与CPU直接匹配,需要有一个()电路来充当它们和CPU间的桥梁。这部分电路被称为()。I/O接口是位于()和()之间。 3.I/O端口的编制方法有()和()两种方法。4.输入/输出的传输方式有()、( )和I/O处理机(器)传输方式。 5.可屏蔽中断是指()。6.中断向量是指()。 7.一般来说,计算机总线分为()、外部总线和()三部分。 8.RS-232接口是一种()外部总线接口。 9.8255A可编程并行接口芯片有()个8位并行输入/输出端口。 10.在串行异步通信中,在一个字符发送之前,先发送一个()位。 11.所谓波特率是指()。12.串行接口芯片8251A的T X D引脚的功能是()。13.UART中的三种错误标志有奇偶错、溢出错和()。 二、简答题 1.利用8255A为接口芯片(设8255A的端口地址为8000H~8003H),将A 组置为方式1且A口作为输入口,PC6和PC7作为输出口,B组置为方式1且B口作为输入口。编写初始化程序。 2.有哪几种输入/输出的传送方式,并分别叙述每种方式的特点。 3.简述串行通信的协议及异步串行通信的帧格式。 4.简述UART中的三种错误标志及意义。

5.简述UART发送器与接收器的工作原理。 6.说明异步通信的字符格式。画出在1200波特率下,发送字符数据01010101的波形图,注出时间关系。假定采用奇校验,使用一位停止位。 7.简述I/O接口、I/O端口、I/O接口技术的概念。 8.假定在串行通信时设定的数据传输率为1200bit/s,8位数据位,无校验,一个停止位,则传送完4KB的文件,需要多长时间? 三、.设计题 1.若在PC/XT系统总线上扩充设计一个输出端口,分配给该输出端口的地址为288H,输出锁存器选用74LS273,试画出该输出端口与系 统总线的接口电路图。 2.利用8255A为接口芯片(设8255A的端口地址为280H~283H),将PA口设置为方式0输入,PB口设置为方式1输入,PC口设置为方式0输出,试写出初始化程序。 3.试编写使8251A可以发送数据的一段程序。将8251A设定为异步传送方式,波特率系数为64,采用偶校验,1位停止位,8位数据位。8251A与外设有握手信号,采用查询方式发送数据。假设8251A的数据端口地址为 04AOH,控制口地址为04A2H。(12分)

单片机常用的14个C语言算法,看过的都成了大神!

单片机常用的14个C语言算法,看过的都成了大神! 算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。一、计数、求和、求阶乘等简单算法此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。本题使用数组来处理,用数组a[100]存放产生的确100个随机整数,数组x[10]来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x[1]中,个位是2的个数存放在x[2]中,……个位是0的个数存放在x[10]。 void main(){int a[101],x[11],i,p;for(i=0;in; (2) m除以n得余数r; (3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4); (4) m←n,n←r,再重复执行(2)。例如: 求m="14" ,n=6 的最大公约数. m n r 14 6 2 6 2 0 void main() { int nm,r,n,m,t; printf("please input two numbers:\n"); scanf("%d,%d", nm=n*m; if (m{ t="n"; n="m"; m="t"; } r=m%n; while (r!=0) { m="n"; n="r"; r="m"%n; } printf("最大公约数:%d\n",n); printf("最小公倍数:%d\n",nm/n); } 三、判断素数只能被1或本身整除的数称为素数基本思想:把m作为被除数,将2—INT()作为除数,如果都除不尽,m就是素数,否则就不是。(可用以下程序段实现) void main() { int m,i,k; printf("please input a number:\n"); scanf("%d", k=sqrt(m); for(i=2;iif(m%i==0) break; if(i>=k) printf("该数是素数"); else printf("该数不是素数"); } 将其写成一函数,若为素数返回1,不是则返回0 int prime( m%) {int i,k; k=sqrt(m); for(i=2;iif(m%i==0) return 0; return 1; } 四、验证哥德巴赫猜想(任意一个大于等于6的偶数都可以分解为两个素数之和)基本思想:n为大于等于6的任一偶数,可分解为n1和n2两个数,分别检查n1和n2是否为素数,如都是,则为一组解。如n1不是素数,就不必再检查n2是否素数。先从n1=3开始,检验n1和n2(n2=N-n1)

相关主题