一、单项选择题(12*1)1、AT89S51单片机中,唯一一个用户不能直接使用指令对其进行读写的寄存器是(C)A、PSW;B、DPTR;C、PC;D、B;2、外中断初始化的内容不包括(A)A、设置中断响应方式;B、设置外中断允许;C、设置中断总允许;D、设置中断触发方式;3、实用AT89S51单片机,当EA=1时,可以扩展的外部程序存储器的大小为(B)A、64KB;B、60KB;C、58KB;D、56KB;4、AT89S51单片机访问片外数据存储器的寻址方式是(C)A、立即寻址;B、寄存器寻址;C、寄存器间接寻址;D、直接寻址;5在AT89S51单片机CPU内部,反映程序运行状态或反映运算结果的特征寄存器是(B)A、PC;B、PSW;C、A;D、;SP6、AT89C51的并行I/O口信息有两种读取方法。一种是读引脚,还有一种是(A)A、读锁存器;B、度数据库;C读A累加器;D、读CPU;7、AT89S51单片机执行子程序返回指令时,返回的断点是(C)A、调用指令的首地址;B、调用指令的末地址;C、调用指令下一条指令的首地址;D、返回指令的末地址;8、AT89S51单片机的LJMP指令跳转空间最大可达到(A)A、64KB;B、32KB;C、2KB;D、256B;9、AT89S51单片机在R7初值为01H的情况下,DJNZR7,rel指令循环执行的次数为()A、0次;B、1次;C、FFH次;D、256次10、AT89C51单片机读取片外的数据存储器数据时,采用的指令为(D)A、MOVA,@R1;B、MOVCA,@A+DPTR;C、MOVA,R4;D、MOVXA,@DPTR11、开机复位后,CPU使用的是寄存器第一组,地址范围是(B)A、00H~10H;B、00H~07H;C、10H~1FH;D、08H~0FH;12、10、已知:R0=28H,(28H)=46HMOVA,#3AHMOVA,45HMOVA,@R0执行结果A的内容为(A)A、46H;B、28H;C、45H;D、3AH;五、程序分析(15*1)阅读下列程序段,回答相关问题ORG0000HMOVR2,#05HMOVDPTR,#TAB3MOVA,R2ADDA,R2MOVR3,AMOVCA,@A+DPTRMOVA,R3INCAMOVCA,@A+DPTRMOVR4,ASJMP$ORG1000HTAB3:DW1520H,3721H,4264H,7580H,3483H,3265H,7883H,9943HEND⑴按照该程序段所实现的功能,对其命名,要求名字简洁:答:简单查表⑵本程序最后(自从标号TAB3开始)所给出的数据表占用多少字节的存储单元?数据表存放在数据存储空间还是程序存储空间中?答:16个字节,放在程序空间中⑶针对本段的数据表,R2可用的取值范围为多少?答:00H~07H⑷若寄存器R2的内容为05H,则该程序段执行后寄存器R3,R4的内容各为多少?答:R3=0AH、R4=65H;⑸程序执行后,寄存器DPTR的内容是什么,含义又是什么?答:1000H,指向数据表的起始位置。五、系统分析(15*1)某一系统的电路连接图如下,试确定图中的6264芯片和8255芯片的地址范围。并说明单片机如何实现对外部某一数据存储单元的读写操作。解:⑴地址范围:P0和p2组成16位地址线,其中A15、A14和A13接138译码器作为片选信号,Y0接6264(Y0输出低电平有效故P2.5~P2.7为000)、Y2接8255(Y2输出低电平有效故P2.5~P2.7为010);6264内译码使用A12~A0共13条地址线,8255内译码使用A0和A1两条地址线则地址范围如下:芯片片选地址6264内译码可变动地址A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A062640000000000000000。。。。。。111111111111182550101111111111100。。。。。。11片选地址无法变动地址可变地址转化为十六进制编码,则:6264:0000000000000000B~0001111111111111B→0000H~1FFFH8255:0101111111111100B~0101111111111111B→5FFCH~5FFFH⑵读写操作:读:8051从地址线送出地址、片选信号以及可读信号,被选中的芯片根据地址寻找对应的存储单元,将数据送入数据线再由8052接收;写:8051从地址线送出地址、片选信号以及可写信号,被选中的芯片根据地址寻找对应的存储单元,接着8051将数据送入数据线再由被选中芯片接收并写入对应单元。七、系统设计(15*1)单片机的时钟频率采用6MHz,利用T0采用定时器方式2在P1.2上输出一个周期为200us的方波。要求阐述系统工作原理,计算定时器的初值,编写系统程序。答:⑴阐述系统工作原理:利用工作与方式2的定时器每隔100us反复在P1.0端输出1或0⑵计算定时器的初值:采用6MHZ晶振故机器周期为2us(28-X)×2×10-6=100×10-6初值为X=206(D)=CEH,⑶编写系统程序:ORG0000H;申明起始储存单元MOVTMOD,#02H;定时器T0工作方式2NEXT:MOVTH0,#CEH;TH0装入初值MOVTL0,#CEH;TL0装入初值CLRP1.2;将P1.2位清0SETBTR0;TR0置1,启动T0工作AB1:JBCTF0,EXT;检测TF0是否为1,为1则清0并跳到EXT,为0往下SJMPAB1;短转移到AB1EXT:SETBP1.2;P1.2置1MOVTH0,#CEH;TH0装入初值MOVTL0,#CEH;TL0装入初值AB2:JBCTF0,NEXT;检测TF0是否为1,为1则清0并跳到NEXT,为0往下SJMPAB2;短转移到AB2END