单片机原理及应用技术(基于Keil C与Proteus)全套教学课件_第1页
单片机原理及应用技术(基于Keil C与Proteus)全套教学课件_第2页
单片机原理及应用技术(基于Keil C与Proteus)全套教学课件_第3页
单片机原理及应用技术(基于Keil C与Proteus)全套教学课件_第4页
单片机原理及应用技术(基于Keil C与Proteus)全套教学课件_第5页
已阅读5页,还剩690页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用技术(基于KeilC与Proteus)全套可编辑PPT课件课程简介第1章单片机应用基础概述第2章51单片机及硬件结构第3章指令系统、汇编语言及C51程序设计第4章51单片机的中断系统及应用第5章51单片机的定时器/计数器及应用第6章51单片机串行口及应用技术第7章单片机基本I/O接口应用技术第8章单片机系统扩展及I/O接口技术第9章D/A与A/D转换接口技术及应用第10章单片机应用系统开发及设计实例第11章单片机应用系统抗干扰技术实验安排根据需求添加第1章单片机应用基础概述1.1单片机及单片机简介1.2数值与编码1.3计算机系统组成1.4单片机与嵌入式系统1.5单片机应用开发资源1.6单片机应用实例1.什么是单片机?2.为什么要学单片机?3.怎样学习单片机?第1章单片机基础知识概述1.什么是单片机?——从微型计算机技术的两大发展分支谈起第1章单片机基础知识概述

分支一:通用微型计算机系统

(Universal

microComputerSystem)UCS——为满足众多普通应用场合需要而发展的一类个人计算机系统

技术要求:高速计算+海量存储发展方向:CPU速度不断提升,存储容量不断扩大

386486Pentium

PentiumⅣConroeII第1章单片机基础知识概述计算机(PersonalComputer)/多板机CPU+存储器+主板+显卡+声卡+网卡+显示器+鼠标+键盘…基本功能部件接口部件外部设备支持它的软件五花八门,应有尽有第1章单片机基础知识概述

分支二:嵌入式计算机系统

(EmbeddedComputerSystem)ECS——能嵌入到对象体系中,以实现对象体系智能化为目的的一类专用计算机系统技术要求:必须满足对象体系的物理、电气和环境以及产品成本等要求发展方向:与对象系统密切相关的嵌入性能、控制能力与控制可靠性

第1章单片机基础知识概述

哈佛结构冯诺依曼结构

PC→电气加固、机械加固,并配置各种接口板卡→IPC(工控机)→嵌入到大型对象系统中(实现智能化)工业计算机(IndustrialPersonalComputer)

船舶驾驶室集中控制台自动配料控制系统电站锅炉控制系统第1章单片机基础知识概述众多小型对象系统(如家电、仪器、工控单元…)无法使用IPC→需要发展一类特殊的嵌入式计算机系统第1章单片机基础知识概述单片计算机(SingleChipMicrocomputer)SCM——将通用微计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统第1章单片机基础知识概述应用:SCM硬件+少量外围电路+SCM软件→嵌入式微机系统+被控对象→微电脑控制产品第1章单片机基础知识概述嵌入式微机系统

微电脑控制产品单片机分布式控制第1章单片机基础知识概述站台门与车门同步打开自动调度自动报站车辆位置实时显示单片机的发展:从1976年起,Intel公司先后推出MCS-48(4位机)、MCS-51(8位机)和MCS-96(16位机)3大系列单片机。迄今为止,世界各地厂商已相继研制出大约50个系列300多个品种的单片机产品。第1章单片机基础知识概述51系列、PIC系列、AVR系列、ARM系列、DSP系列….由于51系列单片机具有开放的系统架构、灵活可靠的工作性能、低廉的价格,因而获得了很大的成功。单片机发展趋势:高集成度、高性能、低功耗、高性价比MicroControllerUnitSingleChipMicrocomputer8位基于51内核的单片机仍然是主流机型。第1章单片机基础知识概述单片机(SCM)→微控制器(MicroControllerUnit)位数不断增加:4位→8位→16位→32位外设接口内置化:ADC、DAC、PGA、USB……2.为什么要学单片机?单片机是高技术领域,可实现机电产品的升级换代;第1章单片机基础知识概述单片机人才社会需求广泛,具有很好的就业前景;单片机知识与具体专业技术相结合可产生更大的创造力和发展潜力。学习方法第1章单片机基础知识概述1.2数制与编码1、数制定义——2、10、16进制数的概念2、数制转换——2、10、16进制数的换算3、有符号数——2进制负数的表示方法4、位-字节-字——2进制基本概念5、ASCII码——字符的2进制表示方法6、BCD码——10进制数的2进制表示方法7、基本逻辑门电路——与、或、非、与非第1章单片机基础知识概述1.数制单片机常用的数制有十进制、二进制、十六进制。第1章单片机基础知识概述符号集:0~9;规则:逢十进一;十进制数的后缀为D但可省略;十进制数可用加权展开式表示,例如:其中,10为基数,0~9为各位加权数,其一般表达式为:1、十进制数,ND第1章单片机基础知识概述2、二进制数,NB符号集:0、1;规则:逢二进一;二进制数的后缀为B且不可省略;二进制数可用加权展开式表示,例如:其中,2为基数,0和1为各位加权数,其一般表达式为:第1章单片机基础知识概述3、十六进制数,NH符号集:0~9、A~F;规则:逢十六进一;十六进制数的后缀为H且不可省略;十六进制数可用加权展开式表示。例如:其中,16为基数,0~15为各位加权数,其一般表达式为:2.数制转换

