单片机复习.docx
- 文档编号:30570066
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:18
- 大小:131.86KB
单片机复习.docx
《单片机复习.docx》由会员分享,可在线阅读,更多相关《单片机复习.docx(18页珍藏版)》请在冰豆网上搜索。
单片机复习
《单片机原理与应用》复习提纲
第二章MCS-51系列单片机的硬件结构
1.MCS-51单片机的总体结构
MCS-51单片机的内部结构
•8位的CPU;
•128个字节的片内RAM;
•4K字节的片内ROM程序存储器(8031无)
•外部的RAM和ROM的寻址范围为64K
•21个字节的专用寄存器
•4个8位并行I/O口
•1个全双工的串行口
•2个16位的定时器/计数器
•5个中断源、2个中断优先级
MCS-51单片机的总线结构
微处理器又称为CPU,是单片机内部的核心部件,它决定了单片机的重要功能特性。
它由运算器和控制器两大部分组成。
对CPU的使用就是对CPU中的寄存器的使用。
•累加器ACC
•寄存器B
•程序状态字PSW
•布尔处理器C
•程序计数器PC
•数据指针DPTRDPTR寄存器中存放外部数据存储器地址
•堆栈指针SP
•
2.程序存储器
程序存储器通常存放程序指令、常数及表格等,系统在运行过程中不能修改其中的数据。
.程序的几个特殊地址:
•复位0000H
•外部中断00003H
•定时器/计数器0溢出000BH
•外部中断10013H
•定时器/计数器1溢出001BH
•串行口中断0023H
3.数据存储器
•数据存储器则存放缓冲数据,系统在运行过程中可修改其中的数据。
•包括:
•1)编址与访问
•2)片内数据存储器
•3)特殊功能寄存器块
片内128字节数据存储器
要求熟悉4个工作寄存器区的使用方法RS0,RS1。
如:
RS1,RS0=10,R1的直接地址为11H。
00H~1FH:
内部RAM的寄存器区共有32个单元,分为4组,每组8单元。
•20H~2FH:
128位寻址区,128位寻址区的字节地址范围是20H~2FH。
•30H~7FH:
通用寄存器区或数据缓冲区。
•
•堆栈:
•使用片内RAM、初始化时SP=07H
•51系列单片机的堆栈是向上生长的
•一般程序中堆栈的开始:
•MOVSP,#60H
4.单片机的复位电路
高电平复位,一般高电平保持2个机器周期以上有效复位
5.时序
•
(1)振荡周期
•
(2)状态周期
•(3)机器周期
•(4)指令周期
•外部晶振的2分频是MCS-51单片机的内部时钟周期,6个时钟周期构成了单片机的1个机器周期。
即1个机器周期是外部晶振频率的12分频。
例:
单片机的晶振频率为6MHz,执行下列程序需要203个机器周期和406微秒时间。
(下列程序中注释的数字为执行该指令所需的机器周期数)
MOVR3,#50;1
LOOP:
NOP;1
NOP;1
DJNZR3,LOOP;2
•RET;2
•
第三章MCS-51系列单片机指令系统
1.寻址方式
1)概述
2)寻址就是寻找指令中操作数或操作数所在的地址。
3)所谓寻址方式就是如何找到存放操作数的地址,把操作数提取出来的方法。
它是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一。
寻址方式说明
立即寻址
寄存器寻址
直接寻址
寄存器间接寻址
基寄存器加变址寄存器间接寻址
相对寻址
位寻址
2.数据传送类
共29条。
按其操作方式,又可把它们分为三种:
数据传送、数据交换和栈操作。
助记符:
MOV、MOVX、MOVC、
XCH、XCHD、SWAP、
PUSH、POP。
应用举例:
1)把片内RAM6AH单元中的内容传送到片外RAM3000H单元。
MOVA,6AH
MOVDPTR,#3000H
MOVX@DPTR,A
2)把片外I/O口地址为2000H的数据读入片内RAM40H单元中。
MOVDPTR,#2000H
MOVXA,@DPTR
MOV40H,A
3)把片外I/O口地址为2000H的数据写入片外RAM4000H单元中。
MOVDPTR,#2000H
MOVXA,@DPTR
MOVDPTR,#4000H
MOV@DPTR,A
4)把外部数据存储器2040H单元内容和片外RAM2230H单元互换。
MOVDPTR,#2040H
MOVXA,@DPTR
MOVR1,A
MOVDPTR,#2230H
MOVXA,@DPTR
MOVDPTR,#2040H
MOVX@DPTR,A
MOVDPTR,#2230H
MOVA,R1
MOVX@DPTR,A
5)已知片内RAM50H单元中存放数据为0AAH,把此数据值压入堆栈,然后再弹回到40H单元中,设堆栈指针为60H。
MOVSP,#60H
MOV50H,#0AAH
PUSH50H
POP40H
3.算术运算类(24条)
加、减、乘、除基本四则运算和增量(加1)、减量(减1)运算。
助记符:
ADD、ADDC、INC、DAA
SUBB、DEC、
MUL、DIV共8种操作助记符
应用举例:
1)将片内RAM40H和41H单元内容相加,结果放42H。
MOVA,40H
ADDA,41H
MOV42H,A
2)将片外RAM2000H和2001H两单元中的BCD码相加,结果放2002H。
MOVDPTR,#2000H
MOVXA,@DPTR
MOVR1,A
MOVDPTR,#2001H
MOVXA,@DPTR
ADDA,R1
DAA
MOVDPTR,#2002H
MOVX@DPTR,A
3)设被加数存入片内RAM30H~32H单元中,加数存入片内RAM40H~42H,低位在前,高位在后,各单元中均为压缩的BCD码。
将结果之和分别存入50H~52H单元中。
MOVA,30H
ADDA,40H
DAA
MOV50H,A
MOVA,31H
ADDCA,41H
DAA
MOV51H,A
MOVA,32H
ADDCA,42H
DAA
MOV52H,A
RET
4)把R1R0和R3R2中的两个4位BCD码数相加,结果送R5R4中,如有进位,则进位位存入位地址20H中。
MOVA,R0
ADDA,R2
DAA
MOVR4,A
MOVA,R1
ADDCA,R3
DAA
MOVR5,A
CLR20H
JNCL1
SETB20H
L1:
SJMPL1
4.逻辑运算类(24条)
包括清除、求反、移位及与、或、异或等操作。
这类指令有:
CLR、CPL、RL、RLC、RR、RRC、ANL、ORL、XRL,共9种操作助记符。
应用举例:
1)把累加器A中低4位(高4位清0)送入外部数据存储器的3000H单元。
MOVDPTR,#3000H
ANLA,#0FH
MOVX@DPTR,A
2)将累加器A的低4位的状态通过P1口的高4位输出。
ANLA,#0FH
SWAPA
ANLP1,#0FH
ORLP1,A
3)编程将片内RAM21H单元的低3位和20H单元的低5位合并为一个字节送片内RAM30H,要求21H的低3位放在高位上。
MOV30H,20H
ANL30H,#1FH
MOVA,21H
SWAPA
RLA
ANLA,#0E0H
ORL30H,A
5.控制转移类(17条)
计算机在运行过程中,有时因为操作的需要或程序较复杂,程序指令往往不能按顺序逐条执行,需要改变程序运行的方向。
MCS-51的控制转移类指令包括无条件转移、条件转移、调用和返回指令等。
指令有AJMP、LJMP、SJMP、JMPA+@DPTR、JZ、JNZ、CJNZ、DJNZ、ACALL、LCALL、RET、RETI、NOP共13种操作助记符。
LJMP、SJMP的转移范围
应用举例
1)将累加器A的低4位取反4次,高4位不变,每变换一次从P1口输出。
方法1:
MOVR0,#0
LL:
XRLA,#0FH
INCR0
MOVP1,A
CJNER0,#04H,LL
RET
方法2:
MOVR0,#04H
LL:
XRLA,#0FH
MOVP1,A
DJNZR0,LL
RET
6.位操作类(17条)
以进位标志C作为累加器C
在使用位操作类指令时要和字节操作类指令区别开来,因为它们的助记符是相同的。
这类指令的助记符有:
MOV、CLR、CPL、SETB、ANL、ORL、JC、JNC、JB、JNB、JBC,共11种操作助记符。
应用举例:
1)将累加器的ACC.5与00H位相与后,通过P1.4输出。
MOVC,ACC.5
ANLC,00H
MOVP1.4,C
7.伪指令
汇编程序对用汇编语言写的源程序进行汇编时,还要提供一些汇编用的指令,例如要指定程序或数据存放的起始地址;要给一些连续存放的数据确定单元等等。
但是,这些指令在汇编时并不产生目标代码,不影响程序的执行,所以称为伪指令。
ORG定位伪指令
DB定义字节伪指令
DW定义字伪指令
EQU赋值伪指令
END汇编结束伪指令
说明以下指令的意义:
1.MOVP1,#82H
2.SWAPA
3.ANL30H,#20H
4.DEC@R0
5.CJNEA,#60H,NEG
6.SETBC
7.RLA
8.MOVXA,@DPTR
9.ORL30H,A
10.MOV30H,20H
第四章汇编语言程序设计
1.顺序结构的程序
应用举例:
1)将片外I/O口1000H数据读入片内RAM30H单元中。
2)把二个外部数据存储器2000H单元和2010H单元内容互换。
3)将31H、30H和41H、40H中的两个4位BCD码数相加,结果送31H、30H中,(低位在低字节,高位在高字节)
4)将片内RAM20H单元中的数拆成两段,每段4位,并将其分别存入21H、22H单元中。
低4位存在21H单元,高4位存在22H单元
2.分支结构的程序
分支结构程序是利用条件转移指令,使程序执行到某一指令时,根据条件是否满足,来改变程序执行的顺序。
编写分支结构的程序主要在于正确使用转移指令。
编写分支结构的程序的关键是确定好分支条件。
应用举例:
1)从片内RAM60H开始存放100个数据,试统计正数、负数及零的个数,并将结果存放在50H/51H/52H单元中。
2)从20H单元开始有一无符号数据块,其长度在20H单元。
求出数据块中的最小值并存入21H单元中。
3.循环结构的程序
1.将内部RAM30H开始的连续8个字节单元的无符号数求和,假设和不超过256。
2.将内部RAM20H开始的连续16个工作单元清0。
4.查表程序:
参看实验六
(1),
(2)程序
5.子程序设计:
参看实验六
(1),
(2)程序
通常将这种可以被调用的程序段称为子程序。
调用子程序的程序称为主程序。
使用子程序的过程称为调用子程序;
子程序执行完毕后返回主程序的过程称为子程序返回。
第五章MCS-51单片机硬件资源的应用
1.I/O口的应用
在MCS-51单片机内部包含有四个并行的I/O口P0口、P1口、P2口和P3口。
PO口既可以作为通用的I/O口进行数据的输入/输出,也可以作为单片机系统的地址/数据线使用。
P2口既可以作为通用的I/O口使用也可以作为地址总线使用。
P2口作为一般的I/O口使用时记作P2.7~P2.0;作为地址口使用时是地址的高8位,记作A15~A8。
I/O口应用举例
例5.1;例5.2;实验三
2.MCS-51单片机的中断系统
中断源中断控制中断优先级中断响应
•中断服务程序入口地址:
•外部中断00003H
•定时器/计数器0溢出000BH
•外部中断10013H
•定时器/计数器1溢出001BH
•串行口0023H
•中断系统应用举例例5.4
•
•3.MCS-51的定时器/计数器
•计数功能是指对外部事件进行计数,计数信号来自T0、T1引脚。
•定时功能也是通过计数器的计数功能来完成的,不过此时的计数脉冲来自单片机内部的机器周期。
•定时和计数范围:
•方式1:
•16位计数器的计数值范围是:
1~65536。
•当为计数器工作方式时:
•计数器的初值范围为:
0~216-1
•当为定时工作方式时:
•定时时间=(216-计数初值)×定时周期
若晶振频率为12MHz,其定时周期1μs,则最短定时时间为:
Tmin=[216-(216-1)]×1μs=1(μs)
最长定时时间为:
Tmax=(216-0)×1μs=65536(μs)
•方式2:
•二个8位计数器,可自动重装数
•定时器/计数器应用举例
•例5.9;例5.10;实验四
•
•4.MCS-51的串行接口
•MCS-51单片机内部的串行接口是全双工的,即它能同时发送和接收数据。
这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。
在串行口中可供用户使用的是它的寄存器。
•熟悉串行控制寄存器SCON各位的功能
•
串行口的应用
第六章单片机的系统扩展技术
系统扩展的寻址方法有:
线译码方式和译码器译码二种方式
1.线译码
2.译码器译码
3.存储器综合扩展举例
•27128的地址空间范围是:
0000H~3FFFH
•62128的地址空间范围是:
8000H~0BFFFH。
4.并行I/O口扩展技术
使用锁存器扩展并行口
使用三态门扩展并行口
利用8255扩展并行I/O口
第7章MCS-51系列单片机接口技术
1.键盘接口技术
(1)独立式按键接口
注意:
读按键时要考虑去抖动延时
例如:
编程读K0
(2)4×4行列键盘参考实验六
(2)程序,熟悉4×4行列键盘编程方法
2.显示接口技术
(1)LED静态显示
(2)LED动态显示
读程序要求:
读懂参考实验六
(1)LED动态扫描显示程序;
熟悉动态扫描显示程序的编程方法。
了解LED静态显示和动态显示各自的特点和主要区别。
掌握如下图所示LED动态显示的编程。
编程应用:
1)请设计四个共阴数码管显示的动态扫描显示电路,位驱动采用三极管控制,假设待显示的数据已存放在30H开始连续存放的四个单元显示缓冲区中。
2)编写动态扫描显示程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 复习