专业课复试计算机控制计算机_第1页
专业课复试计算机控制计算机_第2页
专业课复试计算机控制计算机_第3页
专业课复试计算机控制计算机_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、使用21H,设置中断向量设中断服务程序的PUSH DSMOV DX, OFFSET地址标号为SUB,中断类型码为 40H, 编写程序段设置中断向量。;将 DS 入栈,保存 DSSUB ;取SUB 的偏移地址MOV AX,SEG MOV DS,AX MOV AL, 40H MOV AH, 25H21H POP DSSUB;取SUB 的段基址;段基址送 DS;送中断类型码;送功能号;系统功能调用;恢复DS设某片 8255A 的端口地址是 60H63H,工作于方式 0,端口 A 和端口 C 高 4 位输出,端口 B 和端口 C 低 4 位输入,设置该 8255A 的方式选择控制字。解:方式选择控制字

2、=1000 0011初始化编程初始化就是 CPU 通过程序来设定 8255A 的工作方式。设某片 8255A 的端口地址 60H63H 工作于方式 0,端口 A 和端口C 高 4 位输出,端口B 和端口C 低 4 位输入,设置该 8255A 的方式选择控制字。解:方式选择控制字=10000011初始化编程:MOV AL, 83HONTL_PORT,AL ; 将方式选择控制字由控制端口写入1、已知 A,B,C 端口均作为输入或输出端口,有 12 个开关和 12 个发光二极管,每一个开关对应每一个发光二极管,当某一开关接通时,对应的发光二极管就亮,否则就暗。试编写程序段实现此功能。(8255A 的

3、端口地址是 0218H021BH)解:程序段MOV AL, 83H ;B 口和C 口低 4 位输入, A 口和 C 高 4 位输出MOV DX,021BH ;控制端口地址送 DX OUT DX, AL ;从控制端口写入方式控制字LL: MOV DX,0219H ;读B 口IN AL, DXDEC DX;A 口OUT DX, AL ;将B 口读入的开关状态从A 口输出MOV DX,021AH ;C 口IN AL, DX MOVCL,4 SHL AL, CL OUT DX,AL JMP LL HLT;C 口读入数据;将低 4 位到高 4 位;将低 4 位读入的从高 4 位输出设 8253 的端口地

4、址是 70H73H,若计数器 1 工作在方式 0,计数次数为 130 次,试编写初始化序。解:初始化程序段MOV AL,71H OUT 73H,AL MOV AL,30H OUT 71H,AL MOV AL,01H OUT 71H,AL;01 11 000 1,计数器 1,BCD 计数;控制字写入控制寄存器;先送低 8 位;低 8 位送计数器 1;先送低 8 位;高 8 位送计数器 1例: 8253 的计数器 2 用作分频器,将频率为 1.19MHz 的输入脉冲转变成频率为 500Hz 的脉冲信号。8253 的端口地址为 70H73H。试编写初始化程序段。解: N1.19106/500 = 2

5、380 094CH则其初始化程序段为:MOV AL,0B4H;10110100,计数器 2 方式 2 二进制计数OUT 73H,AL ;控制字送入控制寄存器MOV AL,4CHOUT 72H,AL ;计数值低 8 位送入计数器 2MOV AL,09HOUT 72H,AL;计数值高 8 位送入计数器 2注:N 也称为分频系数某系统中 8253 的端口地址为F280HF283H,请按如下要求编制初始化程序: 1)计数器 0 工作于方式 3,CLK02.5MHz,要求OUT0 输出速率为 1kHz 的解:计数器 0 的计数初值 N CLK 的频率/ OUT 的频率2.5MHz/1kHz2500初始化

6、程序段:MOV AL,37H ; 控制字0011 0111,计数器 0 方式 3,先低字节后高字节,BCD 计数MOV DX,0F283H ;控制寄存器端口大于地址 8 位,送 DX。OUT DX,AL;控制字写入控制端口,完成初始化MOV DX,0F280H ;计数器 0 的地址送DXMOV AL,00H OUT DX,AL MOV AL,25H OUT DX,AL;计数初值低字节送计数器 0;计数初值高字节送计数器;完成送计数初值计数器 1 工作于方式 2,CLK12MHz,要求OUT1 输出 1kHz 频率的脉冲波。解:计数器 1 的计数初值NCLK 的频率/ OUT 的频率2MHz/1

7、kHz2000初始化程序段:MOV AL,65H;控制字0110 0101,计数器 1 方式 2,先低字节后高字节,BCD 计数MOVDX,0F283H ;大于 8 位的控制器端口地址送 DX OUTDX,AL ;控制字写入控制器端口MOV DX,0F281H ;计数器 1 端口地址送DXMOV OUT MOV OUTAL,00H DX,AL AL,20H DX,AL;低字节送计数器 1;高字节送计数器 1;完成送计数初值3)计数器 2 工作于方式 4,用 OUT1 输出作计数脉冲 CLK2,计数值为 1000,计数器计到 0,给出一个控制脉冲沿。解:计数器 2 的计数初值 N1000=03E

