微机原理习题

合集下载

微机原理练习题

微机原理练习题

1、计算机中( )不能直接表示有符号数。

A.原码B.补码C.反码D.BCD码2、当使用BP寄存器作基址寻址时,若无指定段替换,则内定在( )段内寻址。

A.程序B.堆栈C.数据D.附加3、8086系统存储器与IO端口独立编址,I/O端口( )A.可与存储器分时使用同一地址B.与存储器使用两个独立的地址空间C.与存储器共用统一的地址空间。

4、8086可屏蔽中断的屏蔽由CPU内部标志寄存器的( )位来控制。

A.IFB.TFC.OFD.DF5、串行传送的波特率是指单元时间内传送( )数据的位数。

A.二进制B.八进制C.十进制D.十六进制6、若采用8位A/D转换器转换0~5V的电压信号,则分辨率约为( )A.5mvB.10mvC.20mvD.40mv7、8086CPU芯片的时序中,不加等待的一个总线周期需时钟周期数为()。

A、1B、2C、3D、48、8086CPU中的SP寄存器是一个多少位的寄存器?()A、8位B、16位C、24位D、32位9、假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是()。

A、20102HB、20101HC、200FEHD、200FFH10、主存和CPU之间增加高速缓存的目的是()。

A、解决CPU和主存之间的速度匹配问题B、扩大存容量C、既扩大内存容量,又提高存取速度D、解决CPU与外存之间速度匹问题11、下列寄存器为16位的寄存器有( )A.IPB.AHC.ALD.BH12、交换寄存器SI、DI的内容,正确的程序段是()。

A、MOV AX,SIB、MOV AX,SIMOV SI,AX MOV BX,DIMOV DI,AX XCHG BX,AXC、PUSH SID、PUSH SIPUSH DI PUSH DIPOP SI POP DIPOP DI POP SI13、指令MOV DX, [BX]的寻址方式是()。

微机原理考试题

微机原理考试题

微机原理考试题
一、单选题
1. 下列哪个是微机系统中的外部设备?
A. CPU
B. 内存
C. 鼠标
D. 主板
2. 以下哪个不是微处理器的内部组成部分?
A. 控制单元
B. 算术逻辑单元
C. 缓存
D. 寄存器
3. CPU的主频是指什么?
A. CPU的大小
B. CPU的运行速度
C. CPU的功耗
D. CPU的温度
二、填空题
1. 将十六进制数0xA7转换成二进制,结果为__________。

2. 8位二进制的最大无符号整数是_____________。

三、简答题
1. 请简要描述内存的组成和工作原理。

2. 简述CPU的作用及其内部组成。

3. 什么是指令集架构?举例说明一种指令集架构。

四、计算题
1. 如果一个CPU的主频为
2.8GHz,每个时钟周期需要执行4条指令,计算该CPU每秒能执行多少条指令。

2. 请计算十六进制数0x2A和0x3F的加法结果。

五、应用题
1. 请简要介绍微机系统中的输入/输出设备,并说明其作用。

2. 什么是微指令?简要描述微指令的功能及作用。

以上是微机原理考试题,希望你能认真思考后给出满意的答案。

祝你考试顺利!。

微机原理练习题

微机原理练习题

微机原理练习题第一章单片机概述一、填空题1、除了“单片机”之外,单片机还可以称之为()和()。

2、专用单片机由于已把能集成的电路都集成到芯片内部了,所以专用单片机可以使系统结构最简化、软硬件资源利用最优化,从而大大地提高了()和降低了()。

3、在单片机领域内, ICE 的含义是()。

4、单片机主要使用汇编语言,而编写汇编语言程序要求设计人员必须精通()和()。

5、CHMOS 工艺是()工艺和()工艺的结合,具有()的特点。

6、与 8051 比较 80C51 最大的特点是()。

7、()控制技术是对传统控制技术的一次革命,这种控制技术必须使用()才能实现。

8.十进制29的二进制表示为。

9.十进制数-29的8位补码表示为. 。

10.单片微型机、、三部分组成.11.若不使用MCS-51片内存器引脚必须接地.12. 是计算机与外部世界交换信息的载体.13.十进制数-47用8位二进制补码表示为. 。

14.-49D的二进制补码为. 。

15.计算机中最常用的字符信息编码是。

16.计算机中的数称为机器数,它的实际值叫。

二、选择题在下列各题的( A )、( B )、( C )、( D ) 4 个选项中,只有一个是正确的,请选择出来。

