微机与接口技术综合设计课程讲义

微机与接口技术综合设计课程讲义
微机与接口技术综合设计课程讲义

第一章微型机系统的串行通信技术

4.1 串行通信概论

在微型机系统中,CPU与外部设备传送数据(或信息)的方法有两种:(1)并行通讯:数据的各位同时传送;(2)串行通讯:数据一位一位按顺序传送。图4.1表示这两种传送方式的示意图。

(a)并行通讯(b)串行通讯

图4.1 并行通讯与串行通讯

从图4.1中可以看出,在并行通讯中,数据有多少位就需要多少根数据总线,而串行通讯只需要一对传送线。因此,串行通讯在距离和位数比较多时,有着明显的优越性。但它的主要缺点是传送数据的速度比较慢。在这一节里,主要介绍有关串行通讯的基本概念。4.1.1 数据传送方式

在串行通讯中,数据传送有三种方式:单工方式、半双工方式和全双工方式。

1.单工方式(Simplex Mode)

在这种方式中,只允许数据按一个固定的方向传送,如图4.2(a)所示。图中A只能发送,称为发送器(Transfer),B只能接受,叫做接收器(Receiver)。而不能从B传向A。

2.半双工方式(Half-Dupiex Mode)

半双工方式的示意图如图4.2(b)所示。在这种方式下,数据既可以从A传向B,也可以从B传向A。因此,A方、B方既可作为发送器,又可作为接收器,通常称为收发器(Transceiver)。从这个意义上讲,这种方式似乎为全向工作方式,但是,由于A、B之间只有一根传输线,所以信号只能分时传送。即在同一时刻,只能进行一种传送,不能同时双向传输。因此,将其称为“半双工”方式。在这种工作方式下,要么A发送,B接收;要么B 发送,A接收。当不工作时,令A、B均处于接收方式,以便随时响应对方的呼叫。

图中的收发开关并不是实际的物理开关,而是由软件控制的电子开关,通讯线二端通过半双工通讯协议进行功能切换。

3.全双工方式(Full-Duplex-Mode)

虽然半双工方式比单工方式灵活,但它的效率依然比较低,主要原因是从发送方式切换到接收方式需要一定的时间,大约为数毫秒。重复线路切换所引起的延迟积累,是相当可观的。另一方面,也是更重要的,就是在同一时刻只能工作在一种方式下,这是半双工效率不高的根本原因所在。解决的方法是增加一条线,使A、B两端均可同时工作在收发方式,如图4.2(c)所示。将图(c)与图(b)相比,虽然对每个站来讲,都有发送器和接收器,但由于图(c)中有两条传送线,用不着收发切换,因而传送速率可成倍增长。

图4.2 数据传送方式示意图

值得说明的是,全双工与半双工方式比较,虽然信号传送速度大增,但它的线路也要增加一条,因此系统成本将增加。因此在实际应用中,特别是在异步通讯中,大多数都采用半双工方式。这样,虽然发送效率较低,但线路简单、实用,而且一般系统也基本够用。4.1.2 波特率和接收/发送时钟

1. 波特率

在数据传送方式确定后,到底以多大的速率发送/接收数据,这也是串行通信的重要问题之一。它不但取决于计算机本身的速率,更重要的是取决于串行通信接口芯片的速率。

如前所述,串行通信是一位一位传送的。衡量传送数据快慢的单位叫波特率。所谓波特率是指每秒钟传送的二进制数据的位数。单位是波特/秒(bit/s)。

1波特=1位/秒(1bps)

在实际应用中,波特率是可以选择的。常用的波特率用19200、9600、4800、2400、1200、600、300、150、100、50,一般来讲波特率越大,传送数据的速率越快。在某些应用中,波特率有时可达10Mbps或100Mbps。有时也用“位周期”来表示传送速度,位周期是波特率的倒数。

2. 收/发时钟

在串行通信中,无论发送或接收,都必须有时钟脉冲信号对数据进行定位和同步控制。通常它在发送端是由发送时钟的下降沿,使输入移位寄存器的数据串行一位输出。而接收端则是在接收时钟的上升沿作用下将传输线上的数据逐位移入移位寄存器。收/发时钟与二进制数据的关系如图4.3所示。

图4.3 收/发时钟与收/发数据的关系

从图4.3可以看出,收/发时钟不仅直接决定了数据线上传送数据的速度,而且直接关系到收/发双方之间的数据传输的同步问题。为此,一般采用倍频采样方法,即提高采样频率:

收/发时钟频率=n×波特率

一般n取1、16、32、64等等。对于异步通信,常采用n=16;对于同步通信,则必须取n=1。

4.1.3 异步和同步通信

根据在串行通信中数据定时、同步的不同,串行通信的基本方式有两种,异步通信(Asynchronous Communication)和同步通信(synchronous Communication)。

1. 异步通信

异步通信方式是字符的同步传输技术。在异步通信中,传输的数据以字符(Character)为单位。当发送一个字符代码时,字符前面要加一个“起始”信号,其长度为一位,极性为“0”,即空号(Space)状态。规定在线路不传送数据时全部为“1”,即传号(Mark)状态。字符后边要加一个“停止”信号,其长度为1、1.5或2位,极性为“1”。字符本身的长度为5~8位数据,视传输的数据格式而定。例如,当传送的数字(或字符)用ASCII码表示时,其长度为7位。在某些传输中,为了减少误码率,经常在数据之后还加一位“检验位”。由此可见,一个字符由起始位(0)开始,到停止位(1)结束,其长度为7~12位。起始位和停止位用来区分字符。传送时,字符可以连续发送,也可以断续发射,不发送字符时线路保持“1”状态。字符发送的顺序为先低位后高位。

综上所述,异步串行通信的格式如图4.4所示。

图4.4 异步串行通信格式

异步串行通信的优点是收/发双方不需要严格的位同步。也就是说,在这种通信方式下,每个字符作为独立的信息单元,可以随机地出现在数据流中,而每个字符出现在数据流中的相对时间是随机的。然而一个字符一旦发射开始,就必须连着出去。由此可见,在异步串行通信中,所谓“异步”是指字符与字符之间的异步,而在字符内部,仍然是同步发出。因此,这种通信的效率比较低。

尽管如此,由于异步通信电路比较简单,其链路协议也不难实现,所以,异步通信在串行通信中得到了广泛地应用。在后边讲的各种串行标准总线以及PC机中均采用这种通信方式。现在采用的异步通信的速率通常在9600bit/s以上。

2. 同步通信

同步通信的特点是不仅字符内部保持“同步”,而且字符与字符之间也是同步的。在这种通信方式下,收/发双方必须建立准确的定时信号。也就是收/发时钟的频率必须严格地一致。同步通信在数据格式上也与异步通信不同,每个字符不增加任何附加位,而是连续发送。但是在传送中,数据要分成组(帧),一组含多少个独立的码元。为使收/发双方建立和保持同步,在每组的开始和结束需加上规定的码元序列,作为标志序列。在发送数据之前,必须先发送此标志序列,接收端通过检测该标志性序列实现同步。

标志序列的格式因传输规程不同而异。例如,在基本型传输规程中,利用国际No.5代码中的“SYN”控制系统,可实现收/发双方的同步。又如在高级数据联络规程(HDLC)中,是按帧格式传送,利用帧标志符“01111110”来实现收发双方的同步。

同步通信方式适合于高速的数据传输。由于不需要起始和停止符,因此传送效率比较高,但实现起来比较复杂。

4.1.4 信号调制和解调

在串行通信中,通常都是指数字通信。即传输的数据都是“0”、“1”序列组成的数字信号。这种数字信号包括从低频到高频极其丰富的谐波信号,因此要求传输线的频率很高。但在远距离通信时,为了降低成本,通常大都采用普通电话线(双绞线)进行传输,而这种电话线的频率有限,通常不超过3000Hz。若要通过电话线传输数字信号,必须采取一定的措施,其方法就是调制解调技术。具体地说,就是在发送端把数字信号转换成适合于电话线传输地模拟信号,此过程称为调制,能够完成调制任务的设备叫调制器(Modulator);在接收端再把调制的模拟信号还原成数字信号,称为解调,完成解调的设备叫解调器(Demodulator)。调制和解调是一个事物不同的两个方面,而在一个终端设备上往往既要调制,又要解调(以便完成收/发任务),因此,二者缺一不可。通常是把上述两种功能做在一个设备中,称为调制解调器(Modulator-Demodulator,缩写为MODEM)。

图4.5表示出了两台计算机利用MODEM进行通信的原理电路。

图4.5 计算机远程通信示意图

在图4.5中,MODEM为调制解调器,具有发送和接收两种功能,当计算机(1)想发送数据,首先通过异步通信适配器,把并行数据变成串行数据。然后由串行接口(例如RS -232-C)将数据送到MODEM,由MODEM把此串行数据调制成模拟量(称为调制),然后送到公共电话线传到远方终端。远方的MODEM将模拟量再还原(解调)成串行数据,并经串行接口送入计算机,反之亦然。调制的方法很多,按照调制技术的不同,不外乎有调频(FM)、调幅(AM)和调相(PM)三种。它们分别按传输数字信号的变化规律去改变载

