单片机原理与应用总复习.ppt

上传人:牧羊曲112 文档编号:6041784 上传时间:2023-09-17 格式:PPT 页数:44 大小:1.14MB
返回 下载 相关 举报
单片机原理与应用总复习.ppt_第1页
第1页 / 共44页
单片机原理与应用总复习.ppt_第2页
第2页 / 共44页
单片机原理与应用总复习.ppt_第3页
第3页 / 共44页
单片机原理与应用总复习.ppt_第4页
第4页 / 共44页
单片机原理与应用总复习.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《单片机原理与应用总复习.ppt》由会员分享,可在线阅读,更多相关《单片机原理与应用总复习.ppt(44页珍藏版)》请在三一办公上搜索。

1、1,单片机原理与应用总复习,2,第一章 单片机综述(1.5),+外设(键盘、显示、AD、DA),1、单片机的概念(单片微型计算机、微控制器)将CPU、存储器、定时器/计数器、多种I/O接口等电路集成在一块芯片上所构成的计算机。2、单片机的内部结构:,3,2.1 单片机的内部结构,由运算器(ALU)、控制器和专用寄存器组构成,程序计数器PC:存放下一条需要执行的指令内存地址,自动加1。,16位、决定了可以寻址的程序存储器的空间64KB。上电后初始值是0000H,所以从该地址开始执行程序。,累加器A、B程序状态字PSW,堆栈指针SP,数据指针DPTR,4,存储器结构-ROM,8051的内部ROM

2、4K B;8031没有内部ROM。如果使用8051,/EA引脚如何连接?如果片内ROM用完了怎么办?也就是说当PC值为多少的时候,会转到片外ROM执行?内部ROM和外部ROM的最大寻址空间多大?决定于哪个寄存器?,单片机的存储器 有ROM、RAM之分;还有片内、片外之分,5,存储器部分片内RAM,8051片内RAM 128字节(地址00-7FH),片外RAM 可扩展64KB(地址0000H-FFFFH)。共同占用部分访问时用MOV和MOVX指令区别。片内RAM分为:(1)工作寄存器区(00H-1FH)4组R0-R7(2)位寻址区(20H-2FH):两种访问方法。(3)便笺区(30H-7FH),

3、6,7,上电后,默认使用的是哪一组工作寄存器?地址是多少?如果要更改工作寄存器的地址,使用什么寄存器、什么指令?,8,7FH 便笺区30H,2FH 位寻址区20H,1FH 工作寄存器区00H,1、位寻址区是指 20H2FH单元,共16个单元。2、位寻址区的 16个单元(共计128位)的每1位都有一个8位表示的位地址,位地址范围为00H1FH。4、同样,位寻址的RAM单元也可以按字节操作作为一般的数据缓冲 区。两种寻址方法:假如寻找0B位,可以用SETB 0BH;SETB 21H.3;,9,7FH 真正RAM区00H,FFH SFR区80H,1、高128B的RAM单元中有21个单元可用,这21个

4、分散在高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整除。,3 特殊功能寄存器区(SFR):有特殊用途的寄存器的集合。参见P58表2-3、图2-6,10,控制引脚的功能,单片机最小系统的组成,11,3、控制线,RST复位信号需要让8051复位时,给该引脚高电平,并保持24个时钟周期。,地址锁存允许/编程线有外部存储器:访问外存时锁存低8位地址无外部存储器时,ALE输出为晶振6分频的脉冲序列,可用作外部时钟源;,片外

5、ROM选通线。MOVC命令时自动在该脚产生负脉冲,选通外部ROM,-允许访问片外存储器/编程电源线)/EA=1 从内部开始执行程序;/EA=0 只访问外程序存储器;,12,8051访问外部存储器的指令时序:1、8051对外部ROM的读操作过程:MOVC A,A+DPTR;A(A+DPTR)=x使用到ALE地址锁存、PSEN选通ROM。2、8051对外部RAM的写操作过程:MOVX DPTR,A;x-2050H使用到ALE地址锁存、/WR=0,/RD=1;,13,MOVC A,A+DPTR;A(A+DPTR)=x,MOVX DPTR,A;x-2050H,14,第三章 指令部分,7种寻址方式寄存器