1、下列简写名称中不是单片机或单片机系统的是()( A ) MCU ( B ) SCM ( C ) ICE ( D ) CPU2、在家用电器中事业单片机应属于计算机的()( A )数据处理应用( B )控制应用( C )数值计算应用( D )辅助工程应用3、80C51 与 87C51 的区别在于()( A )内部程序存储器的类型不同( B )内部数据存储器的类型不同( C )内部程序存储器的容量不同( D )内部数据存储器的容量不同4、80C51 与 8051 的区别在于()( A )内部 ROM 的类型不同( B )半导体工艺的型式不同( C )内部寄存单元的数目不同( D ) 80C51使用 EEPROM 而8051 使用EPROM5、在下列单片机芯片中使用掩膜 ROM 作为内部存储器的是()( A ) 8031 ( B ) 80C51 ( C ) 8032 ( D ) 87C516、80C51 芯片采用的半导体工艺是()( A ) CMOS ( B ) HMOS ( C ) CHMOS ( D ) NMOS7、单片机芯片 8031 属于()( A ) MCS—48 系列( B ) MCS—51 系列( C ) MCS—96 系列( D ) MCS—31 系列8、使用单片机实现在线控制的好处不包括()( A )精确度高( B )速度快( C )成本低( D )能与数据处理结合9、以下所列各项中不是单片机发展方向的是()( A )适当专用化( B )不断提高其性能( C )继续强化功能( D )努力增加位数11、计算机中最常用的字符信息编码是()A ASCIIB BCD码C 余3码D 循环码12.要MCS-51系统中,若晶振频率屡8MHz,一个机器周期等于( ) μsA 1.5B 3C 1D 0.513.MCS-51的时钟最高频率是 ( ).A 12MHzB 6 MHzC 8 MHzD 10 MHz14.以下不是构成的控制器部件():A 程序计数器、 B指令寄存器、 C指令译码器、 D存储器15.以下不是构成单片机的部件()A 微处理器(CPU)、B存储器C接口适配器(I\O接口电路)D 打印机16.下列不是单片机总线是()A 地址总线B 控制总线C 数据总线D 输出总线17.-49D的二进制补码为.( )A 11101111B 11101101C 0001000D 1110110018.十进制29的二进制表示为原码()A 11100010B 10101111C 00011101D 0000111119. 十进制0.625转换成二进制数是()A 0.101B 0.111C 0.110D 0.10020. 选出不是计算机中常用的码制是()A 原码B 反码 C补码 D ASCII第一章作业:一、1、2、4、8、9、13、14二、11~20第二章 MCS — 51 单片机的结构和原理一、问答题1、8051 单片机芯片包含哪些主要逻辑功能部件?各有什么主要功能?2、MCS-51 单片机的 EA 信号有何功能?在使用 8031 时 EA 信号引脚应如何处理?3、MCS-51 单片机有哪些信号需要芯片引脚以第二功能的方式提供?4、内部 RAM 低 128 单元划分为哪 3 个主要部分?说明各部分的使用特点。

微机原理部分习题和答案

微机原理部分习题和答案

目录第1章微型计算机概述 (2)第2章16位和32位微处理器 (2)第3章Pentium的指令系统 (3)第4章存储器、存储管理和高速缓存技术 (4)第5章微型计算机和外设的数据传输 (5)第6章串并行通信和接口技术 (5)第7章中断控制器 (8)第8章DMA控制器 (10)第9章计数器、定时器和多功能接口芯片 (12)第10章模数和数模转换 (14)第1章微型计算机概述1.CPU在内部结构上由哪几部分组成?CPU应具备哪些主要功能?第2章16位和32位微处理器1.8086从功能上分为哪几个部分?2.8086的总线接口部件由哪几部分组成?3.8086标志寄存器中的内容是什么?4.8086加电后执行的第一条指令的内容及地址是什么?5.8086系统中,设段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址是多少?指向这一物理地址的CS和IP值是唯一的吗?6.8086的执行部件有什么功能?由哪几部分组成?7.在总线周期的T1、T2、T3、T4状态,8086分别执行什么动作?什么情况下需要插入等待状态TW?TW在哪儿插入?怎样插入?8.8086是怎样解决地址线和数据线的复用问题的?ALE信号何时处于有效电平?9.BHE#信号和A0信号是通过怎样的组合解决存储器和端口的读写操作的?这种组合决定了8086系统中存储器偶地址体及奇地址体之间应该用什么信号区分?怎样区分?10.中断向量指什么?放在哪里?对应于8086的1CH的中断向量存放在哪里?如果1CH的中断处理子程序从5110H:2030H开始,则中断向量应该怎样存放?11.一个可屏蔽中断响应时,CPU要执行哪些读写周期?对一个软件中断又如何?12.什么叫超标量流水线技术?Pentium有哪两条流水线?两条流水线有什么区别?13.分支预测技术是基于怎样的规律而实施的?叙述分支预测技术的实现原理。

