第1章 单片机基础知识概述
1.什么是单片机?特点?
- 将通用微计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统(嵌入式系统),用于解决小型被控对象的智能化问题(SCM或MCU)
- 特点:
体积小(便于嵌入到小型被控对象中);
扩展性好(便于组成各种应用系统);
可靠性高(集成后外部连线减少,抗干扰能力增强);
价格低廉(便于普及应用)
2.单片机的发展趋势?
- 单片机发展趋势:高集成度、高性能、低功耗、高性价比
机器位数不断增加:4位→8位→16位→32位→…
外设接口日益内置化:ADC、DAC、PGA、USB…
丰富的产品系列:51、PIC、AVR、ARM、DSP
3.1000 1010B的十进制数和十六进制数?4FH的二进制数和十进制数?
- 十进制数:138 十六进制:8AH
二进制数:1001111B十进制数:79
4.与门、或门和非门的逻辑符号?
- &&、||、!
5.Proteus是什么软件?主要功能?
- 电路及单片机系统设计与仿真软件
数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计功能。
第2章 MCS-51单片机的结构及原理
2-1 MCS-51单片机的结构
1.80C51的内部资源?
- 80C51= (8位) CPU+4KB ROM+128B RAM+(2×16) T/C+(4×8) IO+1个UART+5个INT+2个64KB EC
2.程序计数器PC的主要特点?
- 作用:指向ROM单元的地址指针,引导程序运行。
- 16位寄存器→可寻址范围 2 16 ( = 65536 B = 64 K B ) 2^{16}(=65536B=64KB) 216(=65536B=64KB)
- 存放下一条指令的首地址
- 具有自动加一功能(顺序运行程序功能)
- 具有可被指令修改功能(跳转运行程序功能)
- 复位时,PC=0,复位后CPU将从程序存储器的0000H地址处的指令开始运行
3.数据指针DPTR特点?
- 作用:指向ROM或RAM单元的地址指针,引导数据传送
- 16位寄存器→可寻址范围$2^{16}
- 可拆为两个8位寄存器DPH和DPL
- 具有可被指令修改的功能→可变更数据地址
4.累加器A的主要特点?
- 作用:存放操作数或中间运算结果的寄存器
- 8位寄存器
- 其值可由指令修改
- 是最繁忙的寄存器
5.程序状态字寄存器PSW的主要特点?
- 存放程序运行过程中的各种状态信息
- 8位寄存器
- 各位都有特殊含义
- 状态值可由硬件形成或有指令修改
2-2MCS-51的存储器结构
1.存储器的两种结构形式?51单片机的物理存储空间和逻辑存储空间?
- 普林斯顿(冯诺依曼)结构-RAM和ROM统一编址
- 哈佛结构-RAM和ROM分别编址
- 51单片机采用哈佛结构,共有四个物理存储空间和3个逻辑存储空间
2.低128字节的片内RAM的三种不同区间?各自特点?
- ①工作寄存器区(32个字节)
具有字节地址和寄存器名两种表示方法;具有4组RO~R7寄存器,当前组由PSW中RSO和RS1指定(上电默认0组); - ②可位寻址区(16个字节)
具有字节地址和位地址两种表示方法; - ③用户RAM区(80个字节)
只有字节地址1种表示方法。
3.高128字节片内RAM的特点?
- ①每个存储单元都有一个字节地址,但只有21个单元可以使用;
- ②这21个单元都有字节地址和寄存器名(SFR)两种表示方法;
2-3 单片机的复位、时钟与时序
1.单片机复位条件?复位电路?
- 复位条件-在RST引脚出现满足复位时间要求( ≥ 10 m s \geq10ms ≥10ms )的高电平( ≥ 3 V \geq3V ≥3V)状态
- 复位电路
常用由上电复位和按键复位两种电路组合而成
2.何谓时序?时序图的结构?
- 时序是按时间顺序显示的对象序列关系。
- 引脚标识、电平变化、数据有效范围、持续时间
2-4 并行IO口
P0~P3口都可作为准双向通用IO口,其中只有P0口需要外接上拉电阻,在需要扩展片外设备时,P2口可作为其地址线接口,P0口可作为其地址/数据线复用接口,此时它是真正的双向口。
第3章 单片机的汇编语言与程序设计
1.汇编语言重要概念
- 汇编语言——用助记(字)符代替操作码,用地址符号代替
地址码的一种面向机器的程序设计语言; - 汇编语言特点———代码精炼、执行速度快,但不便于编写
较复杂的程序; - 51单片机共有111条指令,按功能可划分为四大类:
数据传送与交换类(31条)
算术运算类(24条)
逻辑运算类(34条)转移控制类(22条)
2.汇编指令语句格式要点
- 汇编指令语句格式可包括四个区段,即:
▶ \blacktriangleright ▶标号区段——代表当前指令的首字节存放地址,由用户定义的1~6个字符组成,以英文字母开始,冒号结尾,可省略。
▶ \blacktriangleright ▶操作码区段—指令的操作行为,由42种标准助记字符组成。
▶ \blacktriangleright ▶操作数区段—指令的操作对象,可有0~3个操作数,以英文逗号隔开(操作数大于0时)。
▶ \blacktriangleright ▶注释区段—指令的解释或说明,可用任何文字描述。以英文分号开始,无需结束符号。
3.寄存器间接寻址和变址寻址的概念
- 寄存器间接寻址——以@Ri或@DPTR的形式表示操作数的存在方式
- 变址寻址——以@A+DPTR或@A+PC的形式表示操作数的存在方式
4.数据传送与交换类指令要点 - 用途:RAM、SFR和ROM之间的数据互传或交换。
- 基本规律:将源单元(src)的内容传送给目的单元(dest),传送后源单元中内容不变。
- 重要操作码:MOV(片内RAM)、MOVX (片外RAM)、MOVC (ROM)
第4章 单片机的C51语言
1.C51编程语言的特点?与C的异同点?
- 特点:
▶ \blacktriangleright ▶结构化语言,代码紧凑
▶ \blacktriangleright ▶接近真实语言,程序可读性强
▶ \blacktriangleright ▶库函数丰富,编程工作量小
▶ \blacktriangleright ▶机器级控制能力,控制功能很强
▶ \blacktriangleright ▶与汇编指令无关,易于掌握 - 相同之处:语法规则、程序结构、编程方法不同之处:数据结构、中断处理、端口扩展
2.C51变量的定义格式?包括内容?
- 存储种类:auto、extern、static、register
- 数据类型:char、int、long、float、bit、sfr(16)、sbit
- 存储类型:[data]、bdata、idata、[pdata]、[xdata]、code
- 变量名:首字符为字母或下划线,大小写有区别
3.C51指针变量定义
数据类型【存储类型1】*【存储类型2】指针变量名(=&被指向变量名)
- 数据类型——被指向变量的类型,如int或char型
- 存储类型1——被指向变量所在存储区,缺省时由地址赋值关系决定
- 存储类型2——指针变量所在存储区,缺省时为编译器默认的存储区
第5章 单片机的中断系统
1、中断的概念?中断服务函数与一般函数的区别?
- 中断是指在突发事件到来时先中止当前正在进行的王作,转而去处理突发事件。待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。
-
▶
\blacktriangleright
▶前者是程序设计者事先安排的(断点是明确的),而后者却是系统根据工作环境随机决定的(断点则是随机的)。
▶ \blacktriangleright ▶主函数与调用函数之间具有主从关系,而主函数与中断函数之间则是平行关系;
▶ \blacktriangleright ▶一般函数调用是纯粹软件处理过程,而中断函数调用却是需要软、硬件配合才能完成的过程。
2、中断源、中断请求、中断允许、中断优先、中断触发
方式?
3、C51中断函数声明的一般格式?
void 函数名(void)interrupt n (using m)
{函数体语句}
n是与中断源对应的中断号,对于80C51单片机,n=0~4
using表示指定m号工作寄存器组存放中断相关数据,m=0~3
4、外部中断编程要点
- 1.在主函数中进行中断初始化
▶ \blacktriangleright ▶中断触发方式(TCON):ITX(=0→电平 =1→脉冲)
▶ \blacktriangleright ▶中断优先级(IP):PX0,PT0,PX1,PT1,PS(=0→低级 =1→高级)
▶ \blacktriangleright ▶中断允许(IE):EX0,ET0,EX1,ET1,ES,EA(=0→允许 =1→禁止) - 中断函数体必须独立存在
第6章 单片机的定时/计数器
1.单片机定时/计数器的基本工作原理?
- 利用加1计数器对时钟脉冲或外来脉冲进行自动计数。计满溢出时引起中断标志( TFx)硬件置位。
- 定时时间t=(加1计数器的最大值-计数初值)×机器周期= ( 2 n − a ) × 12 / f o c s ( u s ) (2^n-a)×12/focs(us) (2n−a)×12/focs(us)
- 计数初值 a = 2 n − t × f o s c / 12 a=2^n-t×fosc/12 a=2n−t×fosc/12
2.定时/计数器的控制关系?
3.定时/计数器的编程要点?
①设置TMOD———GATE、CT、M1、MO
②确定计数初值——
a
=
2
n
−
t
×
f
o
s
c
/
12
,
T
H
x
=
a
/
256
,
T
L
x
=
2
/
256
a=2^n-t×fosc/12,THx=a/256,TLx=2/256
a=2n−t×fosc/12,THx=a/256,TLx=2/256
③处理溢出结果方式:中断法、查询法
④启动定时器:TRO=1或 TR1=1
⑤定时/计数服务工作
⑥为下次定时l计数做准备:清TFx标志(中断法除外)
重装载计数初值(方式2除外)
▶ \blacktriangleright ▶中断法
ETx=1; //开定时x中断,x=0或1
EA=1; //开总中断
…
tx_srv() interrupt n{ //n=1或3
…
}
▶ \blacktriangleright ▶查询法
do {}while (!TFx){
…
}
第7章 单片机的串行口及应用
1.基本概念
- 并行通信——数据的各位同时发送或同时接收仕输速度快,但需要占用较多系统端口,且只适合于近距离使用;
- 串行通信一—数据的各位依次发送或依次接收,传输速度慢,但只需较少传输线,适合于远距离通信,且占用系统端口较少;
- 单工通信——收发双方角色固定不能互换
- 半双工通信——收发双方角色可换但需切换
- 全双工通信——收发双方互不影响双向通信
- 波特率——每秒发送二进制数码的位数,bps
- 异步通信——以字符为单位组成字符帧(起始位、数据位、可编程位、停止位)进行的数据传送,对收发双方的时钟精度要求较低,传输速度慢;
- 同步通信——数据以块为单位进行的数据传送,传输效率高,但对通信硬件要求高。
2.串行口控制寄存器
第8章 单片机接口技术
1.总线的概念
- 总线(BUS)——传送同类信息的公共通道
- 三总线——地址总线AB、数据总线DB、控制总线CB
- 51单片机的外部总线引脚
▶ \blacktriangleright ▶控制总线——P3口(/WR和/RD)+控制引脚(ALE)
▶ \blacktriangleright ▶地址总线——PO口(低8位地址)+P2口(高8位地址)
▶ \blacktriangleright ▶数据总线——PO口(8位数据) - 51单片机两种外设访问方法
▶ \blacktriangleright ▶总线方式——采用片外RAM指令(MOVx)
▶ \blacktriangleright ▶IO方式——采用片内RAM指令(MOV)
2.地址锁存的要点
- 同时使用低8位地址和8位数据信息时,需要通过地址锁存器将PO口的地址信息与数据信息分开;
- 在ALE正脉冲触发下,74LS373先锁存输出P0口送出的低8位地址,然后与P0口信号隔离。
3.利用总线扩展I/O端口的要点
- 利用总线指令产生的/WR和/RD脉冲作为外设控制信号
- 利用或门将/WR或/RD信息与地址信息(P2+P0)合成为外设选通信号(“0”解锁,“1”加锁原理)
- 利用74LS273(8个带清零功能的D触发器)扩展输出端
- 外设地址:
- P2+P0的16位信息
U2:01xx xxxx xxxx xxxx
U2:10xx xxxx xxxx xxxx
判断直通、单缓冲、双缓冲
第9章 单片机应用系统的设计与开发
时钟周期,只有p0口有上拉电阻,中断不考大题,主要是简答;定时器考大题,初始化,最常用方式1,方式2;串行通信,简答,选择;地址的确定;
如何在C51中调用汇编程序?
①程序的寻址,通过在汇编文件中定义的同名的函数来实现
②参数传递,将参数存放于寄存器使汇编语言能获取它们的值
③返回值传递,汇编语言通过寄存器或存储器传递给C语言程序
C51数据结构存储类型及特点?
①data:片内低128B存储区
②bdata:片内可位寻址存储区
允许位与字节混合访问
③idata:片内高128B存储区(只有52系列有)
④pdata:片外页RAM
常用于外部设备访问
⑤xdata:片外64KBRAM
常用于存放不常用的变量或等待处理的数据
⑥code:程序ROM
常用于存放数据表格等固定信息