波(即音频模拟信号Asin(2лf t+ф)的频率f、幅值A和相位ф,使之随数字信号的变化而变化。

按调制技术的分类,调制解调器的方法可分为:(1)频移键控法(FSK);(2)相移键控法;(3)相移幅度调制(PAM)。目前计算机通信中应用最多的是频移键控法(FSK)。它的基本思想是把数字信号的“1”和“0”调制成不同频率的f1和f2。

4.1.5 差错控制技术

在串行通信中,由于系统本身硬件、软件故障,或者外界电磁干扰等原因,数据传输过程中产生错误是难免的,所以采取一定的措施尽量使误码减少,是串行通信中重要内容之一。其方法应从三方面着手,第一,改善传输信号的电气特性,使误码率达到要求;第二,改善传输线路,使其干扰减到最小;第三,采取检错纠错技术,即所谓差错控制。

所谓差错控制技术,包括两方面内容,一是对信息数据进行可靠有效的编码,另一方面是一旦发现信息传输错误,如何补救。

1. 差错控制方法

(1)自动请求重发

自动请求重发ARQ(Automatic Request Repeat)方式的工作原理是,发送端对发送序列进行纠错编码,可以检测出错误的检验序列,接收端根据检验序列的编码规则判决是否出错,并把判决结果通过反馈信号传回给发送端。若无错,接收端确认接收,同时发送端缓冲器清除该序列;若有误,接收端拒收,同时通知发送端重新发送该序列,直到接收端收到正确的信息为止,如图4.6所示。

在微机通信中,自动请求重发纠错系统一般采用两种方式工作。一种是采用半双工方式的系统,该系统中发送端只有在接收到反馈应答的判决信号后,才能决定是否继续发下一组数据。因此,这种系统也称为发送等待系统,一般应用于面向字符的传送控制规程中。另一种采用全双工通信方式的系统,该系统中把需要应答的判决信号插到双方发送的信息帧中。这种系统称为连续发送系统,在面向位的传输规程中应用较多。

自动请求重发纠错的方式的缺点是时实性较差。

(2)前向纠错(FEC)方式

前向纠错FEC(Forward Error Correction)方式中,发送端对数据进行纠错和纠错编码,接收端收到这些编码后,进行译码。译码不但能发现错误,而且能自动地纠正错误,因而不需要反馈信道。这种方式的缺点是译码设备复杂,而且纠错的冗余码元多,效率低。前向纠错方式如图4.7所示。

图4.6 自动请求重发方式原理图图4.7 前向纠错方式原理图

(3) 混合纠错HEC (Hybird Error Correction )

混合纠错(HEC )方式是上述前向纠错和自动请求重发两种纠错方式的结合。在这种纠错方式中,发送端编码具有一定的纠错能力,接收端对收到的数据进行检测。若发现有错且未超过纠错能力,则能自动纠错;若超过纠错能力则发出反馈信息,命令发送端重发。这种方式在一定程度上弥补了自动请求重发纠错和前向纠错两种方式的缺点。混合纠错方式的原理,如图4.8所示。

图4.8 混合纠错方式原理图

2. 纠错编码

纠错编码是差错控制技术的核心。纠错编码的方法,是在有效信息的基础上附加一定的冗余信息位,利用各二进位的组合来监督数据码的传送情况。一般来讲,附加的冗余位越多,监督作用和检错、纠错能力就越强,但通信效率也就越低,而且冗余位本身出错的概率也增大。

纠错编码的方法很多,如奇偶检验码、方阵检验码、循环冗余码、恒比检验码等等。下边介绍两种最常用的纠错编码方法。

(1) 奇偶检验(Parity Check )

奇偶检验码是一种最简单的也是应用最多的一种纠错编码方法。奇偶检验码的方法是在信息码组之后加一位监督码元,即奇偶检验位。该方法有两种,一种叫奇校验码,另一种称为偶校验码。奇校验码的编码方法是使整个码组中“1”的个数为奇数。具体来讲,就是若信息码组中“1”的个数为奇数,则监督位为“0”,否则为“1”。偶校验的编码方法是使整个码组中“1”的个数为偶数。若信息码组中“1”的个数为偶数,则监督位为“0”,否则为“1”。例如传送的数据信息为4(ASCII 码为34H ),则奇校验编码的校验位应为“0”,而偶校验编码的校验位为“1”。由此我们可看出,利用RS -232-C 传送该数据的波形如图

4.9所示。

图4.9 数据“4”的奇偶校验码

(2)循环冗余校验CRC(Cyclic Redundancy Check)

循环冗余校验(CRC)与奇偶校验不同,后者是一个字符校验一次,而前者是一个数据块校验一次。在同步串行通信中,几乎都使用这种校验方法。例如对磁盘信息的读/写等。

CRC校验的基本思想是利用线性编码理论,在发送端根据要传送的二进制码序列,以一定的规则产生一个校验用的监督码(也叫CRC码),附加在信息后边,构成一个新的二进制码序列发送出去。在接收端,则根据信息码和监督码之间所遵循的规则进行检测,确定传送是否出错。有关CRC的详细叙述,可参阅相关文献。

CRC码在发送端的产生和接收端的校验,同样既可以采用软件实现,也可以用硬件实现。现在已有一些专用的芯片供选用,如Motorola公司的8501和仙童公司的9401等。许多串行接口芯片如Z80-SIO、Intel8273和MC6854等,本身就带有CRC校验电路使用起来就更方便。也有一些串行USART电路如Intel8251等内部并没有这部分电路。当使用这些芯片进行同步通信需要进行CRC校验时,只能靠外加芯片CRC电路实现。

4.2 RS-232-C串行通信标准总线

在进行串行通信接口设计时,主要考虑的问题是接口方法、传输介质及电平转换等。和并行传送一样,现在已经颁布了很多种标准总线,如RS-232-C、RS-422、RS-485和20mA电流环等。与之相配套的,还研制出适合于各种标准接口总线使用的芯片,因此给串行接口设计带来极大的方便。

串行接口设计主要是选择某一种串行标准总线,其次是选择接口控制及电平转换芯片。选择串行标准总线和接口芯片的原则是:

1.可靠性

可靠性是串行通信中最基本、也是最重要的原则之一。串行通信最基本的要求是传送数据和指令不允许有误。因此,在串行通信的各个环节都必须保证有高可靠性的传输。其中包括满足各种使用环境(或条件)要求的接口标准的选择,因为不同的接口总线必须在特定的条件下工作才能可靠地工作。

2.通信速度及通信距离

不同的标准接口总线,其电气特性不同。所谓电气特性实际上就是满足可靠性传输时的最大通讯速度和最远传输距离。通常,这两个指标具有相关性,适当地降低通信速度,可以提高传送距离,反之亦然。

3.通道的抗干扰能力

在一般情况下,如果不超过使用范围,标准接口都具有一定的抗干扰能力,以保证信息传输的可靠性。但在一些工业控制系统中,由于周围环境往往十分恶劣,因此在介质选择,接口标准选择时,需要充分考虑抗干扰能力,以及抗干扰措施的设计。例如,在长距离使用电流环技术,不仅使电流环路大大降低对噪声的敏感程度,而且也便于在通信的两端点处提供电气隔离。近年研制出的低电压(+3.4V~+5V)以及电源关断技术,给串行通信带来极大的方便。

在高噪声环境中采用光纤介质进行数据传输以及光电隔离技术的采用,将大大提高系统的抗干扰能力。

4.2.1 RS-232-C串行接口标准

RS-232-C是使用最早、应用最多的一种异步串行通信总线,它是美国电子工业协会(Electronic Industries Association)1962年公布的,1969年最后一次修订而成。其中RS是Recommended Stander的缩写,232是该标准的标志,C表示最后一次修订。

RS-232-C主要用来定义计算机系统的一些数据终端设备(DTE)和数据通信设备(DCE)之间接口的电气特性。如CRT、打印机与CPU的通信大都采用RS-232-C总线。由于诸多嵌入式处理机本身具有异步串行通信接口,因此,应用中使用RS-232-C串行总线极为方便。

1. RS-232-C传递信息的格式标准

RS-232-C采用按位串行方式。该标准对所传递的信息规定如下:信息的开始为起始位,信息结尾为停止位,它可以是一位,一位半或两位。信息本身可以是5、6、7、8位再加一位奇偶校验位。如果两个信息间无信息,则应写“1”,表示空。其格式标准与图4-4所示完全一样。

RS-232-C传送的波特率(bit/s)规定为56000、28000、115200、19200、9600、4800、2400、1200、600、300、150等等。RS-232-C总线的传送距离一般都不超过15m。

2. RS-232-C电气特性

由于RS-232-C是在TTL电路出现之前研制的,所以它的电平不是+5V和地,它使用负逻辑,其低电平“0”在+5V~+15V之间,高电平“1”在-5V~-15V之间,最高能承受+25V地信号电平,否则会将TTL电路烧毁!这一点使用时一定要特别注意。有专门的集成电路,以便进行电平转换,如MC1488和MC1489就是专门用在计算机(或终端)与RS-232-C标准进行电平能购转换的接口芯片,其中,

MC1488 输入TTL电平,输出与RS-232-C兼容。

MC1489 输入与RS-232-C兼容,输出为TTL电平。

除了上边介绍的MC1488和1489以外,许多公司还研制出一些适合于RS-232-C标准接口总线的芯片。这些芯片主要是提高集成度,把驱动接收功能集中在一个芯片上,或者是在一个芯片上,包含几个线路驱动器(Tx)和接收器(Rx),有些还带有uP监控系统。为了适用部分笔记本、手提电脑的应用,还专门研制了低电源(3.3~5V)的RS-232-C 接口芯片,传输速度也从几十kbps~1Mbps。有些还含有+15V的静电放电保护(ESD)功能和人体模型及IEC-1000-4-2空气隙放电保护。为了在不传送时节约电源,还专门研制出自动关断功能(Auto Shutdown)的芯片。

3. RS-232-C机械特性及引脚的功能

RS-232-C标准总线为25条线,对其机械特性并未做严格规定。现习惯上采用9针D 型插头和插座,去除了原25脚中的辅信通和20mA电流环功能。25芯各引脚的排列顺序,如图4.10所示。

图4.10 25针RS-232-C引脚排列图

这些信号分为两类:一类是DTE与DCE交换的信息:TxD和RxD;另一类是为了正确无误地传输上述信息而设计的联络信号。下边介绍这两类信号。

(1)传送信息信号

A.发送数据TxD(Transmitting Data)

由发送端(DTE)向接收端(DCE)发送的信息,按串行数据格式,及先低位后高位的顺序发送。正信号是一个空号(Space)(二进制0),负信号是一个传号(Mark)(二进制1)。当没有数据发送时,DTE应将此条线置为传号状态,包括字符或文字之间的间隔也是这样。

B.接收数据RxD(Receive Data)

用来接收DTE发送端(或调制解调器)输出的数据,当收不到载波信号时(管脚8为负),这条线会迫使信号进入传号状态。

(2)联络信号

这类信号共有6个:

A.请求传送信号RTS(Request To Send)

这是DTE向DCE发出的联络信号,当RTS=1时,表示DTE请求向DCE发送数据。

B.清除发送CTS(Clear To Send)

这是DCE向DTE发出的联络信号。当CTS=1时,表示本地DCE响应DTE向DCE 发出的RTS信号,且本地DCE准备向远程DCE发送数据。

C.数据准备就绪DSR(Data Set Ready)

这是DCE向DTE发出的联络信号。DSR将指出本地DCE的工作状态。当DSR=1时,表示DCE没有测试通话状态,这时DCE可以与远程DCE建立通道。

D.数据终端就绪信号DTR(Data Terminal Ready)

这是DTE向DCE发送的联络信号,DTR=1时,表示DTE处于就绪状态,本地DCE 和远程DCE之间建立通信通道,而DTR=0时,将迫使DCE终止通信工作。

E.数据载波检测信号DCD(Data Carrier Detect)

这是DCE向DTE发出的状态信息,当DCD=1时,表示本地DCE接到远程DCE发来的载波信号。

F.振铃指示信号RI(Ring Indication)

这是DCE向DTE发出的状态信息。RI=1时,表示本地DCE收到远程DCE振铃信号。

4.2.2 RS-232-C的应用

在一般串行通信接口中,即使是主信道,也不是所有的线都一定要用,最常用的也就是其中的几条最基本的信号线。根据具体的应用场合不同,有下面几种连接方式:

1. 使用MODEM连接

计算机通过MODEM或其它数据通信设备(DCE)使用一条电话线进行通信时,一般只需要其中的8条线,如图4.11所示。

图4.11 使用MODEM时RS-232-C引脚的连接在图4.11中,计算机终端(DTE)向远程终端(DTE)发送数据的过程如下:首先DTE 向本地DCE(MODEM)发出DTR=1和RTS=1的信号,表示DTE请求发送数据,同为本地和远程DCE之间建立通道开了绿灯,一旦通道建立好了,DCE发回信号DSR=1。当DCE做好发送数据准备后,又向DTE发回信号CTS=1。只有当DTE收到本地DCE发回肯定的DSR和CTS信号后,DTE才能由TxD线向DCE发送数据。因此,RTS、DTR、DSR 和CTS四个信号同时为1是TxD发送数据的条件。

当接收数据时,DTE先向本地DCE发出DTR=1信号,表示本地和远程DCE之间可以建立通道。一旦通道建立好了,DCE向DTE发出DSR=1信号。这时,数据就可以通过RxD线传到DTE。因此,RxD信号产生的条件是DTR和DSR两个信号同时为1。这只是RxD信号的产生条件,至于RxD线上是否有信号,取决于远程DCE是否发送数据。

2. 直接连接

当计算机和终端之间不使用MODEM或其他通信设备(DCE)而直接通过RS-232-C 接口连接时,一般只需要5根线(不包括抗保护地线以及本地4、5之间的连线),但其中多数采用反馈与交叉结合的连接法,如图4.12所示。

图4.12 使用RS-232-C的直接连接法

在图4.12中,2→3交叉线为最基本的连线,以保证DTE和DCE间能正常地进行全双工通信。20→6也是交叉线,用于两端的通信联络,使两端能相互检测出对方“数据已就绪”的状态。4→5为反馈线,使传送请求总是被允许的。由于是全双工通信,这根反馈线意味着任何时候都可以双向传送数据,用不着再去发“请求发送”(RTS)信号。这种没有MODEM 的串行通信方式,一般只用于近程通信(不超过15m)。

3. 三线连接法

这是一种最简单的RS-232-C连线方式,只需2→3交叉连接线以及信号地线,而将各自的RTS和DTR分别接到自己的CTS和DSR端,如图4.13所示。

图4.13 最简单的RS-232-C连接方式

在图4.13(a)中,只要一方使自己的RTS和DTR为1,那么它的CTS、DSR也就是1,从而进入了发送和接收的就绪状态,这种接法常用于一方是主动设备,而另一方为被动设备的通信中。如计算机与打印机或绘图仪之间的通信。这样,被动的一方RTS与DTR常置1,因而CTS、DSR也常置1。因此,使其长处于接收就绪状态,只要主动一方令线路就绪(DTR =1),并发出发送请求(RST=1),即可立即向被动的一方传送信息。

图4.13(b)为更简单的连接方法,如果说图(a)所示的连接方法在软件设计上还需要检测“清除发送”(CTS)和“数据设备就绪”(DSR)的话,那么图(b)所示的连接方法则完全不需要检测上述信号,随时都可发送和接收。这种连接方法无论在软件和硬件上,都是最简单的一种方法。

值得说明的是,以上讲的只是RS-232-C作为接口标准总线的连接方法,当然不限于这几种方式。至于计算机内部与串行接口之间并←→串转换,还需视各种不同微型机而采用不同的接口适配器(Interface Adapter)。如Intel 8088/8086~80586等各种CPU,其内均没有串行接口,因此它们在进行串行通信时,都需配备适当的接口适配器,如Intel 8250及Intel 8251。但对于大多数嵌入式处理机来讲,本身带有串行接口,因此可直接与RS-232-C串行接口总线相连。但由于RS-232-C电平与微型机内部电平(TTL或CMOS)不同,所以使用上边讲的各种电平转换电路是必不可少的。关于Intel 8250等接口适配器的原理与应用,在下一节中有详细介绍。

除了上述硬件接口总线标准,电平转换接口芯片等硬件外,要想实现异步串行通信,还必须有相应的软件与之配合。

4.3 PC微机异步通信适配器的分析和使用

IBM-PC及其兼容机早期是使用INS8250,最近则是用PC16450和PC16550。这些芯片在功能上都与INS8250相同,但提供了更高传输的效率和速度。PC16550还使用了FIFO数据缓冲方式,从而大大增加了吞吐量。这3个芯片都是标准的UART(通用异步收/发器),我们把它们放在一起讨论。

4.3.1 UART的寄存器及其编程方法

INS8250和PC16450分别有10个寄存器,PC16550则有11个寄存器。但PC微机系统分配了7个I/O端口地址进行访问,因此,其中必有两个端口地址为两个寄存器共用。为此。UART内部结构已制定:A. 发送保持寄存器(THR)和接收寄存器(RDR)共用一个端口地址,而且是UART芯片的最低地址号,以“写”访问THR,以“读”访问RDR,以示区别。B. 波特率除数锁存器(BRD)的除数值是16位,分高低两字节存放,它的低字节BRDL 寄存器所使用得端口地址与前面的THR寄存器和RDR寄存器的端口地址相重。为了识别,专门在通信线路控制器(LCR)中设置了一个除数寄存器允许位DLAB(D7位),当要访问波特率除数寄存器时,必须使DLAB置1(D7=1)。若访问THR和RDR寄存器时,必须使DLAB置0(D7=0)。

具体的端口地址分配如表4.1所示。

表4.1 UART寄存器地址

DLAB A2A1A0被访问的寄存器适配器地址(COM1)

3F8H

0 0 0 0 接收数据寄存器(RDR)(读)

发送保持寄存器(THR)(写)

0 0 0 1 中断允许寄存器(IER)3F9H

1 0 0 0 波特率除数锁存器(BRDL)(低字节)3F8H

1 0 0 1 波特率除数锁存器(BRDH)(高字节)3F9H

3FAH

×0 1 0 中断识别寄存器(IIR)(只读)

FIFO控制器(FCR)(只写)

×011 线路控制寄存器(LCR)3FBH

×100 MODEM控制寄存器(MCR)3FCH

×101 线路状态寄存器(ISR)3FDH

×110 MODEM状态寄存器(MSR)3FEH

1. 发送保持寄存器和接收寄存器

发送时。CPU将待发送的字符写到UART的发送保持寄存器THR,然后再送发送移位寄存器,在发送时钟的作用下,从SOUT引脚输出。一旦THR的内容送到发送移位寄存器(TSR)后,THR变空,并使通信线路状态寄存器LSR的D5位置“1”,以此产生中断请求,要求CPU发送下一个字符。当CPU向THR写入一个字符后,D5位又置“0”。如此重复,直到全部数据发送完毕。总之,利用LSR的D5位指示THR是否变空,只有当D5=1,即THR变空时,才能向THR写数据。

接收时,串行数据在接收时钟作用下,从SIN引脚先输入到接收移位寄存器(RSR),然后由RSR并行送到接收数据寄存器RDR,一旦RDR变满,就使LSR的D0位置“1”,产生中断请求,要求CPU读取数据字符。CPU从RDR读取一个字符后,D0置“0”。如此重复,直到全部数据接收完毕。总之,利用LSR的D0位指示RDR是否变满,只有当D0=1,即RDR变满时,才能从RDR读数据。

2.波特率除数

波特率除数(BRD)是16位数,它与UART的数据传输速率(波特率)有关。当使用UART的内部时钟频率为1.8432MHz时,则波特率除数BRD与波特率Band之间的关系如下式所示:

BRD=时钟频率/(16×Band)(4.1)

式(4.1)中的16是一个常数。

利用式(4.1)很容易求得不同传输速率下的波特率除数。例如,若要计算波特率为1200b/s 的波特率除数,则有:

BDR=1843200/(16×1200)=0060H

于是,波特率除数高低字节应分别置为BRDH=00H,BRDL=60H.。

表4.2 列出了除数与波特率的对应关系,供用户选择使用。在初始化时将除数分低高两个字节分别写入BRDL和BRDH。

表4.2 波特率与除数对照表 除数锁存器的值 除数锁存器的值 BRDH BRDL BRDH BRDL 波特率

(b/s )

50

75

110

150

300

600

1200

09H 06H 04H 03H 01H 00H 00H 00H 00H 17H 00H 80H C0H 60H 波特率 (b/s ) 1800 2000 2400 3600 4800 7200 9600 00H 00H 00H 00H 00H 00H 00H 40H 3AH 30H 20H 18H 10H 0CH

例1:若选取波特率为2400b/s ,则从表4.2可以查到相应的除数值为00H (高8位)和30H (低8位),按先低字节后高字节顺序装入除数寄存器。其装入程序段为:

MOV DX, 3FBH ;置LCR 口地址

MOV AL, 80H ;置D7=1,表示允许访问BRD

OUT DX, AL

MOV DX, 3F8H ;BRDL 的口地址

MOV AL, 30H ;低字节除数

OUT DX, AL

MOV DX, 3F9H ;BRDH 的口地址

MOV AL, 00H ;高字节除数

OUT DX, AL

MOV DX, 3FBH

MOV AL, 00H ;置D7=0,表示禁止访问BRD

OUT DX, AL

3. 中断识别寄存器和中断允许寄存器

UART 具有很强的中断管理能力,内部设有4个中断优先级(PC16550内部有5个优先级)。它们的优先级顺序是:接收数据出错中断,接收数据寄存器满中断,(接收FIFO 字符查超时中断),发送保持寄存器空中断,以及来自MODEM 的控制信号状态改变的中断。为了具体识别究竟是哪种事件引起的中断(即中断源),UART 内部设置了中断识别寄存器IIR 。它保存着正在请求中断的中断类型编码。IIR 是只读寄存器,它的内容随中断源而改变。具体格式如下: D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 ID2 ID1 IP 中断类型编码 有无未处理中断 其中,高五位对INS8250和PC16450,全部写0。而对PC16550,则D7D6为FIFO 缓冲允许标志位,D5D4写0,D3为识别接收FIFO 字符超时用。低3位的含义如下。

D0位:中断指示IP。IP=0,表示有尚待处理的中断;IP=1,表示已无中断请求。

D1D2位:中断类型标识ID1,ID2。下表表示申请中断的中断源的中断类型编码及其中断优先级。

D3ID2ID1 中断源中断优

先级

0 1 1 接收数据出错(包括OE=1,PE=1,FE=1),或中止(BI=1) 1

0 1 0 接收数据寄存器满(RDRF=1) 2

1 1 0 接收FIFO字符超时 3

0 0 1 发送保持寄存器空(THRE=1) 4

0 0 0 调制解调器状态改变(包括△RTS=1,△DSR=1,TERI=1,△RLSD=1)5

中断源提出的中断请求被允许还是被禁止,由中断允许寄存器IER控制,只要相应位写“1”就允许中断请求,写“0”就禁止中断请求。其格式如下:

D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 EMSI ELSI ETBEI ERBFI

未用,写0 允许调制

解调器状

态改变中

断允许线路

状态中断

允许发送

缓冲器空

中断

允许接收

缓冲器满

中断

在编写中断处程序时应注意,若同一时间内允许有一个以上中断请求,则在处理完高一级的中断之后,中断返回之前一定要检查中断识别寄存器IIR的D0位IP是否为0,即是否尚有未被处理的中断源,否则,会造成某些中断未被处理。通信适配器的中断允许控制除了INS8250的IER之外,还使用INS8250的OUT2引脚控制INTRPT是否送往CPU,因此,OUT2作为异步适配器中断允许控制信号。

4.FIFO控制寄存器

PC16550UART添加了一个FIFO缓冲器,用于缓冲正在发出后接收的数据,则是早期的UART器件中所没有。FIFO控制寄存器(FCR)寄存器各位的意义如下:

位意义位意义

0 1 2 3 允许和清除FIFO缓冲器

重新设置接收的FIFO缓冲器

重新设置发送的FIFO缓冲器

DMA方式选择

4~5

6

7

保留

接收端中断触发器水平(LSB)

接收端中断触发器水平(MSB)

FCR的第6位及第7位用来指示应该用怎样的触发器水平来产生中断,这种水平即是

指示在中断产生之前,接收缓冲器应该装满多少字节。PC16550内部可能的几种中断触发器水平如下:

FCR的D7D6=00,触发器水平=1个字节;

FCR的D7D6=01,触发器水平=4个字节;

FCR的D7D6=10,触发器水平=8个字节;

FCR的D7D6=11,触发器水平=14个字节。

5.通信线路控制寄存器与通信线路状态寄存器

(1)通信线路控制寄存器(LCR)

主要用来指定异步通信数据格式,同时它的最高位DLAB用来指定允许访问除数锁存器。它的内容不仅可以写入而且还可以读,LCR的各位含义如下:

D7 D6 D5 D4 D3 D2 D1 D0 DLAB SB SP EPS PEN STB WLS1 WLS0

除数锁存器访问允许中止设定附加奇偶

标志位选

偶校验选

奇偶校验

允许

停止位选

字长选择

D0 D1位:字长选择,指定发送和接收字符的位数。

WLS1 WLS0=00时。为5位;WLS1 WLS0=01时,为6位;

WLS1 WLS0=10时。为7位;WLS1 WLS0=11时,为8位。

D2位:停止位选择,指定发送和接收的停止位位数。

STB=0时,为1位;STB=1时,为1.5位(字符长为5位),

或STB=1时,为2位(字符长为6,7,8位)。

D3位:奇偶校验允许,指定是否要奇偶校验。

PEN=0,不要校验;PEN=1,要校验。

D4位:偶校验选择,指定是否要偶校验。

EPS =0,要奇校验;EPS =1,要偶校验;

D5位:附加奇偶标志位选择。

SP=0,不附加;SP=1,附加一位奇偶标志位。若采用偶校验,则这个标志为逻辑“0”。若采用奇校验,则这个标志为逻辑“1”。选用这一附加位的作用是发送设备把采用何种奇偶校验方式也通过数据流告诉接收设备。显然,在收发双方已约定奇偶校验方式的情况下,就不需要这一附加位并使SP=0。

D6位:中止设定。制定发正常信号还是连续发空号(中止信号)。

SB=0,正常;SB=1,中止。若SB位置1,则发送端连续发送空号(逻辑“0”),当发空号的时间超过一个完整的数据字节传送时间,接收端就视发送设备已中止发送。此时。接收设备产生中断请求,由CPU进行中止处理。

D7位:除数锁存器访问允许。

DLAB=1,访问除数锁存器;DLAB=0,访问THR、RDR、IER寄存器。

例2:举例说明LCR的编程方法。设置发送数据字长为8位,2位停止位,偶校验,其程序段为:

MOV DX,3FBH ;LCR口地址

MOV AL,00011111B ;LCR的内容,数据格式参数

OUT DX,AL

(2)通信线路状态寄存器(LSR)

用来向CPU提供数据接收和发送过程中产生的状态。这些状态可以被CPU用查询方式获得,也可以让它们以中断请求的方式主动向CPU报告。LSR可读可写(除位6外),写LSR是为了人为地设置某些错误状态,供系统自检时使用。LSR的各位含义如下:

D7 D6 D5 D4 D3 D2 D1 D0 O TSRE THRE BI FE PE OE DR

发送移位寄存器空发送保持

器空

中止识别

指示

接收格式

接收奇偶

接收重叠

接收数据

准备好

D0位:接收数据准备好(接收数据寄存器满)。

DR=1时,指示接收器已接收到一个数据字符,即接收数据准备好。此时。CPU才能从UART读数据;当CPU从接收数据寄存器读取1个数据后DR置0。当DR=0时,不能读取。D1~D3位:这3位都是错误状态指示位。

OE=1,指示接收数据寄存器的输入字符未取走,UART又接收到新输入的数据,造成数据丢失;

PE=1,指示被接收的数据有奇偶错;

FE=1,指示接收的位流中停止位有错,称为数据格式错。

D4位,中止识别指示。

BI=1,指示发送设备进入中止状态;发送端发送正常时,BI=0。

D1~D4这4位均是错误状态指示位。只要其中有一位置1,在中断允许的情况下。就出现接收数据错误而产生中断。当CPU读取它们的状态后,自动清零,复位。

D5位:发送保持器空。

THRE=1,指示数据保持寄存器THR已经变空,此时,CPU才能向UART写数据;当数据写入发送保持器时,THRE置0。当THRE=0时,不能写数据。

D6位:发送移位寄存器空(只读)。

TSRE=1,指示数据从发送移位寄存器送到发送数据线上;当发送保持寄存器的内容被送入发送移位一位寄存器时,TSRE置0。

接收数据准备好DR和发送保持寄存器空THRE这两位是串行接口最基本的标志位,它们决定了CPU能不能向INS8250进行读/写操作,只有当DR=1时CPU才能读数;只有当THRE=1时,才能写数。

例3:利用线路状态寄存器的内容进行收发操作的程序段。

START: MOV DX,3FDH

IN AL,DX

TEST AL, 00011110B

JNZ ERR

TEST AL,01H

JNZ RECEIVE

TEST AL, 20H

JNZ TRANS

JMP START

ERR: …

TRANS: …

RECEIVE: …

6. 调制解调控制寄存器及调制解调状态寄存器

这两个寄存器用于发送和接收时UART与通信设备之间的联络与控制。MODEM控制寄存器MCR用来设置对MODEM的联络信号和芯片自检。

MCR各位的定义如下:

D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 LOOP OUT2 OUT1 RTS DTR

环路检测输出2 输出1 请求发送数据终端

准备好这些信号告诉调制解调器,计算机将要发送字符、接收字符或者两者都要做。例如D0位DTR告诉MODEM,计算机已打开并准备接收来自MODEM的信息。D1位RTS告诉MODEM,计算机准备向MODEM发送信息。D4位LOOP是提供INS8250本身自检诊断而设置的。当这位置“1”时,INS8250处于诊断方式。在这种方式下,INS8250芯片内部实现自问自答,进行联络,并且SIN引脚与芯片内部逻辑脱钩,发送器的移位输出端SOUT 自动和接收器的移位输入端SIN接通,形成“环路”进行自发自收的操作。在正常通信时,LOOP位置“0”。

例4:要使MCR的DTR、RTS有效,OUT1、OUT2以及LOOP无效,则可用下列程序段:MOV DX,3FCH ;MCR口地址

MOV AL,00000011B ;MCR的控制字

OUT DX,AL ;

例5:要对自发自收进行诊断,则程序段为:

MOV DX,3FCH ;MCR口地址

MOV AL,00010011B ;LOOP位置“1”

OUT DX,AL

MODEM状态寄存器用来检测和记录来自MODEM的联络控制信号及其状态的改变。

MSR寄存器的各位定义如下:

D7 D6 D5 D4 D3 D2 D1 D0 RLSD RI DSR CTS △RLSD △RI △DSR △CTS

收到接收线载波检出信号收到振铃

指示信号

收到数传

机就绪信

收到允许

发送信号

RLSD位

发生变化

收到振铃

指示信号

的后沿

DSR位

发生变化

CTS位发

生变化

MSR的低四位表示来自MODEM联络控制信号状态的改变,在CPU读MSR时,把这些位清0,如果其中△CTS,△DSR,△RLSD,△RI这4位当中,某一位置1,说明在上次CPU读取MODEM状态寄存器(MSR)之后,状态寄存器的相应位CTS、DSR、RLSD、RI发生了改变,也就是来自MODEM的联络控制信号的逻辑状态发生了变化,信号由无效

变为有效,或相反。△RI=1时,表示MODEM来的RI信号由逻辑“1”状态变为逻辑“0”状态(由接通到断开)。MSR的D0~D3中的任意一位置“1”,在中断允许时(IER中D3=1),均产生MODEM状态改变中断。MSR的高四位,分别表示来自MODEM的控制信号,供CPU进行处理。

4.3.2 UART的外部特性

下面以INS8250为例来讨论UART的外部引脚及内部逻辑,如图4.14所示。

INS8250的引脚信号线基本上可分成两大类,与CPU系统总线相连的信号和与通信设备连接的信号。除8根并行数据线D0~D7外,其他引脚信号有:

1. 地址控制信号

当片选信号CS0=1,CS1=1,CS2=0时,INS8250接受CPU的访问,并由A0~A2决定所访问的内部寄存器,地址选通信号ADS为低电平时,锁存CS0/CS1/CS2以及A0~A2的输入状态,保证读/写操作期间的地址稳定,直到ADS为高电平时,才允许这些地址选择信号改变。若确认在对芯片进行读/写时,不会出现地址不稳定现象,则不必锁存,而将ADS 输入接地,指示INS8250被选中。引脚CSOUT(当CS0=1、CS1=1、CS2=0,CSOUT=1)为片选输出信号,通常并不需要而为悬空。

2. 读/写控制信号

INS8250的读/写控制信号有两对,每对信号作用完全相同,只不过是有效电平不同而已。

图4.14 INS8250外部引脚和内部逻辑框图

在INS8250被选中时,只要数据输入选通信号DISTR(高电平有效)和DISTR(低电

平有效)中有一个信号有效,CPU就从被选中的内部寄存器中读出数据;而只要数据输出选通信号DOSTR(高电平有效)或DOSTR(低电平有效)有效时,CPU就将数据写入被选择的寄存器。在PC微机异步适配器中,采用低电平有效,IOR和DISTR(低)相连,IOW 和DOSTR(低)相连,而DISTR(高)、DOSTR(高)接地封锁。INS8250的(数据总线)驱动器禁止信号DDIS引脚,在CPU从INS8250读取数据时为低电平,其他时间为高电平,禁止外部收发器对系统总线的驱动,PC微机异步适配器未使用此信号。

3. 中断控制和复位控制信号

INS8250具有中断控制和中断优先权判决能力,它的中断请求引脚INTRPT在满足一定条件下(如接收数据准备好,发送保持寄存器空,以及允许中断时)变成高电平,产生中断请求。输出1(OUT1)和输出2(OUT2)是由用户通过编程使其有效的两个输出引脚,在PC微机异步适配器中使用,使用OUT2来控制中断请求信号INTRPT的输出。在系统复位时,RESET信号送到INS8250的主复位引脚MR,使INS8250复位。

4. 时钟与传送速率控制信号

外部晶体震荡电路产生的1.8432.MHz信号送到INS8250的XTAL1端,作为INS8250的基准工作时钟。XTAL2引脚是基准时钟信号的输出端,可用作其他功能的定时控制。外部输入的基准时钟,经INS8250内部波特率时钟发生器(分频器),分频后产生发送时钟,并经BAUDOUT引脚输出。INS8250的接收时钟引脚RCLK可接收由外部提供的接收时钟信号。

若采用INS8250芯片内部的发送时钟作为接收时钟,则只要将RCLK引脚和BAUDOUT 引脚直接外连即可。

5. 和通信设备之间的信号

有8个信号,其中6个控制信号RTS,CTS,DTR,DSR,RLSD,RI,2个串行数据信号SOUT,SIN。它们的功能与定义和RS-232C标准相同,不再讨论。

4.3.3 PC中UART接口的组成

异步通信适配器由UART芯片INS8250,EIA-TTL电平转换器INS75150,INS75154及I/O地址译码电路3个主要部分组成,下面仅对适配器电路中的电平转换及地址译码作简单的说明。适配器如图4.15所示:

1. 电平转换

从图4.15可以看出,从INS8250到连接器,和从连接器到INS8250的信号线分别通过了电平转换器INS75150 和INS75154才送到对方的,从而实现电平及逻辑关系的转换。

微机原理课程设计报告交通灯

WORD格式微机原理课程设计 设计题目交通灯的设计 实验课程名称微机原理 姓名王培培 学号080309069 专业09自动化班级2 指导教师张朝龙 开课学期2011至2012学年上学期

一、实验设计方案 实验名称:交通灯的设计实验时间:2011/12/23 小组合作:是□否?小组成员:无 1、实验目的: 分析实际的十字路口交通灯的亮灭过程,用实验箱上的8255实现交通灯的控制。(红,黄,绿三色灯) 2、实验设备及材料: 微机原理和接口技术实验室的实验箱和电脑设备等。 3、理论依据: 此设计是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示(在后),红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255 的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4(南东北西)路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的 三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK,2 OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30s定时到。OUT2产生 1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本 输入输出方式,红绿灯的转换由软件编程实现。

4、实验方法步骤及注意事项: ○1设计思路 红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1 控制。 设8253各口地址分别为:设8253基地址即通道0地址为04A0H,通道1为04A2H,通道2 为04A4H,命令控制口为04A6H。 黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波,8255控制或门打开的时 间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。 由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方 式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方 式,理论设计输出周期为0.01s的方波。1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1s,因此 通道0的计数初值为10000=2710H。由此方波分别作为clock1和clock2的输入时钟脉冲,所以 通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H 既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8086,8086检测 到高电平既完成30s定时。通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086 共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态 反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态 变化,计9次状态变化可完成5次闪烁。 三个通道的门控信号都未用,均接+5V即可。 ○ 2硬件原理及电路图 由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的A1、A 0 线分别与 8086CPU的A2、A线相连,而将8086的 1 A 0 线作为选通信号。如果是按8255A内部地址来看, 则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),