14.Pentium有哪三种工作方式?如何在方式间转换?15.Pentium的保护方式主要保护什么?16.Pentium的地址线是双向的吗?17.实地址方式和虚拟8086方式都是类似于8086的方式,从使用场合和工作特点上看,这两种方式有什么主要差别?18.什么叫段基址?它有多少位?什么叫段选择子?段选择子包含哪些内容?19.Pentium的段描述符寄存器中包含哪些内容?20.Pentium的逻辑地址、线性地址、物理地址分别指什么?它们的寻址能力分别为多少?21.Pentium采用哪几种描述符表?这些表的设置带来什么优点?22.Pentium的主要信号分为哪几类?23.Pentium的寄存器分为哪几类?24.Pentium的段寄存器中存储的是什么?25.Pentium有哪几种总线状态?分别有什么特点?26.什么是突发式数据传输?结合主教材中图2.37说明突发式读写周期的时序关系。

微机原理练习题(含答案)

微机原理练习题(含答案)

1.已知下列数组语句:0RG 0100HARY DW 3, $+4, 5, 6CNT EQU $-ARYDB 7,8,CNT,9问执行语句MOV AX, ARY +2和MOV BX,ARY +10后,AX=? BX=?答: AX=(ARY +2) = (0102H) =0106H; BX=( ARY +10) = (010AH) =0908H。

2.某程序设置的数据区如下所示。

DATA SEGMENTDB1 DB 12H, 34H, 0, 56HDW1 DW 78H, 90H, 0AB46H, 1234HADR1 DW DB1ADR2 DW DW1AAA DW $-DB1BUF DB 5 DUP(0)DATA ENDS画出该数据段内容在内存中的存放形式(要求用十六进制补码表示,按字节组织)。

3.分析下列程序:A1 DB 10 DUP(7)A2 DB 0,1,2,3,4,5,6,7,8,9……MOV CX, LENGTH AlMOV SI, SIZE A1 - TYPE AlLP: MOV AL, A2[SI]MOV Al[SI],ALSUB SI,TYPE A1DEC CXJN2 LPHLT问:(1)该程序的功能是什么?(2)该程序执行后,A1单元开始的10个字节内容是什么?答:(1)该程序的功能是将从A2单元开始存放的10个字节数据传送到从Al单元开始的10个字节单元中。

(2)程序执行后,Al单元开始的10个字节内容是0,1,2,3,4,5,6,7,8,9。

4. 试分析下列程序:BUF DB 0BHMOV AL, BUFCALL FAR PTR HECAHECA PROC FARCMP AL, 10JC LPADD AL, 7LP: ADD AL, 30HMOV DL, ALMOV SH, 2INT 21HRETHECA ENDP问:(1)该程序是什么结构的程序?功能是什么?(2)程序执行后,DL=?(3)屏幕上显示输出的字符是什么?答:(1)该程序为主程序调用子程序的结构,且为远调用子程序;功能是将BUF单元中的0~F一位十六进制数转换成对应的ASCII码。

《微机原理》习题集

《微机原理》习题集

第一章 计算机基础一、问答题 1、下列数值或字符串表示成相应的ASCII 码是多少? (1)换行 (2)字母“Q ” (3))空格 (4)汉字“隘”(国标码) (5)汉字“保”(内部码) (6)51 (7)Hello 2、下列各机器数所表示数的范围是 (1)8位二进制无符号定点整数;(2)8位二进制无符号定点小数; (3)16位二进制无符号定点整数; (4)用补码表示的16位二进制有符号整数; 3、(111)X=273,基数X=? 4、有一个二进制小数X=0.X1X2X3X4X5X6 (1) 若使X ≥1/2,则X1……X6应满足什么条件? (2) 若使X >1/8,则X1……X6应满足什么条件? 5、 有两个二进制数X=01101010,Y=10001100,试比较它们的大小。

