第6章输入输出及中断技术
- 格式:ppt
- 大小:589.50 KB
- 文档页数:82


第5章 微型机输入/输出与接口技术
1. 选择题
(1)通常在外设接口中,往往有( D )端口才能满足和协调外
设工作要求。
A)数据 B)数据、控制 C)控制、缓冲 D)数据、控
制、状态
(2)独立I/O端口的编址方式中,端口地址范围是( C )。
A)0~128 B)00~FF C)0000~FFFF D)000~
FFF
(3)8259A是( C )。
A)可编程控制器 B)总线仲裁器
C)可编程中断控制器 D)可编程DMA控制器
(4)微处理器与外设传送数据过程中,只需要硬件完成而不需要软
件支持的方式是:(A)
A)DMA B)无条件 C)查询 D)中断
(5)在程序控制方式传送中,( A )传送可提高系统的工作效
率。
A)中断 B)无条件 C)查询 D)前三
项
(6)采用条件传送方式时,必需要有( C )。
A)中断逻辑 B)请求信号 C)状态端口 D)类型
号
(7)下面哪一个中断的优先级最高( D )。
A)NMI中断 B)INTR中断 C)单步中断 D)端点中断
(8)用DMA方式传送数据时,是由( C )控制的。
A)CPU B)软件 C)硬件控制器 D)CPU+软
件
(9)传输数据时,用CPU时间最长的方式是( A )。
A)查询 B)中断 C)DMA D)IOP
(10)微处理器从启动外设直到外设就绪的时间间隔内,一直执行
主层序,直到外设要求服务时才终止,此种传送方式是( C )方
式。
A)DMA B)无条件 C)中断 D)查询
2. 简答题
(1)计算机输入/输出接口的基本功能是什么?
数据缓冲、数据类型和格式的转换、控制功能、传送主机命
令、程序中断、地址译码、反应设备的工作状态。 (2)请简述I/O端口的寻址方式。
(1)统一编址:指将每个端口视为一个存储单元,并赋以相应的存
储地址。
(2)独立编址:把所有的I/O端口看成一个独立于存储空间的I/O空
间,每个端口都被分配一个地址与之对应。
(3)中断排优方式有哪些?
第6章模拟量输入与输出6.1A/D转换的应用例6.1A/D转换初始化程序//A/D转换初始化子程序voidadinitial(){ADCON0=0x51;//选择A/D通道为RA2,打开A/D转换器//在工作状态,且使AD转换时钟为8toscADCON1=0X80;//转换结果右移,及ADRESH寄存器的高6位为"0"//且把RA2口设置为模拟量输入方式PIE1=0X00;PIE2=0X00;ADIE=1;//A/D转换中断允许PEIE=1;//外围中断允许TRISA2=1;//设置RA2为输入方式}6.1.2程序清单下面给出一个调试通过的例程,可作为读者编制程序的参考。该程序中用共用体的方式把A/D转换的10位结果组合在一起。有关共用体的详细资料请参考本书相关章节。#includeunionadres{inty1;unsignedcharadre[2];}adresult;//定义一个共用体,用于存放A/D转换的结果unsignedchari;unsignedintj;//系统各I/O口初始化子程序voidinitial(){TRISD=0X00;//D口为输出i=0x00;}//A/D转化初始化子程序voidadinitial(){ADCON0=0x51;//选择A/D通道为RA2,打开A/D转换器//在工作状态,且使A/D转换时钟为8toscADCON1=0X80;//转换结果右移,及ADRESH寄存器的高6位为"0"//且把RA2口设置为模拟量输入方式PIE1=0X00;PIE2=0X00;ADIE=1;//A/D转换中断允许PEIE=1;//外围中断允许TRISA2=1;//设置RA2为输入方式}//延时子程序voiddelay(){for(j=5535;--j;)continue;}//报警子程序voidalarm(){i=i^0xFF;//通过异或方式每次把i的各位值取反PORTD=i;//D口输出i的值}//中断服务程序voidinterruptadint(void){ADIF=0;//清除中断标志adresult.adre[0]=ADRESL;adresult.adre[1]=ADRESH;//读取并存储A/D转换结果,A/D转换的结果通过共//用体的形式放入了变量y1中if(adresult.y1>0x200){alarm();//如果输入的模拟量大于2.5V(对应数字量//0X200h),则调用报警子程序delay();//调用延时子程序,使电压检测不要过于频繁}elsePORTD=0XF0;//如果输入的模拟量小于2.5V,则与D口相连的//8个发光二极管的低4个发亮,表示系统正常ADGO=1;//启动下一次A/D转换}//主程序main(){adinitial();//A/D转换初始化initial();//系统各I/O口初始化ei();//总中断允许ADGO=1;//启动A/D转换while(1){;}//等待中断,在中断中循环检测外部电压}6.2.2I2C总线工作方式相关子程序1.C语言编写的I2C总线工作方式的初始化子程序//I2C初始化子程序voidi2cint(){SSPCON=0X08;//初始化SSPCON寄存器TRISC3=1;//设置SCL为输入口TRISC4=1;//设置SDA为输入口TRISA4=0;SSPSTAT=0X80;//初始化SSPSTAT寄存器SSPADD=0X02;//设定I2C时钟频率SSPCON2=0X00;//初始化SSPCON2寄存器di();//关闭总中断SSPIF=0;//清SSP中断标志RA4=0;//关掉74HC165的移位时钟使能,以免74HC165移位//数据输出与I2C总线的数据线发生冲突(此操作与该//实验板的特殊结构有关,不是通用的)SSPEN=1;//SSP模块使能}2.C语言编写的I2C总线工作方式传输数据子程序需要发送的数据在寄存器j中。//I2C总线输出数据子程序i2cout(){SEN=1;//产生I2C启动信号for(n=0x02;--n;)continue;//给予一定的延时,保证启动do{RSEN=1;//产生I2C重启动信号}while(SSPIF==0);//如果没能启动,则反复启动,直到启动为止SSPIF=0;//SSPIF标志清0SSPBUF=0X58;//I2C总线发送地址字节do{;}while(SSPIF==0);//等待地址发送完毕SSPIF=0;//SSPIF标志清0SSPBUF=0X01;//I2C总线发送命令字节do{;}while(SSPIF==0);//等待命令发送完毕SSPIF=0;//SSPIF标志清0SSPBUF=j;//I2C总线发送数据字节do{;}while(SSPIF==0);//等待数据发送完毕SSPIF=0;//SSPIF标志清0PEN=1;//产生停止条件do{;}while(SSPIF==0);//等待停止条件产生SSPIF=0;//SSPIF标志清0}6.2.4程序清单下面给一个例程。该程序利用MAX518进行D/A转换,且从D/A0引脚输出一个正弦波形。可作为读者编制程序的参考。特别注意,在调试该程序时,把模板上的钮子开关S8拔向高电平,以免发生资源冲突。#include//本程序将通过PIC16F877的I2C方式驱动D/A转换器MAX518,使其D/A0通道输出//一个连续的正弦波形(注:本程序并没对正弦波的频率进行控制)constchartable[]={0X80,0X86,0X8D,0X93,0X99,0X9F,0XA5,0XAB,0XB1,0XB7,0XBC,0XC2,0XC7,0XCC,0XD1,0XD6,0XDA,0XDF,0XE3,0XE7,0XEA,0XEE,0XF1,0XF4,0XF6,0XF8,0XFA,0XFC,0XFD,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFD,0XFB,0XF9,0XF7,0XF5,0XF2,0XEF,0XEC,0XE9,0XE5,0XE1,0XDD,0XD8,0XD4,0XCF,0XCA,0XC5,0XBF,0XBA,0XB4,0XAE,0XA8,0XA2,0X9C,0X96,0X90,0X89,0X83,0X80,0X79,0X72,0X6C,0X66,0X60,0X5A,0X55,0X4E,0X48,0X43,0X3D,0X38,0X33,0X2E,0X29,0X25,0X20,0X1C,0X18,0X15,0X11,0X0E,0X0B,0X09,0X07,0X05,0X03,0X02,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X02,0X04,0X06,0X08,0X0A,0X0D,0X10,0X13,0X16,0X1A,0X1E,0X22,0X27,0X2B,0X30,0X35,0X3A,0X40,0X45,0X4C,0X51,0X57,0X5D,0X63,0X69,0X6F,0X76,0X7C};//以上的数组用于存放正弦表,在定义数组时,前面应该加上const,//以使数组存放于ROM中,而不至于占用太多的RAMunsignedchari;unsignedcharj;unsignedcharn;//I2C初始化子程序voidi2cint(){SSPCON=0X08;//初始化SSPCON寄存器TRISC3=1;//设置SCL为输入口TRISC4=1;//设置SDA为输入口TRISA4=0;SSPSTAT=0X80;//初始化SSPSTAT寄存器SSPADD=0X02;//设定I2C时钟频率SSPCON2=0X00;//初始化SSPCON2寄存器di();//关闭总中断SSPIF=0;//清SSP中断标志RA4=0;//关掉74HC165的移位时钟使能,以免74HC165//移位数据输出与I2C总线的数据线发生冲突SSPEN=1;//SSP模块使能}//I2C总线输出数据子程序voidi2cout(){SEN=1;//产生I2C启动信号for(n=0x02;--n;)continue;//给予一定的延时,保证启动do{RSEN=1;//产生I2C启动信号}while(SSPIF==0);//如果没能启动,则反复启动,直到启动为止SSPIF=0;//SSPIF标志清0SSPBUF=0X58;//I2C总线发送地址字节do{;}while(SSPIF==0);//等待地址发送完毕SSPIF=0;//SSPIF标志清0SSPBUF=0X01;//I2C总线发送命令字节do{;}while(SSPIF==0);//等待命令发送完毕SSPIF=0;//SSPIF标志清0SSPBUF=j;//I2C总线发送数据字节do{;}while(SSPIF==0);//等待数据发送完毕SSPIF=0;//SSPIF标志清0PEN=1;//产生停止条件do{;}while(SSPIF==0);//等待停止条件产生SSPIF=0;//SSPIF标志清0}//主程序main(){i2cint();//I2C初始化while(1){for(i=0x00;i<=127;++i){j=table[i];//从数组中得到需要传输的数据量i2cout();//利用I2C总线方式送出数据}}}
第六章 输入输出系统
1、通过硬件和软件的功能扩充,把原来独占的设备改造成若干用户共享的设备,这种设备
称为( )。
A、存储设备 B、系统设备 C、虚拟设备 D、用户设备
2、CPU输出数据的速度远远高于打印机的打印速度,为解决这一矛盾,可采用( )。
A、并行技术 B.通道技术 C、缓冲技术 D、虚存技术
3、为了使多个进程能有效的同时处理I/O,最好使用( )结构的缓冲技术。
A、缓冲池 B、单缓冲区 C、双缓冲区 D、循环缓冲区
4、磁盘属于①( ),信息的存取是以②( )单位进行的,磁盘的I/O控制主要采
取③( )方式,打印机的I/O控制主要采取③( )方式。
①A、字符设备 B、独占设备 C、块设备 D、虚存设备
②A、位(bit) B、字节 C、桢 D、固定数据块
③A、循环测试 B、程序中断 C、DMA D、SPOOLing
5、下面关于设备属性的论述中正确的为( )。
A、字符设备的一个基本特征是不可寻址的,即能指定输入时的源地址和输出时的目标地址
B、共享设备必须是可寻址的和可随机访问的设备
C、共享设备是指在同一时刻内,允许多个进程同时访问的设备
D、在分配共享设备和独占设备时,都可能引起进程死锁
6、下面关于虚拟设备的论述中,正确的是( )。
A、虚拟设备是指允许用户使用比系统中具有的物理设备更多的设备
B、虚拟设备是指把一个物理设备变成多个对应的逻辑设备
C、虚拟设备是指允许用户以标准化方式来使用物理设备
D、虚拟设备是指允许用户程序不必全部装入内存便可使用系统中的设备
7、通道是一种特殊①( ),具有②( )能力,它用于实现③( )之间的信息传
输。
①A、I/O设备 B、设备控制器 C、处理机 D、I/O控制器
②A、执行I/O指令集 B、执行CPU指令集 C、传输I/O指令 D、运行I/O进程
③A、内存与外设 B、CPU与外设 C、内存与外存 D、CPU与外存
8、为实现设备分配,应为每类设备设置一张①( ),在系统中配置一张①( ),为实现设备的独立性,系统中应设置一张②( )。
第1页
《微机原理与接口技术》课程总结
本学期我们学习了《微型计算机原理与接口技术》,总的来说,我掌握的知识点可以说是少之又少,我感觉这门课的内容对我来说是比较难理解的。这门课围绕微型计算机原理和应用主题,以Intel8086CPU为主线,系统介绍了微型计算机的基本知识、基本组成、体系结构、工作模式,介绍了8086CPU的指令系统、汇编语言及程序设计方法和技巧,存储器的组成和I/O接口扩展方法,微机的中断结构、工作过程,并系统介绍了微机中的常用接口原理和应用技术,包括七大接口芯片:并行接口8255A、串行接口8251A、计数器/定时器8253、中断控制器8259A、A/D(ADC0809)、D/A(DAC0832)、DMA(8237)、人机接口(键盘与显示器接口)的结构原理与应用。在此基础上,对现代微机系统中涉及的总线技术、高速缓存技术、数据传输方法、高性能计算机的体系结构和主要技术作了简要介绍。
第一章:微型计算机概论
(1)超、大、中、小型计算机阶段(1946年-1980年)
采用计算机来代替人的脑力劳动,提高了工作效率,能够解决较复杂的数学计算和数据处理
(2)微型计算机阶段(1981年-1990年)
微型计算机大量普及,几乎应用于所有领域,对世界科技和经济的发展起到了重要的推动作用。
(3)计算机网络阶段(1991年至今)。
计算机的数值表示方法:二进制,八进制,十进制,十六进制。要会各个进制之间的数制转换。
计算机网络为人类实现资源共享提供了有力的帮助,从而促进了信息化社会的到来,实现了遍及全球的信息资源共享。
第二章:80X86微处理器结构
本章讲述了80X86微处理器的内部结构及他们的引脚信号和工作方式,重点讲述了8086微处理器的相关知识,从而为8086微处理器同存储器以及I/O设备的接口设计做了准备。本章内容是本课程的重点部分。
第三章:80X86指令系统和汇编语言
本章讲述了80X86微处理器指令的多种寻址方式,讲述了80X86指令系统中各指令的书写方式、指令含义及编程应用;讲述了汇编语言伪指令的书写格式和含义、汇编语言中语句的书写格式。另外,通过大量的实例讲述了汇编语言程序设计的基本方法,详细介绍了循环、分支、子程序的设计方法和DOS功能调用。