版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1单片机原理与应用单片机原理与应用总复习总复习docin/sundae_meng2第一章第一章 单片机综述单片机综述 (1.5)+ 外设键盘、显示、外设键盘、显示、AD、DA)1、单片机的概念单片微型计算机、微控制器)、单片机的概念单片微型计算机、微控制器) 将将CPU、存储器、定时器、存储器、定时器/计数器、多种计数器、多种I/O接口等接口等电路集成在一块芯片上所构成的计算机。电路集成在一块芯片上所构成的计算机。 2、单片机的内部结构:、单片机的内部结构:32.1 单片机的内部结构单片机的内部结构由运算器由运算器ALU)、控制器和专用寄存)、控制器和专用寄存器组构成器组构成u程序计数器程序计
2、数器PC:存放下一条需要执行的指令内存地址,自动加:存放下一条需要执行的指令内存地址,自动加1。16位、决定了可以寻址的程序存储器的空间位、决定了可以寻址的程序存储器的空间64KB。上电后初始值是上电后初始值是0000H,所以从该地址开始执行程序。,所以从该地址开始执行程序。u累加器累加器A、Bu程序状态字程序状态字PSWu堆栈指针堆栈指针SPu数据指针数据指针DPTRPSW7PSW6PSW5PSW4PSW3PSW2PSW1PSW0CyACF0RS1RS0OV -P4存储器结构存储器结构-ROM片外ROM/EA=0片内ROM/EA=1外部ROM0000H0FFFH1000HFFFFH8051
3、ROM地址空间的分配地址空间的分配8051的内部的内部ROM 4K B;8031没有内部没有内部ROM。如果使用如果使用8051,/EA引脚如何引脚如何连接?如果片内连接?如果片内ROM用完用完了怎么办?也就是说当了怎么办?也就是说当PC值为多少的时候,会转到值为多少的时候,会转到片外片外ROM执行?执行?内部内部ROM和外部和外部ROM的最大的最大寻址空间多大?决定于哪寻址空间多大?决定于哪个寄存器?个寄存器?单片机的存储器单片机的存储器 有有ROM、RAM之分;还有片内、片外之分之分;还有片内、片外之分5存储器部分片内RAM80518051片内片内RAM 128RAM 128字节地址字节地
4、址00-7FH00-7FH),片外),片外RAM RAM 可扩可扩展展64KB64KB地址地址0000H-FFFFH0000H-FFFFH)。共同占用部分访问时用)。共同占用部分访问时用MOVMOV和和MOVXMOVX指令区别。指令区别。片内片内RAMRAM分为:分为:(1(1工作寄存器区工作寄存器区00H-1FH00H-1FH4 4组组R0-R7R0-R7 (2 2位寻址区位寻址区20H-2FH20H-2FH):两种访问方法。):两种访问方法。 (3 3便笺区便笺区30H-7FH30H-7FH)67FH 普通普通RAM区区30H2FH 位寻址区位寻址区20H1FH 工作寄存器区工作寄存器区0
5、0H07H 0组组00H0FH 1组组08H17H 2组组10H1FH 3组组18HFFH SFR区区80H7FH 真正真正RAM区区00H80518051内部内部RAMRAM7RS1RS0寄存器组寄存器组片内片内RAM地址地址通用寄存器名称通用寄存器名称000组组00H07HR0R7011组组08H0FHR0R7102组组10H17HR0R7013组组18H1FHR0R7上电后,默认使用的是哪一组工作寄存器?地址是多上电后,默认使用的是哪一组工作寄存器?地址是多少?如果要更改工作寄存器的地址,使用什么寄存器、少?如果要更改工作寄存器的地址,使用什么寄存器、什么指令?什么指令?87FH 便笺区
6、便笺区30H2FH 位寻址区位寻址区20H1FH 工作寄存器区工作寄存器区00H20H21H22H23H24H25H26H27H2FH1、位寻址区是指、位寻址区是指 20H2FH单元,共单元,共16个单元。个单元。2、 位寻址区的位寻址区的 16个单元个单元共计共计128位的每位的每1位都位都有一个有一个8位表示的位地址位表示的位地址, 位地址范围为位地址范围为00H1FH。4、 同样同样, 位寻址的位寻址的RAM单单元也可以按字节操作作为元也可以按字节操作作为一般的数据缓冲一般的数据缓冲 区。区。两种寻址方法:假如寻找两种寻址方法:假如寻找0B位,可以用位,可以用SETB 0BH;SETB
7、21H.3;97FH 真正真正RAM区区00HFFH SFR区区80H1、高、高128B的的RAM单元中单元中有有21个单元可用,这个单元可用,这21个个分散在高分散在高128B的地址空间的地址空间内,分别是内,分别是A,B,PSW,SP,DPH,DPL,P0,P1,P2,P3,IP,IE,TCON,TMOD,TH0,TL0,TH1,TL1,SCON,SBUF,PCON。2、11个可以按位寻址。个可以按位寻址。规律:地址可以被规律:地址可以被8整除。整除。 10X1 X2 EA PSEN ALE RST VCC GND 8051 P0 P1 P2 P3 P00P07 P10P17 P20P27
8、 P30P37 控控制制引引脚脚并行并行I/O口口引脚引脚电源及时钟引脚电源及时钟引脚控制引脚的功控制引脚的功能能单片机最小系统的组成113 3、控制线、控制线 RST复位信号复位信号需要让需要让8051复位时,给该引脚高电平,并保持复位时,给该引脚高电平,并保持24个时钟周期。个时钟周期。 地址锁存允许地址锁存允许/编程线编程线有外部存储器:访问外存时锁存低有外部存储器:访问外存时锁存低8位地址位地址无外部存储器时,无外部存储器时,ALE输出为晶振输出为晶振6分频的脉冲序列,可用作外部时钟源;分频的脉冲序列,可用作外部时钟源; 片外片外ROMROM选通线。选通线。MOVCMOVC命令时自动在
9、该脚产生负脉冲,命令时自动在该脚产生负脉冲,选通外部选通外部ROMROMPSEN-允许访问片外存储器允许访问片外存储器/ /编程电源线)编程电源线) /EA=1 /EA=1 从内部开始执行程序;从内部开始执行程序;/EA=0 /EA=0 只访问外程序存储器;只访问外程序存储器;Vpp/EA1280518051访问外部存储器的指令时序:访问外部存储器的指令时序: 1 1、80518051对外部对外部ROMROM的读操作过程:的读操作过程: MOVC A MOVC A,A+DPTRA+DPTR;AA(A+DPTRA+DPTR)=x=x使用到使用到ALEALE地址锁存、地址锁存、PSENPSEN选通
10、选通ROMROM。2 2、80518051对外部对外部RAMRAM的写操作过程:的写操作过程: MOVX DPTR MOVX DPTR,A A;x-2050Hx-2050H使用到使用到ALEALE地址锁存、地址锁存、/WR=0/WR=0,/RD=1/RD=1;13P2.7P2.0P0.7P0.0ALEPSENWRRDEA74LS373A15A0A15A01# ROM (64K8)D7D02# RAM (64K8)D7D089C51和外部和外部ROM、RAM的连接图的连接图DPHDPLMOVC A,A+DPTR;A(A+DPTR)=xMOVX DPTR,A;x-2050H14第三章 指令部分 7
11、种寻址方式种寻址方式寄存器寻址寄存器寻址 eg: MOV A,R0 直接寻址直接寻址 eg: MOV A,20H ; MOV A,SP立即寻址立即寻址 eg: MOV A,#3AH 寄存器间址寄存器间址 eg: MOV A,R0 变址寻址变址寻址 eg: MOVC A,A+DPTR 相对寻址相对寻址 eg: SJMP $ 位寻址位寻址 eg: MOV C,7FH15数据传送指令u 内部数据传送指令内部数据传送指令 MOV 注意不能在注意不能在Rn之间传送之间传送u 外部外部RAM 与内部数据传送指令与内部数据传送指令 MOVXu MOVXA , DPTRMOVX A , Riu MOVXDPT
12、R , AMOVX Ri , Au ROM与内部数据传送指令与内部数据传送指令 MOVCu MOVCA , A+DPTRu MOVCA , A+PCu Eg:(1) R1内容传送到内容传送到R0 u (2外部外部RAM 20H单元的内容传送到单元的内容传送到A u (3) 程序存储器程序存储器ROM 2000H单元的内容送内部单元的内容送内部RAM 20H; u(4) 外部外部RAM 1000H单元的内容送内部单元的内容送内部RAM 20Hu (5) 片外片外RAM 2000H单元中的数据传送到片外单元中的数据传送到片外RAM 3000H 16查表指令的使用例例3.6 3.6 已知已知A A中
13、有一个中有一个0-90-9范围的数,查找该数的平方范围的数,查找该数的平方 解:采用解:采用DPTRDPTR做基址寄存器:做基址寄存器:MOVMOV A A,#data#dataMOV MOV DPTRDPTR,#2000H#2000H;MOVC MOVC A A,A+DPTRA+DPTR;ORGORG2000H2000HTABTAB:DBDB0 0,1 1,4 4,9 9,.81.81014916253649642000H2001H2002H2003H2004H2005H2006H2007H2008H812009H17堆栈操作指令 先进后出、后进先出先进后出、后进先出 PUSHdirect
14、;SPSP+1,(SP) (direct) POPdirect ;(SP) (direct), SPSP-118 ADDADD、ADDCADDC、SUBBSUBB 特点:都是以特点:都是以A A作为第一操作数。作为第一操作数。 影响影响PSWPSW标志位。标志位。 只能是只能是8 8位二进制数据的运算。位二进制数据的运算。 INCINC、DECDEC MULMUL AB AB ;A A* *B=BA B=BA 形成标志形成标志 DIVDIV AB AB ;A AB=ABB=AB算术运算指令算术运算指令逻辑运算指令逻辑运算指令ANL、ORL、XRL、CLR A、CPL A移位指令移位指令RR、R
15、L、RRC、RLC、SWAP特点:特点:只有循环移位。只有循环移位。目的操作数都在目的操作数都在A中。中。单操作数指令单操作数指令19转移指令 无条件转移指令无条件转移指令 LJMPadd16 ;长转移指令;长转移指令 AJMPaddr11 ;绝对转移指令;绝对转移指令 SJMPrel;短转移指令;短转移指令 JMPA+DPTR ;变址寻址转移指令;变址寻址转移指令 条件转移指令条件转移指令 累加器累加器A判零转移指令判零转移指令JZ、JNZ 比较条件转移指令:比较条件转移指令: CJNE A,#data,rel; 减减1条件转移指令:条件转移指令: DJNZ Rn,rel20子程序相关的指令
16、 ACLL addr11ACLL addr11 LCALL addr16LCALL addr16 RETRET;子程序返回指令,用于子程序末尾。;子程序返回指令,用于子程序末尾。 RETIRETI;中断返回指令,用于中断服务程序末尾。;中断返回指令,用于中断服务程序末尾。子程序的开头必须是标号,以供主程序调用。子程序的开头必须是标号,以供主程序调用。21位操作指令位操作指令位传送指令:位传送指令:MOV CMOV C,bitbit;MOV bitMOV bit,C C;位置位、位清零指令位置位、位清零指令CLR C; CLR bit;SETB C; SETB bit22第四章第四章 汇编语言程
17、序设计汇编语言程序设计 汇编语言语句有两种:指令性语句和指示性语句汇编语言语句有两种:指令性语句和指示性语句 汇编语言语句格式包括:标号、操作码、操作数、注释汇编语言语句格式包括:标号、操作码、操作数、注释 常用伪指令的使用方法:常用伪指令的使用方法: ORG:起始汇编伪指令:起始汇编伪指令 END:结束汇编伪指令:结束汇编伪指令 DB、DW2324 0023H 4串行口串行口 0013H 2INT1 001BH 3T1 000BH 1T0 0003H 0INT0中断入口地址中断入口地址 C51中断入口中断入口中断源中断源8051中断入口地址中断入口地址25中断相关的几个重要中断相关的几个重要
18、SFR3中断允许寄存器中断允许寄存器IEA8H)264中断优先级寄存器中断优先级寄存器IPB8H)5定时器方式控制寄存器定时器方式控制寄存器TMOD89H 不能位寻址)不能位寻址)同级中断的优先级顺序同级中断的优先级顺序 INT0 T0 INT1 T1 串行口。串行口。27外部中断初始化步骤外部中断初始化步骤1、开中断、开中断2、设立优先级、设立优先级3、设立触发方式电平、设立触发方式电平or边沿)边沿)例例6.1 请写出请写出/INT1为低电平触发为低电平触发 和高中断优先级的中断系和高中断优先级的中断系统初始化程序统初始化程序CLRIT1 ;电平触发电平触发 IT1 = 0;SETBEX1
19、 EX1 = 1;SETBPX1 PX1 = 1;SETBEA EA = 1;28定时器初始化编程格式定时器初始化编程格式初始化编程格式:初始化编程格式:TMOD = x ;选择工作方式选择工作方式THx = 0 x#;装入;装入Tx时间常数时间常数TLx= 0 x#ETx = 1;开;开Tx中断中断EA = 1;开总中断;开总中断TRx = 1;启动;启动Tx定时器定时器29例:若单片机时钟频率为例:若单片机时钟频率为12MHz,请计算定时,请计算定时100us所需的定所需的定时器初值,并写出初始化程序时器初值,并写出初始化程序各种方式定时时间比较:各种方式定时时间比较:方式方式0:213
20、*1us=8192us=8.192ms方式方式1:216 *1us=65.536ms方式方式2、方式、方式3:28 *1us=0.256ms方式方式0时:(时:(213 TC)*1us=100us TC=1F9CH;TH0=FCH、TL0=1CH 方式方式1:(:(216 TC)*1us=100us TC=FF9CH 方式方式2: (28-TC)*1us=100usTC=009CH定时器定时器/计数器例程计数器例程1 根据时钟频率计根据时钟频率计算机器周期算机器周期2将定时时间与各种将定时时间与各种方式最大时间比较方式最大时间比较3、选择合适的方式,、选择合适的方式,求出初值求出初值4、写出初
21、始化程序、写出初始化程序30中断程序格式中断程序格式Sbit LED = P10;Void main() IT0 = 0; EX0 = 1; EA = 1; while(1);Void Int0_Int() interrupt 0 LED = !LED;31定时器例程定时器例程例例7.11 设设8051时钟频率时钟频率12MHz,编写程序令,编写程序令P1.0引脚引脚输出输出2S的方波程序的方波程序sbit Pulse = P10;unsigned char Cnt_50ms;Void T1_Init(void) TMOD = 0 x10; TH1 = 0 x3c; TL1 = 0 xb0;
22、ET1 = 1; EA = 1; TR1 = 1;Void T1_Int() interrupt 3 TH1 = 0 x3c; TL1 = 0 xb0; if(Cnt_50ms = 20) Cnt_50ms = 0; Pulse = Pulse; Void main() T1_Init(); while(1);32计数器例程计数器例程 分析:分析:T1工作在方式工作在方式2,200个脉个脉冲产生一次溢出,所以,冲产生一次溢出,所以,256-200=56 ;C=38H。那么。那么TH0=TL0=38H。利用利用T1的方式的方式2对外部信号对外部信号计数,要求每计满计数,要求每计满200个数,个数
23、,将将P1.0引脚取反。引脚取反。Sbit Pin = P10;Void main() TMOD = 0 x60; TH1 = 0 x38; TL1 = 0 x38; ET1 = 1; EA = 1; TR1 = 1;Void T1_Int() interrupt 3 Pin = Pin;33第八章第八章 MCS-51对对AD和和DA的接口的接口 ADC0809、DAC0832的作用是什么?什么是分辨率、什么是的作用是什么?什么是分辨率、什么是转换精度?这两款芯片的分辨率、转换精度分别是多少?转换精度?这两款芯片的分辨率、转换精度分别是多少?n2满量程模拟量分辨率 DAC0832和和MCS51
24、单片机的连接方法有:直通方式、单缓冲方单片机的连接方法有:直通方式、单缓冲方式、和双缓冲方式。式、和双缓冲方式。 (两个锁存器处于不同的导通关闭状态两个锁存器处于不同的导通关闭状态)34其内部结构和引脚功能如下图所示:其内部结构和引脚功能如下图所示:数模转换器数模转换器-DAC0832DAC0832结构引脚图结构引脚图缓冲器缓冲器35如图所示连接是那种接口方式?如图所示连接是那种接口方式?DAC0832的地址应该是多少?的地址应该是多少?使用什么样的指令启动使用什么样的指令启动DAC转换?转换?如果要用该图原理产生三角波、锯齿波分别该如何写程如果要用该图原理产生三角波、锯齿波分别该如何写程序?
25、序?36 ADC0809芯片内部结构芯片内部结构 以及引脚功能以及引脚功能START CLOCK37MCS-51对对ADC0809的接口的接口从该图上可以获得的信息:从该图上可以获得的信息:1、要启动、要启动IN0的的AD转化,转化,需要用命令需要用命令MOV DPTR,#FEF8HMOVX DPTR,A2、要读出转化后的数据、要读出转化后的数据 需要使用命令需要使用命令MOV DPTR,#FEF8HMOVX A,DPTR3、8个通道的选通地址分个通道的选通地址分别是别是FEF8 FEFF38第第9章章 MCS-51 的串行通信的串行通信MCS-51含有一个可编程全双工串行通讯接口,能同时进行
26、含有一个可编程全双工串行通讯接口,能同时进行数据的发送和接收,也可以作为一个同步移位寄存器使用。数据的发送和接收,也可以作为一个同步移位寄存器使用。MOV A , SBUF ;接收数据;接收数据MOV SBUF , A ;发送数据;发送数据SM0SM1工作方式工作方式功功 能能波波 特特 率率00方式方式0同步移位寄存器方式,用同步移位寄存器方式,用于串并转换、扩展并口于串并转换、扩展并口fosc /1201方式方式110位通用异步接收器位通用异步接收器/发送发送器器由 定 时 器由 定 时 器T1控制控制10方式方式211位通用异步接收器位通用异步接收器/发送发送器器fosc /32或或 f
27、osc /6411方式方式311位通用异步接收器位通用异步接收器/发送发送器器由 定 时 器由 定 时 器T1控制控制串行口的工作方式串行口的工作方式 39对于方式对于方式1和方式和方式3,波特率由定时器,波特率由定时器/计数器计数器T1的溢出率和的溢出率和SMOD决定,即由下式确定:决定,即由下式确定: 波特率波特率=(2SMOD /32 )定时器)定时器/计数器计数器T1溢出率溢出率 计算溢出率:溢出率即定时时间的倒数。计算溢出率:溢出率即定时时间的倒数。机器周期机器周期T=1/(fosc/12)定时时间定时时间=(2K - 初值)初值)*T实际使用串行通信时,要首先确定波特率才能进行双方
28、的通信。实际使用串行通信时,要首先确定波特率才能进行双方的通信。根据波特率计算定时器根据波特率计算定时器T1的计数初值。的计数初值。 波特率波特率=(2SMOD /32 )定时器)定时器/计数器计数器T1溢出率溢出率 进行定时器的初始化。通常使用进行定时器的初始化。通常使用T1的方式的方式2作为波特率发生器作为波特率发生器TMOD、TCON、TH1=TL1=?、关?、关T1中断、启动定时中断、启动定时进行串行口初始化。进行串行口初始化。SCON、PCONSMOD)40 串行口工作之前,应对其进行初始化,主要是设置产生串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器波特率的定时器1
29、 1、串行口控制和中断控制。具体步骤如下:、串行口控制和中断控制。具体步骤如下:确定串行口控制编程确定串行口控制编程SCONSCON寄存器);寄存器);确定确定T1T1的工作方式编程的工作方式编程TMODTMOD寄存器);寄存器);计算计算T1T1的初值,装载的初值,装载TH1TH1、TL1TL1;启动启动T1T1编程编程TCONTCON中的中的TR1TR1位);位);串行口在中断方式工作时,要进行中断设置编程串行口在中断方式工作时,要进行中断设置编程IEIE、IPIP寄寄存器)。存器)。初始化后,设置串口工作。初始化后,设置串口工作。发送:直接写发送:直接写SBUFSBUF,查询,查询TI/TI/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学后勤奖惩制度规定
- 剧院技术部内部奖惩制度
- 施工车辆安全奖惩制度
- 考核工资分配与奖惩制度
- 中西医联合查房会诊制度
- 安全评价人员奖惩制度
- 工程质量验收奖惩制度
- 无烟学校控烟奖惩制度
- 小学生三年级奖惩制度
- 电厂保安奖惩制度范本
- 腹膜透析室规范制度
- 《中国养老金精算报告2025-2050》原文
- 宫颈癌根治性放疗指南2026
- 2026年春节后复工复产安全培训试题(附答案)
- 未来五年卫星通信地面站上下变频器行业跨境出海战略分析研究报告
- 2025年西南财经大学天府学院辅导员考试笔试题库附答案
- 通信工程师在电信公司的绩效评定表
- 塞来昔布课件
- 2025年兵团两委考试题及答案
- 党的二十届四中全会学习试题
- 通信建设项目管理
评论
0/150
提交评论