(1) X 和Y 两个数均为无符号数; (2) X 和Y 两个数均为有符号的补码数。

6、 一个用十六进制表示的两位整数,如果改用十进制数表示,顺序正好颠倒,该数是多少? 二、填空题1、对于R 进制数来说,其基数(能使用的数字符号个数)是 ,能使用的最小数字符号是 。

2、八进制数的基数为8,能用到的数字符号个数为 。

3、十进制数72转换成八进制数是 。

4、与十进制数49.875等值的八进制数是 。

5、与十进制数67等值的十六进制数是 。

6、十进制小数0.6875转换成十六进制数是 。

7、二进制数101.011转换成十进制数是 。

8、与二进制数101110等值的八进制数是 。

9、十六进制数0E12转换成二进制数是 。

10、汉字国标码字符集中共包含有 个汉字和图形符号。

11、把汉字区位码的区码和位码都加上十六进制数 ,即得到汉字国标码;把汉字区位码的区码和位码都加上十六进制数 ,即得到汉字机内码。

12、将下列十进制数8609、5254、2730、1998变为8421BCD码分别是 。

三、选择题1、在计算机机内部,一切信息的存取、处理和传送都是以形式进行的。

微机原理练习题

微机原理练习题

微机原理练习题一、1.在堆栈段中,存放栈顶的寄存器是()A. IP B SP C BX D BP2.计算机中用来存储程序、数据等信息的记忆装置是()A.控制器 B 运算器 C CPU D 存储器3.汇编语言中,存放下一条将要执行的指令地址的寄存器是()A. SP B AX C DI D IP4.TEST指令的功能与()指令类似。

A ANDB CMPC SUBD OR6、AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA之后,其结果应是()。

A. AH=01,AL=05B. AH=1 AL=15C. AH=0 AL=0FHD. AH=0 AL=058. MOV SP,3210HPUSH AX执行上述指令序列后,SP寄存器的值是( )。

A、3211HB、320EHC、320FHD、3212H2、已知AX和BX中各存放一个无符号数,当AX大于等于BX时,转移到标号OK处,不能实现此转移的程序段是()A. CMP AX,BX JNC OKB. CMP AX,BX JNB OKC. CMP AX,BX JAE OKD. CMP BX,AX JB OK3、下面程序段符合汇编语言要求的是()A. DATA DB 10, 200 ,300B. DATA EQU 10DATA = DATA +20C. DATA DW 1050HMOV AL,DATAD. DATA DB 10B, 37Q,2AHMOV AL, DATA +14、若执行REP MOVSB 指令时,CX的值为0,则MOVSB指令执行的次数为()A. 0B. 1C. 65535D. 655361、十六进制数88H,可表示成下面几种形式,请找出错误的表示()。

A、无符号十进制数136B、带符号十进制数-120C、压缩型BCD码十进制数88D、8位二进制数-8的补码表示1、指令MOV AX,[SI][BP]的源操作数在哪一个逻辑段中()A. 数据段B. 附加段C. 代码段D. 堆栈段1. 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( )E、AX,BX,CX,DXF、BX,BP,SI,DIG、SP,IP,BP,DXH、CS,DS,ES,SS2、已知标号DATA的定义如下: DATA DB 12H, 34H, 现想把数据1234H取入AX中,正确的程序段是()A. MOV AX, WORD PTR DATAB. MOV AX, DATAC. MOV AH, DATAMOV AL,DATA+1D. MOV AL,DATAMOV DATA+19. 编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( )。

微机原理习题集以及答案

微机原理习题集以及答案

第一部分 例题与习题第1章 微型计算机基础例 题1.把十进制数转化为二进制数。

P7解:把十进制数转换成二进制数时,需要对一个数的整数部分和小数部分分别进行处理,得出结果后再合并。

整数部分:一般采用除2取余法小数部分:一般采用乘2取整法余数 低位 整数 高位 2 | 137 2 | 68 × 2 2 | 34 2 | 17 × 2 2 | 8 2 | 4 × 2 2 | 2 1 高位 低位 (137)10=()2 10=2所以,10=(.111)22.把二进制数转换为八进制数和十六进制数。

P9解:八进制、十六进制都是从二进制演变而来,三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数,从二进制向八进制、十六进制转换时,把二进制数以小数点为界,对小数点前后的数分别分组进行处理,不足的位数用0补足,整数部分在高位补0,小数部分在低位补0。

