《微机原理与接口课程设计.doc》由会员分享,可在线阅读,更多相关《微机原理与接口课程设计.doc(15页珍藏版)》请在三一办公上搜索。
1、南京人口学院课程设计报告 课 程 微机系统原理与接口 论文题目 PC系统双机通信 学生姓名 学 号 07705334 指导教师 2011年 1月 1日 课程设计题目 PC系统双机通信课程设计目的及要求:(1) 用8251A可编程接口电路设计该电路,系统提供时钟384KHZ;(2) 异步通讯的波特率是4800,数据位是7位,偶检验,1位停止位。双方使用双工通信方式。(3) 设计电路并编写有关程序。设计分析: 该设计要求异步通信方式,系统提供的时钟384KHZ,使用波特率因子16或64都无法获得4800HZ的频率。那么,首先对信号进行分频处理,使提供给8251的时钟频率符合要求。 要求Td=480
2、0HZ,波特率因子=16,Tc=16*4800=76800HZ=76.8KHZ。 分频系数384000/76800=5。 使用8253分频电路,输入频率384 KHZ,计数值=5,输出频率是76.8KHZ。 该设计要求采用双工的通信方式,系统可以考虑采用中断实现实时的收发处理。设计一个中断电路,无论发送完成(TxRDY)还是接收到数据(RxRDY),它都能产生中断。课程设计详细内容:(1) 硬件设计 硬件电路如图所示。A机和B机组成了一对可以实现双工通信的计算机系统。(2) 软件设计A机:8251电路的工作方式字地址是60H,命令控制字地址是60H,状态字地址是60H,发送数据的数据输出端口地
3、址是61H。8253的工作方式寄存器地址是43H,通道0的地址是40H,计数值是5。8259的中断类型号是10000 010B,向量地址是10 0000 1000B,208H。208H20BH:中断服务程序的首地址。B机:8251电路的工作方式字地址是50H,命令控制字地址是50H,状态字地址是50H,发送数据的数据输出端口地址是51H。8259的中断类型号是11001 010B,向量地址是11 0010 1000B,328H。328H32BH:中断服务程序的首地址。其工作方式字为:01111010B=7AH。 D7 D6 D5 D4 D3 D2 D1 D0 异步方式*16 10一个停止位 0
4、1 校验位 1字符位数 7 10偶校验 1 异步工作方式字程序流程图(三)程序流程图Y开 始从8251A数据口取入一个字节将此字节显示在微机屏幕上清除8259A中ISR的标志接受的字节为“!”?中断结束IRET置IRQ2的中断屏蔽位为1,即禁止IRQ2中断开中断STI用INT 21H的4CH功能调用返回DOSN接收中断服务程序主程序开 始置8253定时器2为模式3,并赋予其初始值初始化8251为8个数据位,1个停止位,波特率因子为16,无奇偶校验,并处于允许接收和发射状态提示用户:“在主机键盘上输入字符”,将显示在终端屏幕上;键入“!”则结束发送过程主机从键盘上输入一个字符并存入BL从8251
5、命令端口取状态字节放入AL状态字节最低位TXRDY=1?通过8251数据口,主机把BL中字节送出该字节为“!”吗?显示提示信息:用户在键盘上输入字符,将显示在显示器上,用“!”结束程序将接受中断服务程序的入口地址,写入中断矢量表0AH中断位置开放IRQ2对应的中断屏蔽位开中断死循环等待硬件中断NNYY方案论证本次设计中主要使用了可编程串行接口芯片8251A,下面就8251A对设计方案进行论证。(一)8251A的基本性能8251A是可编程的串行通信接口芯片,基本性能:1两种工作方式:同步方式,异步方式。同步方式下,波特率为064K,异步方式下,波特率为019.2K。2同步方式下的格式每个字符可以
6、用5、6、7或8位来表示,并且内部能自动检测同步字符,从而实现同步。除此之外,8251A也允许同步方式下增加奇/偶校验位进行校验。3异步方式下的格式每个字符也可以用5、6、7或8位来表示,时钟频率为传输波特率的1、16或64倍,用1位作为奇/偶校验。1个启动位。并能根据编程为每个数据增加1个、15个或2个停止位。可以检查假启动位,自动检测和处理终止字符。4全双工的工作方式其内部提供具有双缓冲器的发送器和接收器。5提供出错检测具有奇偶、溢出和帧错误三种校验电路。(二)8251A的内部结构1、发送器发送器由发送缓冲器和发送控制电路两部分组成。采用异步方式,则由发送控制电路在其首尾加上起始位和停止位
7、,然后从起始位开始,经移位寄存器从数据输出线TXD逐位串行输出采用同步方式,则在发送数据之前,发送器将自动送出1个或2个同步字符,然后才逐位串行输出数据。如果CPU与8251A之间采用中断方式交换信息,那么TXRDY可作为向CPU发出的中断请求信号。当发送器中的8位数据串行发送完毕时,由发送控制电路向CPU发出TXE有效信号,表示发送器中移位寄存器已空。2接收器接收器由接收缓冲器和接收控制电路两部分组成。接收移位寄存器从RXD引腿上接收串行数据转换成并行数据后存入接收缓冲器。异步方式:在RXD线上检测低电平,将检测到的低电平作为起始位, 8251A开始进行采样,完成字符装配,并进行奇偶校验和去
8、掉停止位,变成了并行数据后,送到数据输入寄存器,同时发出RXRDY信号送CPU,表示已经收到一个可用的数据。同步方式:首先搜索同步字符。8251A监测RXD线,每当RXD线上出现一个数据位时,接收下来并送入移位寄存器移位,与同步字符寄存器的内容进行比较,如果两者不相等,则接收下一位数据,并且重复上述比较过程。当两个寄存器的内容比较相等时,8251A的SYNDET升为高电平,表示同步字符已经找到,同步已经实现。采用双同步方式,就要在测得输入移位寄存器的内容与第一个同步字符寄存器的内容相同后,再继续检测此后输入移位寄存器的内容是否与第二个同步字符寄存器的内容相同。如果相同,则认为同步已经实现。在外
9、同步情况下,同步输入端SYNDET加一个高电位来实现同步的。实现同步之后,接收器和发送器间就开始进行数据的同步传输。这时,接收器利用时钟信号对RXD线进行采样,并把收到的数据位送到移位寄存器中。在RXRDY引脚上发出一个信号,表示收到了一个字符。3数据总线缓冲器数据总线缓冲器是CPU与8251A之间的数据接口。包含3个8位的缓冲寄存器:两个寄存器分别用来存放CPU向8251A读取的数据或状态信息。一个寄存器用来存放CPU向8251A写入的数据或控制。4读/写控制电路读/写控制电路用来配合数据总线缓冲器的工作。功能如下:(1) 接收写信号,并将来自数据总线的数据和控制字写入8251A;(2) 接
10、收读信号,并将数据或状态字从8251A送往数据总线; (3) 接收控制/数据信号C/,高电平时为控制字或状态字;低电平时为数据。 (4) 接收时钟信号CLK完成8251A的内部定时; (5) 接收复位信号RESET,使8251A处于空闲状态。5调制解调控制电路调制解调控制电路用来简化8251A和调制解调器的连接。(三)8251A的引脚功能1、8251A和CPU之间的连接信号8251A和CPU之间的连接信号可以分为四类: a)片选信号 :片选信号,它由CPU的地址信号通过译码后得到。b)数据信号D0-D7:8位,三态,双向数据线,与系统的数据总线相连。传输CPU对8251A的编程命令字和8251
11、A送往CPU的状态信息及数据。c)读/写控制信号 :读信号,低电平时, CPU当前正在从8251A读取数据或者状态信息。 :写信号,低电乎时, CPU当前正在往8251A写入数据或者控制信息。 C/:控制/数据信号,用来区分当前读/写的是数据还是控制信息或状态信息。该信号也可看作是8251A数据口/控制口的选择信号。由此可知,、C/这3个信号的组合,决定了8251A的具体操作,它们的关系如表7-3所示:注:数据输入端口和数据输出端口合用同一个偶地址,而状态端口和控制端口合用同一个奇地址。c)收发联络信号 TXRDY:发送器准备好信号,用来通知CPU,8251A已准备好发送一个字符。 TXE:发
12、送器空信号,TXE为高电平时有效,用来表示此时8251A发送器中并行到串行转换器空,说明一个发送动作已完成。 RXRDY:接收器准备好信号,用来表示当前8251A已经从外部设备或调制解调器接收到一个字符,等待CPU来取走。因此,在中断方式时,RXRDY可用来作为中断请求信号;在查询方式时,RXRDY可用来作为查询信号。 SYNDET:同步检测信号,只用于同步方式。28251A与外部设备之间的连接信号8251A与外部设备之间的连接信号分为两类:a) 收发联络信号 :数据终端准备好信号,通知外部设备,CPU当前已经准备就绪。 :数据设备准备好信号,表示当前外设已经准备好。 :请求发送信号,表示CP
13、U已经准备好发送。 :允许发送信号,是对的响应,由外设送往8251A。实际使用时,这4个信号中通常只有必须为低电平,其它3个信号可以悬空。b) 数据信号 TXD:发送器数据输出信号。当CPU送往8251A的并行数据被转变为串行数据后,通过TXD送往外设。 RXD:接收器数据输入信号。用来接收外设送来的串行数据,数据进入8251A后被转变为并行方式。3. 时钟、电源和地8251A除了与CPU及外设的连接信号外,还有电源端、地端和3个时钟端。 CLK:时钟输入,用来产生8251A器件的内部时序。同步方式下,大于接收数据或发送数据的波特率的30倍,异步方式下,则要大于数据波特率的4.5倍。 TXD:
14、发送器时钟输入,用来控制发送字符的速度。同步方式下,TXC的频率等于字符传输的波特率,异步方式下,TXC的频率可以为字符传输波特率的1倍、16倍或者64倍。 RXD:接收器时钟输入,用来控制接收字符的速度,和TXC一样。在实际使用时,RXC和TXC往往连在一起,由同一个外部时钟来提供,CLK则由另一个频率较高的外部时钟来提供。 VCC:电源输入 GND:地(四)8251A的编程编程的内容包括两大方面:一是由CPU发出的控制字,即方式选择控制字和操作命令控制字;二是由8251A向CPU送出的状态字。1方式选择控制字(模式字)方式选择控制字的格式如图所示。2操作命令控制字(控制字)操作命令控制字的
15、格式如下:3、状态字状态字的格式如下:48251A的初始化 a)芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。b)如果模式字中规定了8251A工作在同步模式,c)由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。流程图如左图:六、调试过程 1.对设计原理图进行电气检查。主要针对电路连接中的电气连接进行检查,并生成对应电路的网表。特别是对电路节点的连接检查。 2.对设计的程序进行语法检查。检查程序中存在的语法错误。编译连接并下载到芯片中。 3.对设计进行综合调试。对下载到芯片中的程序进行功能检查。直到完成设计要求的
16、功能。七、运行结果 通过对下载的程序的调试,完成了设计要求的任务:(1)单机自发自收串行通信。接收键入字符,从8251A的发送端发送,与同一个8251A的接收端接收,然后在屏幕上显示出来。(2)双机串行通信,在一台PC机键入字符,从8251A的发送端发送给另一台PC机,另一台PC机的 8251A的接收端接收,然后在屏幕上显示出来。八、程序DATA SEGMENTAFA1 DB FIRST:,0DH,0AH,INMECHANICALENGINEERINGLAB,0DH,0AH,THEN:,0DH,0AH DB 100 DUP(0)TABLE DB 30H,31H,32H,33H,34H,35H,
17、36H,37HSIGN DB PLEASE INDUT THE CHARACTER!,0DH,0AH,00HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX CALL SENT MOV AL,81H OUT 63H,AL MOV BX,OFFSET SIGN MOV AH,06H INT 10H MOV DI,OFFSET AFA1 ADD DI,2BHSTART1: CALL EXAM JZ START1 CALL DELAY CALL EXAM JZ START1 MOV CL,00H MOV
18、CH,0FEHCHECK: MOV AL,CH OUT 60H,AL IN AL,62H TEST AL,01H JNZ OTHER MOV AL,00H JMP KCODEOTHER: TEST AL,02H JNZ NEXT MOV AL,04HKCODE: ADD AL,CL MOV BX,OFFSET TABLE AND AX,0FH ADD BX,AX MOV AL,BX MOV DI,AL MOV AH,01H MOV AL,DI INT 10HL2: IN AL,81H AND AL,01H JZ L2 MOV AL,DI OUT 80H,AL INC DI JMP START1
19、 JMP PENDNEXT: INC CL MOV AL,CH TEST AL,08H JZ EXAM ROL AL,1 MOV CH,AL JMP CHECK EXAM PROC MOV AL,00H OUT 60H,AL IN AL,62H NOT AL TEST AL,03H RET EXAM ENDP DELAY PROC PUSH CX MOV CX,0010H T1: MOV AX,1000H T2: DEC AX JNZ T2 LOOP T1 POP CX RET DELAY ENDP SENT PROC MOV AL,00H OUT 81H,AL MOV AL,00H OUT
20、81H,AL MOV AL,00H OUT 81H,AL MOV AL,40H OUT 81H,AL MOV AL,0CFH OUT 81H,AL MOV AL,31H OUT 81H,AL MOV CX,2BH MOV SI,OFFSET AFA1L1: IN AL,81H AND CX,0FFH AND AL,01H JZ L1 MOV AL,SI OUT 80H,AL INC SI LOOP L1 RETSENT ENDP PEND:NOPCODE ENDS END START接收程序:DATA SEGMENTBSHOU DB 100 DUP(?)DATA ENDSCODE SEGMEN
21、T ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,00H OUT 81H,AL OUT 81H,AL OUT 81H,AL MOV AL,40H OUT 81H,AL MOV AL,0CFH OUT 81H,AL MOV AL,14H OUT 81H,AL MOV CX,2BH MOV DI,OFFSET BSHOUL2: IN AL,81H AND AL,02H JZ L2 IN AL,80H MOV DI,AL INC DI LOOP L2 MOV BX,OFFSET BSHOU MOV CX,2BHA1: MOV AH
22、,01H MOV AL,BX INT 10H INC BX PUSH CX MOV CX,OFFSETA2: LOOP A2 POP CX LOOP A1L3: IN AL,81H AND AL,02H JZ L3 IN AL,80H MOV DI,AL MOV AH,01H MOV AL,DI INT 10H INC DI JMP L3CODE ENDS END START 课程设计总结及体会:课程设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,微型计算机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握微型计算机的开发技术是十分重要的。 学生(签字) 2011年1月5日