(1)二进制转换成十进制转换规则:按二进制表达式展开,按十进制运算求和。例如:111111118421163264128记忆:1100B=121001B=91111B=1511111111B=255举例:第1章单片机基础知识概述(2)十六进制转换成十进制转换规则:按十六进制表达式展开,按十进制运算求和。例如:第1章单片机基础知识概述(3)二进制与十六进制数之间的转换1010B=0AH1101B=0DH1011B=0BH1110B=0EH1100B=0CH1111B=0FH记忆:从低位起由右到左,每4位二进制数对应1位十六进制数。例如:(最后一组不足时左边添0凑齐4位)转换规则:第1章单片机基础知识概述(4)十进制整数转换成二、十六进制整数转换规则:“除基取余”。十进制整数不断除以转换进制基数,直至商为0。每除一次取一个余数,从低位排向高位。例如:第1章单片机基础知识概述3.有符号数的表示方法

有符号数:最高位为符号位,“0”表示“+”

,“1”表示“-”

。其余为数值位第1章单片机基础知识概述例如:+123→01111011B-123→11111011B11111011B→=251?=-123?靠事先约定无符号数:最高位不作为符号位,全部为数值位。有符号数有3种编码形式:原码、反码和补码基本规律:正数的原码、反码和补码都是相同的,而负数的原码、反码和补码各有不同。运算规则:当有符号数用补码表示时,可以把减法运算转换为加法运算。CPU中便无需设置硬件减法器,从而可简化其硬件结构。第1章单片机基础知识概述4.

位—字节—字

位(bit):二进制数中的一位,其值不是“1”,就是“0”。半字节:4位二进制例如:1000111011001011B=8ECDH字(word):51单片机的字由2个字节组成,16位字长。第1章单片机基础知识概述字节(byte):一个8位的二进制数为一个字节,可用大写B表示,例如256字节→256B。千字节用“KB”表示,1KB=1024B。例如,64KB=1024B×64=65536B。半字节字节字5.

BCD码

BinaryCodedDecimal——用二进制代码表示的十进制数,称为“二进码十进数”或“二/十进制代码”。第1章单片机基础知识概述8421BCD码

用4位二进制数表示1位十进制数BCD码的用途:可使计算机直接进行十进制数运算例如:23+15=00100011B+00010101B=00111000B=56(二进制)38(BCD)靠事先约定6.

ASCⅡ码

字母和字符的二进制数表示——ASCⅡ码(AmericanStandardCodeforInformationInterchange——美国国家信息交换标准字符码

)。它采用7位二进制编码表示128个字符,其中包括数码0~9以及英文字母等可打印的字符。高3位低4位‘0’~‘9’→30H~39H‘A’→1000001B→41H例如:第1章单片机基础知识概述7.基本逻辑门电路

数字计算机靠基本逻辑门电路实现二进制数的运算,其中高电平和低电平分别代表1和0。单片机原理分析中需要用到一些基本逻辑门电路、逻辑关系和逻辑符号。4种最基本的逻辑关系如下:与逻辑、或逻辑、非逻辑、与非逻辑

第1章单片机基础知识概述逻辑门电路1.3计算机系统组成

1、计算机硬件系统2、计算机软件系统第1章单片机基础知识概述1计算机硬件系统2计算机软件系统软件系统是指计算机上运行的各种程序、管理的数据和有关的各种文档。

1.4单片机与嵌入式系统1、嵌入式系统 2、单片机应用系统的组成第1章单片机基础知识概述1、嵌入式系统所谓嵌入式系统,是指以嵌入式应用为目的的计算机系统。嵌入式系统是作为其他系统的组成部分使用的,单片机应用系统是典型的嵌入式系统。系统内核小专用性强系统精简高实时性嵌入式软件开发走向标准化嵌入式系统开发需要开发工具和环境单片机典型应用系统结构

2、单片机应用系统的组成系统软件系统软件是处于底层硬件和高层应用软件之间的桥梁。但是,由于单片机的资源有限,需综合考虑设计成本及单片机运行速度等因素,故设计者必须在系统软件和应用软件实现的功能与硬件配置之间,仔细地寻求平衡。应用软件应用软件是用户为实现系统功能要求设计的程序。1.5单片机应用开发资源1、单片机开发板2、Keil开发环境3、Proteus4、ISP软件5、Protel第1章单片机基础知识概述1、单片机开发板2、KeilProteus是电路分析与实物仿真软件(ISIS和ARES)英国LabcenterElectronicsLtd.开发提供原理图绘制、单片机系统仿真与PCB设计等功能(部分功能类似于Multisim软件)

可仿真多种MCU,如51、AVR,PIC,MSP等可仿真许多电子元件,如阻容元件、开关、晶体管、集成电路、液晶显示器等可提供多种调试虚拟仪器,如示波器、信号源等第1章单片机基础知识概述3、Proteus应用简介ISIS——智能原理图输入系统数字与模拟电路原理图绘制数字与模拟电路仿真运行单片机汇编程序编译调试(IntelligentSchematicInputSystem)ISIS模块应用举例第1章单片机基础知识概述单片机系统原理图第1章单片机基础知识概述4、ISP4、Protesl1.6一个简单的单片机应用实例第1章单片机基础知识概述1.开发单片机应用系统的一般步骤开发单片机应用系统时,一般要经过以下步骤。①总体设计。分析问题,明确任务,拟定出性价比较高的方案。②硬件设计。③软件设计。④程序编译、仿真及调试。⑤制作硬件电路。⑥程序下载、硬件调试运行。

1.6一个简单的单片机应用实例第1章单片机基础知识概述汇编和C代码

ORG0000HSETBP1.0START:

LCALLDELAY;调用延迟一段时间的子程序CPLP1.0;求反(1变0,0变1)SJMPSTART;不断循环DELAY:

MOVR0,#00H;延时子程序入口LP:

MOVR1,#00HLP1:

DJNZR1,LP1DJNZR0,LPRET;子程序返回END#include<reg51.h>#defineucharunsignedcharvoiddelay(ucharn);sbiti=P1^0;voidmain(){while(1){i=!i;//求反(1变0,0变1)

delay(30);//调用延时函数

}}voiddelay(ucharn)//延时函数

{uchara,b,c;for(c=0;c<n;c++)for(a=0;a<100;a++)for(b=0;b<100;b++);}本章小结1.单片机是将通用微计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统。2.单片机的发展趋势是高集成度、高性能、高性价比、低功耗,51内核单片机仍然是目前主流机型。3.不同数制转换和基本逻辑门电路是学习单片机的重要基础知识。4.Proteus和KeilC是学习单片机编程的两个重要软件工具。第1章单片机基础知识概述第2章51单片机及硬件结构2.151单片机的概念及系列产品2.251单片机总体结构2.351单片机存储结构及编程资源2.451单片机的工作方式2.5单片机的工作时序2.6单片机最小系统2.151单片机的概念及系列产品51单片机是对所有兼容Intel8051指令系统的单片机的统称。在不断增长的市场需求的推动下,随着FlashROM技术及CPU工艺技术的高速发展,各种51兼容单片机应运而生,单片机片内在原来仅包含RAM、ROM、I/O口、中断系统及定时器/计数器等模块的基础上,扩展多种I/O接口、驱动电路、PWM电路、模拟多路转换器、A/D转换器、定时器等功能模块,成为较为完善的单片微型计算机硬件系统。目前,常用51单片机系列产品主要有Intel80C51单片机、ATMELAT89单片机、STC(国产宏晶)单片机等。51单片机系列及兼容单片机的典型产品STC单片机SCM——将通用微计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统SCM=CPU+OSC+ROM+RAM+T/C+INT+I/O+UART第2章51单片机及硬件结构51单片机的结构组成2.251单片机总体结构87C52INTELMCS-51系列单片机一览表第2章51单片机及硬件结构SCM=CPU+OSC+ROM+RAM+T/C+INT+I/O+UART80C51=(8位)CPU+4KBROM+128BRAM+(2×16)T/C+(4×8)I/O+1个UART+5个INT+2个64KB51单片机主要内部资源的学习安排

中央处理器CPU——第2章程序存储器ROM——第2章数据存储器RAM——第2章并行I/O口——第2章中断源INT——第5章定时器/计数器T/C——第6章全双工串行口UART——第7章第2章51单片机及硬件结构教材结构第1章单片机基础知识概述第2章MCS-51单片机结构及原理第3章单片机的汇编语言与程序设计第4章单片机的C51语言第5章单片机的中断系统第6章单片机的定时器/计数器第7章单片机的串行通信技术第8章单片机接口技术第9章单片机应用系统的设计与开发附录实验指导CPUCPU=控制器

+运算器第2章51单片机及硬件结构(CentralProcessingUnit)控制器的用途:统一指挥和控制各单元协调工作控制器的任务:从ROM中取出指令→译码→执行指令控制器的组成:程序计数器PC、数据指针寄存器DPTR、…第2章51单片机及硬件结构运算器的用途:对数据进行算术运算和逻辑操作运算器的任务:计算缓存器内容→结果暂存→修改运行标志运算器的组成:累加器ACC、程序状态字寄存器PSW、…第2章51单片机及硬件结构(1)程序计数器(ProgramCounter——PC)——指向ROM存储单元的地址指针(引导程序运行)

……XxxxxxxxXxxxxxxxXxxxxxxxXxxxxxxxXxxxxxxxROM0000H0001H0002H0003H0004HFFFFH16位寄存器→可寻址范围216(=65536B=64KB)永远存放着下一条指令的首地址具有自动加“1”

功能→顺序运行程序功能具有可被指令修改功能→跳转运行程序功能复位时,PC初值=0→复位后程序从0开始运行第2章51单片机及硬件结构PC指针0000(2)数据指针寄存器(DataPointer——DPTR)16位寄存器,可寻址范围216(64KB)可拆为2个8位的独立寄存器DPL和DPH具有可被指令修改功能→可变更数据地址DPLDPH——指向ROM或RAM存储单元的地址指针(引导数据传送)

第2章51单片机及硬件结构……0000H0001H0002H0003H0004HFFFFH35H77HF4H94H9EHDPTR指针……xxHxxHxxHxxHxxHROMRAM0000H0001H0002H0003H0004HFFFFH(3)累加器(ACCUMULATER——A或ACC)8位寄存器其值可由指令修改是最繁忙的寄存器——存放操作数或中间运算结果的寄存器第2章51单片机及硬件结构A(4)程序状态字寄存器(ProgramStateWord——PSW)

8位寄存器各位都具有特殊含义状态值可由硬件形成或由指令修改——存放程序运行过程中的各种状态信息的寄存器第2章51单片机及硬件结构CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CY(PSW.7)——进位标志在进行加或减运算时,如果操作结果最高位有进位或借位时,CY由硬件置“1”,否则清“0”。CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0用途:1、可根据CY判断有无进位或借位;2、可作为位操作中的位累加器用。第2章51单片机及硬件结构10010011+11110000

————————CY=110000011进位标志位CY举例

AC(PSW.6)——辅助进位标志在进行加或减运算时,如果操作结果的低四位数向高四位产生进位或借位时,将由硬件置“1”,否则清“0”。01001111+10100001