(10 1)2=(010 100)2=8(1 2=(0001 2=163.将八进制数转换为二进制数。

P9解:8=(010 100)2=24.X=,Y=-,求[X -Y]补,并判断是否有溢出?P11解:[X -Y]补=[X]补+[-Y]补[X]补= [Y]补= [-Y]补=说明:当异号相减运算时,通过补码,减法运算转化为两个正数的加法运算,结果为负(符号位为1),表示运算结果溢出。

+ -------------- 1-------------- 0-------------- 0-------------- 1------------- 1 ------------- 15.B分别为原码、补码、BCD码表示时,对应的十进制数为多少?解:[X]原=,X=-21[X]补=,[X]原=,X=-107[X]BCD=,X=956.简述计算机为什么能实现自动连续的运行?解:计算机能实现自动连续的运行,是由于计算机采用了存储程序的工作原理。

把解决问题的计算过程描述为由许多条指令按一定顺序组成的程序,然后把程序和处理所需要的数据一起输入到计算机的存储器中保存起来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 设8255A 的A 口、B 口、C 口和控制字寄存器的端口地址分别为80H 、82H 、84H 和86H 。

要求A 口工作在方式0 输出,B 口工作在方式0 输入,C 口高 4 位输入,低 4 位输出,试编写8255A 的初始化程序。

MOV AL ,B ;方式控制字OUT 86H ,AL2. 8255A 的A 口、B 口、C 口和控制字寄存器的端口地址分别为80H 、82H 、84H 和86H,要求 PC4 输出高电平,PC5 输出低电平,PC6 输出一个正脉冲,试写出完成这些功能的指令序列。

MOV AL ,00001001B ;PC4 输出高电平OUT 86H ,ALMOV AL ,00001010B ;PC5 输出低电平OUT 86H ,ALMOV AL ,000001100B ;PC6 先输出低电平OUT 86H ,ALMOV AL ,00001101B ;PC6 再输出高电平OUT 86H ,ALMOV AL ,00001100B ;PC6 再输出低电平,形成一个正脉冲OUT 86H ,AL3. 8255A 的口地址为 80H~83H ,8253 的口地址为 84H~87H ,(1 )若A 口接8 个开关K7~K0,B 口接8 个指示灯LED 7~LED0,当开关合上时相应的指示灯亮,断开时灯灭,要求每隔检测一次开关状态,并在LED上显示出来,试画出硬件连线图,编写实现这种功能的程序。

(2 )若把接在端口 A 上的开关去掉,要求接在端口 B 上的指示灯轮流熄灭,每只灯熄灭 1秒钟,请编程实现这种功能。

答:(1 )8255A :A 口输入,B 口输出8253:2MHz/2Hz=1000000通道0 工作于方式 2 ,取N0=1000通道1 工作于方式 0 ,取N1=999,即得OUT1 每秒中断一次。

本题用 8253 定时中断,中断处理时检测开关状态,并点亮相应的 LED 。

假设8259A 已初始化,主程序如下:MOV AX, SEG INTR ;形成中断矢量表MOV DS, AXMOV DX, OFFSET INTRMOV AL, NMOV AH, 25HINT 21HMOV AL, B ;8255初始化OUT 83H, ALMOV AL, 00110101B ;通道0 方式 2 ,BCD计数OUT 87H, ALMOV AL, 00H ;置初值1000OUT 84H, ALMOV AL, 10HOUT 84H, ALMOV AL, 01110001B ;通道1 方式 0 ,BCD计数OUT 87H, ALMOV AL, 99H ;置初值999OUT 85H, ALMOV AL, 09HOUT 85H, ALSTIAGAIN:HLTJMP AGAIN中断服务程序:INTR: PUSH AXSTIIN AL, 80H ;检测开关,合上为0NOT AL ;取反OUT 81H, AL ;点亮相应LED (合上)MOV AL, 01110001B ;通道1 方式 0 ,BCD计数OUT 87H, ALMOV AL, 99H ;置初值999OUT 85H, ALMOV AL, 09HOUT 85H, ALCLIMOV AL, 20H ;普通EOI 命令OUT 20H, ALPOP AXIRET2 )8255A :B 口输出8253:通道 0 工作于方式 2 ,取 N0=2000通道1 工作于方式 3 ,取 N1=1000,即得 OUT1 频率为1Hz (周期为1 秒)的方波,接到8259A 的IRi,边沿触发中断请求。

主程序如下:MOV AX, SEG INTR ;形成中断矢量表MOV DS, AXMOV DX, OFFSET INTRMOV AL, NMOV AH, 25HINT 21HMOV AL, B ;8255初始化OUT 83H, ALMOV AL, 00110101B ;通道0 方式 2 ,BCD计数 OUT 87H, ALMOV AL, 00H ;置初值2000OUT 84H, ALMOV AL, 20HOUT 84H, ALMOV AL, 01110111B ;通道1 方式 3 ,BCD计数 OUT 87H, ALMOV AL, 00H ;置初值1000OUT 85H, ALMOV AL, 10HOUT 85H, ALMOV AL, 0FEH ;熄灭LED0OUT 81H, ALSTIGOON:HLTJMP中断服务程序如下:INTR: PUSH AXSTIROL AL, 1 ;AL左循环移位1 位OUT 81H, AL ;点亮下一位LEDCLIMOV AL, 20HOUT 20H, AL ;普通EOI 结束命令POP AXIRET硬件连接图如下:4. 设8255A 的口地址为300H~303H,A 口接4 个开关K3~K0,B 口接一个七段LED 显示器,用来显示4 个开关所拨通的 16 进制数字0~F,开关都合上时,显示0 ,都断开时显示F,每隔2 秒钟检测一次,试画出硬件连线图,并编写实现这种功能的程序。

与上题思路相同8255A :A 口方式 0 输入,B 口方式0 输出,端口地址 300H~303H8253:用于 2 秒定时,端口地址为 304H~307H2MHz/=4000000通道0 工作于方式 2 ,取N0=4000通道1 工作于方式 0 ,取N1=999,即得OUT1 每2 秒中断一次。

本题用 8253 定时中断,中断处理时检测开关状态,并点亮相应的LED 。

假设8259A 已初始化,主程序如下:TABLE DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H ; 七段码表格DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71HMOV AX, SEG INTR ;形成中断矢量表MOV DS, AXMOV DX, OFFSET INTRMOV AL, NMOV AH, 25HINT 21HMOV AL, B ;8255初始化MOV DX,303HOUT DX, ALMOV AL, 00110101B ;8253初始化,通道 0 方式2 ,BCD计数 MOV DX ,307HOUT DX,ALMOV AL, 00H ;置初值4000HMOV DX ,304HOUT DX, ALMOV AL, 40HOUT DX, ALMOV AL, 01110001B ;通道1 方式 0 ,BCD计数MOV DX ,307HOUT DX, ALMOV AL, 99H ;置初值999MOV DX ,305HOUT DX, ALMOV AL, 09HOUT DX, ALSTIAGAIN:HLTJMP AGAIN中断服务程序:INTR: PUSH AXSTIMOV DX ,300HIN AL, DX ;检测开关,合上为0AND AL,0FH ;只保留低4 位PA 3 ~PA 0MOV BX ,OFFSET TABLEXLAT TABLEMOV DX ,301HOUT DX,AL ;点亮LED ,显示数字MOV AL, 01110001B ;通道1 方式 0 ,BCD计数MOV DX ,307HOUT DX,ALMOV AL, 99H ;置初值999MOV DX ,305HOUT DX,ALMOV AL, 09HOUT DX ,ALCLIMOV AL, 20H ;普通EOI 命令OUT 20H, ALPOP AXIRET5. 利用8255A 和ADC0809等芯片设计 PC机上的A/D 转换卡,设8255A 的口地址为 3C0 H~3C3H,要求对 8 个通道各采集1 个数据,存放到数据段中以D_BUF为始址的缓冲器中,试完成以下工作:(1 )画出硬件连接图。

(2 )编写完成上述功能的程序。

(2 )AD_SUB PROC NEARMOV CX,8 ;CX作数据计数器MOV BL,00H ;模拟通道号存在 BL中LEA DI,D_BUF ;缓冲区NEXT_IN : MOV DX,3C2H ;8255A 端口C 地址MOV AL,BLOUT DX ,AL ;输出通道号MOV DX,3C3H ;指向控制口MOV AL,00000111B ;PC3 置1OUT DX ,AL ;送出开始启动信号NOP ;延时NOPNOPMOV AL,00000110B ;PC3 复位OUT DX ,AL ;送出结束启动信号MOV DX,3C2H ;C 口NO_CONV: IN AL ,DX ;读入C 口内容TEST AL,80H ;PC7 ,EOC 信号JNZ NO_CONV ;PC7=1 ,未开始转换,等待NO_EOC: IN AL,DX ;PC7=0 ,已启动转换TEST AL,80H ;再查PC7JZ NO_EOC ;PC7=0 ,转换未结束,等待MOV DX ,3C0H ;PC7=1 ,转换结束,DX指向A 口 IN AL,DX ;读入数据MOV [DI],AL ;存入缓冲区INC DIINC BL ;指向下个通道LOOP NEXT_INRETAD_SUB ENDP6. 试利用 ADC0809,8253 和8259A 等芯片设计8 通道A/D 转换电路。

系统中用 8253 作定时器,采用中断方式控制采样率,采样率为500Hz 。

设 8253 的通道 0 输入时钟脉冲为 2MHz ,输出端OUT0 接8259A 的IR2 ,8253 的口地址为 300H~303H,8259A 的口地址为304H和305H,ADC0809的8 个输入通道的口地址为 308H~30FH,查询 EOC 信号和状态口地址为306H,ADC0809的输入时钟频率为 640KHz,A/D 转换的结果依次存入数据段中以BUFFER为始址的内存中,从通道0 开始先存入各通道的第一个数据,再存放第二个数据,采集10秒钟后停止工作。

要求:(1 )画出硬件连线图,可以不画具体的译码电路。

(2 )编写8253,8259A (只需写入中断屏蔽字)的初始化程序及采集 8 路模拟信号的中断服务程序。

答:(1 )(2 )因为8253的时钟输入频率为 2MHz ,而要求的采样频率f=500Hz ,即用8253定时,每隔2ms 中断一次,因此8253 的分频次数(时间常数)N=2MHz/500Hz=4000。

采集10 秒钟,共采集 10s/2ms=5000 次,即 8253 中断次数为 5000 次。

DATA SEGMENTBUFFER DB 8*5000 DUP()DATA ENDS;数据采集子程序8253初始化编程,通道 0,方式2 ,先写低字节,后高字节,BCD计数,时间常数4000MOV DX ,303HMOV AL ,00110101BOUT DX,ALMOV DX ,300H ;通道 0MOV AX ,4000H ;时间常数OUT DX,ALMOV AL ,AHOUT DX,AL;8259A 设置屏蔽字,仅允许 8259A 的IR2 和键盘中断,其余禁止MOV AL ,B ;屏蔽字MOV DX ,305HOUT DX,AL ;向屏蔽寄存器输出屏蔽字;设置数据缓冲区始址到 SI 中,计数初值到 BX中,等待中断,每通道采完 5000 次后结束中断MOV SI,OFFSET BUFFER ;SI 指向数据缓冲区MOV BX ,5000STI ;开中断AGAIN:CMP BX,0JNZ AGAINMOV AL ,B ;采集完,禁止 IR2 中断MOV DX ,305HOUT DX,ALMOV AH ,4CH ;退出中断INT 21H;中断服务程序,对每个通道均采集一个数据,存入BUFFERADINT PROC NEARMOV CX ,0008H ;设置通道计数器初值MOV DX ,308H ;DX指向ADC通道0NEXT:OUT DX,AL ;启动一次转换PUSH DX ;保存通道号MOV DX ,306H ;DX指向状态口POLL:IN AL ,DX ;读入EOC 状态TEST AL ,80H ;EOC (D7)=0即开始转换了JNZ POLL ;非0 ,循环等待NO_END:IN AL ,DX ;EOC=0,开始转换TEST AL ,80H ;再查EOC 是否为1JZ NO_END ;EOC=0,等待转换结束POP DX ;EOC=1,恢复通道地址IN AL ,DX ;读取结果MOV [SI],AL ;存储到缓冲区INC DX ;DX指向下一个通道INC SI ;地址指针指向下一个缓冲单元LOOP NEXT ;通道计数器减1 ,结果非 0 则循环DEC BX ;为0 ,缓冲数据计数器减 1MOV AL,20HMOV DX,304HOUT DX ,ALSTI ;开中断IRETADINT ENDP7. 利用8255A 和AD574A 设计数据采集系统,输入模拟电压为0 ~+10V,若每秒采集100个数据,转换后的数据字存放在 W_BUF开始的缓冲器中,低字节在前,高字节在后,采满16K 字节的数据后停止工作,要求:(1 )画出硬件连线图。

相关文档
最新文档