1、模拟试题二一、填空题(30 分)(每空 1 分)1)8051 系列单片机中,片内数据存储区一共分为 4 个区,这 4 个区分别为:; ; ; 。2)8K 字节的存储器共有地址线 根。3)38 译码器 74LS138 在全译码寻址方式中,译码器的输出端通常与单片机接口芯片的端连接。4)当单片机接到外设的中断申请时,单片机响应中断,单片机将暂停主程序的执行,转去执行 程序,执行完 ,再执行 程序。5)8051 单片机的中断源有: , , , , 。6) 单片机 P0 口为 总线和 总线的复用端口,74LS373 与 P0 口连接,其输出线作为系统的 ,74LS373 的 G 端与单片机 连接。7)
2、 已知程序执行前有 A=01H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后:POP DPHPOP DPLMOV DPTR,#3000HRL AMOV B,AMOVC A,A+DPTRPUSH AMOV A,BINC AMOVC A,A+DPTRPUSH ARETORG 3000HDB 10H,80H,30H,80H,50H,80H请问:A=( ),SP=( ),(51H)=( ),(52H)=( ),PC=()。9) 如果 DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:POP DPHPOP DPLPO
3、P SP则:DPH=( ),DPL=( ),SP=( )10) 假定 A=83H,(R0)=17H,(17H)=34H,执行以下指令:ANL A,#17HORL 17H,AXRL A,R0CPL A后,A 的内容为( )。二、简答题(20 分)1) 单片机的复位(RST)操作有几种方法,复位功能的主要作用。(5 分)2) 编制中断服务程序时,为什么在主程序的初始化程序中,必须设置 SETB EA 这条指令,以及在中断服务程序中为什么通常需要保护现场和恢复现场?(10 分)3) 中断服务子程序返回指令 RETI 和普通子程序返回指令 RET 有什么区别?(5 分)三、判断下列指令的正误:(10
4、分)1)MOV 28H,R2 ( )2)DEC DPTR ( )3)INC DPTR ( )4)MOV C,30H ( )5)CPL R5 ( )6)MOV R0,R1 ( )7)PUSH DPTR ( )8)MOV F0,C ( )9)MOV F0,ACC.3 ( )10)RLC R0 ( )四、编程题(40 分)1、编制中断初始化程序,外部中断 0(跳变触发)、定时器 0 开中断(中断允许);外部中断 1、定时器 1 关中断(不允许中断)。(5 分)2、编程将片内 RAM 40H 单元开始的 16 个数传送到片外 RAM 2000H 开始的单元中。(5 分)3、使用定时器中断方式编程实现从
5、 P1.0 引脚上输出一个周期为 1s 的方波。(系统时钟为6MHz)(15 分)4. 根据硬件图计算 ADC0809 的 8 个模拟量输入通道的地址,并编写程序实现 8 个通道的模拟量循环采集,采集结构存放至片内 RAM 40H47H 中。( 15 分)模拟试题二参考答案一、填空题(每空 1 分)1、工作寄存器区、位寻址区、数据缓冲区、特殊功能寄存器区2、133、片选端4、中断服务程序,中断服务程序,主程序4、外部 0 中断,定时器 T0 中断,外部 1 中断,定时器 T1 中断,串行口通讯中断5、数据,地址,地址,ALE6、中断服务,中断服务,主7、30H,50H,80H,30H,3080
6、H8、3CH,5FH,4FH9、0CBH二、简答题1、单片机的复位操作方式有:1、上电复位;2、手动复位。 (2 分)复位功能的主要作用是:复位时,PC 初始化为 0000H,使 MCS-51 单片机从 0000H 开始执行程序。(3 分)2、中断允许寄存器 IE 中有 1 个总的开关中断控制位 EA,当 EA=0 时,所有的中断请求被屏蔽,CPU 不接受任何中断;只有当 EA=1 时,CPU 才开放中断。所以主程序的初始化程序中,必须设置 SETB EA 这条指令。 (5 分)现场是指中断时刻单片机中某些寄存器和储存器单元中的数据或状态,为了使中断服务程序的执行不破坏这些数据和状态,以免在中
7、断返回后影响主程序的运行,因此要这些数据和状态送入堆栈保存,这就是现场保护。中断结束后,在返回主程序谦,则需要把保存的现场数据和状态从堆栈中弹出,以恢复那些寄存器和存储器单元中的原有内容,这就是现场恢复。 (5 分)3、中断服务子程序返回指令 RETI 和普通子程序返回指令 RET 的区别在于:RETI 指令在返回的同时清除相应的优先级触发器,以允许下次中断。(5 分)三、判断下列指令的正误:(10 分)1、 2、 3、 4、 5、 6、 7、 8、 9、 10、四、编程题1、编制中断初始化程序,外部中断 0(边沿触发)、定时器 0 开中断(中断允许);外部中断 1、定时器 1 关中断(不允许
8、中断)。 (5 分)解:SETB EX0SETB IT0SETB ET0CLR ET1CLR EX1SETB EA2、编程将片内 RAM 40H 单元开始的 16 个数传送到片外 RAM 2000H 开始的单元中。(5 分)解: MOV R0,#40HMOV R7,#16MOV DPTR,#2000HLOOP: MOV A,R0MOVX DPTR,AINC R0INC DPTRDJNZ R7,LOOPNOPEND3、使用定时器中断方式编程实现从 P1.0 引脚上输出一个周期为 1s 的方波。(系统时钟为6MHz)解:使用定时器 T0 产生 50ms 的定时,然后在计数 10 次,从而 500m
9、s 的定时。 (5 分)ORG 0000HAJMP MAINORG 000BHLJMP TMR0_INTORG 0030HMAIN:MOV TMOD,#01HMOV TH0,#9EHMOV TL0,#58HMOV R7,#10SETB ET0SETB EASETB TR0SJMP $TMR0_INT: CLR TR0DJNZ R7,LOOPMOV R7,#10CPL P1.0LOOP: MOV TH0,#9EHMOV TL0,#58HSETB TR0RETI (10 分)3、根据如下电路连接图计算 ADC0809 的 8 个模拟量输入通道的地址,并编写程序用中断方式实现 8 个通道的模拟量循环
10、采集,采集结构存放至片内 RAM 40H47H 中。解:根据电路连接图可计算出 ADC0809 的 8 个模拟量输入通道的地址为:7F00H7F07H (5 分)循环采集的程序设计如下:ORG 0000HAJMP MAINORG 0003HLJMP INT0_INTORG 0030HMAIN: MOV DPTR,#7F00HMOV R0,#40HMOV R7,#8SETB EX0SETB EAMOVX A,DPTRSJMP $INTO_INT: MOVX A,DPTRMOV R0,AINC DPTRINC R0MOVX DPTR,ADJNZ R7,LOOPMOV DPTR,#7F00HMOV R0,#40HMOV R7,#8LOOP: RETI