单片机原理及应用习题及答案.pdf
试题 1 参考答案 一、填空题( 25 分,每空 1 分) 1. AT89S51单片机为8 位单片机 2. MCS-51 系列单片机的典型芯片分别为 8031 、 8051 、 8751 。 3. AT89S51的异步通信口为全双工(单工 /半双工 /全双工) 4. AT89S51有2 级中断,5 个中断源 5. AT89S51内部数据存储器的地址范围是00H7FH , 位地址空间的字 节地址范围是20H2FH ,对应的位地址范围是00H7FH ,外部数据存储 器的最大可扩展容量是64K 。 6. AT89S51 单片机指令系统的寻址方式有_寄存器寻址 _、_直接寻址 _、_寄存器间接寻址 _、_立即寻址 _、 基址寄存器加变址寄存器寻 址。 7. 如果(A)=34H,(R7)=0ABH ,执行 XCH A, R7;结果 (A)= 0ABH , (R7)=34H 。 8. 82C55可以扩展 3个并行口,其中8 条口线具有位操作功能; 9. 当单片机复位时 PSW 00 H,这时当前的工作寄存器区是0 区,R4 所对 应的存储单元地址为04 H。 10. 若 A 中的内容为 67H,那么, P 标志位为1 。 11. 74LS138是具有 3 个输入的译码器芯片,其输出作为片选信号时,最多可以 选中8 片芯片。 二、判断以下指令的正误: (5 分) (1)MOV 28H,R4;(×) (2)INC DPTR;( ) (3)DEC DPTR ;(×) (4)CLR R0 ;(×) (5)MOV T0,#3CF0H; (×) 三、简答题 1、如果 (DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH, 则执行下列指令后: POP DPH; POP DPL; POP SP; 则:(DPH)= _3CH_; (DPL)=_5FH_; (SP)=_50H_; (6 分) 2、采用 6MHz 的晶振,定时 1ms,用定时器方式0 时的初值应为多少?(请给 出计算过程)(6 分) 解:采用 6MHZ 晶振 机器周期为 2us (2 13-X)×2×10-6=1×10-3 X=7692 (D )=1E0CH=1 1110 0000 1100 (B) , 化成方式 0 要求格式为 1111 0000 1100 B 即 0F00CH 综上可知 :TLX=0CH, THX=0F0H 3. 分析下列程序的功能( 5 分) PUSH ACC PUSH B POP ACC POP B 解: 该程序的功能是通过累加器ACC 与寄存器 B 数据交换。 四、图为 8 段共阴数码管,请写出如下数值的段码。 0_ 3FH_1_06H_2_5BH 3_ 4FH_4_ 66H_ 5 6DH_ P_73H_ 7_03H_ 8 _7FH_ C_39H_ a b c d e f g h D0 D1 D2 D3 D4D5 D6 D7 b a c d e f g h 五、简述 MCS-51 系列单片机主从结构多机通信原理,设有一台主机与三台从机 通信,其中一台从机通信地址号为01H,请叙述主机呼叫从机并向其传送一个字 节数据的过程。 (请给出原理图 ) (10 分) 答: 原理图如上图所示,假设主机呼叫01H 从机,首先呼叫:主机发送地址帧 0000 00011 (TB8)此时各从机的 SM2 位置 1,且收到的 RB8=1,故激活 RI。各 从机将接收到的地址与地机地址比较,结果1#机被选中,则其 SM2 清零; 0#、 2#机不变。接着传数;主机发送数据帧,××××××××0 ,此时 1#机 SM2=0, RB8=0 则激活 RI,而 0#,2#机 SM2=1,RB8=0 则不激活 RI,然后数据 进入 1#机的缓冲区。 六、简述一种多外部中断源系统的设计方法。(给出图和程序 )(10 分) 答:原理电路如图所示 程序如下: INT: PUSH PSW PUSH JNB P1.0, IR0 ;扫描中断请求 TXD RXD 8031 主机 TXD RXD 00H TXD RXD 01H TXD RXD 02H TXD RXD 03H 从机从机从机从机 JNB P1.1 , IR1 JNB P1.2, IR2 JNB P1.3, IR3 INTIR :POP;返回 POPSW IR0: 中断服务子程序;中断服务 AJMP INTIR IR1: 中断服务子程序 AJMP INTIR IR2: 中断服务子程序 AJMP INTIR IR3: 中断服务子程序 AJMP INTIP 七、简述行列式扫描键盘的工作原理。(8 分) 答: 扫描键盘工作原理 (1) 首先 X0X3,始终接高电平 ,Y0Y3 给低电平 ,扫描 P1.0P1.3若全为高电 平,则没有键按下 ,若有低电平 ,则有键按下。 (2) 接着 Y0 输出低电平 ,Y1Y3 输出高平 ,扫描 P1.0P1.3, 若全为高电平 ,则 没有键按下 ,若有低电平 ,则找出相位 ,得到所按的键。 (3) 再 Y1 输出低电平 ,Y0,Y2,Y3 输出高电平 ,重复第 2 步骤作 . (4) 再 Y2 输出低电平 ,Y0,Y1,Y3 输出高电平扫描 (5) 再 Y3 输出低电平 ,Y0,Y1,Y2 输出高电平扫描 根据据以上扫描,确定以上各键是否按下。 八、请回答: (共 20 分) 1、下图中外部扩展的数据存储器容量是多少?(2 分) 2、三片 6264 的地址范围分别是多少?(地址线未用到的位填1) (6 分,) 3、若外部程序存储器已扩展(未画出) ,请编写程序,要求: (1) 将 30H3FH 中的内容送入 6264 1# 的前 16 个单元中; (6 分) (2) 将 6264 2# 的前 32 个单元的内容送入40H5FH 中;(6 分) P2.7 P2.6 P2.5 P2.4 P2.0 ALE 8031 P0.0 P0.7 RD WR D0 Q0 D7 Q7 G OE A0A7 A8A12 CS 62641# CE D0D7 DEWR A0A7 A8A12 CS 6264 2# CE D0D7 DEWR A0A7 A8A12 CS 62643# CE D0D7 DEWR 8 5 8 8 8 8 8 373 Vcc Vcc Vcc 解: 1.外部扩展的数据存储器为3 片 8K 的 RAM ,外扩容量为 24 K 2. A15 A!4 A13 地址范围 0 1 1 6000H7FFFH 1 0 1 A000HBFFFH 3 (1)程序如下: ORG 0000H RESET:AJMP MAIN ;复位,转主程序 ORG 0100H MAIN :MOV DPL,#00H ;初始化 DPTR MOV DPH,#60H MOV R0,#30H. ;初始化 R0 LOOP: MOV A,R0 MOVX DPTR, A INC R0 INC DPTR CJNE R0,#40H,LOOP NOP RET (1) 程序如下: ORG 0000H RESET:AJMP MAIN ;转主程序 ORG 0100H MAIN :MOV DPL#00H ;初始化 DPTR MOV DPH,#0A0H MOV R0,#40H ;初始化 R0 LOOP2: MOVX A,DPTR MOV R0,A INC DPTR INC R0 CJNE R0,#60H,LOOP2 NOP RET