————————AC=111110000半进位举例用途:1、根据AC判断加减运算时有无半进位或半借位;2、在BCD码调整运算中要用到AC标志第2章51单片机及硬件结构CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0F0(PSW.5)和F1(PSW.1)——用户标志位用途:可做为用户指定的状态标志第2章51单片机及硬件结构CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0RS1(PSW.4)和RS0(PSW.3)——工作寄存器组指针用途:用于指定CPU的当前工作寄存器组第2章51单片机及硬件结构CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0OV(PSW.2)——溢出标志在有符号数加减运算或无符号数乘除运算中若有异常结果,OV硬件置1,否则硬件清0。用途:判断运算的结果是否正确,正确=0;出错=1第2章51单片机及硬件结构CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0OV=C6YC7Y=1

0=101010100(+84)

+01101001(+105)

——————————————CY=010111101→(-67)D6有进位D7无进位10111101→11000010→11000011正数的补码是它本身,负数的补码是除符号位外每位求反,然后末尾加111111011(-5)

+11110000(-16)

——————————————CY=111101011→(-21)D7有进位

D6有进位OV=C6YC7Y=1

1=011101011→10010100→10010101→运算出错→运算正确举例举例第2章51单片机及硬件结构P(PSW.0)——奇偶标志位该位始终跟踪累加器A中含“1”个数的奇偶性如果A中有奇数个“1”,则P置“1”,否则置“0”举例若A=10011111,则P=0

若A=11000001,则P=1用途:串行通讯中的数据校验,判断是否存在传输错误。第2章51单片机及硬件结构CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.051系列单片机一般采用40只引脚的双列直插式(DIP——DualIn-linePackage)封装结构第2章51单片机及硬件结构除DIP封装外,51单片机还采用44只引脚的方形扁平(QFP

——QuadFlatPackage)封装方式(4只引脚无用)。第2章51单片机及硬件结构DIP引脚分布电源及晶振引脚(共4只)控制引脚(共4只)端口引脚(共32只)三类第2章51单片机及硬件结构(1)电源及晶振引脚VCC(40脚):+5V电源引脚VSS(20脚):接地引脚XTAL1(19脚);外接晶振引脚(内置放大器输入端)XTAL2(18脚):外接晶振引脚(内置放大器输出端)80C51Vcc80C512040Vss+5V80C51第2章51单片机及硬件结构(2)控制引脚RST/VPD

(9):复位/备用电源引脚ALE/PROG

(30):地址锁存使能输出/编程脉冲输入PSEN

(29):输出访问外部ROM读选通信号

EA/VPP

(31):外部ROM允许访问/编程电源输入20μF8K10k80C51第2章51单片机及硬件结构(3)端口引脚P0.0~P0.7(39~32脚)——P0口P1.0~P1.7(1~8脚)——P1口P2.0~P2.7(21~28脚)——P2口P3.0~P3.7(10~17脚)——P3口8只/组×4组=32只引脚P0口~P3口是单片机对外联络的重要通道第2章51单片机及硬件结构由于工作任务不同,4个端口的内部结构也不同。了解4类端口的内部结构对于正确使用这些I/O端口非常重要。第2章51单片机及硬件结构以下按照先易后难的原则进行学习,即P1→P3→P0→P21.P1口

P1.n=1个锁存器+1个场效应管驱动器V+2个三态门缓冲器P1口包含P1.0~P1.7共8个相同结构的电路P1.0~P1.7中的8个锁存器共同组成P1特殊功能寄存器(90H)第2章51单片机及硬件结构P1.n的通用I/O口工作方式:第2章51单片机及硬件结构读锁存器输出读引脚

(详见P1口仿真课件)P1口的要点:1、P1口具有通用I/O口方式,可实现输出、读引脚(输入)和读锁存器三种功能;2、P1口为准双向通用口,作为通用输入口时应先使P1.n→1,作为通用输出口时是无条件的。第2章51单片机及硬件结构2.P3口

与P1.n

差别:第二功能控制单元→双功能P3.0~P3.7中的8个锁存器构成了P3

SFR(B0H)第2章51单片机及硬件结构P3.n的通用I/O口工作方式第2章51单片机及硬件结构:输出、读引脚、读锁存器输出条件:第二输出功能口→

“1”(与非门开锁)输入条件:Q端和第二输出功能端→“1”(V管截止)*此时的第二功能口由CPU自动置位,无需指令操作P3口的第二功能方式第二输出功能的条件:Q端→“1”(与非门开锁)1第2章51单片机及硬件结构:第二输出功能、第二输入功能

RXD第7章TXD第7章/INT0第5章/INT1第5章T0第6章T1第6章/WR第8章/RD第8章第二输入功能的条件:Q端和第二输出功能端→“1”(V管截止)(详见P3口仿真课件)*此时上述条件由CPU自动设置,无需指令操作P3口的要点:1、P3口具有通用I/O口方式,可实现输出、读引脚(输入)和读锁存器三种功能;2、P3口为准双向通用口,作为通用输入口时应先使P3.n→1,作为通用输出口时应先使第二输出端→1;3、P3口具有第二功能方式,可实现第二输出和第二输入两种功能。第2章51单片机及硬件结构3.P0口

与P1.n差别:输出控制电路、输出驱动电路→总线功能P0.0~P0.7中的8个锁存器构成了P0

SFR(80H)第2章51单片机及硬件结构漏极开路与上拉电阻的概念

