微机原理与接口技术+参考答案

add al,30h mov date[ebx],al add ebx,1 and dl,0fh add dl,30h mov date[ebx],dl add ebx,2 mov al,8 out 70h,al in al,71h mov dl,al shr al,4 add al,30h mov date[ebx],al add ebx,1 and dl,0fh add dl,30h mov date[ebx],dl add ebx,2 mov al,7 out 70h,al in al,71h mov dl,al shr al,4 add al,30h mov date[ebx],al add ebx,1 and dl,0fh add dl,30h mov date[ebx],dl mov eax,offset date call dispmsg exit 0 end start

; 保存到缓冲 ; 显示

; 转换低位BCD码为ASCII码 ; 保存到缓冲区

; 转换高位BCD码为ASCII码 ; AL=7(从7号单元获取日期数据) ; 保存到缓冲

; 转换低位BCD码为ASCII码 ; 保存到缓冲区

; 转换高位BCD码为ASCII码 ; AL=8(从8号单元获取月份数据) ; 保存到缓冲

; 转换低位BCD码为ASCII码 ; 保存到缓冲区

第8章 常用接口技术

〔习题8.1〕简答题

〔解答〕

① 方式1可以通过编程产生一个确定宽度的单稳脉冲,故称工作方式1为可编程单稳脉冲工作方式。 ② 因为计数器是先减1,再判断是否为0,所以写入0实际代表最大计数值。

③ 通过控制字的D7位来区别:D7=1,该控制字为方式控制字;否则为位控制字。

④ 8255的三种工作方式均可实现输出数据锁存,即数据输出后被保存在8255内部,可以读取出来,只有当8255再输出新一组数据时才改变。

⑤ Modem,称为调制解调器,将数字信号转换为适合在电话线路上传送的模拟信号(调制)以及将电话线路的模拟信号转换为数字信号(解调)。

⑥ 因绝大多数设备只使用RS-232C标准的其中9个信号,所以PC机上就配置9针连接器。

⑦ 两台微机进行短距离通信,可以不使用调制解调器,直接利用232C接口连接,被称为零调制解

- -49

调器(Null Modem)连接。

⑧ UART表示通用异步接收发送器,主要功能是将并行数据转换为串行数据发送,以及实现串行数据转换为并行传送给处理器。

⑨ 采用多路开关,通过微型机控制,把多个现场信号分时地接通到A/D转换器上转换,达到共用A/D转换器以节省硬件的目的。

⑩ 处理器输出数据都只在输出指令OUT执行的极短时间内出现在数据总线上,慢速的外设不能及时获取,所以主机与DAC之间必须连接数据锁存器。 〔习题8.2〕判断题 〔解答〕

① 对 ⑥ 错

② 对 ⑦ 错

③ 对 ⑧ 对

④ 对 ⑨ 对

⑤ 对 ⑩ 对

〔习题8.3〕填空题

〔解答〕

① 3,16,6,低,写入计数初值(并进入减1计数器),脉冲输入CLK,减法计数器,计数器的计数值减为0,高

② 5(=1.5MHz÷300KHz),3

③ 24,PA0~PA7,PB0~PB7,PC0~PC7 ④ 10110110(=B6H,B7H) ⑤ OBF

⑥ 01H,1DH(=30),81H,9DH(=158) ⑦ TxD,RxD,GND

⑧ 通信线路控制(CLR),00011111B(1FH),2FBH ⑨ 10100000,01100000

⑩ 53H(=51≈51.2=2÷10×256) 〔习题8.4〕

8253芯片每个计数通道与外设接口有哪些信号线,每个信号的用途是什么?

〔解答〕

CLK时钟输入信号:在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1。 GATE门控输入信号:控制计数器工作,可分成电平控制和上升沿控制两种类型。

OUT计数器输出信号:当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号。 〔习题8.5〕

8253芯片需要几个I/O地址,各用于何种目的? 〔解答〕

4个,读写计数器0,1和2,及控制字。 〔习题8.6〕

试按如下要求分别编写8253的初始化程序,已知8253的计数器0~2和控制字I/O地址依次为204H~207H。

① 使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。 ② 使计数器0工作在方式1,按BCD码计数,计数值为3000。 ③ 使计数器2工作在方式2,计数值为02F0H。 〔解答〕

mov al,50h mov dx,207h out dx,al mov al,128 mov dx,205h

; =80h

- -50

联系客服:779662525#qq.com(#替换为@)