1、“微机原理与接口技术”试卷解析 2浙江大学光电系一、填 空1 程序存储器地址使用的计数器为 ; 外部数据存储器地址指针为 ;堆栈的地址指计为 。2外接程序存储器的选通(读)信号为 ,外接数据存储器的读信号为 。3已知 803l单片机的机器周期为 2 us,则 8051应外接晶振为 MHz,其指令周期最短为 。4.程序中“ LOOP: SJMP rel”的相对转移以转移指令所在地址为基点向大地址方向最多偏移 个单元地址,向小地址方向最多偏移 个单元地址。5.串行口的中断矢量地址为 , 在同一优先级中,排列位。PCDPTR SPPSENRD6 2us129-1260023H第 5二、简述 8031
2、单片机 ALE引脚的时序功能,请举例说明其在应用系统中有哪些应用。【 答 】 ALE被称为“地址锁存信号”。时序上,当 ALE输出为高电平时, 8051的 P0口输出地址线的低 8位 A0 A7(此时 74LS373直通(或称透明),当 ALE从高变低时,低 8位地址线 A0 A7 被锁存到 74LS373的输出端。所以 ALE信号通过锁存器( 74LS373 )来锁存 A0 A7。在时序上 ALE以 1/6振荡频率的固定速率输出。在应用系统中, ALE主要有两个用途:在 805l并行扩展时, P0 口为地址 /数据复用口。利用 ALE信号来锁存地址 A0 A7。 ALE输出频率为 1/6振荡
3、频率的脉冲信号。三、设( 70H) 60H,( 60H) 20H, P1口为输入口,当前输入状态为 B7H,执行下面程序:MOV R0, #70HMOV A, R0MOV R1, AMOV B, R1MOV P1, #0FFHMOV R0, P1试分析( 70H)、( B)、( R0)、( R1)的内容各是什么?( 70H) =B7,( B) =20H,( R0) =70H,( R1) =60H四、简述下列程序段完成的功能,程序完成后 SP指针指向哪里?MOV SP, #2FHMOV DPTR, #2000HMOV R7, #50HLOOP: MOVX A, DPTRPUSH ACCINC D
4、PTRDJNZ R7, LOOPSJMP $7FH五、按题意编写程序并加以注释 ,加上必要的伪指令。已知经 A D转换后的温度值存在 4000H中,设定温度值存在片内 RAM的 40H单元中,要求编写控制程序,当测量的温度值大于设定温度值时,从 P1.0引脚上输出低电平;当测量的温度值小于设定温度值时,从 P1.0引脚上输出高电平;当测量的温度值等于设定温度值时,P1.0引脚输出状态不变。【 答 】 程序如下 :ORG 0000HAJMP MAIN ORG 0030HMAIN: MOV DPTR, #4000HMOV B, 40H ;设定的温度值送 BMOVX A, DPTR ;取测量的温度值
5、CLR CSUBB A, BJZ MAIN ;相等, P1.0输出不变JNC LOWER ;测量的温度值 设定温度值,转移SETB P1 0 ;测量的温度值 设定温度值, P1.0输出低电平SJMP MAINEND 六、简述行列式扫描键盘的工作原理。答 : 扫描键盘工作原理 首先按键判断: X0X3始终接高电平 ,Y0Y3给低电平 ,读取 P1.0P1.3若全为高电平 ,则没有键按下 ,若有低电平 ,则有键按下。 接着逐行扫描:Y0输出低电平 ,Y1Y3输出高平 ,扫描 P1.0P1.3,若全为高电平 ,则没有键按下 ,若有低电平 ,则找出相位 ,得到所按的键。 再 Y1输出低电平 ,Y0,Y
6、2,Y3输出高电平 ,重复第 2 步骤作 . 再 Y2输出低电平 ,Y0,Y1,Y3输出高电平扫描 再 Y3输出低电平 ,Y0,Y1,Y2输出高电平扫描 根据以上扫描,确定以上各键是否按下。七、请回答: (共 20分 )1、下图中外部扩展的数据存储器容量是多少? (2分 )2、三片 6264的地址范围分别是多少? (地址线未用到的位填 1)(6分 )3、若外部程序存储器已扩展(未画出),请编写程序,要求: 将 30H3FH中的内容送入 6264 1# 的前 16个单元中; (6分 ) 将 6264 2# 的前 32个单元的内容送入 40H5FH中; (6分 )P2.7 P2.6 P2.5 P2
7、.4 P2.0 AL E 8031 P 0.0 P0.7 RDWR D 0 Q 0 D 7 Q 7 G OE A0 A 7 A 8 A 12 C S 626 4 1# CE D0 D 7 DEWR A0 A 7 A 8 A 12 C S 626 4 2# CE D0 D 7 DEWR A0 A 7 A 8 A 12 C S 626 4 3# CE D0 D 7 DEWR 8 5 8 8 8 8 8 373 V c c V c c V c c 解:1、系统外扩了 3片 8K的 RAM,所以共外扩了 24K的数据存储器。2. A15 A14 A13 地址范围1 6264芯片 0 1 1 6000H
8、7FFFH2 6264芯片 1 0 1 A000HBFFFH3 6264芯片 1 1 0 C000HDFFFH3( 1)程序如下:ORG 0000HSTART: AJMP MAIN ;转主程序ORG 0100HMAIN: MOV DPL,#00H ;初始化 DPTRMOV DPH,#60HMOV R0,#30H. ;初始化 R0Loop: MOV A, R0MOVX DPTR, AINC R0INC DPTRCJNE R0,#40H,Loop SJMP $( 2) 程序如下 :ORG 0000HSTART: AJMP MAIN ;转主程序ORG 0100HMAIN: MOV DPL#00H ;
9、初始化 DPTRMOV DPH,#0A0HMOV R0,#40H ;初始化 R0Loop2: MOVX A,DPTR MOV R0,AINC DPTRINC R0CJNE R0,#60H,Loop2 SJMP $编程题1. 编程将 2000H单元开始存放的 100个 ASCII码加上奇校验后从 8031单片机的 P1口依次输出。(加上适当注释)ORG 0000SJMP BEGINORG 0030HBEGIN: MOV DPTR, #2000H ; ASCII码首地址MOV R0, #64H ;发送计数器LOOP: MOVX A, DPTR ;取 ASCII码MOV C, PCPL CMOV A
10、CC 7, C ;置奇校验MOV P1, A ;输出INC DPTRDJNZ R0, LOOP ;循环SJMP $END ASCII码有效位为 7位,因此,字节的最高位可以用做奇偶校验位,使得字节中 8位(包括 ASCII码 7位 )反映累加器 A中 1的个数的奇偶性。2.已知热电偶采样值以补码形式存于 40H中。编写控制程序,当采样值大于 0时,置PSW中用户标志 F0为 1;当采样值小于 0时,置用户标志 F0为 0;当采样值为 0时,将用户标志 F0变反。(加以注释,并加上必要的伪指令)ORG 0000SJMP MAINORG 0030HMAIN: MOV A,40H ;取热电偶采样值C
11、JNE A, #0, NZERO ;采样值不为 0,转移CPL F0 ; 采样值 =0,用户标志 F0变反SJMP EXITNZERO: MOV A, 40HJB ACC.7, NEG ;采样值是否为负 ?SETB F0 ;采样值 0,用户标志 FO置 1SJMP EXIT NEG: CLR F0 ;采样值 0,用户标志 F0置 0EXIT: SJMP EXIT END这是一个三分支程序,根据采样值大于 0、小于 0或等于 0而形成分支。3.已知一批 8位带符号数从 1000H单元开始存放,以 ASCII码字符“”为结束字节,这批数的个数最大不超过 126。请编写源程序对这批 8位带符号数中的
12、正数、 0、负数分别进行统计,统计结果依次存入外部 RAM的 20H、 21H和 22H单元中。对源程序加以注释和伪指令。ORG 0000H MOV DPTR, #0020H ;清计数单元 MOV A, #00H MOV 20H, A MOV 21H, A MOV 22H, A MOV DPTR, #1000H ;带符号数存储单元首址 MOV R1, #126 ;带符号数长度计数器LP: MOVX A, DPTR ;取带符号数CJNE A,“ $”, LPlSJMP LOOP ;是结束字节,停止LP1: JZ ZERO ;是零,转 ZEROJB ACC 7, NEG ;是负数,转 ZEROIN
13、C 20H ;是正数,正数个数加 lSJMP END0ZER0: INC 21H ;是 0, 0个数加 1SJMP END0NEG: INC 22H ;是负数,负数个数加 1END0: INC DPTRDJNZ R1, LP ;统计未结束,循环LOOP: MOV DPTR, #0020H ;转存外部 RAMMOV R0, #20HMOV R1, #03HSAVE: MOV A, R0MOVX DPTR, AINC DPTRINC R0DJNZ R1, SAVESJMP $END注意:1)应先判结束关键字“ &”,因为带符号数长度可能为 0,否则统计出错。 0和正数的符号位都是 0,应先判 0。
14、2) 8位带符号数存储区和统计结果存储区都以 DPTR为指针,有冲突,所以统计结果先存储在内部 RAM中,统计结束后再转移。 4.采用 6MHz的晶振,定时 2ms,用定时器方式 1时的初值应为多少?(请给出计算过程)答:(1) TM=2us (216 X) 2us 2ms 从而 X 64536 . .4分(2) 64536 FC18H2 分 5. 已知如图并给出下列程序,请在读图并理解程序后回答下列问题: (1)程序功能为 _。 (2)ADC0809的口地址为 _。 (3)EOC的作用是 _。 (4)程序运行结果存于 _。ADC: MOV DPTR, #7FF0H MOV R0, #0A0H
15、 MOV R2, #8 MOV A, #0LOOP: MOVX DPTR, A JB P3.3, $ MOVX A, DPTR MOVX R0,A INC DPTR INC R0 DJNZ R2,LOOP AJMP ADC(1)巡回采集 8个通道的数据(2)ADC0809口地址为 7FF0H 7FF7H(或 7FF8 7FFFH)(3)EOC为 A/D转换结束信号,用来引起中断或查询,以便读取 A/D的转换结果。(4)结果存入外部 RAM的 A0H A7H。6.阅读下列程序,说明其功能。 MOV R0,#data MOV A,R0 RL A MOV R1, A RL A RL A ADD A, R1 MOV R0,A RETdata 10( data 10后,仍为一个字节)7.阅读下列程序段并回答问题:1)该程序执行何种操作 ? 2)已知初值( 60H) =23H,( 61H) =61H, 运行程序后( 62H) =?START: CLR CMOV A, #9AHSUBB A, 60HADD A, 61HDA AMOV 62H, A 38H