说明
以下内容为个人整理, 答案也是个人回答, 不一定对, 所以你对答案有任何问题, 都欢迎与我讨论.
Q01:51 单片机 P0,P1,P2,P3 口功能作用?
答:
P0 可做地址口的低 8 位也可以做数据口和 I/O 口
P1 可做普通的 I/O 口
P2 除了做 I/O 口, 也是作为地址口的高 8 位(总共 16 位)
P3 既可以是普通 IO 口, 也可以是外部中断, 定时, 外部输入的端口
Q02: 当串口发送一个数据或接收数据时, 哪两个位会置位?
答:
接收数据时, RI 会置位
发送数据时, TI 会置位
Q03:81 单片机的累加器是什么?
答:
ACC
Q04: 当晶振频率为 12MHz, 定时器的频率为多少?
答:
频率为 1Mhz
说明:
机器频率 = 晶振频率 / 12
Q05:LED 的显示分为几种?
答:
两种, 动态扫描和静态扫描
说明:
动态扫描中 LED 的调度是放在定时器中
Q06:51 单片机内存划分
答:
低 128 个字节
从 00H~1FH(32 字节): 寄存器区, 四组寄存器区, 一组有 8 个寄存器
从 20H~2FH(16 字节 128 位): 位寻址区
剩下: 普通内存
高 128 个字节
特殊功能寄存器
Q07:ex0,ex1,et0 的含义
答:
- ex0 = 1; // 允许外部中断 0
- ex1 = 1; // 允许外部中断 1
- et0 = 1; // 允许定时器 0 中断
- 1 2 3
说明:
在这里插入图片描述
上图为 IE(中断允许寄存器)
EA: 中断总控制位
EA=1:CPU 开放所有中断
EA=0:CPU 禁止所有中断
ES: 串行口中断控制位.
ES=1: 允许串行口中断
ES=0: 屏蔽串行口中断
ET1: 定时 / 计数器 TI 中断控制位
ET1=1: 允许 T1 中断
ET1=0: 禁止 T1 中断
EX1: 外部中断 1 中断控制位
EX1=1: 允许外部中断 1 中断
EX1=0: 禁止外部中断 1 中断
ET0: 定时 / 计数器 T0 中断控制位
ET0=1: 允许 T0 中断
ET0=0: 禁止 T0 中断.
EX0: 外部中断 0 中断控制位
EX0=1: 允许外部中断 0 中断
EX0=0: 禁止外部中断 0 断.
Q08: 程序存储器的作用?
答:
程序存储器存放的是程序代码, 也可以存放常量数据
Q09: 波特率的概念?
答:
单片机或计算机在串口通信时的速率. 指的是信号被调制以后在单位时间内的变化, 即单位时间内载波参数变化的次数, 如数据传送速率为 240b/s, 而每个字符格式包含 10 位 (1 个起始位, 1 个停止位, 8 个有效数据位), 这时的波特率为 240 baud (波特), 比特率(有效数据位的传送速率) 为 240*10=2400 bps(比特每秒)
说明:
波特率是指每秒中传输的字节数 --(错)
Q10: 堆栈和队列的特点?
答:
堆栈是先进后出
队列是先进先出
Q11: 自然优先级与优先级判断, 场景如下
场景 1: 优先级相同的三个同学 A,B,C 同时需要打饭, 谁先打饭?
场景 2: 同学 A 正在打饭, 与同学 A 相同优先级但是自然优先级比同学 A 高的同学 B 是否能打断同学 A 的打饭?
场景 3: 同学 A 正在打饭, 比同学 A 优先级更高的同学 B 能否打断同学 A 的打饭?
答:
场景 1: 自然优先级高的先打饭 ( O(∩_∩)O 哈哈~, 没在纠结 ABC 吧)
场景 2: 不能
场景 3: 可以喔
说明:
高优先级可以打断低优先级
自然优先级只有在相同优先级之间比较才有意义
Q12:51 单片机哪个寄存器是不能直接操作, 不可寻址?
答:
pc(程序计数器)
Q13: 在读取外部电平时, 需要做什么?*
答:
首先要做的是写入 1(高电平), 然后再读
Q14: 通信方式有哪些?
答:
单工, 半双工, 全双工
Q15: 编译的目的是什么?
答:
获取二进制代码文件
Q16: 若要打开全局中断, 需要操作哪个位?
答:
EA
Q17: 假如现在有一个 3 字节的程序程序正在执行 0x100, 中断来时, 保存的地址是多少?
答:
保存的地址是下一条指令的地址 0x101
Q18:51 单片机是几位机?
答:
51 单片机是 8 位的
说明:
ARM 是 32 位的
Q19:51 单片机的 8 位模式和 16 位模式下定时器最大定时时间?
答:
在晶振频率为 12MHz 前提下:
8 位模式下的情况: 28 * 1us = 256us
16 位模式下的情况: 216 * 1us = 65536us
说明
机器频率 = 晶振频率 / 12
机器周期(脉冲周期) = 1 / 机器频率
Q20: 状态寄存器
答:
程序状态字寄存器 PSW(program status Word)是计算机运算器的一部分
PSW 用来存放两类信息
一类是体现当前指令执行结果的各种状态信息, 如有无进位 (CY 位), 有无溢出(OV 位) 等
另一类是存放控制信息, 如允许中断 (IF 位), 跟踪标志(TF 位) 等
Q21:51 单片机掉电不失的是哪个段?
答:
@code
说明:
一共有五段: CODE,BIT,IDATA,DATA,XDATA
Q22:51 单片机五个中断入口地址是哪个?
答:
0003H: 外中断 0
000BH: 定时器 0
0013H: 外中断 1
001BH: 定时器 1
0023H: 串口中断入口
说明:
前三个字节是复位
Q23: 如何选中四个寄存器组中的某一组?
答:
依靠 RS1 和 RS0 这两位
Q24: 当 P0 口作为 IO 口时上面那个模式管关闭, 只剩下下面那个模式管, 那么怎么输出 1(高电平)?
答:
外接上拉电阻, 否则无法稳定输出 1
Q25: 晶振频率为 6MHz, 周期为多少?
答:
2us
说明
机器频率 = 晶振频率 / 12
机器周期 = 1 / 机器频率
Q26: 三种总线是什么?
答:
地址总线
数据总线
控制总线
Q27: 如何设置单片机优先级的寄存器?
答:
IP(Interrupt Priority), 将相应的位 置 1
说明
在这里插入图片描述
上图为中断优先级寄存器 IP 的控制位
PS: 串行口 中断优先级控制位
PT1: 定时器 / 计数器 T1 中断优先级控制位
PX1: 外部中断 1 中断优先级控制位
PT0: 定时器 / 计数器 T0 中断优先级控制位
PX0: 外部中断 0 中断优先级控制位
Q28: 计算机能直接识别的语言是什么?
答:
二进制语言(机器语言)
Q29: 什么是振荡周期, 机器周期, 指令周期?
答:
振荡周期
也称为时钟周期, 是指单片机提供时钟信号的振荡源的周期, 一般实验板上为 11.0592MHZ,12MHZ 和 24MHZ 用的也比较多
是计算机中最基本的, 最小的时间单位
机器周期
一个机器周期包含 6 个状态周期 S1~S6, 也就是 12 个时钟周期
在一个机器周期内, CPU 可以完成一个独立的操作
指令周期
它是指 CPU 完成一条操作的所需的全部时间
包括取指令, 分析指令和执行指令所需的全部时间
每条指令执行时间都是有一个或几个机器周期组成, 单片机中有单周期指令, 双周期指令和四周期指令
说明
三者之间的关系: 一条指令周期包括若干个机器周期, 一条机器周期又包括若干个时钟周期
Q30: 什么是中断?
答:
中断是指中央处理器 CPU 正在执行程序, 处理某件事情的时候, 外部发生了某一事件, 请求 CPU 马上处理, CPU 暂时中断当前的工作, 转入处理所发生的事件, 处理完以后, 再返回到原来被中断的地方, 继续原来的工作.
说明:
在这里插入图片描述
Q31: 中断系统的概念和作用?
答:
实现中断功能的部件称为中断系统
作用:
完成实时性的要求
实现中断及返回
保护现场和恢复现场
说明:
在这里插入图片描述
上图为中断系统的结构, 由图可知, 中断源矿业分为三类: 外部中断, 定时器中断和串行口中断
Q32:51 单片机分了很多段, 每一段的含义?
答:
CODE 段
用来保存程序中汇编助记符描述的机器指令部件
STC 单片机中的程序 Flash 存储空间
可以由 MOVE 指令, 并且通过 DPTR 寄存器进行访问
BIT 段
用来保存比特位
可以通过指令系统中的位操作指令来访问(注: 可以通过位操作指令访问特殊功能寄存器 SFR)
IDATA 段
可以定义少量的变量, 这些变量将最终保存在 STC 单片机的片内 RAM 的高地址和低地址区域中
IDATA 的低 128 个字节和 DATA 段重叠
可以通过寄存器 R0 或 R1, 间接寻址保存在 IDATA 段中的变量
DATA 段
该段指向 STC 单片机内部数据 RAM 的低 128 个字节
通过直接和间接寻址方式, 程序代码可以访问在 DATA 段中的变量
地址空间为 00H~7FH
XDATA 段
该段指向扩展 RAM 区域
通过寄存器 DPTR 和 MOVX 指令, 程序代码可以访问 XDATA 段
对于一个单页的 XDATA 存储空间来说, 可通过寄存器 R0 和 R1 访问
Q33: 定时器 / 计数器有几种工作模式及其含义?
答:
四种
M1=0; M0=0
模式 0
特点: 13 位定时器
M1=0; M0=1
模式 1
特点: 16 位定时器
M1=1; M0=0
模式 2
特点: 8 位 可重加载定时器
M1=1; M0=1
模式 3
特点: 两个单独 8 位定时器
Q34: 使用 51 单片机设计(DIY)
答:
可以使用 51 单片机设计一个宿舍门闸的程序, 将 51 单片机连接一个正反转可控的步进电机, 将其连接到 P0.0 端口, 然后在连接一个按钮连接在 P3.0 端口, 然后写程序, 当按钮按下时, 产生一个中断信号, 在中断信号中步进电机正转, 进过一段时间延时后, 再反转回来.
说明 http://www.daiqiyang.com
可以参看以下文章:
用汇编程序控制八盏灯亮灭
温室监控系统仿真设计
数码管显示的 GP2D12 仿真测距警报器
温度控制直流电机转速
正反转可控的步进电机
1-Wire 总线温度传感器 DS18B20 应用测试
ADC0809 模数转换与显示
ADC0832 模数转换和 LCD 显示
1602 字符液晶显示
上述代码位置: https://github.com/duganlx/DSP
----------------
来源: http://www.bubuko.com/infodetail-3356753.html