6、寻址 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,7FH,15,数据传送指令,内部数据传送指令 MOV 注意不能在Rn之间传送外部RAM 与内部数据传送指令 MOVXMOVXA,DPTRMOVX A,RiMOVXDPTR,AMOVX Ri,AROM与内部数据传送指令 MOVCMOVCA,A+DPTRMOVCA,A+PCEg:(1)R1内容传送到R0(2)外部RAM 20H单元的内容传送到A(3)

7、程序存储器ROM 2000H单元的内容送内部RAM 20H;(4)外部RAM 1000H单元的内容送内部RAM 20H(5)片外RAM 2000H单元中的数据传送到片外RAM 3000H,16,查表指令的使用,例3.6 已知A中有一个0-9范围的数,查找该数的平方 解:采用DPTR做基址寄存器:MOVA,#dataMOV DPTR,#2000H;MOVC A,A+DPTR;ORG2000HTAB:DB0,1,4,9,.81,17,堆栈操作指令,先进后出、后进先出PUSHdirect;SPSP+1,(SP)(direct)POPdirect;(SP)(direct),SPSP-1,18,ADD、

8、ADDC、SUBB特点:都是以A作为第一操作数。影响PSW标志位。只能是8位二进制数据的运算。INC、DECMULAB;A*B=BA 形成标志DIVAB;AB=AB,算术运算指令,逻辑运算指令,ANL、ORL、XRL、CLR A、CPL A,移位指令,RR、RL、RRC、RLC、SWAP特点:只有循环移位。目的操作数都在A中。单操作数指令,ANLA,Rn;ANLA,direct;ANLA,Ri;ANLA,#data;ANLdirect,A;ANLdirect,#data;,19,转移指令,无条件转移指令LJMPadd16;长转移指令AJMPaddr11;绝对转移指令SJMPrel;短转移指令J

9、MPA+DPTR;变址寻址转移指令条件转移指令累加器A判零转移指令JZ、JNZ比较条件转移指令:CJNE A,#data,rel;减1条件转移指令:DJNZ Rn,rel,20,子程序相关的指令,ACLL addr11LCALL addr16RET;子程序返回指令,用于子程序末尾。RETI;中断返回指令,用于中断服务程序末尾。子程序的开头必须是标号,以供主程序调用。,21,位操作指令,位传送指令:MOV C,bit;MOV bit,C;,位置位、位清零指令CLR C;CLR bit;SETB C;SETB bit,位运算指令ANLC,bit;ANL C,/bit;ORLC,bit;ORL C,

10、/bit;CPLC;CPL bit;,位控制转移指令(1)Cy内容为条件的转移指令JCrel;JNCrel;(2)位地址内容为条件的转移指令JBbit,rel;JNBbit,rel;JBCbit,rel;,22,第四章 汇编语言程序设计,汇编语言语句有两种:指令性语句和指示性语句汇编语言语句格式包括:标号、操作码、操作数、注释常用伪指令的使用方法:ORG:起始汇编伪指令END:结束汇编伪指令DB、DW,23,第六章 MCS-51的中断系统,(1)什么是中断,中断的作用是什么?,24,25,中断相关的几个重要SFR,3)中断允许寄存器IE(A8H),26,4)中断优先级寄存器IP(B8H),5)

11、定时器方式控制寄存器TMOD(89H 不能位寻址),同级中断的优先级顺序 INT0 T0 INT1 T1 串行口。,27,外部中断初始化步骤,1、开中断,2、设立优先级,3、设立触发方式(电平or边沿),例6.1 请写出/INT1为低电平触发 和高中断优先级的中断系统初始化程序CLRIT1;电平触发 IT1=0;SETBEX1 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,例:若单

12、片机时钟频率为12MHz,请计算定时100us所需的定时器初值,并写出初始化程序,各种方式定时时间比较:方式0:213*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、写出初始化程序,30,中

