单片机期末总复习资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 指令系统
• 寻址方式
立即数寻址,MOV A,#33H
寄存器寻址,MOV A,R0
直接寻址,MOV A,30H
寄存器间接寻址,MOV A,@R0
变址寻址,MOVC A,@A+DPTR
相对寻址,SJMP $
JZ L1
位寻址,MOV C ,07H
• 1、下列数据传送指令是否有问题?如果有问题该如 何改正?
• MOV 50H ,#0FCB0H
简单编程
• 片内RAM 50H单元的内容送到片外RAM 2000H单元。
• 将片内RAM 01H-FFH单元的内容清零。 • 外部RAM 1000H的内容传送到内部RAM20H • 程序存储器2000H的内容传送到R1
第7章 中断控制、定时/计数器及 PCA/PWM的应用
总复习
第一章:
1、什么是单片机?单片机的基本概念。它的 几个名称
2.1 51内核单片机的内部基本结构
• 外5部1晶内体核振荡单片机的内部结构框图 器与内部振荡 电路共同产生 单片机运行所 需的时钟信号
用于存放用户程 序、常数、表格
等信息
用于存放单 片机运行过 程中的运算 数据及运算
地址等
用来对片内各功能模块进行管理 、控制和监控的寄存器和反映各
单片机的控制 中心
用来对指令 代用码于进存行放分从 析程、序译存码储,器 根中据读指出令的译指 码令的代结码果,,作 输为出指相令应译的码 控器制的信输号入4 锁
存器
STC12C5A60S2单片机内部资源和特点: 1T运行模式(1时钟/机器周期) 8位CPU; 程序存储器60KB; 数据存储器:256B片内RAM+1024B片内扩展RAM; 特殊功能寄存器; 2个16位定时/计数器T0、T1; 2个全双工异步串行口; 4个8位并行I/O口P0、P1、P2、P3 10个中断源、4级优先级的中断系统 8通道10位高速AD、 1个同步串行通信接口SPI 2路PCA/PWM
• MOV A,#1000H ;(A)←1000H • MOVX A,1000H ;(A)←片外RAM (1000H) • MOVC A,1000H ;(A)←片外ROM (1000H) • MOVX 60H,A ;片外RAM (60H)←(A) • MOV R0,#60H ;片内RAM(61H)←( 60H) • MOV 61H,@R0 • MOVX 60H,@DPTR • ;片内RAM(60H)←片外RAM((DPTR))
中断服务程序:对异常事件的处理。 中断返回:处理完毕,返回到原程序。
继 续 执
序
行
原
程
序
7.2中断系统中的断允结许构寄 存器IE和IE2 中断源、 中断请求
PCA 使能只 与EA有关
16
图7-2 STC12C5A60S2单片机中断系统的结构图
1.中断允许寄存器IE和IE2 2.中断优先级控制寄存器IP、IP2和IPH、IP2H
要注意:读外部引脚状态前,要先输出高电平,读回来的状态才 是正确的。 强推挽输出方式:输入输出都可达到20mA电流,适合需要较大 输出电流的情况。 仅为输入:所有输出均截止,对外是高阻状态,对输入没有影响。 开漏输出:内部上拉电阻断开。做输入输出时需要外加上拉电阻。
MOV P1M1,#00H MOV P1M0,#00H MOV P1, #0FFH MOV A,P1
7.1 中断的概念
当
中断是计算机在执行程序的过程中,当出现 前
异常情况或特殊请求时,计算机停止现行程序 程
的运行,转向对这些异常情况或特殊请求的处 序
中
理,处理结束后再返回现行程序的间断处,继 续执行原程序。
断 服
中断包括以下几个过程:
中断
务
中断源:产生中断的请求源。
程
中断响应:中止当前程序, 准备处理异常事件。
特殊功能寄存器 SFR
80H 7FH
低128字节 内部RAM区 (通用RAM区) 00H
注意:虽然高128字节的RAM
和特殊功能寄存器地址都是
80-FFH,但是在物理空间上
二者是独立的,使用时需要用
不同的寻址方式加以区分。
7FH
30H 2FH 20H 1FH 00H
用户RAM区和 堆栈区
位寻址区
工作寄存器区
SM0 SM1 方式 功能说明
波特率
0 0 方式0 同步串行移位 当AUXR寄存器中的位UART_M0x6=0时,波特率等于
寄存器方式 fosc/12;UART_M0x6=1时,波特率等于fosc/2
0 1 方式1 8位异步通信 (2SMOD/32)×(定时/计数器T1的溢出率或独立波特
率发生器的溢出率)
定时/计数器的控制: TMOD方式寄存器(89H)
GATE C/T M1 M0 GATE C/T M1 M0
AUXR
(8EH )
定时器T0\T1的前三种工作方式的特点。最大计数 值和最大定时时间分别为多少? 定时计数初值的计算 程序的编写
例 若单片机时钟频率为12MHz,请计算定时 2ms所需的定时器初值(12T模式)
串行口2数据发送端 PCA模块0的外部捕获触发信号输入、脉冲
输出及PWM输出
SPI同步串行接口的从机选择信号端
CCP1 MISO MOSI SCLK
PCA模块1的外部捕获触发信号输入、脉冲 输出及PWM输出
SPI同步串行接口的主入从出(主器件的输 入和从器件的输出)
SPI同步串行接口的主出从入(主器件的输 出和从器件的输入)
500ms
分析: P1.1引脚的输出应每隔500ms取反一次,即定时时间为500ms, 长时间定时。 定时/计数器方式1最大定时65.5ms。可用定时/计数器T1进行 10ms的定时,然后用寄存器R7对10ms定时中断次数计数50次来 实现。
定时初值:(216 C) *1us 10000us C D8F0H;TH1 D8H, TL1 F0H
1 0 方式2 9位异步通信 (2SMOD/32) ×fosc 1 1 方式3 9位异步通信 与方式1相同
串行口方式0的应用:作为串并转换和并串转换。
串行口方式1、3的应用:可变波特率的串口通信,而且串口3
多用于有校验的或者多机通信。
如何初始化串行口?编程。
(1)设置SCON寄存器中各个相关位,由SM0、SM1两位确定 工作方式,将TI、RI清0,如果需要接收,将REN位置1; (2)设置合适的波特率,选择波特率发生器,设置定时/计数 器T1的工作方式、给TL1、TH1赋初值,启动T1工作;或者使 用独立波特率发生器时,给BRT赋初值,并初始化AUXR寄存 器的BRTR及BRTx12两位; (3)根据需要确定是否需要开放中断及中断优先级; (4)编写相应的中断或查询方式的服务程序。
功能运行状态的寄存器
负责运算、控制 和调度
2个16位的定时/ 计数器,实现定 时和计数功能
5个中断源、2 级中断优先级 的中断系统
1个全双工异步 串行口
4个8位的并行I/O 口
3
CPU的内部结构图wenku.baidu.com
1、算1术6位逻寄辑存运器算部件 2主、要存用放来下完一成条数将据要的 执算行术的和指逻令辑地运址算.程。 序A中L的U有指2令个是输按入照端和 顺2序个存输放出在端存,储其器中一
每个并行口 的功能要知 道。
P4SW功能切换寄存器 ---- LVD_P4.6 ALE_P4.5 NA_P4.4 - - - -
引脚 P1.0 P1.2
P1.3
P1.4
P1.5 P1.6 P1.7
符号
功能
CLKOUT2
独立波特率发生器的时钟输出引脚
RxD2 ECI TxD2
CCP0
串行口2数据接收端 PCA计数器外部脉冲输入端
2.6 I/OP口2M1工寄存作器 方式及配置 P2M0寄存器
D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 0 0 0 0 01 1 0 0 0 0 0 0
各种工作方式的特点: 准双向口:输出拉电流150-250uA较小;输入灌电流20mA较大。
中 每端由8的 条接累位某指至加寄个令累器连都存加送续有器来器区自,的,域己接一.用收个 于记录运算过 的操程地作中址数,的C;P另状U根一态据端,P接C收如是否借位、溢 中暂出的存等指器令。中地的址第从二存个操
储作器数中。取参出加将运要算执的操
行作的数8指在位令AL寄. U中存进器行,规 进行乘除法运 3定、的具算操有时作自运,动算加存,1放功运算参与运算的一个 能 将 址 4结果将、存在要,.态束送操从P操般地放存1执C送后至作而、址指储的行作R标指,累结令单编值8E的向一加果志数位码元码可G指下方器的寄。所的以使寄令一面,特存修地除条将同征器用存改结时状此器之外,作为一 ,一2般、程累序是加按器顺是一个特殊的寄存器,它的字长和 序 变执了微行的指P处C令的理的值器.,若则改的程 字长相同,累加器具有输入/输出 序将和不再移按位顺功序执能,微处理器采用累加器结构可以简 行。化某些逻辑运算。
3、中断请求寄存器 (TCON)
TCON 8FH 8EH 8DH 8CH
(88H) TF1
TF0
8BH 8AH 89H 88H
IE1 IT1 IE0 IT0
外部中断举例
要求:每次按键,使外接发光二极管LED改变一次亮灭状态。
解:INT0输入按键信号,P1.0输出改变LED状态。
ORG 0000H
AJMP MAIN
TC=F830H; TH0=F8H、TL0=30H
【例7-2】利用STC12C5A60S2单片机的定时/计数器T0功能,在 P1.0引脚输出周期为2ms的方波,假设系统时钟频率为6MHz,编写 相应的程序。
P1.0引脚
1ms
1ms
分析:
若要产生2ms的方波,只需要每定时1ms对P1.0引脚的输出取反
。
采用T0、方式1定时中断的方式实现。
机器周期T=2us(12T模式)
初值计算: (216 C) * 2us 1000us
C FE0CH
21
【例7-3】设STC12C5A60S2单片机的系统时钟频率为12MHz ,编程实现从P1.1引脚输出周期为1s的方波。
P1.1引脚
500ms
定时器定时时间=(28-C)*1us
所以:
波特率
1 16
*
(28
1 C) *1us
62.5k
C FFH
27
单片机与PC机的通讯
PC机的串口一般为RS-232C; 它采用负逻辑电平:-3~ -15v为逻辑 1;
+3~15v 为逻辑 0; -3~+3v 为过渡区,不作定义。
ORG 0003H ;中断入口 CPL P1.0 ;改变LED
RETI
;返回主程序
5V
INT0
5V
P1.0
ORG 0030H ;主程序 MAIN:SETB EA ;开总允许开关
SETB EX0 ;开INT0中断 SETB IT0 ;负跳变触发中断 Here: SJMP Here ;相当于执行其它任务 END
例如:要求串行通信的波特率为62.5kbps, fosc=12MHZ,12T模式,SMOD=1,使用定时器T1做 波特率发生器,计算计数初值。
使用串行口方式1和方式3, 波特率=(2SMOD /32 )×定时器/计数器T1或BRT溢出率
定时计数器1如果使用方式2定时方式,8位自动重装初值的计数。
机器周期 1us。
22
【例7-4】用T0作为计数器计数一生产流水线上的工件,每生产 100个工件,发出一包装命令,包装成一箱,并记录其箱数,
100个
包装命令
23
第8章 串行口通信
串行同步通信、异步通信各自的特点。 串行口1的工作方式有哪些?每种工作方式下的波特 率和帧格式是什么样的? 可以做为波特率发生器的是()、()
SPI同步串行接口的时钟信号
程序状态字寄存器PSW:保存指令执行结果的状态
D7 D6 D5 D4 D3 D2 D1 D0
CY AC F0 RS1 RS0 OV F1 P
PSW寄存器中的四个状态标志位有哪四个?怎么通 过计算得到四个状态标志的值?其它四个位起到什么 作用?
2.5.2 片内RAM
FFH 高128字节 内部RAM区
各种方式定时时间比较:
方式0:213 *1us=8192us=8.192ms
方式1:216 *1us=65.536ms
方式2、方式3:28 *1us=0.256ms
所以只能采用方式0、1 方式0时:(213 – TC)*1us=2ms
TC=1830H;TH0=C1H、TL0=10H 方式1:(216 – TC)*1us=2ms