微机原理课程设计报告

微型计算机技术课程设计 指导教师: 班级: 姓名: 学号: 班内序号: 课设日期: _________________________

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (3) 五、设计思路..................... 错误!未定义书签。 六、设计步骤(含流程图和代码) ..... 错误!未定义书签。 七、课程设计小结 (36)

一、课程设计题目:点阵显示系统电路及程序设计 利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。 二、设计目的 1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。 2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。 三、设计内容 1.点阵显示系统启动后的初始状态 在计算机显示器上出现菜单: dot matrix display system 1.←left shift display 2.↑up shift display 3.s stop 4.Esc Exit 2.点阵显示系统运行状态 按计算机光标←键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标↑键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标s键,点阵停止移动并显示当前字符。 3.结束程序运行状态 按计算机Esc键,结束点阵显示系统运行状态并显示“停”。 四.设计所需器材与工具 1.一块实验面包板(内含时钟信号1MHz或2MHz)。 2.可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。

微机原理与接口技术 课程设计

摘要 霓虹灯主要是通过8255A对LED亮灭状态的控制,和8254定时/计数器的定时功能实现霓虹灯闪烁控制系统,外设是红、绿、黄三种颜色的发光二极管,在程序自动控制下,按照不同规律闪烁同时由数码管显示相应的闪烁方式。 关键字: 8255A 8254 LED 数码管