控制端=0→MUX下通→/Q与V1栅极直通→V2截止→V1漏极开路第2章51单片机及硬件结构→封锁与门A(→0)→地址/数据端与A输出无关为使漏极开路的V1有效,必须通过外接上拉电阻与电源连通,上拉电阻的阻值一般为100Ω~10kΩ。注意:P1、P2、P3口无需外接上拉电阻(已有内部上拉电阻)第2章51单片机及硬件结构P0.n的通用I/O口工作方式第2章51单片机及硬件结构:输出、读引脚、读锁存器输出条件:控制端→

“0”(V2管截止,MUX下通)输入条件:Q端→

“1”(V1管截止)P0.n的地址/数据分时复用方式:地址/数据输出时V1和V2交替导通,无需外接上拉电阻

第2章51单片机及硬件结构地址/数据输出的条件:控制端→1地址/数据输出、数据输入数据输入时,CPU自动使Q端→1,控制端→0,故分时复用方式为无条件的真双向口(详见P0口仿真课件)P0口的要点:1、P0口具有通用I/O口方式,可实现输出、读引脚(输入)和读锁存器三种功能;2、P0口为准双向通用口,作为通用输入口时应先使P3.n→1,作为通用输出口时应先使第二输出端→1;3、作为通用I/O口方式时,需要外接上拉电阻;4、P0口具有地址/数据分时复用方式,可实现地址/数据输出、数据输入两种功能;5、地址/数据分时复用方式时无需外接上拉电阻;6、分时复用方式的数据输入时无需程序写1操作。第2章51单片机及硬件结构4.P2口

与P1.n差别:输出控制单元,锁存信号由Q端输出P2.0~P2.7中的8个锁存器构成了P2

SFR(A0H)第2章51单片机及硬件结构P2.n的通用IO口方式第2章51单片机及硬件结构:输出、读引脚、读锁存器输出条件:控制端→

“0”(MUX下通)输入条件:Q端→

“1”(V管截止)无需外接上拉电阻P2.n的地址输出口方式第2章51单片机及硬件结构:地址输出地址输出条件:控制端→

“1”(MUX上通)(详见P2口仿真课件)P2口的要点:1、P2口具有通用I/O口方式,可实现输出、读引脚(输入)和读锁存器三种功能;2、P2口为准双向通用口,作为通用输入口时应先使P2.n→1,作为通用输出口时应先使控制端→1;3、作为通用I/O口方式时,无需外接上拉电阻;4、P2口具有地址输出方式,可实现地址输出功能。第2章51单片机及硬件结构P0~P3小结1.结构2.功能B0HA0H90H80HSFR地址★

第二功能

★复用端口★★★★准双向IO口P3P2P1P0★★★内部上拉电阻★★★输出控制★★MUX开关★★★★D锁存器P3P2P1P0第2章51单片机及硬件结构最简单的单片机电路图MCU的电源引脚被隐藏(ISIS仿真与Vcc和Vss无关)1.

存储器划分方法计算机存储器地址空间的两种结构形式:普林斯顿结构和哈佛结构。RAM和ROM统一编址

RAM和ROM分别编址

第2章51单片机及硬件结构2.3单片机存储结构及编程资源程序存储器ROM数据存储器RAM第2章51单片机及硬件结构51单片机采用哈佛结构,共有4个物理存储空间:片内RAM、片内ROM、片外RAM、片外ROM各类存储器分别编址片内RAM片内ROM片外RAM片外ROM00H000H0000H0000H

FFH

FFFHFFFFHFFFFH2.程序存储器(ROM)作用:存放程序、表格或常数,具有非易失性特点:片内ROM与片外ROM可有2种组合方案第2章51单片机及硬件结构方案1

:4KB以内的地址在片内ROM,大于4KB的地址在片外ROM中(图中折线),两者共同构成64KB空间;方案2

:片内ROM被禁用,全部64KB地址都在片外ROM中(图中直线)。2种组合方案由EA引脚的电平状态决定:EA=1时为方案1,EA=0时为方案2EA引脚接低电平时,仅使用片外ROM(片外ROM不可缺省)。由于片内、外ROM是统一编址的,故只能算作1个逻辑存储空间。第2章51单片机及硬件结构EA引脚接高电平时,可同时使用2种ROM(片外ROM可以缺省);第2章51单片机及硬件结构51单片机的四个物理存储空间仅相当于三个逻辑存储空间片内RAM片内ROM片外RAM片外ROM00H000H0000H0000H

FFH

FFFHFFFFHFFFFH物理存储空间逻辑存储空间第2章51单片机及硬件结构中断程序执行过程:某一突发事件→相应中断入口地址自动装入PC→引导两次跳转→执行相应中断服务程序主程序一般应安排在0030H地址以后(有中断需要时)ROM有6个特殊存储器单元——用于程序引导…主程序跳转指令INT0中断跳转指令T0中断跳转指令INT1中断跳转指令T1中断跳转指令主程序首指令0000H0003H000BH0013H001BH0030H0023HRI/TI中断跳转指令ROM

0000H:主程序入口地址

0003H:INT0中断程序入口地址

000BH:T0中断程序入口地址

0013H:INT1中断程序入口地址

001BH:T1中断程序入口地址

0023H:RI/TI中断程序入口地址3.片内数据存储器(RAM)作用:存放程序运行结果字长:8位数量:128B+128B(80C51)30H低128B(00H~7FH)为普通RAM区高128B(80H~FFH)为特殊功能寄存器区第2章51单片机及硬件结构(1)低128字节的区域

①工作寄存器区(00H~1FH)

②可位寻址区(20H~2FH)

