试题 8 参考答案 一、填空 1.执行 MOVX @R1,A 指令时,伴随着( WR* )控制信号有效。 2.AT89S51 单片机复位时,PC 指针的内容为( 0000H ),4 个端口寄存器 P0~P3 中的内容为(FFH )。 3.PSW 寄存器中的 AC 标志位,称为( 辅助进位 ) 标志位,是用于(BCD 码)运算时,用作(十进位调 整)。 4.AT89S51 单片机采用外部时钟电路时,( XTAL2 )引脚应悬空。外部振荡器输出的时钟信号接(XTAL1) 引脚。 5.设计一个以 AT89S51 单片机应用系统,如果仅使用其内部 4KB 闪存作为程序存储器,则其( EA* )引脚 应该接(+5V)。 6.当 AT89S51 单片机复位后,中断优先级最高的中断源是(外中断 0)。 7.已知8段共阳极LED数码管要显示字符“5”(a段为最低位),此时的段码为( 6DH )。 8.在 R5 初值为 FF 时,DJNZ R7,rel 指令将循环执行( 255 )次。 9.某数据存储器 62128 芯片的地址线为( 14 )条,那么它的存储容量为( 16 KB )。假设 62128 的起始 地址为 6000H,它的末地址为( 7FFFH )。 10.当时钟频率为 12MHz 时,定时器 T0 方式 2 下的最大定时时间为( 256µs )。 11.若 ( A )中的内容为 68H,那么 P 标志位为( 1 )。 12.(AT89S52)单片机片内有 8K 字节的闪烁存储器,有( 256 )字节的片内 RAM 单元。 13.以 AT89S51 为核心的单片机最小系统,除了要有单片机外,还要有( 时钟 )电路和(复位)电路。 14.当 AT89S51 执行 MOVC A,@A+DPTR 指令时,伴随着(PSEN* )控制信号有效。 15.51 单片机的跳转指令 LJMP 的跳转范围是(64KB ),AJMP 的跳转范围是(2KB )。 16.AT89S51 单片机与慢速外设进行数据传输时,最佳的数传方式是采用(中断方式 )。 17.单片机从调用的子程序返回时,必须执行的返回指令是(RET)。 18.AT89S51单片机控制LCD显示英文字符或数字字符时,要把欲显示字符的( ASCII )码送给LCD控制模 块。 19.如果定时器的启动和停止要由两个信号TRx(x=0,1)和 INT x (x=0,1)来共同控制,此时寄存器TMOD 中的GATEx(x=0,1)位必须为( 1 )。 20.串行口方式 3 接收数据时,(SCON)寄存器的(REN)位必须为 1,接收到的第 9 位数据进入到该寄存 器的(RB8)位中。 21.D/A 转换器的两个最重要的技术指标为( 分辨率 )和( 建立时间 )。 22.某 10 位 A/D 转换器的转换电压的范围为 0∼10V,其分辨率为( 9.77 )mV。 23.AT89S51 单片机访问片外数据存储器的寻址方式是( 寄存器间接寻址 )。 24.当用串行口进行串行通信时,为减小波特率误差,使用的时钟频率为(11.0592)MHz。 二、判断,在后面的括号中填入“√”或“×” 1.单片机扩展 I/O 接口芯片,要占用片外数据存储器的地址资源。(√ ) 2.单片机的功能侧重于测量和控制,DSP 侧重于高速、复杂运算。(√ )
3.AT89S51 单片机进行串行通讯时,定时器方式 2 能产生比方式 1 更低的波特率。( × ) 4.同为高中断优先级,外部中断 0 能打断正在执行的外部中断 1 的中断服务程序。( × ) 5.在 AT89S51 单片机的汇编语言中,操作码是唯一不能空缺的部分。(√ ) 6.软件延时程序比定时器的定时更精确。( × ) 7.中断服务子程序可以直接调用。( × ) 8.特殊功能寄存器 TCON,仅与定时器/计数器的控制相关。( × ) 9.LED 数码管工作于动态显示方式时,同一时间只有一个数码管被点亮。(√ ) 10.数据指针 DPTR 只用于访问数据存储器。( × ) 11.如果只有一路模拟量输出,DAC0832 可以采用单缓冲方式,如果有多路模拟量输出,DAC0832 则必须 采用双缓冲方式。( × ) 12.AT89S51 单片机的 P1 口如果作为输入端口使用时,必须先向 P1 口写入 FFH。(√ ) 13.并行接口芯片 82C55 的方式 0 是无条件的输入输出方式。( √ ) 14.指令中直接给出的操作数称为直接寻址。( × ) 15.AT89S51 片内 RAM 的位寻址区,只能进行位寻址,不能进行字节寻址。( × ) 16.“INC A”和“DEC A”指令不影响程序状态字 PSW 中的任何标志。(× ) 三、简答 1. 在中断服务程序中为什么需要保护现场和恢复现场? 答:现场是指中断时单片机中某些寄存器和存储器单元中的数据或状态,为了使中断服务的执行不破坏这 些数据和状态,以免在中断返回后影响主程序的运行,因此要把这些数据和状态送入堆栈,进行保护。在 返回主程序时,则需要把保存的现场数据和状态从堆栈中弹出,以恢复那些寄存器和存储器单元中的原有 内容。 2.AT89S51单片机定时器T0的方式2是多少位的定时/计数器?简述其工作过程。 答:定时器工作方式2是一种自动重装初值的8位定时计数器,TL0用于计数,TH0保存计数初值。当TL0计满 溢出时,溢出脉冲打开了TL0和TH0之间的三态门,使TH0的内容自动装入TL0,重复计数。 四、AT89S51 单片机与 3 位 8 段共阳极 LED 相接,静态显示。 1.分别写出显示字符“1.”、“2”、“3”的段码,注:段码的最低位为“a”段,段码的最高位为“dp”段; 2.已知 82C55 的 PA 口、PB 口和 PC 口的地址分别为 FF7CH、FF7DH、FF7EH,且 82C55 的这 3 个端口均已 被编写完毕的初始化程序初始化为方式 0 输出,请编写出使 3 位 LED 共阳极显示器从左至右显示“1.23” 的程序段。 a b c d e f g ● dp 82C55 PA PB PC 来自 AT89S51 · · · +5V º
答:(1)“1.”的段码:79H,“2”的段码:A4H,“3”的段码:B0H。 (2) MOV A,#79H MOV DPTR,#0FF7CH MOVX @DPTR,A MOV A,#0A4H MOV DPTR,#0FF7DH MOVX @DPTR,A MOV A,#0B0H MOV DPTR,#0FF7EH MOVX @DPTR,A 五、AT89S51 单片机通过 ADC0809 进行模数转换,采用中断控制方式,请回答: 1.标出图中①、②、③所对应的引脚符号; 2.填写程序或注释中的空白部分 a~f ; 3.程序中的“#addr”为模拟输入的端口地址,当单片机分别对“IN0”、“IN3”和“IN7”进行模数 转换时,写出对应的“#addr”的取值(注意:地址线未用到的位为 1)。 ORG 0000H AJMP MAIN ORG 0013H ; a 的中断入口地址 b ;读 A/D 转换结果 RETI ORG 0100H MAIN: SETB IT1 ; c 触发方式选择 SETB d ;总中断允许 SETB e ;允许中断 MOV DPTR,#addr ;指向某一模拟输入通道 f ;启动 A/D 转换 SJMP $ ;等待中断 答:1. ①为“INT1”,②为“WR*”,③为“RD*”; 2. a 填“外部中断 1”,b 填“MOVX A,@DPTR”,c 填“下降沿”,d 填“EA”,e 填“EX1”,f 填“MOVX @DPTR,A”;
3. “IN0”的端口地址为:7FF8H, “IN3”的端口地址为:7FFBH, “IN7”的端口地址为:7FFFH。 六、请回答: 1.下图中单片机外部扩展的程序存储器和数据存储器容量各是多少? 2.三片存储器芯片的地址范围分别是多少?(地址线未用到的位为 1) 3.请编写程序,将内部 RAM 40H~4FH 中的内容送入 1# 6264 的前 16 个单元中; 答: 1.外部扩展的程序存储器容量为:8KB 外部扩展的数据存储器容量为:8KB×2=16KB 2.程序存储器 2764 地址范围为:0000H~1FFFH 数据存储器 1#6264 地址范围为:6000H~7FFFH 数据存储器 2#6264 地址范围为:A000H~BFFFH 3.编写程序 MOV R0,#40H MOV DPTR,#6000H ;设置数据指针为 6000H LOOP: MOV A,@R0 ;将片内 RAM(40~4FH)中的内容送入 A 中 MOVX @DPTR,A ;将 A→@DPTR 中 INC R0 INC DPTR CJNE R0,#50H,LOOP ;将此子程序,循环执行 16 次 RET