资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,一、单片机概论,单片微型计算机简称单片机,它是把组成微型计算机的各个部件:中央处理器,储存器,输入输出接口电路,定时器/计算器等,制作在一块集成电路中,构成一个完整的微型计算机.,8位单片机占整个单片机市场的60%以上,8位单片机的旧的机种正在被淘汰,新的机型不断涌现.8位单片机以其功能强,品种多,正广泛应用于各个领域,是单片机的主流机种.随着集成电路工艺的不断改进,8位单片机的价格也在不断降低.,单片机的发展趋势是: 增加存储器容量,片内EPROM转变为FLASH,存储器编程可不同级别加密,片内I/O管脚多功能化.,1,单片机的应用领域,工业方面,: 电机控制,工业机器人,过程控制,数字控制,仪器仪表方面: 智能仪器,医疗器械,色谱仪,示 波器,民用方面: 电子玩具,高级电视游戏机,录像机,激光盘驱动,电讯方面: 调制解调器,智能线路运行控制.,导航与控制: 导弹控制,智能武器装置,数据处理: 图形终端,磁带机,打印机,汽车方面: 点火控制,变速器控制,排气控制,2,第一章,89S52单片机的结构,一、内部结构和主要功能,二、引脚功能说明,三、时钟、复位电路,四、,I/O端口,五、存储器配置,六、最小系统,七、CPU时序,3,89S52结构示意图,4,主要性能:,片内存储器包含,8KB的FLASH,可在线编程,檫写次数不少于1000次,256字节片内数据RAM,32根可编程I/0口线,8个中断源、6个中断矢量、两个优先权的中断结构,1个可编程全双工串行接口,3个可编程定时/计数器,两种低功耗模式分别是空闲模式和掉电模式,具有3级程序锁定位,含有一个看门狗定时器,具有断电标志POF,全静态工作频率033MHz,完全兼容MCS51产品,5,89S52引脚功能介绍,VCC +5V,GND 地,ALE 地址锁存允许,/PSEN 程序存储器允许,EA/VPP,为,0访问外部程序存储器,为1访问内部程序存储器,RST复位信号输入,XTAL1、XTAL2 外部晶振,P0.0P0.7 I/O端口(P0口),P1.0P1.7 I/O端口(P1口),P2.0P2.7 I/O端口(P2口),P3.0P3.7 I/O端口(P3口),6,89S52引脚图,7,时钟、复位电路,时钟电路:,复位电路:,8,I/O端口P0口,1P0端口总线IO端口,双向,开漏,数据地址分时复用,该端口除用于数据的输入输出外,在89S52单片机外接程序存储器时,还分时地输出输入地址指令。由P0端口输出的信号无锁存,输入的信息有读端口引脚和读端口锁存器之分,9,P0端口结构,10,P1端口结构,11,P2端口结构,12,I/O端口P3口(双功能口),P3.0 RXD 串行接口,P3.1 TXD,P3.2 /INT0 外部中断输入,P3.3 /INT1,P3.4 T0 定时/计数器输入,P3.5 T1,P3.6 /WR 外部数据读、写,P3.7 /RD,13,I/O端口P3口(双功能口),14,P3端口结构,15,SFR寄存器(1),特殊功能功能名称地址复位后,寄存器的状态,B*通用寄存器F0H 00H,A *累加器E0H 00H,PSW *程序状态寄存器 D0H 00H,IP*中断优先寄存器 B8H00H,P3*P3口数据寄存器 B0HFFH,IE*中断允许寄存器 A8H00H,P2*P2口数据寄存器 A0H FFH,SBUF 串行口发送/接收缓冲器 99H 不定,SCON*串行口控制寄存器 98H 00H,P1*P1口数据寄存器 90H FFH,16,SFR寄存器(2),特殊功能 功能名称 地址 复位后,寄存器 的状态,TH1T1计数器高8位 8DH 00H,TH0 T0计数器高8位 8CH 00H,TL1 T1计数器低8位 8BH 00H,TL0 T0 计数器低8位 8AH 00H,TMOD 定时/计数器方式字寄存器 89H 00H,TCON*定时控制寄存器 88H 00H,PCON 波特率选择寄存器 87H 00H,DPH地址寄存器高8位 83H 00H,DPL地址寄存器低8位 82H 00H,SP堆栈指示器 81H 07H,P0*P0口数据寄存器 80H FFH,17,CPU时序外部程序存储器读,18,CPU时序外部数据存储器读写,19,第二章,89S52单片机开发入门,一、开发流程,二、开发工具,三、集成开发环境,四、举例,20,Keil C51开发流程,根据任务选择,MC型号,设置工程参数,如频率,优化级别等,加入适当的包含文件#include “reg51.h”,编写源代码,调试与仿真,生成HEX文件,烧写,21,二、开发工具,89S52开发板,集成开发环境,下载线软件,常用仪器(万用表,示波器等),22,下载线软件,23,编程软件,24,三、集成开发环境,Keil Software Inc.的uVision2,集成开发环境或者WAVE编译环境,集成C和汇编语言源代码编写.,编译连接,模拟仿真,输出hex文件.,支持连接仿真器进行在线仿真.,标准C语言支持.,支持多级优化,支持数百种器件.,25,Keil C51,uVision2,26,第三章 指令系统及汇编语言,一、指令系统概述,二、,51单片机指令系统,三、汇编语言程序设计举例,四、C51程序设计举例,27,一、指令系统概述,MCS-51系列单片机共有111条指令,按功能可分成5类指令:,数据传送指令(29条),算术运算指令(24条),逻辑运算指令(24条),控制转移指令(17条),位操作类指令(17条),28,1. 指令执行时间快,单周期指令65条 (,1us, 12MHz晶振,),双周期指令44条 (,2us , 12MHz晶振,),四周期指令2条 (,4us , 12MHz晶振,),2. 指令短,单字节指令49条,双字节指令46条,三字节指令 16条,3. 单指令实现字节相乘或相除运算,4. 具有丰富的位操作类指令,1、AT89系列指令系统特点,29,2、寻址方式,7种寻址方式:,立即寻址,直接寻址,寄存器寻址,寄存器间接寻址,相对寻址,变址寻址,位寻址,30,二、,51单片机指令系统,1、指令中常用符号说明,2、数据传送指令,3、算术运算指令,4、逻辑运算指令,5、控制转移指令,6、位操作类指令,31,1、指令中常用符号说明,Rn 当前寄存器区的RoR7(其中n07)Ri 当前寄存器区中的R0和R1(其中i0,1) direct 8位直接字节地址(片内RAM和SFR空间) #data 8位立即数。#data1616位立即数。addr1616位地址值。Addr1111位地址值。rel8位带符号地址偏移量(128127),bit片内RAM和SFR中的可直接寻址位,间接寻址寄存器或基址寄存器的前缀,( ) 表示括号中的内容( ) 表示间址寻址的内容,32,2、数据传送指令(1),MOVA, Rn,MOVA, direct,MOVA, Ri,MOVA, #data,MOVRn, A,MOVRn, direct,MOVRn, #data,MOV direct, A,MOVdirect, Rn,MOVdirect, direct,MOVdirect, Ri,MOV direct, #data,MOV Ri, A,MOVRi, direct,33,数据传送指令,(2),MOVDPTR, #data16,MOVCA, A+DPTR,MOVCA, A+PC,MOVXA, Ri,MOVXA, DPTR,MOVXRi, A,MOVX DPTR, A,PUSHdirect,POPdirect,XCHA, Rn,XCHA, direct,XCHA, Ri,XCHDA, Ri,SWAPA,34,3、算术运算指令(1),ADDA, Rn,ADDA, direct,ADDA, Ri,ADDA, #data,ADDCA, Rn,ADDCA, direct,ADDCA, Ri,ADDCA, #data,SUBBA, Rn,SUBBA, direct,SUBBA, Ri,SUBBA, #data,35,算术运算指令,(2),INCA,INCRn,INCRi,DECA,DECRn,DECdirect,DECRi,INCDPTR,MULAB,DIVAB,DAA,36,4、逻辑运算指令(1),ANLA, Rn,ANLA, direct,ANLA, Ri,ANLA, #data,ANLdirect, A,ANLdirect, #data,ORLA, Rn,ORLA, direct,ORLA, Ri,ORLA, #data,ORLdirect, A,ORLdirect, #data,37,逻辑运算指令,(2),XRLA, Rn,XRLA, Ri,XRLA, #data,XRLdirect, A,XRLdirect, #data,CLRA,CPLA,RLA,RLCA,RRA,RRCA,38,5、控制转移指令,ACALLaddr11,LCALL addr16,RET,RETI,AJMPaddr11,LJMPaddr16,SJMPrel,JMPA+DPTR,JZrel,JNZrel,CJNEA, direct, rel,CJNEA, #data, rel,CJNERi, #data, rel,DJNZRn, rel,DJNZdirect, rel,NOP,39,6、位操作类指令,CLRC,CLRbit,SETBC,SETBbit,CPLC,CPLbit,ANLC, bit,ANLC, /bit,ORLC, bit,ORLC, /bit,MOVC, bit,MOVbit, C,JCrel,JNCrel,JBbit, rel,JNBbit, rel,JBCbit, rel,40,三、汇编语言程序设计应用举例,举例:,设计一个指示器,要求当指示按键按下后,指示灯发光。,设P1.0口驱动指示灯,P1.1口作为指示按键输入。,电路设计见图,41,ORG00,LJMPSTART,ORG0100H,START:JBP1.1, $,JNBP1.1, $,SETB P1.0,SJMPLOOP1,SOUND: MOVR7, #5,SETBP1.0,MOVR0, #10,LCALL DELAY,CLRP1.0,MOVR0, #20,LCALL DELAY,DJNZR7, SOUND1,RET,42,DELAY:MOV R1,#100 ;100ms,DELAY1:MOV R2,#200 ;1ms,DELAY2:NOP,NOP,NOP,DJNZR2, DELAY2,DJNZR1, DELAY1,DJNZR0, DELAY,RET,43,#include “reg51.h”,#define uchar unsigned char,sbit pinSW=P12;,sbit pinBell=P10;,sbit pinLed=P11;,void Delay_1ms(uint S_DelayTime),uchar S_j;,while (S_DelayTime!=0),S_DelayTime-;,for(S_j=0;S_j115;S_j+),void main(void),int Delay=0;,pinLed=1;,pinBell=1;,while(1),if(!pinSW),Delay_1ms(2);,44,45,第四章,51单片机的功能单元介绍,一、定时,/计数器,二、串行接口,三、中断系统,46,一、定时,/计数器,定时器计数器简称定时器,其作用主要包括产生各种时标间隔、记录外部事件的数量等,是微机中最常用、最基本的部件之一。,803l单片机有2个16位的定时器计数器:,定时器0(T0)和定时器1(T1)。T0由2个定时寄存器TH0和TL0构成,T1则由TH1和TL1构成,它们都分别映射在特殊功能寄存器中,从而可以通过对特殊功能寄存器中这些寄存器的读写来实现对这两个定时器的操作。,用于定时器工作时,每一个机器周期定时寄存器自动加l,所以定时器也可看作是计量机器周期的计数器。由于每个机器周期为12个时钟振荡周期,所以定时的分辨率是时钟振荡频率的112。,用于计数器工作时,只要在单片机外部引脚T0(或T1)有从1到0电平的负跳变,计数器就自动加1。计数的最高频率一般为振荡频率的l24,47,1、控制字,TF 中断请求标志(T0、T1),高电平有效,M0,M1,C/T,GATE,M0,M1,C/T,GATE,T1 T0,GATE 1打开 0关闭,C/T 1计数状态 0定时状态,M1、M0 工作方式设置 00方式0 01方式1 10方式2 11方式3,IT0,IE0,IT1,IE1,TR0,TF0,TR1,TF1,TCON控制字,TR 定时/计数器(T0、T1)运行控制位,高电平有效,IT 外部中断(INT0、INT1)触发方式 1下降沿引起 0低电平引起,IE 外部中断请求标志(INT0、INT1),高电平有效,TMOD控制字,48,2、方式0,13位方式,由TL1的低5位和TH1的8位构成13位计数器(TL1的高3位无效),49,3、方式1,16位方式,由TL1的8位和TH1的8位构成16位计数器,50,4、方式2,8位自动装入时间常数方式。由TL1构成8位计数器,THl仅用来存放时间常数。启动T1前,TL1和TH1装入相同的时间常数,当TL1计满后,除定时器回零标志TF1置位,具有向CPU请求中断的条件外,TH1中的时间常数还会自动地装入TL1,并重新开始定时或计数,51,5、方式3,2个8位方式。工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。,52,6、汇编编程举例,利用定时器,/计数器每隔1ms控制产生宽度为2个机器周期的负脉冲,由P1.0送出,设时钟频率为12MHz,ORG 0000H,AJMPMAIN,ORG000BH,AJMPT0INT,ORG100H,MAIN,:MOV TH0,#0DDH,MOV TL0,#18H,SETBTRO,LOOP,:SJMPLOOP,ORG200H,T0INT,:CLRP1.0,SETBP1.0,MOVTH0,#0DDH,MOVTL0,#18H,RETI,53,7、C51编程举例,#include ,sbit pinPulse=P10;,void T0Int(void);,void T0Int(void) interrupt 1,pinPulse=0;,pinPulse=1;,TH0=0xdd;,TL0=0x18;,void main(void),TH0=0xdd;,TL0=0x18;,ET0=1;,EA=1;,TR0=1;,while(1);,54,二、串行接口,MCS51单片机具有一个采用通用异步接收器发送器(UART)工作方式的全双工串行通信接口,可以同时发送、接收数据。它具有两个相互独立的接收、发送缓冲器,两个缓冲器共用一个地址(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入。同时,该串行接口也可作为同步移位寄存器使用,其中帧格式可有8位、10位和11位,并能置成多种波特率。,55,1、异步通信格式,波特率,(Baud Rate)波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是位秒。举例:数据传送的速率每秒为120个字符,每个字符包含10个代码位(一个起始位、一个停止位、8个数据位),这时,传送的波特率为:10120位秒1200波特(bps),56,RI,TI,RB8,TB8,REN,SM2,SM1,SM0,D7 D6 D5 D4 D3 D2 D1 D0,SM0 SM1 工作方式 说明 波特率,0 0 0 同步移位寄存器 fosc/12,0 1 1 10位异步收发 可变,1 0 2 11位异步收发 fosc/32 或fosc/64,1 1 3 10位异步收发 可变,.,REN:允许接收控制位,用软件置1或清0,TI: 发送中断标志位,软件清0 RI: 接收中断标志位,软件清0,TB8: 准备发送的第9位数据位,软件置1或0,RB8: 接收到的第9位数据,SM2: 用于主从式多机通信的控制位。若SM21,则允许多机通信,2、串行口控制寄存器SCON (98H),57,4、关于多机通信,SM2:在工作方式2和工作方式3中,用于主,从式多机通信的控制位。若,SM21,则允许多机通信。多机通信规定,第9位数据(D8)为l,说明本帧为地址;若第9位数据为0,则本帧为数据,当一个MCS,51(主机)与多个MCS,51(从机)通信时,所有从机的SM2都置为1。主机首先发送一帧地址,即某从机地址编号,其中第9位为1,被寻址的某个从机收到地址信息后,将其中的第9位装入RB8。从机依据RB8的值来决定从机是否再接收主机的信息。若RB80,说明是数据帧,则使接收中断标志位RI0,信息丢失;若RB81,说明是地址帧,数据装入接收发送缓冲器,并置中断标志RI1,中断所有从机,被寻址的目标从机使SM20,以接收主机发来的一帧数据,其它从机仍然保持SM21。若SM20,则不属于多机通信情况,接收到一帧数据后,无论第9位是0还是1,都置中断标志RI1,接收到的数据装入接收发送缓冲器中。工作方式1时,若SM21,则只有接收到有效停止位时,中断标志RI才置1,以便接收下一帧数据。在工作方式0时,SM2应为0。,58,三、中断系统,1、中断结构图,2、中断控制寄存器,3、中断响应条件,4、中断响应过程,5、中断响应示意图,6、汇编编程举例,7、C51编程举例,59,1、中断结构图,60,2、中断控制寄存器,同级内部优先级,外部中断0 最高,定时器0,外部中断1,定时器1,串行口 最低,61,62,3、中断的响应条件,中断源有请求,CPU允许所有中断源请求(EA1),中断允许寄存器IE相应位置1。这样,在每个机器周期内,单片机对所有中断源都进行顺序检测,并可在任一个周期的S6期间,找到所有有效的中断请求,并对其优先级排队,只要满足下列条件:,1.无同级或高级中断正在服务;2.现行指令执行到最后一个机器周期且已结束;3.若现行指令为RETI或需访问特殊功能寄存器IE或IP的指令时,执行完该指令且紧随其后的另一条指令也已执行完。,单片机便在紧接着的下一个机器周期S1期间响应中断,否则将丢弃中断查询的结果。,63,4、中断响应过程,单片机一旦响应中断,首先置位响应的优先级有效触发器,然后执行一个硬件子程序调用,把断点地址压入堆栈保护,然后将对应的中断入口地址值装入程序计数器PC,使程序转向该中断人口地址,以执行中断服务程序。单片机响应中断后,只保护断点而不保护现场(如累加器A、程序状态字寄存器PSW的内容),且不能清除串行口中断标志TI和RI,也无法清除外部中断请求信号INT0和INT1。故用户在编制程序时应予以考虑。,64,5、中断响应示意图,特定程序入口地址:,0000H 复位,中断向量地址 中断源,0003H 外部中断0 000BH 定时器0 0013H 外部中断1 001BH 定时器1 0023H 串行口,65,6、汇编编程举例,利用定时器,T0定时,在P1.0端口输出周期性的方波信号,方波周期为2ms,已知晶振频率为6MHz 。,ORG0000H,LJMPSTART,ORG000BH,LJMPCTC0,ORG0100H,START:MOVTMOD,#01H,MOVTL0,#18H,MOVTH0,#0FCH,SETBEA,SETBET0,HERE:SJMPHERE,CTC0:MOVTL0,#18H,MOVTH0,#0FCH,CPLP1.0,RETI,66,7、C51编程举例,#include ,sbit pinPulse=P10,void T0Int(void) interrupt 1,TL0=0x18;,TH0=0xfc;,pinPulse=pinPulse;,void main(void),TMOD=0x01;,TL0=0x18;,TH0=0xfc;,EA=1;,ET0=1;,while(1);,67,第五章,51单片机的扩展应用,一、并行扩展设计,二、串行扩展设计,三、键盘及显示接口设计,四、,A/D、D/A接口设计,五、LED、LCD接口设计,68,一、串行扩展,I/O口举例,69,三、键盘及显示接口设计,1、键盘接口电路举例,2、LED显示接口电路举例,3、LCD显示接口电路举例,70,1、键盘接口电路举例,(,2)矩阵式键盘,(,1)独立式键盘,71,(,1)独立式键盘,72,(,2)矩阵式键盘,73,LED数码管,74,88点阵模块(1),75,88点阵模块(2),76,点阵的基本连接方式,77,显示图像的基本原理,如下图所示,假设显示数字“,0”,1 2 3 4 5 6 7 8,00 00 3E 41 41 41 3E 00,因此,形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。,78,LCD显示接口电路举例,79,基本特性,1602的屏一般为标准屏,接口定义基本一样,但由于厂家的差异,默认对比度不完全相同,请读者在对比度调节端子自行加装电位器调节。内侧16引脚的座子为1602的插座。下图是1602液晶屏的实物图片,货物以实物为准。屏的引脚处标有引脚数。部分屏标有定义(视厂家而定)。本款配屏的引脚定义如下:,80,数据端口,GND(地),VCC(电源正极5V),V0(对比度调节端,通常直接接地),RS(读控制),RW(写控制),E(使能端),81,数据端口,DB0(数据端口最低端),DB1,DB2,DB3,DB4,DB5,DB6,DB7(数据端口最高端),BLA(背光正极),BLK(背光负极),82,ADC0809的原理,ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。,83,ADC0809,原理图,84,
展开阅读全文