13、断程序格式,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;ET1=1;EA=1;TR1=1;,Void T1_Int()interrupt 3 TH1=0 x3c;TL1=0 xb0;if(Cnt

14、_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个数,将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的接口,

15、ADC0809、DAC0832的作用是什么?什么是分辨率、什么是转换精度?这两款芯片的分辨率、转换精度分别是多少?,DAC0832和MCS51单片机的连接方法有:直通方式、单缓冲方式、和双缓冲方式。(两个锁存器处于不同的导通关闭状态),34,其内部结构和引脚功能如下图所示:,数模转换器-DAC0832,DAC0832结构引脚图,缓冲器,35,如图所示连接是那种接口方式?DAC0832的地址应该是多少?使用什么样的指令启动DAC转换?如果要用该图原理产生三角波、锯齿波分别该如何写程序?,36,ADC0809芯片内部结构 以及引脚功能,START CLOCK,37,MCS-51对ADC0809的接

16、口,从该图上可以获得的信息:1、要启动IN0的AD转化,需要用命令MOV DPTR,#FEF8HMOVX DPTR,A2、要读出转化后的数据 需要使用命令MOV DPTR,#FEF8HMOVX A,DPTR3、8个通道的选通地址分别是FEF8 FEFF,38,第9章 MCS-51 的串行通信,MCS-51含有一个可编程全双工串行通讯接口,能同时进行数据的发送和接收,也可以作为一个同步移位寄存器使用。,MOV A,SBUF;接收数据MOV SBUF,A;发送数据,串行口的工作方式,39,对于方式1和方式3,波特率由定时器/计数器T1的溢出率和SMOD决定,即由下式确定:波特率=(2SMOD/32

17、)定时器/计数器T1溢出率 计算溢出率:溢出率即定时时间的倒数。机器周期T=1/(fosc/12)定时时间=(2K-初值)*T,实际使用串行通信时,要首先确定波特率才能进行双方的通信。根据波特率计算定时器T1的计数初值。波特率=(2SMOD/32)定时器/计数器T1溢出率 进行定时器的初始化。通常使用T1的方式2作为波特率发生器TMOD、TCON、TH1=TL1=?、关T1中断、启动定时进行串行口初始化。SCON、PCON(SMOD),40,串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:确定串行口控制(编程SCON寄存器);确定T1的工作

18、方式(编程TMOD寄存器);计算T1的初值,装载TH1、TL1;启动T1(编程TCON中的TR1位);串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。初始化后,设置串口工作。发送:直接写SBUF,查询TI/中断接收:REN置1,查询RI/中断,(五)串行口使用步骤,41,例7-1 设时钟fosc=11.0592MHZ,要设置串行通信的波特率为4800bps,波特率不倍增,串行口方式1,则初始化程序为:,Void Uart_Init(void)TH1=0 xfa;TL1=0 xfa;TMOD=0 x20;TR1=1;SM0=0;SM1=0;REN=1;,42,例6:在PC机用串口

19、调试助手发送一个字符X,单片机收到字符后返回给PC机“I get X”,串口波特率设为9600bps,设单片机的外部晶振为11.0592Mhz。,43,#includeunsigned char flag,a,i;uchar code table=I get;/uchar code table=I,g,e,t,;void main()init();while(1)if(flag=1)ES=0;for(i=0;i6;i+)SBUF=tablei;while(!TI);TI=0;SBUF=a;while(!TI);TI=0;ES=1;flag=0;,void init()TMOD=0 x20;TH1=0 xfd;TL1=0 xfd;TR1=1;REN=1;SM0=0;SM1=1;ES=1;EA=1;,void ser()interrupt 4RI=0;a=SBUF;flag=1;,44,重点内容:1、定时/计数器的使用(比如使用定时器产生不同频率的方波)2、中断的使用。会使用定时中断、外部中断、串口中断,初始化中断以及中断函数的编写3、串口的初始化及数据收发4、AD的使用(ADC0809)5、独立按键及矩阵键盘的扫描。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号