1、1.MCS-51 系列单片机的时钟周期、机器周期、指令周期是如何分配的?当主频为 12MHz 时,一个机器周期为几微秒?执行一条最长的指令需要几微秒?答:(1)1 个时钟周期=2 个振荡周期。1 个机器周期=12 个振荡周期。一条指令所需的全部时间称为指令周期。MCS-51 单片机的指令周期一般需要1、2、4 个机器周期。(2)主频为 12MHz 时,一个机器周期为 1 微秒(3)执行一条最长的指令需要 4 微秒。2执行复位后内部各寄存器状态:PC 0000H TMOD OOHA 00H TCON 00HB 00H TH0 00HPSW 00H TL0 00HSP 07H TH1 00HDPT
2、R 0000H TL1 00HP0-P3 0FFH SCON 00HIP XXX00000 SBUF 不变IE 0XX00000PCON 0XXXXXXX3.简述 MCS-51 的几种寻址方式。答:分别为:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器间接寻址、相对寻址、位寻址。4.简述 MCS-51 内部数据存储器的空间分配。访问外部数据存储器和程序存储器有什么本质区别?答: 00H1FH 为工作寄存器组区 20H2FH 既可按字节寻址,也可位寻址区域 30H7FH 只能字节寻址区域4、80FFFH 特殊功能寄存器区本质区别: 它们有各自不同的选通信号。58051 中
3、断源及中断入口地址,外部中断有哪两种触发方式?中断请求标志 中断源 IE0 外部中断 0 TF0 定时器/计数器 0 溢出中断IE1 外部中断 1TF1 定时器/计数器 1 溢出中断RI+TI 串行通信中断TF2+EXF2 定时器/计数器 2 溢出电平触发和跳变触发6.何谓堆栈?栈指针 SP 的作用是什么?为什么要重新定义SP?答:(1)堆栈是一组编有地址码的特殊存储单元。(2)栈指针 SP 的作用是指向栈顶,存放栈顶地址。(3)为了避免与工作寄存器重迭,一般在程序的初始化时应重新定义 SP,再定位堆栈区域。7.何谓程序状态字?各位的定义又是什么?程序状态字 PSW 是一个 8 位寄存器,寄存
4、当前指令执行后的状态,为下条或以后的指令的执行提供状态条件Cy(PSW.7)高位进位标志位AC(PSW.6)辅助进位标志位F0(PSW.5)用户标志位RS1(PSW.4)RS2(PSW.3) 工作寄存器组位OV(PSW.2) 溢出标志位(PSW.1)保留位P(PSW.0) 奇偶校验位8.何谓准双向并行 I/O 口?如何正确使用输入/输出操作?答:(1)当 P0 口作为 I/O 口时,先执行输出操作,而后要由输出变成输入操作,此时,称为准双向 I/O 口 (2)用作输入时应先将口置成“1” 。12. MCS-51 的 PSEN 线的作用是什么?PSEN、RD、WR 各自选通什么?答:(1)PSE
5、N 线的作用是允许访问外部程序存储器的信号输出,低电平有效。(2)PSEN 选通外部程序存储器读允许;RD 选通外部数据存储器读允许;WR 选通外部数据存储器写允许。14、8051 查表指令有几种,区别1)MOVC A , A+DPTRMOVC A , A+PC区别:一是表格的首地址存放在数据指针 DPTR 中,二是表格首地址存放在 PC 当前值所指定的地址单元中。15:片选:必须选择出的指定的芯片字选:必须选择出该芯片的某一存储单元两种地址选择方法:线性选择法、地址译码法16RS-422A,423A,485RS-422A 与 RS-232C 的主要区别是信号在导线上的传输方式不同。前者是利用
6、信号导线之间的信号电压差,其标准是双端线传送信号,后者是利用传输信号线与公共地之间的电压差。RS-422A:最大传输速度10Mbit/s,最大传送距离 300米。90000bit/s,1200mRS-423A:100KB/S,90M1000B/S,1200M17.位操作指令能对内部 RAM 的128 位和部分专用、特殊功能寄存器进行直接寻址。18.单片机存储器结构:1)片内片外统一编址的程序存储器 2)64K 的外部数据存储器3)256 字节的内部数据存储器,包括特殊功能寄存器19设某应用系统,选定定时器/计数器 1(T1)工作方式1,定时时间 Tc=10ms,主频为12MHz,每 10ms
7、向主机请求中断,将累加器 A 内容左循环移位一次,并送 P1 口输出。计算定时计数初值,写出程序。答:1)TMOD=10H,12/12MHz=1usX=10ms/1us=10000 次x=65536-10000=55536=(0D8F0)初始化:START: MOV SP , # 60HMOV TMOD ,# 10HMOV TH1 ,# 0D8HMOV TL1 , #0F0HSETB EASETB ET1MOV B , #01HSETB TR1中断服务子程序:INTT1:MOV TL1 , #0F0HMOV TH1 , #0D8HMOV A , BRL AMOV P1,AMOV B , A R
8、ETI20. 设定时器/计数器 0 为定时模式工作于方式 1,主频fosc=6MHz,要求定时Tc=10ms,请计算出定时计数常数,并写出初始化程序段。答:(1)根据题意可设TMOD=01H2)由 Tc=10ms=10000us因:T 定 =(M-x)(12/fosc)10000=(65536-x)(12/6)得:x=60536=( 0EC78)H(3)初始化程序段如下:START:MOVTMOD, #01HMOV TH0, #0ECHMOV TL0, #78HSETB EASETB ET0SETB TR021.何谓波特率和溢出率?设某应用系统以 1200 位/秒的波特率进行双机通信,选用定时
9、器/计数器 1 定时模式工作方式 2,请计算出定时计数常数,并写出初始化程序段。答:(1)波特率:单位时间内传输的位信息量。溢出率:单位时间内定时器/计数器 1 回 0溢出的次数。 (2)分析:由SMOD=0,fosc=12MHz,波特率=1200 位/秒,可根据时间常数计算公式:N=256 -(2 SMODfosc)/(波特率3212)= 256 -(2 012106)/(12003212) = (E6)H由选用定时器/计数器 1 定时模式工作方式 2 得:TMOD=20H由“系统以 1200 位/秒的波特率进行双机通信” ,设串行口工作于方式 1,允许接收,则SCON=50H,则初始化程序
10、段如START: MOV TMOD, #20HMOV TH1, #0E6HMOV TL1, #0E6HSETB TR1MOV PCON, #00HMOV SCON, #50HSETB EASETB ES22.某应用系统需通过 P1.0 和P1.1 分别输出脉宽位 200us 和400us 的方波。为此,系统选用定时器/计数器 0(T0) ,定时方式 3,主频 6MHz,Tp=2us,求定时计数常数,写出程序。答:TMOD=03H1) 定时常数:9CH,38H2) 初始化程序段:PLT0:MOV TMOD , #03HMOV TLO , ,#9CHMOV THO , #38HSETB EASET
11、B ET0SETB ET1SETB TR0SETB TR1中断服务程序段:INT0P:MOV TL0 , #9CHCPL P1.0RETIINT1P:MOV TH0 , #38hCPL P1.1RETI 23.中断单步操作的软件程序段:初始化:CLR INTxSETB EASETB EXxSETB PXx中断服务程序段:LOW: JNB P3.2 , LOWHIGH: JB P3.2 , HIGHRETI0809、0832OUTDA:MOV DPTR , #7FFFHMOV A ,#dataMOV DPTR , A主程序INTT1: SETB EASETB IT1SETB EX1MOV DPTR ,#0BFFFHMOV A , #00HMOVX DPTR ,A中断服务程序:PINT0: MOV DPTR ,#0BFFFHMOVX A ,DPTRMOV 50H , A MOV A , #00HMOVX DPTR , ARETI