8、8H初始化程序段:MOV AL,0B8H ;控制字1011 1000,计数器 2 方式 4,先低字节后高字节,二进制计数 MOV DX,0F283H ;大于 8 位的控制器端口送 DXOUTDX,AL ;控制字送控制器端口,完成初始化 MOV DX,0F282H ;计数器 2 的端口地址送 DX MOV AL,0E8H ;低字节送计数器 2OUTDX,ALMOV AL,03H ;高字节送计数器 2 OUTDX,AL;完成送计数初值已知某 8253 的输入时钟为 1.193MHz。请用该产生 1Hz 频率的脉冲波。设的端口地址为 40H43H。解:输入脉冲频率为 1.193MHz,要求输出 1H

9、z 频率的脉冲波。计数初值 N CLK 脉冲频率/ OUT 频率 1.193MHz/1Hz1193000 216显然无法用一个计数器单独实现,必须用两个计数器级连才能实现。选用计数器 0 和计数器 1 工作于方式 2 ,将OUT0 连至CLK1。计数器 0,对 1.193MHz 的时钟计数,产生频率为 1kHz 的周期信号,计数器 0 的计数初值为 1193;计数器 1,对 OUT0 产生的 1kHz 周期信号计数,从而产生频率为 1Hz 的周期信号,计数器 1 的计数初值为1000。MOV AL,35H ;控制字0011 0101,计数器 0 方式 2,;先低字节后高字节,BCD 计数OUT

10、43H,AL ;控制字写入控制器端口,完成初始化MOV AL,93H ;计数初值低字节送ALOUT40H,AL ;写入计数器 0MOV AL,11H ;计数初值高字节送ALOUT40H,AL ;写入计数器 0,完成送计数初值至计数器 0 MOV AL,75H ;控制字0111 0101,计数器 1 方式 2,;先低字节后高字节,BCD 计数 OUT 43H,AL ;控制字写入控制器端口 MOV AL,00H ;计数初值低字节送 AL OUT41H,AL ;写入计数器 1MOV AL,10H ;计数初值高字节送 ALOUT41H,AL ;写入计数器 1,完成送计数初值至计数器 1思考:一片 82

11、53,最大分频系数是多少?解:一个计数器最大分频系数 N216 (二进制计数)或 10000(BCD 码计数)一片 8253 三个计数器级联,分频系数 NMAX= 216216216在以 8086CPU 为的系统中,扩展一片 8253,要求通道 0 每隔 2ms 输出一个负脉冲,其工作时钟频率为2MHz,设端口地址为 20H23H,完成通道初始化。分析:选择工作方式:题目要求的输出波形是:经分析2。计算计数初值:设定时时间为t,通道CLK 时钟频率为f,计数初值为N,则:Ntf代入计算得:N2ms2M210-321064000确定控制字:00110100B初始化程序: MOV AL,34HOU

12、T 23H,AL ;控制字写入控制口 MOV AX, 4000 ;二进制形式的数据 OUT 20H,AL ;先写低 8 位,写入通道 0 MOV AL,AHOUT 20H,AL ;后写高 8 位,写入通道 0;8253 初始化:计数器 0 定时 0.125s,输出频率8Hz;计数初值N40kHz/8Hz = 5000MOV OUT MOV OUT MOV OUT MOVAL,34H 43H,AL AX,00H 40H,AL AL,50H 40H,AL BL,01H;0011 0101,计数器 0 方式 2,BCD 计数,先低字节,后高字节;写入控制器端口,完成初始化;送 BCD 码低字节至AL

13、;写入计数器 0;送BCD 码高字节至AL;写入计数器 0 ,完成计数初值的设置STI ;设 IF1,允许 CPU 响应可中断,即开中断NEXT:NOP JMP NEXT;空操作;返回NEXT,即等待新的中断请求在数据段定义首地址为A 的 10 个字符,将这 10 个字符以相反次序传送到附加段首地址为B 的内存单元中。DSEG SEGMENTLEA SI,A LEA DI,B ADD DI,9MOV CX,10 MOVE: CLDLODSB STD STOSBLOOP MOVE MOV AH,4CH21H CSEGENDSEND STARTADB 1234567890DSEG ENDSESEG

14、 SEGMENTBDB 10 DUP(?)ESEG ENDSCSEG SEGMENTAES:ESEGMECS : CSEG, DS : DSEG,START: MOVAX,DSEGMOV MOV MOVDS,AX AX,ESEG ES,AX已知 Z=(X+Y)-(W+Z),其中 X,Y,Z,W 均为用压缩BCD 码表示的数,写出程序。这也是一种典型的直线程序,在这里要注意是 BCD 数相加,要进行十进制调整。具体程序如下:MOV AL,ZMOV ADD DAA MOV MOV MOV ADD DAA SUB DAS MOVBL,W AL,BL;十进制调整 BL,AL ; BL=(W+Z) AL

15、,XDL,YAL,DL ; AL=(X+Y);十进制调整AL,BL ; AL=(X+Y)-(Z+W);十进制调整Z,AL ;结果送Z将内存中某一区域的原数据块传送到另一区域中。分析:这种程序若源数据块与目的数据块之间地址没有,则可直接用传送或串操作实现;若地址,则要先判断源地址+数据块长度是否小于目的地址,若是,则可按增量方式进行,否则要修改指针指向数据块底部,采用减量方式传送。程序如下:DATASTRSTR1STR2SEGMENTDB 1000DUP(?) EQU STR+7EQU STR+25STRCOUNT EQU 50DATASTACKSTAPNSTACKCODEENDSSEGMENT PARA STACK STACK DB100DUP(?)ENDS SEGMENTAME CS:CODE,DS:DATA,ES:DATA,SS:STACKGOOOK:GOOC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论