




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习 题 五1 8255A的方式选择控制字和C口按位控制字的端口地址是否一样,8255A怎样区分这两种控制字?写出A端口作为基本输入,B端口作为基本输出的初始化程序。解:(1) 8255A的方式选择控制字和C口按位控制字的端口地址一样,它们之间的区别在控制字的D7位(特征位)的值不同,8255A的方式选择控制字D7=1,而C口按位置位/复位控制字D7=0。(2) 初始化程序:(设端口地址为,A口:200H,B口:201H,控制口:203H)MOVAL,90HMOVDX,203HOUTDX,AL2 用8255A的A端口接8位二进制输入,B端口和C端口各接8只发光二极管显示二进制数。编写一段程序,把A端口读入的数据送B端口显示,而C端口的各位则采用置0/置1的方式显示A端口的值。解:(设端口地址为,A口:200H,B口:201H,C口:202H,控制口:203H)MOV AL,90H;8255A初始化:MOV DX,203H;8255A各组方式0,A口输入OUT DX,AL; B、C口输出MOV DX,200HIN AL,DX;读A口输入值MOV DX,201HOUT DX,AL;送B口输出MOV AH,AL;A口输入值转存在AH中MOV DX,203HMOV CX,08;CX置循环次数初值MOV AL,00H;C端口置0/置1控制字初值LPA: AND AL,0FEH;清除最低位SHRAH, 1;A端口一位转入CFADCAL,0 ;A端口一位从CF转入命令字OUT DX,AL;A端口一位从送往C端口对应位ADD AL,02H;形成下一个命令字LOOP LPA;处理C端口下一位3 将8255A用作两台计算机并行通信的接口电路,请画出采用查询式输入/输出方式工作的接口电路,并写出采用查询式输入/输出方式的程序。解:用两片8255作两台计算机8088_A与8088_B之间并行通信的接口电路,两片8255之间的连接如下图所示。两片8255均在方式1、查询方式下工作。(1) 8088_A输出程序:(8255_A的A口作为数据输出口,C口的PC0作为“数据输出选通”信号,负脉冲输出。C口的PC6作为“应答”信号输入,负脉冲有效。端口地址:A口:200H,C口:202H,控制口:203H)DATASEGMENTBufferDB“This is a example. ”, 0DH, 0AH, -1DATAENDSCODESEGMENTSTART:MOVAX, DATAMOVDS, AXLEABX, Buffer;输出缓冲区指针送BXMOVDX,203HMOVAL,0A0H ;8255_A的方式选择字,A口工作在方式1、输出,C口低四位输出OUTDX,ALMOVAL, 1OUTDX, AL;将PC0置1CALLDELAY;延时等待对方完成初始化;A口查询方式输出NEXT:MOVDX, 202HINAL, DLTESTAL, 80H;判别是否有效JZNEXT;数据尚未取走,等待MOVDX,200HMOVAL, BXOUTDX, AL;输出一项数据INCBXMOVDX, 203HMOVAL, 0OUTDX, ALNOPNOPINCALOUTDX, AL;通过PC0 向对方发选通信号(负脉冲)CMPBYTE PTRBX-1, -1;判断输出是否完成JNENEXT;未完成,继续MOVAX, 4C00HINT21HCODEENDS ENDSTART(2)8088_B输入程序:(8255_B的A口作为输入,方式1,PC4作为“数据输入选通”信号,输入,负脉冲有效。PC0为“应答”信号输出,负脉冲有效。端口地址:A口:210H,C口:212H,控制口:213H)DATASEGMENTBufferDB80 DUP(?)DATAENDS;CODESEGMENTSTART:MOVAX, DATAMOVDS, AXLEABX, Buffer;输入缓冲区指针送BXMOVDX, 213HMOVAL, 0B0H;8255_B的方式选择字,A口工作在方式1,输入,C口低四位输出。OUTDX, ALMOVAL, 01HOUTDX, AL;PC0置1,表示没有“应答”信号CALLDELAY;延时等待对方状态就绪;A口查询方式输入AGA:MOVDX, 212HINAL, DXTESTAL, 20HJZAGA;PC5 ( IBF )是否为1,不是,无数据输入,继续查询MOVDX, 210HINAL, DXMOVBX, ALMOVDX, 212HMOVAL, 0OUTDX, ALINCBXNOPNOPINCALOUTDX, AL;通过PC0向发送方发“应答”负脉冲CMPBYTE PTRBX-1, -1;数据接收完了吗?JNEAGA;未完,继续MOVAX, 4C00HINT21HCODEENDSENDSTART说明: 这道题有多种可选的解法,上面的方法是程序比较简单的一种。这种方法实施时,应先启动8088B,使它首先“就绪”,然后开始通讯。由于双方都用负脉冲进行选通,联络过程比较简单,也比较可靠。可选的另一种方法是:在上述连接的基础上用中断方式进行数据传输,以提高CPU的工作效率。需要编制双方的中断服务程序,初始化时要设置中断向量,允许8255中断,开放中断等操作。当然也要连接相应的中断请求信号线。可选的第三种方法是:双方用一根状态线(C端口某一位)送往对方,用这两根线进行联络(“握手”)。这种方法看似简单,其实程序是比较复杂的。双方联络的过程如下图。8088B在初始化完成后,把它的状态线置为“高电平”,表示可以开始接受数据。而8088A在初始化完成后,把它的状态线置为“低电平”,表示数据传输尚未开始。 8088A查询8088B的状态,在发现8088B“就绪”(状态线为高电平)后,把数据发往8255的(A或B)端口。 8088A发出数据之后把本机状态置为“就绪”(高电平),表示数据已经送到端口的数据线上。 8088B查询8088A的状态,得知8088A的状态线“就绪”,知道8088A已经把数据送出,于是从8255接收数据,并把自身的状态线置为“未就绪”,表示已经把8088A发出的数据接收。 8088A查询到8088B的状态线变为低电平,知道对方已经把数据接收完成,于是把本机的状态线置为“低电平”,表示这个数据的发送已经完成,而下一个数据尚未发出。 8088B查询到8088A的状态线变为“低电平”,知道对方已经结束了第一个数据的传输,在本机做好下一个数据的接收准备之后(例如,把数据存入缓冲区,如果缓冲区满,则把缓冲区内容存入磁盘文件),把本机状态线置为“高电平”,表示已经做好了接收下一个数据的准备。 8088A得知8088B做好准备,发送下一个数据。于是,下一个数据的传输可以由此开始(转)。这种方法实施时,应首先启动8088A。 4 设计一个用8255A作为8个七段显示器的接口电路,并设计一个把内存地址为ADDRA的8个数字在这8个七段显示器上显示的程序。解:设8个七段显示器采用共阳接法,A口控制段的显示,B口控制位的显示。端口地址 A口:200H,B口:201H,控制口:203HDATA SEGMENTADDRA DB ,TABLE DB 40H, 4FH, 24H, 30H, 19HDB 12H, 02H, 78H, 00H, 10H DISPBITDB ?DATA ENDSCODE SEGMENTASSUME CS: CODE,DS: DATASTART: MOVAX, DATAMOVDS, AXMOV AL,80H;对8255A初始化,方式0,输出MOV DX,203HOUT DX,ALLEABX, TABLE;BX置为七段码表首地址MOVDISPBIT, 7FH ;置位码初值为7FHLEASI, ADDRA;SI置为显示缓冲区首地址MOVCX, 8;CX置为循环次数初值8AGA: MOVAL, 0FFHMOV DX, 201HOUT DX, AL;熄灭所有数码管MOVAL, SI;取出一个待显示数XLAT;转换成七段码MOV DX,200HOUTDX, AL;送入段码端口MOVAL, DISPBIT;MOV DX,201HOUTDX, AL;送当前位码,点亮一个数码管RORDISPBIT, 1;产生下一个位码INCSI;修改指针,指向下一个待显示数据CALLDELAY;延时 LOOPAGA;处理下一个数码管的显示 MOV AX,4C00HINT 21HCODE ENDSEND START5 8254定时/计数器的定时与计数方式有什么区别?8254在方式0工作时,各通道的CLK、GATE信号有什么作用?各通道的控制字地址都相同,8254是怎样区分的?解:(1) 8254作为计数器使用时,对CLK端的输入脉冲进行单纯的减法计数,这时CLK端输入的脉冲不作为计时基准。此外,用作计数器时,计数完成后必须重新初始化,只能使用一次。8254作为定时器使用时,要求CLK端输入的脉冲必须作为时钟基准,通过对该基准时钟脉冲的计数来实现精确定时。用作定时器时,计数的过程周而往复,重复进行。(2) 8254工作在方式0时,CLK端输入计数用的脉冲信号;GATE信号为高电平时,对CLK端输入的脉冲进行计数;GATE信号为低电平时,暂停计数; GATE信号重新为高电平后,恢复原先的计数。(3) 由8254的方式控制字中的D7、D6两位来选择计数通道。6 设8254的端口地址为0240H0243H,通道0输入的CLK频率为1MHz,为使通道0输出1KHz的方波,编写初始化程序。如果让通道0与通道1级联(即OUT0接CLK1)实现1秒钟定时,则初始化程序如何编制。解:(1) 通道0输出1KHz的方波:计数初值为1MHz/1KHz = 1000,等于十六进制数03E8H,控制字设定为先写低8位,后写高8位,方式3工作,二进制计数方式,所以控制字为36H。初始化程序如下:MOV AL,36H;MOV DX,243H;写入通道0的控制字OUT DX,AL;MOV DX,240H;MOV AL,0E8H;写入通道0的时间常数OUT DX,AL;MOV AL,03H;OUT DX,AL;(2) 通道0与通道1级联实现1秒定时:要实现1秒定时,对1MHz输入脉冲进行分频的系数为1000000=5000200。通道0工作在方式2,分频系数200,采用十进制计数,则通道0方式控制字为:25H。通道1工作在方式0,分频系数5000,也采用十进制计数,则通道1方式控制字为:61H。初始化程序如下:MOV AL,25H;通道0控制字:方式2,十进制计数,只写高8位MOV DX,243H;OUT DX,AL;MOV AL,61H;通道1控制字:方式0,十进制计数,只写高8位OUT DX,AL;MOV DX,0240H;MOV AL,02H;通道0时间常数(BCD数高8位)OUT DX,AL;MOV AL,50H;通道1时间常数(BCD数高8位)MOV DX,0241H;OUT DX,AL;如果要再次进行1秒钟定时,则需要对通道1重新初始化。如果需要连续的1秒定时信号,则通道1应选用方式3。对总数为1000000的分频系数,可以有多种分解方法。7 编制一个使PC机的8254产生600Hz方波的程序,并使该方波送至扬声器发声。解:PC机中利用8254定时器的通道2来驱动扬声器。通道2的工作及其输出受到主板上8255A的PB口(口地址61H)控制:GATE2接PB0,即PB0=1时,定时器才可能工作;OUT2与PB1相与后输出到扬声器,即PB1=1时,定时器2的OUT2才能输出到扬声器。定时器的输出波形是对1.1931MHZ频率信号分频得到的,因此将定时器2工作在方式3,分频系数用下式计算:分频系数=1193100给定频率 (1193100=12348CH)因此程序如下:MOV AL,0B6H;通道2控制字:方式3,16位常数OUT 43H,AL;送入8254控制端口MOV DX,12H;MOV AX,348CH;DX, AX中置入常数 12348CHMOV DI,600;DI为输出频率DIV DI;除法运算,计算分频系数OUT 42H,AL;低8位送通道2MOV AL,AH;OUT 42H,AL;高8位送通道2IN AL,61H;OR AL,3;OUT 61H,AL;将8255A的B端口低2位置“1”8 在RS-232C接口标准中,引脚TxD、RxD、的功能是什么?解:TxD: 串行数据输出。RxD: 串行数据输入。:数据终端准备好状态,低电平有效。用于向调制解调器或外设表示数据终端已准备好。:数据设备准备好状态,低电平有效。调制解调器或外设准备好时有效。 :请求发送信号,低电平有效。表示数据终端设备已经做好发送数据的准备,请调制解调器/外设准备接收数据。:清除发送(允许传送)信号,低电平有效。调制解调器/外设作好传送准备,允许数据终端设备发送数据时有效。9 16550的通信控制寄存器中的寻址位有什么作用?在初始化编程时,应该怎样设置?解:16550芯片内,接收缓冲寄存器/发送保持寄存器的地址与除数低字节寄存器的地址相同,中断允许寄存器的地址与除数高字节寄存器的地址相同。为了区分同一地址的不同用途,16550使用DLAB位来加以标识。DLAB位是通信线控制寄存器的最高位D7,该位设置为0,随后的相应操作对接收缓冲寄存器/发送保持寄存器或中断允许寄存器进行;该位设置为1,随后的相应操作对除数寄存器进行。在向除数寄存器写入初值之前,应将DLAB置为1。由于一般不需要重复访问除数寄存器,写完除数后应将DLAB置为0,以方便后续的操作。10 编写用PC机中16550查询方式输入50个字符的异步通信程序。设16550的端口地址为3F8H3FFH,数据格式为:8位数据位、1位偶校验位、2位停止位,通信速率为19.2Kbps。解:接收子程序中,如果接收成功,清CF标志,否则,置位CF标志位。程序如下:; 16550查询方式接收程序DATA SEGMENTREC_DATA DB 50 DUP ( ? ) ;存放接收的数据TIMES DW 50;要接收的数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高项成本补偿合同模板(3篇)
- 高速公路护坡施工合同(3篇)
- 高速服务区施工合同(3篇)
- 安福县协管员招聘面试题及答案
- 无人机展览现场搭建与无人机飞行表演培训合同
- 产业链上下游企业股权整合及供应链优化合同
- 餐饮店铺转租与经营许可捆绑合同
- 房地产公司挂靠合作项目转让合同范本
- 人教部编版八年级道德与法治-下册-第三单元-人民当家作主-单元练习
- 经贸专业的面试题及答案
- 档案专业人员职业能力竞赛考试题库(含答案)
- 同种异体骨软骨移植与软骨修复
- 故障分析实验报告
- 行为生活方式与健康智慧树知到期末考试答案章节答案2024年杭州师范大学
- JTS-165-6-2008滚装码头设计规范-PDF解密
- 铸造企业安全生产标准化管理体系方案资料汇编(2022-2023新标准实施模板)
- 设备维修与保养(课件)
- 浅谈国内外深基坑支护技术的现状及进展
- 网络舆情应对及处置
- 工业数据采集技术及应用 -配置能源采集仪表参数
- 《应急救援知识》课件
评论
0/150
提交评论