一、设计的任务和要求 设计霓虹灯闪烁控制系统,是外设的红、绿、黄三种颜色的发光二极管,在开关的控制下或者在程序自动控制下,按照不同规律闪烁。 要求发光二极管的亮、灭变化有一定的规律;发光二极管变化规律要求有多种状态。 二、设计小组成员及分工 本次课设由冀任共同完成,在课设中遇到的问题四个人共同思考解决。 三、总体设计 1、8254用于定时:定时/计数器0与定时器/计数器1共同构成100ms的定时器,确定执行相邻闪烁方式的间隔时间。 2.8255A用于控制LED的状态和数码管显示:PA0接8254的输出,B口接数码管,显示对应的闪烁方式,C口输出控制LED的状态。 3、六种闪烁方式: 方式1:从左向右依次点亮8个LED灯,数码管显示1 方式2:从右向左依次点亮8个LED灯,数码管显示2 方式3:从左向右依次点亮4个的红灯、2个黄灯和2个绿灯,数码管显示3 方式4:从左向右两个两个的点亮8个LED灯,数码管显示4 方式5:从两边向中间依次点亮8个LED灯,数码管显示5 方式6:按红、绿、黄顺序点亮相同颜色的灯,数码管显示6 1、芯片介绍 (1)芯片8255A 8255A是具有3个8位并行I/O口3种工作方式的可编程并行接口芯片。8255共有40个引脚,采用双列直插式封装。