③用户RAM区(30H~7FH)①②③30H第2章51单片机及硬件结构①区共有32个存储单元;每个单元都有1个8位地址(字节地址)每个单元都有1个寄存器名称(R0~R7)32个单元分为4组(第0~

第3组)CPU只能选一组为当前工作寄存器组当前工作寄存器组取决于PSW的设置①30HCPU复位后RS1和RS0默认值为0,即默认第0组为当前工作寄存器组。第2章51单片机及硬件结构②30H②区共有16个存储单元;每个单元都有一个字节地址每个单元都有8个不同的位地址

②区共有128个位地址②区可以字节地址和位地址两种方式存取数据。第2章51单片机及硬件结构③区共有80个存储单元;每个单元都有一个字节地址,但没有位地址,也没有寄存器名。③30H此区可作为堆栈区和中间数据存储区使用——用户RAM区【注意】:①区和③区只能按字节进行数据存取操作,②区则可按字节和位两种方式存取操作。第2章51单片机及硬件结构(2)高128字节RAM区

30HSFR承担着51单片机内部资源的管理工作每个存储单元都有一个字节地址,但只有其中21个单元可以使用,并有相应寄存器名称。51单片机共有21个特殊功能寄存器(SpetialFunctionRegister)第2章51单片机及硬件结构字节地址末位是0或8的SFR,都具有位地址。88H89H8AH8BH8CH8DH8EH8FH§2.1§2.1§2.3§2.3复位——使单片机恢复原始默认状态的操作。1.复位与复位电路

第2章51单片机及硬件结构2.451单片机的工作方式复位条件在RST/VPD引脚端出现:≥10ms时间的高电平(≥3V)状态复位方式

上电复位第2章51单片机及硬件结构复合复位按键复位10ms3V

程序执行的方式1.连续执行方式连续执行方式就是单片机正常执行控制程序的工作方式。2.单步执行方式用户在调试程序时,常常要逐条地执行程序中的每一条指令。单片机需要统一的时钟控制,其时钟系统可有两种方案:2.551单片机的工作时序外部时钟脉冲内部OSC+外部时钟电路,或内部OSC

+外部时钟脉冲第2章51单片机及硬件结构MCS-51的时钟频率一般为6~12MHzC1、C2≈30pF外部时钟电路石英晶体

时钟电路

3.单片机时序

(1)时序的概念第2章51单片机及硬件结构时序是对象(或引脚、事件、信息)间按照时间顺序组成的序列关系。时序可以用状态方程、状态图、状态表和时序图4种方法表示,其中时序图最为常用。时序图亦称为波形图或序列图,纵坐标表示不同对象的电平,横坐标表示时间(从左往右为时间正向轴),通常坐标轴可省略。时钟的度量单位:时钟周期(或节拍)P、状态周期S、机器周期、指令周期1个状态周期(S)=2个节拍(P)1个机器周期=6个状态(S)=12个节拍(P)1个指令周期约为1~4个机器周期第2章51单片机及硬件结构第2章51单片机及硬件结构单片机时序——CPU在执行指令时所需控制信号的时间顺序。1、用于片内各功能部件的逻辑控制(不作介绍)2、用于片外RAM访问或总线方式控制(§8.2.1介绍)51单片机访问外部RAM时序

第2章51单片机及硬件结构单片机最小系统一般是指单片机能够用来实现简单I/O端口控制的硬件电路组成,是单片机初学者的必备工具。2.6单片机最小系统本章小结1、单片机的CPU由控制器和运算器组成,在时钟电路和复位电路的支持下,按一定的时序工作。单片机的时序信号包括振荡周期、时钟周期、机器周期和指令周期。2、51单片机采用哈佛结构存储器,共有3个逻辑存储空间和4个物理存储空间。片内低128字节RAM中包含4个工作寄存器组、128个位地址单元和80个字节地址单元。片内高128字节RAM中离散分布有21个特殊功能寄存器。3、P0~P3口都可作为准双向通用I/O口,其中只有P0口需要外接上拉电阻;在需要扩展片外设备时,P2口可作为其地址线接口,P0口可作为其地址线/数据线复用接口,此时它是真正的双向口。第2章51单片机及硬件结构第3章指令系统、汇编语言及C51程序设计3.1单片机指令系统3.2汇编语言程序设计基础3.3C51程序设计及应用3.4Keil51单片机集成开发环境3.5单片机I/O端口应用示例3.6KeilC与Proteus联机调试示例第3章指令系统、汇编语言及C51程序汇编语言(AssemblyLanguage)——用助记(字)符代替操作码,用地址符号代替地址码的一种面向机器的程序设计语言;本章学习目标:了解汇编语言的一般规则,借助指令手册能读懂汇编程序。汇编语言特点——代码精炼、执行速度快,但不便于编写较复杂的程序;汇编程序处理过程——输入源程序→检查语法正确性(如有语法错误,输出错误信息)→翻译成二进制目标程序。一条汇编语言指令中最多包含4个区段,其一般格式为:

[标号:]操作码[操作数][;注释]第3章指令系统、汇编语言及C51程序标号(标识符)当前指令行的符号地址,其值为

该指令的机器码首字节在ROM中的存放地址;标号由英文字母开头的1~6个字符组成,不区分大小写;标号与(英文)冒号可以同时省略。………….…….0122H0123H0124H…….xxHxxHxxH

74H

12HROMSTART→

[标号:]

操作码[操作数][;注释] ……START:MOVA,#12H;机器码7412H ……例如:

[标号:]

操作码

[操作数][;注释]第3章指令系统、汇编语言及C51程序操作码是指令的操作行为,由操作码助记字符表征;51单片机共有42种操作码助记符,不区分大小写。MOVA,#12H;

move(传送)SETBP1.0 ;setbit(置位)CJNEA,R0,START;compareandjumpifnotequal(比较跳转)举例:

[标号:]操作码

[操作数]

[;注释]第3章指令系统、汇编语言及C51程序操作数是指令的操作对象,用操作数简记符表示,不区分大小写;操作数可以是3个、2个、1个或没有操作数;操作数大于1时要用(英文)逗号隔开。CJNEA,R0,START;若A≠R0,转STARTADDA,#10H ;A+10H→ACRLA ;A←0RET ;子程序返回举例:

[标号:]操作码[操作数]

[;注释]第3章指令系统、汇编语言及C51程序注释是对指令的解释性说明,用以提高程序的可读性;可用任何文字或符号描述,可以省略;由(英文)分号开始,无需结束符号。MOVA,#12H;立即数12H→ASETBP1.0 ;P1.0←1CJNEA,R0,START;若A≠R0,转START

举例:第3章指令系统、汇编语言及C51程序汇编语言中标示符/十六进制地址/立即数的区别方法:标示符——标号或汇编符号统称为标识符,由英文字母

开头的1~6个字符组成。例如

EAH,或C6A16进制地址——若存储单元地址的最高位值>9时,应加

前缀“0”

,以区别标识符。例如0EAH,或5AH立即数——出现在指令中的常数叫做立即数,应加前缀

“#”以区别于地址。例如#0EAH,或#5AH指令手册中,每条指令的操作数却是以简记符号表示的。第3章指令系统、汇编语言及C51程序掌握简记符号规则→便于阅读源程序(查指令手册)真实指令中一般都含有具体的操作数,例如:MOVA,R3或MOVA,#35H第3章指令系统、汇编语言及C51程序序号简记符号简记符号的意义第3章指令系统、汇编语言及C51程序简记符号的使用练习①MOV20H,#34H

以direct取代20H,以#data取代#34H

指令原型为MOVdirect,#data②MOV@R0,A

以Ri取代R0,A保持不变

指令原型为MOV@Ri,A③SJMP30H

以rel取代30H

指令原型为SJMPrel1#data2#data163Rn4Ri5direct6addr167addr118rel9bit10/11$12@第3章指令系统、汇编语言及C51程序寻址方式是对操作数存在规律的归纳,一条指令究竟属于哪种寻址方式往往并不重要,也不会影响它的使用,因而不必过意追究。51单片机共有七种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址、相对寻址。寻址方式越多,单片机的功能就越强;CPU取得操作数的方法称为寻址方法

寻址方法

第3章指令系统、汇编语言及C51程序(1)直接寻址

指令中包含direct形式操作数的寻址方式称为直接寻址direct既可以是片内RAM的低128字节地址,也可以是除A、B、C、DPTR外的其它特殊功能寄存器名。

MOV

40H,A;指令原形MOVdirect,A(2)寄存器寻址

第3章指令系统、汇编语言及C51程序指令中包含通用寄存器形式操作数的寻址方式称为寄存器寻址通用寄存器只能是Rn,A,B,CY和DPTR五种类型MOVA,R1

;指令原形MOVA,Rn(3)寄存器间接寻址

第3章指令系统、汇编语言及C51程序MOV

A,@R0

;指令原形MOVA,@Ri指令中包含“@间址寄存器”形式操作数的寻址方式称为寄存器间接寻址间址寄存器只能由R0、R1或DPTR三个寄存器兼任第3章指令系统、汇编语言及C51程序MOV

A,#44H

;指令原形MOVA,#data(4)立即寻址

指令中包含#data或#data16形式操作数的寻址方式称为立即寻址

第3章指令系统、汇编语言及C51程序(5)变址寻址

MOVC

A,@A+DPTR

;A←(A+DPTR)指令中包含“@A+基址寄存器”形式操作数的寻址方式称为变址寻址方式基址寄存器只能由DPTR或PC兼任

MOVCA,@A+PCMOVCA,@A+DPTRJMPA,@A+DPTR仅有3条变址寻址指令第3章指令系统、汇编语言及C51程序MOV

C,

2FH

;指令原形MOVC,bit

SETB

0E0H;指令原形SETBbitCLRP1.0 ;指令原形

CLRbit(6)位寻址

指令中包含bit形式操作数的寻址方式称为位寻址方式bit形式的位地址可以是片内RAM中的位地址,也可以是SFR中的位地址或位名称

第3章指令系统、汇编语言及C51程序(7)相对寻址

SJMPFINISH

;指令原形SJMPrel指令中包含rel形式操作数的寻址方式称为相对寻址方式rel可以是片内RAM或ROM地址偏移量的形式,也可以是标号的形式。伪指令

第3章指令系统、汇编语言及C51程序汇编语言指令的两类指令:硬指令(指令性语句)——汇编后可以产生机器码的指令,如前介绍的111条指令;伪指令(指示性语句)——用于指示汇编系统软件要完成的操作,一般不产生机器码常用的伪指令:

ORG、END、EQU、DATA、BIT、DB第3章指令系统、汇编语言及C51程序

MCS-51常用伪指令伪指令名称格式功能描述ORG(Oringin)程序起始地址ORG16位地址用于定义汇编程序或数据在ROM中存放的起始地址EQU(Equate)等值指令标识符EQU数或汇编符号用于将一个数值或汇编符号赋给该标示符DATA(Data)数据地址赋值标识符DATA内存字节地址用于将一个内部RAM的地址赋给该标示符BIT(Bit)位地址赋值标识符DATA位地址或位名称用于将一个位地址或位名称赋给该标示符DB(DefineByte)定义字节[标号:]DB<项或项表>用于把项或项表中的字节(8位)数值依次存入标号开始的存储单元中END(End)结束汇编END用于指示汇编源程序段结束(1)ORG(=origin)格式:ORGxxxx(16位地址)功能:用于定义汇编程序或数据在ROM中存放的首地址举例:ORG100HSTART:MOVA,R4MOVB,A:ORG后面第1条指令的首地址为100H,即START的值为100H。(2)EQU(=equate)格式:标示符