D0--D7:三态双向数据线,与单片机数据总线连接,用来传送数据信息。 CS:片选信号线,低电平有效,表示芯片被选中。 RD:读出信号线,低电平有效,控制数据的读出。 WR:写入信号线,低电平有效,控制数据的写入。 Vcc:+5V电源。 PA0--PA7:A口输入/输出线。 PB0--PB7:B口输入/输出线。 PC0--PC7:C口输入/输出线。 RESET:复位信号线。 A1、A0:地址线,用来选择8255内部端口。 GND:地线。 三种工作状态: 1) 工作方式 0 :这是 8255A 中各端口的基本输入 / 输出方式。它只完成简单的并行输入 / 输出操作, CPU 可从指定端口输入信息,也可向指定端口输出信息,如果三个端口均处于工作方式 0 ,则可由工作方式控制字定义 16 种工作方式的组合。

武科大微机原理课程设计

一、设计题目 键控数据采集及数值显示电路设计 二、设计任务 按不同的数字键(0、1、2、3、4、5、6、7)采集0809相应数据通道的模拟量,并在LED 数码管上显示值。设定输入模拟量在0—5V范围内,显示值在0—255范围内。 三、设计要求 1.画出连接线路图或功能模块引脚连接图。 2.采用8088CPU作主控制器,0809作A/D转换器,采用直接地址译码方法,给各芯片分配地址,选取芯片中必须包含有8255。 3.采用3个共阴极型LED动态显示,只需显示0—255范围内的值。 四、设计思想及需要用的主要芯片 1、设计思想 首先通过编程对8255初始化,然后通过8255对ADC0809转换器初始化,通过0~7号按键(在这里0~7号按键用开关实现,有按键的过程中会有抖动,所以需要加入一个74LS244芯片,用于缓冲),经8088微处理器处理后选择ADC0809的模拟通道,将0~5V内的模拟量通过选择的模拟通道传递给模数转换器,通过转换器把模拟量转换为0~255之间的数字量,将数字量通过可编程并行接口8255(在这里端口A作为数据输入端,端口B作为数据输出端,端口C作为控制端),送给LED数码管显示。 2.主要芯片及其功能 ADC0809与系统的接口包括两个输出口和一个输入口,第一个输出口用于控制芯片内部的模拟通道选择,CPU输出的通道地址从ADC0809的引脚ADDA、ADDB、ADDC输入,并利用ALE信号触发锁存;第二个输出口是哑元,用以触发ADC0809的引脚START启动转换。当转换结束后,ADC0809的引脚EOC会产生一个高电平的状态信号,该信号用于检测,也可用于申请中断。随后,CPU可以从ADC0809的引脚D0-D7输入转换后的数据。其芯片引脚图如下 8255是并行通信接口芯片,其基本功能是以并行的方式在系统总线与I/O设备之间传送

《微机原理与接口技术》课程设计基本要求

《微机原理与接口技术》课程设计基本要求

《微机原理与接口技术》课程设计基本要求 一、课程设计目的 通过本课程设计,初步掌握《微机原理及接口技术》这门课程课堂所学的理论知识具体运用到实践中去的基本方法。使学生掌握INTEL8086/8088微型计算机系统的组成原理,熟练运用8086宏汇编语言进行程序设计,熟悉各种I/O接口的配套使用技术,掌握用INTEL8086/8088CPU进行一些基本的微型计算机系统的软硬件设计方法。通过对具体应用的课程设计使学生对所学知识有进一步的加深和了解,培养和提高学生的动手能力和实际应用能力。 二、课程设计要求 1.根据设计内容设计出硬件电路图并作详细的设计说明,并绘制出电路图。 2.画出程序流程框图,用汇编语言编写相应的控制程序。 3.进行系统的调试,完成加电仿真调试。 4.写出详细的设计报告。 三、基本要求 1.学生分成小组(3-4人一组),在教师指导下完成系统分析、构成、软硬件调试及系统调试的工作。指导教师应对每位学生给出课程设计任务书。对同一

小组内的不同学生,可针对具体情况提出不同的设计指标或设计要求。 2.各小组内学生应独立完成课题的硬件设计和软件编程工作。 3. 设计结束后,提交已调通的应用程序和一份完整的课程设计报告。 四、参考题目 1.交通灯控制 2.电子时钟 3.按键比赛 4. 自拟题目 要求:难易度适中 五、文档内容及规格 5.1 报告内容 ⒈封面 封页上填写题目、专业、姓名、学号、指导教师、报告提交日期。(题目:要求简洁、确切、鲜明,字数不宜超过 20字。) ⒉摘要扼要叙述本设计的主要内容、特点,文字要精练。约 300 汉字。 ⒊目录目录应将文内的章节标题依次排列,标题应该简明扼要,各级标题有较显著区别。(列出目录,

微机原理与接口技术电子表设计

… 微机原理与接口技术 课程设计报告 、 设计名称:电子表设计 专业:计算机原理与接口技术 班级: 姓名: 学号: 指导教师: |

2014年 11 月 27 日

目录 摘要 (2) 一、设计目的及要求 (3) 设计任务 (3) 设计功能 (3) 课程设计方式及基本要求 (3) 实验方式 (3) * 基本要求 (3) 设计所用元件 (4) 二、设计题目及思想 (4) 设计原理 (4) 主要模块 (5) 芯片初始化 (7) 程序流程图 (9) 硬件接线图 (11) | 三、调试结果 (13) 四、课程设计总结 (16) 遇到问题及解决方案 (16) 课程设计心得体会 (16) 参考文献 附录 `

摘要 汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间的要求很高的场合,汇编语言的应用是必不可少的。至于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可了。随着科学技术迅速发展,理工科大学生不仅需要掌握计算机方面的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。 通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。鉴于汇编语言的广泛用途及其在当代计算机界的重要作用,本人利用学的知识,在同学门的帮助下,花费大量时间,完成了关于电子表的系统设计。这个系统是应用于电脑中的小应用程序,可是显示电脑中的时间。很多地方都会有个时钟显示,其中大多是应用了类似这样的方法。 关键词:汇编语言微机原理接口技术时钟显示

微机原理与接口技术-键盘LED显示【课程设计报告】

微机原理与接口技术-键盘LED 显示【课程设计报告】

重庆大学 课程设计报告 课程名称:微机原理与接口技术 设计题目:键盘LED显示 院系:电气信息学院 班级:2007级 设计时间:2009年12月

第一章概述 (2) 1.1学习目的 (2) 1.2 计算机的应用 (3) 1.3学习计算机的意义 (3) 1.4课程设计目的 (4) 第二章总体方案设计 (4) 2.1 设计注意问题 (4) 2.2 总体思路 (5) 第三章硬件设计 (5) 3.1 8255工作原理 (5) 3.2 键盘工作原理 (7) 3.3 键特征值的形成 (8) 3.4段值的形成 (9) 3.5 8255接线图 (11) 第四章软件设计 (12) 4.1 8255初始化 (12) 4.2 键盘扫描的处理方法 (12) 4.2.1. 判断是否有键被按下的方法 (12) 4.2.2. 判断是否有键被按下的源程序 (13) 4.2.3 防抖动 (13) 4.2.4.防抖动的延时子程序 (14)

4.3 程序核心部分 (14) 4.3.1 逐行扫描 (14) 4.3.2逐行扫描的源程序 (15) 第五章源程序代码 (15) 5.1 根据整体思路以及软件设计得到的代码. 15 5.2 以上代码存在问题分析 (19) 第六章难点分析 (20) 第七章体会感慨建议 (25) 第八章参考文献 (26) 第一章概述 1.1学习目的 “微机原理与接口技术”是电气工程及其自动化专业的一门重要

的专业基础课程。我们通过该门课的学习,知道了微机的工作原理,微型计算机的基本结构,接口技术及汇编语言程序设计,为后续的课程的学习和今后的工作打下坚实的基础。通过实验可以培养学生利用计算机技术和编程手段分析,解决专业领域的各种问题的能力和意识,并进一步感受微机发展的微机发展的新技术和新方法。 1.2 计算机的应用 目前计算机的应用已经遍布各个行业,如科学计算、数据处理、过程控制、人工智能、网络应用等。 科学和工程计算:科学和工程计算的特点是计算量大,而逻辑关系相对简单,它是计算机重要应用领域之一。 数据和信息处理:数据处理是指对数据的收集、存储、加工、分析和传送的全过程。这些数据处理应用的特点是数据量很大,但计算相对简单。多媒体技术的发展,为数据处理增加了新鲜内容,都涉及更广泛的数据类型,这些数据处理过程不仅数据量大,而且还会带来大量的运算和复杂的运算过程。 过程控制:过程控制是生产自动化的重要技术内容和手段,它是由计算机对所采集到的数据按一定方法经过计算,然后输出到指定执行机构去控制生产的过程。 人工智能:人们把计算机模拟人脑力劳动的过程成为人工智能。人工智能是利用计算机来模拟人的思维过程,并利用计算机程序来实现这些过程。 1.3学习计算机的意义 电子计算机是一种能自动高速地进行大量运算的电子机器。电子计算机的出现和发展,是科学技术和生产力的卓越成就之一,反过来,它也极大地促进了科学技术和生产力的发展。

《微机原理与接口技术》课程设计-交通灯

信息工程系 计算机科学与技术 12计本1班 1214110214 黄 福 朱 茜 2015年06月29日 院 系: 专 业: 年级班级: 学 号: 姓 名:指导教师: 设计日期:

目录 一.课程设计目的 (3) 二.课程设计任务 (3) 三.总体设计方案 (3) 五.程序设计流程图 (4) 六. 程序连接图 (5) 七.程序清单 (5) 八.实验结果 (8) 九.课程设计总结和体会 (8)

一.课程设计目的 用汇编语言和微机原理实验箱完成实现双方向交通信号灯控制系统,以达到熟练运用汇编语言编程以及实验箱上各个芯片的灵活运用。 ⒈了解交通灯管理的基本工作原理 ⒉熟悉8253定时计数器的工作方式和编程应用 ⒊熟悉8255A并行接口的工作方式和编程应用 二.课程设计任务 本次课程设计的内容为双方向交通信号灯的控制和管理。 具体要求如下: 1.东西方向车辆放行20秒钟。即东西方向的绿灯和南北方向的红灯同时点亮25秒钟和黄灯点亮3秒钟。 2.南北方向车辆放行20秒钟后,转为南北方向的黄灯点亮3秒钟,以警示将切换红绿灯。此时东西方向仍维持红灯点亮。 3.循环重复执行1和2两步骤。 三.总体设计方案 1、用实验系统8255A实现对信号灯的控制(B端口),A端口的PA6、PA7口用来和8253共同控制信号灯点亮的时间。 2、实验中,8255选用(10010000)方式选择字,A组工作0方式,A端口输入,PC4-PC7输出,B组0方式,B端口输出,PC3-PC0输出 3、实验中,8253采用两个计数器级联的方式达到定时的效果,8253计数器0的CLK0输入1MHZ的时钟脉冲,工作在模式3即方波发生器,理论设计OUT0 输出周期为0.01S的方波,则计数器0的初值为10000;OUT0输出的方波分别作为计数器1、计数器2的CLK1和CLK2的输入时钟脉冲,计数器1和计数器2工作方式为模式1,计数器1的初值为2500,即OUT1输出25秒,控制红绿灯的时间;计数器2初值为300,即OUT2输出3秒,控制黄灯的时间。

微机原理课程设计实验报告DOC

河北科技大学 课程设计报告 学生姓名:学号: 专业班级: 课程名称: 学年学期: 指导教师: 年月

课程设计成绩评定表 学生姓名学号成绩 专业班级起止时间2011.12.24—2012.11.28 设计题目字符串动画显示 指 导 教 师 评 语 指导教师: 年月日

目录 一、课程设计的目的 (1) 二、设计题目 (1) 三、设计内容要求 (2) 四、设计成员及分工 (2) 五、课程设计的主要步骤 (2) 六、课程设计原理及方案 (3) 七、实现方法 (3) 八、实施结果 (8) 九、总结 (8) 十、体会感受 (8)

一、课程设计的目的 课程设计是以自己动手动脑,亲手设计与调试的。它将基本技能训练、基本工艺知识和创新启蒙有机结合,培养我们的实践和创新能力。课程设计的意义,不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力。作为信息时代的大学生,基本的动手能力是一切工作和创造的基础和必要条件。 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。 《微机原理及应用》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。 通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书等表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。 通过设计过程,要求学生熟悉和掌握微机系统的软件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的系统方案论证设计、编程、软件调试、查阅资料、编写说明书等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练的熟练掌握微机系统的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的软件调试方法和步骤,熟悉微机系统的软件开发工具的使用方法。 二、设计题目

微机原理与接口技术_课程设计实验报告

课程设计实验报告 课程:现代微机原理与接口技术题目:键盘扫描实验

班级:数字媒体 1004 学号: 0305100417 学生:海洋 指导老师:天天 日期: 2012.6.18 一、实验目的 (1)掌握键盘扫描的应用及编程 (2)掌握LED的应用 二、实验设备 PC计算机一台,TD-PIT + 实验系统一套。 三、实验原理 (1)8255芯片:8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。可与外设并行进行数据交换。A口和B口具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换。把8255并口和键盘,组成一个键盘装置。通过cpu对8255的控制最总达到键扫的目的。每一个键对应一个ASCII 码字符,通过8255的输入和输出,最终显示在屏幕上。 (2)LED数码显示原理:数码管的 7 个段及小数点都是由 LED 块组成的,显示方式分为静态显示和动态显示两种。数码管在静态显示方式时,其共阳管的位选信号均为低电平,四个数码管的共用段选线 a、b、c、d、e、f、g、dp 分别与单片机的 8 根 I/O 口线相连,显示数字时只要给相应的段选线送低电平。数码管在动态显示方式时,在某一时刻只能有一个数码管被点亮显示数字,其余的处于非选通状态,位选码端口的信号改变时,段选码端口的信号也要做相应的改变,每位显示字符停留显示的时间一般为1-5ms,利用人眼睛的视觉惯性,在数码管上就能看到相当稳定的数字显示。 (3)键盘扫描原理:第一步,使行线为编程的输入线,列线是输出线,拉低所有的列线,判断行线的变化,如果有按键按下,按键按下的对应行线被拉低,否则所有的行

微机原理步进电机控制课程设计报告

河北科技大学 课程设计报告学生姓名:学号: 专业班级: 课程名称: 学年学期: 2 0 —2 0 学年第学期指导教师: 2 0 年月 课程设计成绩评定表

目录 一、设计题目………………………………………………………………. 二、设计目的………………………………………………………………. 三、设计原理及方案………………………………………………………. 四、实现方法………………………………………………………………. 五、实施结果………………………………………………………………. 六、改进意见及建议……………………………………………………….

七、设计体会………………………………………………………………. 、 一、设计题目 编程实现步进电机的控制 二、设计目的 1.了解步进电机控制的基本原理 2.掌握控制步进电机转动的编程方法 3.了解8086控制外部设备的常用电路 4.掌握8255的使用方法 三、设计原理及方案 设计原理 步进电机驱动原理是通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。 驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。 利用 8255对四相步进电机进行控制。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A…),双(双相绕组通电)四拍(AB-BC-CD-DA-AB…),八拍(A-AB-B-BC-C-CD-D-DA-A…)等。 通过编程对8255的输出进行控制,使输出按照相序表给驱动电路供电,则步进电机的输入也和相序表一致,这样步进电机就可以正向转动或反向转动。 硬件连接图 四.实现方法 .步进电机控制程序流图

微机接口技术课程设计目的及要求

微机接口技术课程设计目的及要求 一、课程设计题 目的:结合一个实际的接口技术问题在实验台上 编程模拟实现。 题目要求:1.由一个主控机(上位机)和若干个下 位机组成,上位机与下位机利用串行 通讯接口进行连接,构成一个完整系 统。主控机负责数据处理,下位机负 责接口访问。 2.必须有通过FPGA设计的接口电路, 并应用于该系统。 选题:每组可选择一个题目,鼓励自立题目。各 组的题目不可相同。 题目举例: 远程数据采集系统/远程步进电机控制系统 点歌播放系统/路口交通灯控制系统 车流采集系统/食堂购饭系统 商场存包系统/电梯控制系统 远程电表抄表系统/远程XXXXXX系统 。。。。。。。 二、设计要求:

结合实际应用,设计一微机应用系统,要求该系统 综合应用并行接口、串行接口、其它接口(定时器接 口、中断接口、模拟接口可选)、编制对应的程序, 实现主控中心微机与下位机远距离传送以及远程控 制或监测功能。 主控机:在显示屏上用数字、图形、表格、曲线等 直观数据处理的过程。 下位机:在显示屏上或用实验台的声光器件描述当 前监控的工作状态。 三、设计内容 根据以上任务,系统总体结构如下图: 1.系统硬件由主控机(其中一台微机)、下位机(另一台位 微机)和 执行部件组成。主控机与下位机通过串行通信线连接。

2. 执行部件:由接口电路等组成,将接收的数据送 入到下位机或将下位机输出的数据送到执行部 件。 3. 下位机:与主控机通信,控制执行部件。 4.主控机:与所有下位机进行数据交换,必要时需建数据库,进行数据处理等。 5.主控机程序:串行(RS232)通信程序,数据处理程序等。6.下位机程序:串行(RS232)通信程序,执行部件控制程序。 四、使用的接口和接口地址 1.输入接口 ADC0809接口、拨码开关 可接到8255接口芯片中,使用8255接口地址。 2. 输出接口 LED接口、步进电机接口 可接到8255接口芯片中,使用8255接口地址。 扬声器接口 可接到8254接口芯片中,使用8254接口地址。 3.微机串行接口 微机8250/COM1端口地址:3F8H~3FFH 4. 8253/8254端口地址

(完整版)微机原理与接口技术 毕业课程设计

上海工程技术大学Shanghai University of Engineering Science 《微机原理与接口技术》 课程设计 姓名:郭扬 学院:电子电气工程学院 专业:自动化

授课教师:戎自强 班级: 0 2 1 2 1 0 2 学号: 0 2 1 2 1 0 2 2 2 学年:2012—2013学期:第一学期 20 12 年12月15日 目录 一、课程设计的目的 (3) 二、设计题目1的分析 (3) 三、设计题目2的分析 (9) 四、附加内容的分析 (17) 五、设计总结 (27) 六、参考文献 (28) 一、课程设计的目的: 1.通过《微机原理与接口》课程设计,使我们能够进一步了解微型计 算机工作原理, 微型计算机的硬件结构及微型计算机软件编程。 2.要求我们根据接口电路的硬件要求进行计算机的汇编语言程序设 计,使我们的软件编程能力得到加强,对接口电路的综合应用能力有较大

提高。 3. 课程设计有利于基础知识的理解和逻辑思维的锻炼。本课程设计是培养和锻炼我们综合应用所学理论知识解决实际问题能力、进行工程实训的重要教学环节,也能培养我们理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力。 4. 微机原理与接口技术是一门实践性较强的课程,我们在学完该课程之后,进行一次课程设计,是非常必要的。这能使我们将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。通过设计实践,培养我们查阅专业资料、工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。在设计中不但要培养和提高学生解决工程具体问题、动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。 二、设计题目1的分析: ⑴.设计目的: 1.熟练掌握8088汇编语言程序各种结构的设计及编程方法; 2.熟练掌握DOS中断功能调用的方法。 ⑵.设计要求: 编制一个完整的程序,计算100个正整数(字数据)之和,如果不超过机器数的范围(65535),则计算其平均值并存于RESULT中,否则显示“overflow”。

微机原理与接口技术课程设计

《微机原理与接口技术》 课程设计 报告书 课题:利用DAC设计波形发生器 学院:计算机科学与技术 班级:计 091 班 姓名:王骏(0913022030) 沈志轩(0913022033) 徐晓龙(0913022029) 指导教师:顾辉 提交日间:2012年6月17日

目录 一、引言 (3) 二、设计目的 (3) 三、设计内容及要求 (3) 四、选用器材 (4) 五、设计原理及方案 (4) 六、硬件设计 (5) 七、软件设计 (9) 八、调试方法与结果 (15) 九、收获、体会 (17) 十、参考文献 (18)

一.引言 波形发生器是一种常用的信号源,广泛的应用于电子电路、自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源。由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察。测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器。它可以产生多种波形信号,如锯齿波、三角波、梯形波等,因而广泛应用于通信、雷达、导航、宇航等领域。 本设计正是基于数模转换原理,采用8086最小系统经数模转换芯片DAC0832设计并制作出了多功能信号发生器。用该方法设计的多功能信号发生器具有频率稳定、幅值稳定、波形失真度低、原理简单等特点。 二、设计目的 (1)掌握方波,三角波,锯齿波,正弦波函数发生器的原理及设计方法。 (2)掌握8086的工作原理,电路连接以及其最小系统的设计。 (3)了解数模转换芯片的的工作方式和使用。 (4)学会用proteus 画电路原理图。 三、设计内容及要求 3.1、设计要求 利用DAC设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,要求自行设计输出波形的切换方式。 3.2、设计内容 ⑴以8086为CPU。利用D|A转换器,编程产生锯齿波,正弦波,三角波,方波信号。输出上述四种波形。 ⑵波形的控制由接在8255上的开关的实现:设计四个开关,KEY1,KEY2,KEY3,KEY4,分别控制输出正弦波、方波、三角波和锯齿波波形。 ⑶接在8255上的数码管显示4个数1、2、3、4分别代表三角波、正弦波、锯齿波、方波。 ⑷由接在8253上的扬声器产生四种声音do、ri、mi、fa分别代表三角波、正弦波、锯齿波、方波。

《微机原理与通信接口》课程设计说明书

《微机原理与通信接口》课程设计说明书

1.系统需求分析 1.1DOS中断及功能调用简介 目前DOS常用的9类中断(20H-27H和2FH)分为两种:DOS专用中断和DOS可调用中断。 (1)DOS专用中断。DOS专用中断是指INT 22H、INT 23H 和INT 24H三个中断,属DOS操作时专用,用户不要直接使用。 (2)DOS可调用中断。DOS可调用中断是指INT 20H、INT 21H、INT 25H、INT 26H、INT 27H和INT 2FH六个中断。这六个 中断都供用户直接调用,但都必须要满足一定的入口条件。 1)磁盘读/写中断。INT 25H和INT 26H分别用来读和写磁盘上的若干扇区,这实际上是两条BIOS调用。 2)程序退出中断。“INT 20H”和“INT 27H”都为程序的退出命令。其中“INT 20H”为正常退出命令,当用户程序执行完后, 可用该命令退回操作系统; “INT 27H”为驻留退出命令,采用该退出命令时,留下的程序被DOS视为自身的一部分,不会被其他程序覆盖。在其他用户程序中,可通过使用软中断调用这部分驻留程序。 3)假脱机打印文件中断。“INT 2FH”用来实现假脱机打印文件命令PRINT。该命令的功能是,当用户在机器上执行其他任务 时,打印机仍可打印处在打印队列中的数据文件。一个打印队列可 容纳多至32个文件。 4)系统功能调用。系统功能调用是指“INT 21H”中断。它是可供系统程序和应用程序调用的一个极其重要的中断,内含近百 个系统子功能。操作系统的内核主要由它构成。系统功能调用的近 百个系统子功能已经标准化,调用它们时完全不依赖于任何硬件设 备,因此,用这些子功能编写研制成的所有系统软件或应用程序可 在任何支持DOS的机器上运行。

微机原理与接口技术课程设计-----交通灯设计

中南大学 微机课程设计报告 题目交通灯设计 专业班级 姓名 学号 指导老师林立新老师

目录 1.课程设计题目、功能、目的 (2) 2.系统分析与设计 (3) 2.1系统所用芯片分析 (3) 2.2所选用芯片的简要介绍 (4) 2.3系统框图 (6) 3.程序设计 (7) 3.1十字路口交通灯状态转换表 (7) 3.2主程序流程图 (7) 3.3 中断子程序流程图 (8) 3.4 数码管码表 (8) 3.5 各芯片初始化说明 (9) 4.运行情况 (10) 5.具体源代码及注释 (11) 6.心得体会 (16)

一、课程设计题目、功能、目的 1.课程设计题目--------------交通灯设计 2.本设计所实现功能 1)实现十字路口交通灯各种状态的转换; 2)各种状态转换的时间可进行灵活设置; 3)采用中断的方法对状态转换进行控制,提高处理器效率; 4)在各个状态转换的同时实现倒计时提醒。 3.本次课程设计目的 1)通过《微机原理与接口》课程设计,使学生能够进一步了解 微型计算机工作原理, 微型计算机的硬件结构及微型计算机 软件编程。 2)要求学生根据接口电路的硬件要求进行计算机的汇编语言 程序设计,使学生的软件编程能力得到加强,对接口电路的 综合应用能力有较大提高。

二、系统分析与设计 1.系统所用芯片分析 1)首先本个系统需要一个中央处理器来负责对整个系统进行控 制管理,因为《微机原理与接口技术》这门课上介绍了8086 芯片,所以可以采用8086作为本系统的中央处理器。 2)由于本次的课程设计的题目是交通灯,而根据十字路口处的交 通灯南北和东西方向各有红、绿、黄三种颜色的灯,因此可 用8255来控制6个LED灯的实现模拟的南北和东西方向上的 交通灯。 3)而交通灯的状态转换时间要由中断方式来控制,所以很容易想 到了可以用8259作为中断芯片,与8086芯片相连。 4)交通灯的状态转换时间可灵活设置,于是想到了可以采用一块 8253或8254芯片和一个脉冲源相连,8253对脉冲源送来的 脉冲进行分频,然后将输出送到8259作为中断源,而8253 采用不用的计数初值其输出脉冲的频率就不一样,因此实现 了交通类状态转换时间的灵活设置。 5)最后关于交通灯状态转换的倒计时功能,可由一个七段数码管 来显示倒计时,而本次课程设计的实验箱没有提供单个数码 管,而是提供了一个八位一体七段数码管,所以还需一块 8279芯片来对数码管进行控制。

微机原理课程设计报告

— 微机原理 课程设计报告 ——电子表程序设计 ^ 。

(一)设计任务: 用汇编语言设计一电子表程序,要求: ! (1)实现秒、分、时的计时,并显示于屏幕中央 (2)能够校时 (3)能够半点、整点报时 (二)设计原理 该程序主要由三部分构成:时间设置、延时程序和时钟显示。 (1)时间设置 … ①输入初始时间 先调用DOS操作系统模块2,在显示屏上显示‘:’,再调用DOS操作系统模块10,提示输入初始时间。由键盘输入的时间以字符串形式存放在已定义的存储器缓冲区内,继而调用TRAN1转换子程序和MUL10乘10子程序,将存放在存储器缓冲区内的ASCII字符转换为压缩BCD码,并将时、分、秒的值放置在寄存器CH、DH、DL中。 ②暂停计时 按Pause Break键即可暂停计时,再按下任意键恢复计时 ③重新输入时间 在程序运行时,可按下Esc键重新输入初始时间,此时程序检测到Esc(ASCII码为1BH)被按下,返回①步提示重新输入时间。 以上两步可实现校时的功能。

④半点、整点报时 《 程序运行时,分钟值每次改变都需要与30、60比较,若相等,则调用DOS操作系统模块7使计算机响铃并在时间后显示‘ ------’。同时若分、秒值为60则需进位,时为24时进位,保证时钟程序的正确性。 (2)延时程序 计算机在执行指令时,各种操作都按指令执行,但在像程序控制器那样由计算机发出指令控制外部设备是,由于外部设备所具有的机械惯性或其他原因,需要在计算机发出指令后有规律地延迟或等待一段时间。这类延时,可以用硬件延时来完成,单用软件来实现也是一种方便和常用的方法。 计算机执行每一条指令,虽然很快,但还是需要一段时间的。因此从理论上讲,可在程序中加一些与程序无关的指令去完成,要计算指令执行的时间,又不能过多的为了延时而增加编制程序的工作量。因此,编制延时程序,应尽量采用较少的指令,节约存储器,并且不能对主程序造成影响。 每条指令执行时间的长短,是以计算机的时钟周期为基本单位的。当CPU采用的时钟频率一定时,时钟周期也为定值。因此可根据时钟周期的多少来计算执行指令所需的时间。完成本设计任务使用的计算机采用Intel Pentium 4处理器,主频为,时钟周期约为。 通过时间约1s的长延时累加,并以时、分、秒的形式显示出来,就可以编写出一个时钟程序。 (3)时钟显示 … ①设置光标位置子程序IOSET

微机原理与接口技术课程设计-交通灯控制系统

版权所有 微机原理课程设计 报告书 课题名 班级 学号 姓名 指导教师 日期

目录 1 设计目的 (2) 2 设计内容 (2) 3 设计要求 (2) 4 设计原理与硬件电路 (3) 5 程序流程图 (5) 6 程序代码 (5) 7 程序及硬件系统调试情况 (9) 8 设计总结与体会 (10) 9 参考文献 (10)

1 设计目的 电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。交通灯能保证行人过马路的安全,控制交通状况等优点受到人们的欢迎,在很多场合得到了广泛的应用。 交通灯是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。 要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义。 2 设计内容 交通灯控制系统 利用8253定时器、8255等接口,设计一电路,模拟十字路口交通灯控制。要求能实现自动控制和手动应急控制。 3 设计要求 在Proteus环境下,结合课程设计题目,设计硬件原理图,搭建硬件电路 软件设计 1、采用模块化程序结构设计软件,可将整个软件分成若干功能模块。

微机原理与接口课程设计报告模板(参考)

《微机原理与接口技术》 课程设计报告 班级: 学号: 姓名: 201X年X月

目录 实验一显示程序实验 (2) 实验二数据传送实验 (4) 实验三数码转换程序实验 (6) 实验四运算类程序实验 (15) 实验五分支程序设计实验 (18)

实验一显示程序实验 一、实验目的 1. 掌握在PC机上以十六进制形式显示数据的方法; 2. 掌握部分DOS 功能调用使用方法; 3. 熟悉Tddebug 调试环境和Turbo Debugger 的使用。 二、实验内容 一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS 功能调用完成一 些提示信息的显示。实验中可使用DOS 功能调用(INT 21H )。 (1) 显示单个字符输出 入口:AH=02H 调用参数:DL= 输出字符 (2) 显示字符串 入口:AH=09H 调用参数:DS:DX=串地址,’$’为结束字符 (3) 键盘输入并回显 入口:AH=01H 返回参数:AL= 输出字符 (4) 返回DOS 系统 入口:AH=4CH 调用参数:AL= 返回码 三、实验设备 PC微机一台 四、实验代码 DATA SEGMENT MES DB 'Show a as hex:', 0AH,0DH,'$' SD DB 'a' DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET MES ;显示提示信息 MOV AH, 09H

相关文档
最新文档