EQU

数值或汇编符号功能:用于将一个数值或汇编符号赋给该标示符举例:ADDREQU2000H;将2000H赋予ADDRADDREQUMEM2;将MEM2赋予ADDR说明:

第2条语句的汇编符号MEM2必须是已赋值过的(3)DATA(=data)格式:标示符

DATA内部RAM地址或表达式功能:用于将一个内部RAM的地址赋给该标示符举例:

COUNTDATA50H;将50H赋予COUNTCOUNTEQU50H;将50H赋予COUNT※EQU与DATA区别:

1)EQU须先定义后使用,而DATA可无须如此。

2)EQU可用于汇编符号,而DATA不能。

3)DATA可用于表达式,而EQU不行。(4)BIT(=bit)格式:标示符

BIT

位地址或位名称功能:用于将一个位地址或位名称赋给该标示符举例:

KEY1BITP1.0;将P1.0赋予KEY1(5)DB(=definebyte)格式:[标号:]DB

n1,n2,…,ni功能:用于定义以字节为单位的常数表规则:①”ni”按顺序存在标号地址开始的单元中;②常数之间用英文逗号分开,最后一个不要逗号例如:JPH:DB12H,20H,35H,40H,58H

表示字节常数12H将放置在JPH语句标号对应的ROM地址处,其它常数依此顺延排列(6)END(=end)格式:END功能:用于表示汇编程序到此结束说明:放在源程序的最后一行,并只允许有一个END指令系统——计算机中全部指令的集合51单片机共有111条指令,按功能可划分为四大类:第3章指令系统、汇编语言及C51程序数据传送与交换类(31条)算术运算类(24条)逻辑运算类(34条)转移控制类(22条)*也可将分散于上述四类之中的位操作类指令汇总为第

五大类指令指令——CPU用于指挥功能部件完成某一指定动作的指示

和命令——可实现RAM、SFR和ROM之间的数据互传或交换第3章指令系统、汇编语言及C51程序数据传送与交换类指令

(31条)第3章指令系统、汇编语言及C51程序第3章指令系统、汇编语言及C51程序数据传送与交换类指令共有8种操作码: MOV用于访问片内RAM MOVX用于访问片外RAM MOVC用于访问程序存储器 XCH和XCHD用于字节交换 SWAP用于A内半字节交换 PUSH和POP用于堆栈操作数据传送类指令的基本通式为:

<

transfer>

<dest>,<src>表示将源操作数(src)的内容传送给目的操作数

(dest),传送后源操作数中内容不变。transfer具有三种具体形式:第3章指令系统、汇编语言及C51程序MOV——数据在片内RAM范围内传送MOVX——数据在A与片外RAM之间传送MOVC——数据在A与ROM之间传送第3章指令系统、汇编语言及C51程序单向箭头表示只能从源到目的双向箭头表示源和目的可以互换位置弧线箭头表示源和目的相同(唯一)箭头线旁边的文字是相应的操作码基本规律:①立即数和ROM地址只能作为源操作数(单向箭头);②内外ROM与A的数据传送只能用MOVC操作码助记符;③片外RAM与A的数据传送只能用MOVX操作码助记符;④PUSH、POP、SWAP只有1个操作数(弧线箭头);⑤位数据传送只能在C(即Cy标志位)与bit间进行。数据传送目的和源的快捷记忆法关注:

MOVA,R1(机器码E9H)

工作原理利用通用寄存器查找操作数的做法称为寄存器寻址通用寄存器:Rn,A,B,CY和DPTR五种类型(一般不考虑A的作用,除非A是指令中唯一的操作数)

根据机器码E9H先找到片内RAM中R1里存放的35H,然后将35H传送给A,即操作结果是通过寄存器R1得到的。第3章指令系统、汇编语言及C51程序【例3-1】数据传送指令。第3章指令系统、汇编语言及C51程序【例3-2】将A的内容传送至R1;30H单元的内容传送至R3;立即数80H传送至R7。【例3-3】将A的内容传送至30H单元;R7的内容传送至20H单元;立即数0FH传送至27H单元;40H单元的内容传送至50H单元。第3章指令系统、汇编语言及C51程序关注:MOVA,@R0(机器码E6H)

工作原理:根据机器码E6H先找到片内RAM中R0里存放的内容44H,然后以44H为RAM地址将其保存的内容07H传送给A。R0里存放的是操作数的地址,而不是操作数结果。利用寄存器作为地址指针间接查找操作数的做法称为寄存器间接寻址可以进行间接寻址的寄存器称为间址寄存器

R0、R1和DPTR是51单片机仅有的三个间址寄存器第3章指令系统、汇编语言及C51程序第3章指令系统、汇编语言及C51程序属于寄存器间接寻址方式的传送类指令第3章指令系统、汇编语言及C51程序第3章指令系统、汇编语言及C51程序【例3-4】将从20H开始的32个单元全部清0。【例3-5】设片外RAM的2000H单元中的数为61H,读该单元数据,传送到片外RAM的3FFFH单元中去。第3章指令系统、汇编语言及C51程序关注:MOVCA,@A+DPTR(机器码93H)第3章指令系统、汇编语言及C51程序工作原理:根据机器码93H先找出A中存放的内容30H,再找出DPTR中存放的内容2010H,然后以这两项内容之和2040H为ROM地址,将其存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论