mcs-51单片机学习资料_第1页
mcs-51单片机学习资料_第2页
mcs-51单片机学习资料_第3页
mcs-51单片机学习资料_第4页
mcs-51单片机学习资料_第5页
已阅读5页,还剩213页未读 继续免费阅读

下载本文档

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

文档简介

1、 电子线路设计训练专题实验2 上课时间: 考核方式:平时(上课、上机调试)占20%,验 收占70%,实验报告占10% 使用教材:胡汉才,单片机原理及其接口技术 (第二版),清华大学出版社,2003 电子线路设计训练专题实验2指导教师:张良祖、许宏斌、刘美兰教师办公室:自动化系实验中心,西一楼315、313室联系电话:张许)刘)1. 先修课程:数字逻辑电路、微机原理、单片机原理与应用2. 课程类型:专题实验集中实践环节3. 学习目的:1)掌握嵌入式控制系统的软硬件设计思路与方法;2)作为引子功能,为在以后的科研工作中开

2、发复杂的计算机控制系统(DSP、ARM等)打下基础。 课程简介4. 课时安排:24学时(其中讲课约占4学时)5. 教学基本要求:(1)掌握MCS-51系列单片机的系统结构,主要包括:处理器、存储器、串/并行口、定时器/计数器及中断系统等;了解MCS-51系列单片机的内部资源。(2)了解MCS-51指令系统和程序设计。(3)掌握系统扩展技术。主要包括:程序存储器、数据存储器、定时/计数器、串/并行口的扩展等。 (4)掌握简单的嵌入式系统开发与设计。 课程简介 学习单片机的几大要点 学单片机需要什么基础? 什么是单片机、单片机能做什么、怎么开始学习单片机。 学单片机需要的一些预备知识。 C51基础

3、知识。 了解单片机实验板系统结构 如何用单片机实验板在短时间内掌握51单片机和C语言编程。 KEIL工程建立及KEIL软件使用方法。 从点亮实验板上的一个led开始练习。 学单片机需要什么基础?学单片机需要什么基础?1. 与以前所学的知识关联较少;与以前所学的知识关联较少;2. 只需要掌握很基本的数电、模电知识,如只需要掌握很基本的数电、模电知识,如二进制、十进制、十六进制之间的转换,二进制、十进制、十六进制之间的转换,与、或、非逻辑关系等;与、或、非逻辑关系等;3. 对各种器件的概念基本上是从对各种器件的概念基本上是从0开始;开始;4. 如果要用如果要用C语言编程,需具备简单的语言编程,需具

4、备简单的C语言语言基础。基础。单片机能做什么生活中用到单片机的项目太普遍了!1. 手持粮库温度寻检设备2.毕设答辩打分器3.电话台灯4.自动感应水龙头 等等.凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机。 用到单片机的领域 工业自动化:数据采集、测控技术。 智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。 消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。 通讯方面:调制解调器、程控交换技术、手机、小灵通等。 武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。 等等. 怎么开始

5、学习? 实践第一!单片机这门课是非常重视实践的,不能总是看书也不能完全不看书,看书时结合实验板只需要大概了解单片机各引脚的功能和各个寄存器,第一次、第二次看不懂没关系,实践中不懂之处再查书。 补充必要的理论知识,即缺什么补什么。 做实验过程中积累经验,当使用单片机时,哪些引脚的电平什么时候输出高、什么时候输出低?由这些高低变化的电平来控制外围电路,实现我们需要的各种功能。拿到实验板后,把实验板与计算机连接好,先学会怎样用调式软件,然后从最简单的做起,比如让一个led亮起来,然后再让8个led按自己的意愿亮起来,这时就入门了,随后再键盘、lcd,逐步你就成高手了,最后你会迷上单片机。预备知识 电

6、平特性电平特性 2进制与进制与16进制的表示及转换进制的表示及转换 二进制数的逻辑运算二进制数的逻辑运算 8051单片机介绍单片机介绍 C51基础知识基础知识关于电平特性 数字电路中只有两种电平:高和低 (本课程中)定义单片机为TTL电平: 高 +5V 低 0V RS232电平:计算机的串口 高 -12V 低+12V RS232电平为负逻辑电平,所以计算机与单片机之间通讯时需要加电平转换芯片max232。 二进制和十六进制 数字电路中只有高电平和低电平两种电平特性,决定了数字电路中使用二进制“逢二进一,借一当二”,二进制数的后缀用B表示,如十进制数1转换为二进制数是1B,十进制数2转换为二进制

7、数是10B 。 十六进制是二进制的简短表示形式,“逢十六进一,借一当十六”,十六进制数的后缀用H表示,C语言编程时要写成0 x00,0 x01,在数的前面加上0 x表示该数为十六进制数。 熟练掌握二进制与十六进制之间的转换规律一般把四个二进制数放在一起转换成一个十六进制数,转换时先把二进制数转换成十进制数,再把十进制数转换成十六进制数。如:0001B - 1 - 1H 1001B - 9 - 9H 1010B - 10 - AH 0010 1100 - 44 - 2CH十进制中的0-16分别表示为二进制数和十六进制数见下表:十进制十进制二进制二进制十六进制十六进制十进制十进制二进制二进制十六进

8、制十六进制000910019111101010A2102111011B3113121100C41004131101D51015141110E61106151111F71117161000010810008 二进制数的逻辑运算二进制数的逻辑运算 1. “与与”运算运算 “与”运算是实现“必须都有,否则就没有”这种逻辑关系的一种运算。 运算符为“ ”, 其运算规则如下: 00=0, 01=10=0, 11=1 2. “或或”运算运算 “或”运算是实现“只要其中之一有,就有”这种逻辑关系的一种运算, 其运算符为“+”。 “或”运算规则如下:0+0=0, 0+1=1+0=1, 1+1=1 3. “非非

9、”运算运算 “非”运算是实现“求反”这种逻辑的一种运算,如变量A的“非”运算记作 。 其运算规则如下: A10, 01 4. “异或异或”运算运算 “异或”运算是实现“必须不同, 否则就没有”这种逻辑的一种运算, 运算符为“ ”。其运算规则是: 011 , 101 , 110 , 000单片机主要掌握以下几点 最小系统能够运行起来的必要条件。 1.电源 2.晶振 3.复位电路 对单片机任意I/O口的随意操作 1.输出控制电平高低 2.输出检测电平高低。 定时器:重点掌握最常用的方式2 中断:外部中断、定时器中断、串口中断 串口通信:单片机之间、单片机与计算机间 单片机单片机 在一片集成电路芯片

10、上集成微处理器、在一片集成电路芯片上集成微处理器、存储器、存储器、I/O接口电路,从而构成了接口电路,从而构成了单芯片单芯片微型计算机,即单片机微型计算机,即单片机。 在在MCS-51系列里,所有产品都是以系列里,所有产品都是以8051为核心电路发展起来的,它们都是具有为核心电路发展起来的,它们都是具有8051的基本结构和软件特征,所以以的基本结构和软件特征,所以以8051单单片机的内部结构框图为例讲述。片机的内部结构框图为例讲述。MCS-51单片机的组成及结构分析单片机的组成及结构分析 单片机内部结构单片机内部结构Intel公司推出了公司推出了MCS-51系列单片机:系列单片机:集成集成 8

11、位位CPU、4K字节字节ROM、128字节字节RAM、4个个8位并口、位并口、1个全双工串行口、个全双工串行口、2个个16位定时位定时/计数器。寻址范围计数器。寻址范围64K,并有控制功能较强,并有控制功能较强的布尔处理器。的布尔处理器。Xian Jiaotong UniversityMCS-51单片机的组成及结构分析单片机的组成及结构分析时钟电路SFR和RAMROMCPU定时/计数器并行端口中断系统串行端口系 统 总 线时钟源T0 T1P0 P1 P2 P3TXD RXD INT0 INT1图: MCS-51单片机系统结构示意图 MCS-51单片机内部结构Xian Jiaotong Univ

12、ersityXian Jiaotong University图: MCS-51内部结构框图 MCS-51单片机内部结构MCS-51单片机的组成及结构分析单片机的组成及结构分析1、CPU:由运算器ALU、控制器和专用寄存 器组组成。(1)运算器ALU:由加法器、暂存器(TMP1、TMP2)和布尔处理器组成。可进行加减乘除四则运算,可以进行与、或、非及异或等逻辑运算,还具有数据传送、移位、判断及程序转移等功能。 MCS-51单片机的组成及结构分析单片机的组成及结构分析(2 2)控制器(定时控制部件)控制器(定时控制部件) 控制器由定时控制逻辑、指令寄存器IR和振荡器OSC组成。指令寄存器IR用于存

13、放从程序存储器中取出的指令码,定时控制逻辑用于对指令寄存器中的指令码进行译码,并在振荡器的配合下产生执行指令时的时序脉冲,以完成相应指令的执行。振荡器产生矩形时钟脉冲序列,时钟频率越高,单片机的运算速度越快。(3 3)专用寄存器组)专用寄存器组 由程序计数器PC、累加器A、通用寄存器B、程序状态字PSW、堆栈指针SP和数据指针DPTR等组成。 MCS-51单片机的组成及结构分析单片机的组成及结构分析a a、程序计数器、程序计数器PCPC:是一个二进制16位的地址寄存器,专门用于存放下一条需要执行指令的内存地址,能自动加1。b、累加器累加器A:是一个二进制8位寄存器,专门用来存放操作 数或运算结

14、果。c、通用寄存器通用寄存器B:是一个二进制8位寄存器,专门为乘法和除法设置的寄存器,用于存放乘积的高8位和除法的余数。 d、程序状态字程序状态字PSW:是一个8位标志寄存器,用来存放指令执行的有关状态。MCS-51单片机的组成及结构分析单片机的组成及结构分析 程序状态字PSW中各位的含义: D7 D0 CY AC F0 RS1 RS0 OV - PCY进位标志:表示运算过程中累加器最高位A7有无进位或借位。例如:加减运算A7有进位或借位CY=1,否则CY=0;AC辅助进位位:加减运算时低4位A3有无向高4位A4进位或借位。AC=1表示加减运算过程中A3向A4有进位或借位,AC=0表示加减运算

15、过程中A3没有向A4进位或借位。 MCS-51单片机的组成及结构分析单片机的组成及结构分析 程序状态字PSW中各位的含义F0用户标志位:是由用户根据程序执行的需要通过传送指令确定的。RS1、RS0寄存器选择位:8051有8个8位工作寄存器R0R7,用户通过 RS1、RS0的状态可以很方便地决定R0R7的实际物理地址,如下表:RS1、RS0R0R7的组号R0R7的物理地址 00 0 00H07H 01 1 08H0FH 10 2 10H17H 11 3 18H1FH MCS-51单片机的组成及结构分析单片机的组成及结构分析 程序状态字PSW中各位的含义 Cy AC F0RS1RS0 OV - P

16、OV溢出标志位:机器在运算指令过程中,累加 器A中运算结果超出了8位数能表示的范围,则OV标志位自动置1,否则为0,根据OV的状态就可以判断累加器A中结果是否正确.P奇偶校验位:用于指示运算结果中1的个数的奇偶性。P=1,则累加器A中1的个数为奇数,P=0则累加器A中1的个数为偶数。 MCS-51单片机的组成及结构分析单片机的组成及结构分析e、堆栈指针堆栈指针SPSP :是一个8位寄存器能自动加1或减1,用 来存放堆栈的栈顶指针。f、数据指针数据指针DPTRDPTR:是一个16位的寄存器由两个8位寄存 器DPH和DPL拼成。其中DPH为DPTR的高8位,DPL为 DPTR的低8位,DPTR用来

17、存放片内片外ROM的地址,也 可以用来存放片外RAM的地址。2、存储器结构存储器结构 MCS-51的存储器不仅有ROM和RAM之分,而且还有片内和片外之分。片内存储器集成在芯片内部,是单片机的一个组成部分,片外存储器是外接的专用存储器芯片,单片机只提供地址和控制命令。 MCS-51单片机的组成及结构分析单片机的组成及结构分析 (1)存储器地址分配:存储器逻辑空间是三个独立空间:a、片内片外ROM在同一个逻辑空间,地址范围0000H FFFFH; 0000H0FFFH 4KB地区为片内片外ROM公用,控制引脚 接 高电平片内ROM用,控制引脚接低电平,CPU只访问片外 ROM;1000FFFFH

18、为片外ROM专用。片内片外ROM总容量不超 过64KB。b、片内RAM占一个逻辑空间,地址范围00HFFH;8051单片机 片内RAM有128个存储单元,用来存放操作数、操作结果和 实时数据。c、片外RAM占一个逻辑空间,地址范围0000HFFFFH;片内RAM 容量不够时,可外接RAM,但片外RAM容量不超过64KB。 EAMCS-51单片机的组成及结构分析单片机的组成及结构分析 存储器地址分配 8051片内RAM有128个存储单元,在00H7FH这个地址空间中,根据功能不同又可分为工作寄存器、位寻址区和便笺区三个子区域。 工作寄存器R0R7占32个RAM单元,地址范围00H1FH; 00H

19、07H 0组工作寄存器,08H0FH 1组工作寄存器, 10H17H 2组工作寄存器,18H1FH 3组工作寄存器。 位寻址区占16个RAM单元,地址范围20H2FH;按字节也 可按位存取。 便笺区占80个RAM单元,地址范围30H7FH;用于存放用 户数据或作堆栈区使用,按字节存取。 MCS-51单片机的组成及结构分析单片机的组成及结构分析 存储器地址分配MCS-51单片机的组成及结构分析单片机的组成及结构分析(2)特殊功能寄存器SFR:指有特殊用途的寄存器。8051有21个SFR,每个SFR占有一个RAM单元,它们离散的分布在80HFFH,具体见下表所示。在SFR中可以位寻址的寄存器有11

20、个,共有位地址88个,其中有5个未定义,没有用。 F0MCS-51单片机的组成及结构分析单片机的组成及结构分析 3、I/O端口 是单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增强它的负载能力。分为并行I/O端口和串行I/O端口。(1)并行I/O端口:一次可以传送一组二进制信息。8051 单片机有四个并行I/O端口P0、P1、P2和P3,四个并行 I/O端口作为通用I/O使用时,具有写端口、读端口和读 引脚三种操作方式。写端口就是输出数据,是把累加器A 或其他寄存器中的数据传送到端口锁存器中,然后又端 口自动从其引脚线上输出。读端口是把端口锁存器中数 据读到CPU累加

21、器A。读引脚是从端口引脚线上读入外部 输入数据。 P0口结构(口结构(8位中的位中的1位)位) P1口某位结构 P2口某位结构P3口某位结构MCS-51单片机的组成及结构分析单片机的组成及结构分析(2)串行I/O端口 一次只能传送1位二进制信息。8051有一个全双工的可编程串行I/O端口,可以在程序控制下把CPU的8位并行数据变成串行数据逐位从发送数据线TXD发送出去,也可以把接收数据线RXD上串行接收到的数据变成8位并行数据发给CPU,而且这种串行发送和串行接收可以单独进行,也可以同时进行,利用了P3口的第二功能,P3.0引脚作为串行数据接收线,P3.1作为串行数据发送线。 P3口的第二功能

22、见下表: MCS-51单片机的组成及结构分析单片机的组成及结构分析 P3口的位第二功能 注释 P3.0 RXD串行口数据接收口 P3.1 TXD串行口数据发送口 P3.2外中断0输入 P3.3外中断1输入 P3.4 T0计数器0计数输入 P3.5 T1计数器1计数输入 P3.6外部RAM写选通信号 P3.7外部RAM读选通信号0INT1INTWRRD P3口各位的第二功能MCS-51单片机的组成及结构分析单片机的组成及结构分析4 、M C S - 5 1 单 片 机 的 定 时 器单 片 机 的 定 时 器 / 计 数 器计 数 器 定时器计数器的核心结构是一个内部计数器,当此计数器对内部标准

23、时钟信号计数时就作为定时器工作;而当它对从T0(T1)管脚输入的外部事件脉冲计数时就作为计数器工作。启动计数器后,它在预先置入的初值的基础上累加计数,计满溢出时置位溢出标志,同时发出中断请求。 MCS-51单片机的组成及结构分析单片机的组成及结构分析( 1 ) 与 定 时 器 有 关 的 寄 存 器 有TMOD,TCON,TH0,TL0,TH1,TL1。TH0、TH1为高八位寄存器,TL0、TL1为低八位寄存器。定时器方式选择寄存器TMOD D7 D0定时器控制寄存器TCON D7 D0TF1TR1TF0TR0IE1IT1IE0IT0GATEC/T M1M0GATEC/TM1M0MCS-51单

24、片机的组成及结构分析单片机的组成及结构分析(2)定时器有四种工作方式,不同工作方式下定时器的组织结构略有不同。MCS-51单片机的组成及结构分析单片机的组成及结构分析方式0:13位定时计数器,由TL0的低5位和TH0的所有8 位共同组成, TL0的低5位计数溢出向TH0进位, TH0计数溢出则对相应的溢出标志位置位方式1: 16位定时计数器方式2: TL0作为自动重装入的8位定时计数器,TH0作为 一个数据缓冲器, TL0计数溢出时,相应的溢出 标志位置位的同时,自动将TH0中的常数送到 TL0,使TL0从初值开始重新计数方式3:T0成为两个独立的8位计数器TL0作为定时计数器;TH0仅作定时

25、器用TL0的控制用原T0的、TH0用原T1的中断标志和运动控制位T1虽可定义为方式02,但只能用在不需要中断控制的场合,溢出时送串行口,经常作为串行口波特率发生器MCS-51单片机的组成及结构分析单片机的组成及结构分析(3)定时器的初值计算方法:计数:设计数范围为Y,初值为X,则定时:设定时时间为,初值为,则 其中M=8、13、16,取决于定时器的工作方式2MXY122oscYMfTX MCS-51单片机的组成及结构分析单片机的组成及结构分析(4)定时器的初始化: 根据要求给方式寄存器TMOD送一个方式控制 字,以设定定时器响应的工作方式; 根据需要给C/T选送初值以确定需要的定时时间 或计数

26、的初值; 根据需要给中断允许寄存器IE送中断控制字, 以开放相应的中断和设定中断优先级; 给TCON送命令字以启动或禁止C/T的运行。5、MCS-51单片机的中断系统单片机的中断系统 中断是指CPU暂停原程序执行转为执行中断服务程序,完成后回到原程序执行的过程。中断系统是指能够处理上述中断过程所需要的那部分电路。(1)中断源:产生中断请求信号的源泉。8051单 片机共有5个中断源,2个外部中断源从 P3.2和P3.3引脚上输入的/INT0和/INT1; 3个内部中断源2个定时器/计数器中断 源和1个串口中断源。MCS-51单片机的组成及结构分析单片机的组成及结构分析外部中断源: /INT0和/

27、INT1用于输入两个外部中断源的 中断请求。有两种触发方式电平触发和负边沿触发。 电平触发:CPU检测到/INT0或/INT1上低电平时其中断 请求有效。 负边沿触发:CPU需要两次检测/INT0或/INT1上的电 平,前一次检测为高电平且后一次检测为低电平才有效定时器溢出中断源:定时器T0/T1在定时脉冲作用下从全 “1”变为全“0”时,自动向CPU提出中断请求。串口中断源:分为串行口发送中断和串行口接收中断,由 TCON的RI和TI中断标志位状态来区分。MCS-51单片机的组成及结构分析单片机的组成及结构分析 中断系统中断系统SCON 串行口控制寄存器中的中断标志位:SCONTIRI位地址

28、9F9E9D9C9B9A9998MCS-51单片机的组成及结构分析单片机的组成及结构分析 中断系统中断系统RI为“0”时,无接收中断, RI为“1”时,有接收中断;TI为“0”时,无发送中断, RI为“1”时,有发送中断。TCON 定时器寄存器中的中断标志位:TCONTF1 TR1TF0 TR0IE1IT1IE0IT0位地址8F8E8D8C8B8A8988MCS-51单片机的组成及结构分析单片机的组成及结构分析 中断系统中断系统IT0/IT1-触发标志位为“0”时,/INT0/INT1电平触发,IT0/IT1为“1”时,/INT0/INT1负边沿触发;IE0/IE1-中断标志位为“0”时,硬件

29、复位, IE0/IE1为“1”时,/INT0/INT1上有中断。(2)8051的中断源及相应的中断服务程序入口 地址。 中断源 中断服务程序入口地址 外部中断/INT0 0003H 定时器中断T0 000BH 外部中断/INT1 0013H 定时器中断T1 001BH 串行口中断 0023HMCS-51单片机的组成及结构分析单片机的组成及结构分析 中断系统中断系统 MCS-51单片机的组成及结构分析单片机的组成及结构分析 中断系统中断系统(3)和中断系统有关的寄存器有中断允许寄存器IE,中断优先级IP,TCON以及功能单元中的SFR中的某些位。 MCS-51单片机的组成及结构分析单片机的组成及

30、结构分析 中断系统中断系统 中断的开放与关闭是通过中断允许寄存器IE进行两级控制,由中断允许总控位EA配合各中断源的中断允许控制位共同实现对中断请求的控制。中断允许寄存器IE中EX0/EX1为“0”时,关INT0 、 INT1中断,EX0/EX1为“1”时,开INT0 、 INT1中断;中断允许寄存器IE中ET0/ET1为“0”时,关T0/T1中断,ET0/ET1为“1”时,开T0/T1中断;中断允许寄存器IE中ES为“0”时,关串口中断,ES为 “1”时,开串口中断;中断允许寄存器IE中EA为“0”时,关所有中断,EA为“1”时,开所有中断; MCS-51单片机的组成及结构分析单片机的组成及

31、结构分析 中断系统中断系统(4)中断的优先级的控制 由IP设定中断的优先级,高级中断可以中断低级中断的中断服务,同级中断则必须在执行完当前的中断服务程序后才能响应新的中断请求。 若有多个同级中断同时请求中断服务,则按下面列出的顺序查询响应。 MCS-51单片机的组成及结构分析单片机的组成及结构分析 中断系统中断系统 中断系统中断优先级顺序 中断源 中断标志优先级顺序INT0定时器T0INT1定时器T1串行口中断IE0IF0IE1IF1TI或RI高低 MCS-51单片机的组成及结构分析单片机的组成及结构分析 中断系统中断系统 (5) 中断响应过程中断响应过程 置位中断触发器PC入栈中断服务程序入

32、口地址入PC执行中断服务程序RETI(清零中断触发器,断点入PC)返回原断点继续执行执行,如下图示:Xian Jiaotong University中断响应过程 主程序执行主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回 MCS-51单片机的组成及结构分析单片机的组成及结构分析 中断系统中断系统(6)单片机对中断请求的撤除中断请求的撤除 定时器溢出的TF0、TF1及外部中断边沿触发时的IE0、IE1在响应中断后会自动清零。 串行口中断的RI、TI必须在中断服务程序的适当位置加撤除中断指令由软件清零 外部中断低电平触发时的IE0、IE1随外部信号变化而变化。 MCS-51单片机的

33、组成及结构分析单片机的组成及结构分析6、MCS-51单片机引脚功能 MCS-51系列单片机是具有40根引脚的直插式器件4个并行口(P0P3)共4*8=32根引脚,可用作地址线、数据线和I/O线;6根控制信号线;2根电源线。(1)端口线P0.7P0.0 8051不带片外存储器,P0口可作为通用I/O口用,用于传送CPU的输入输出数据,输出时得到锁存,不需外接专用锁存器,输入时得到缓冲;8051带外部存储器, P0.7P0.0在CPU访问片外存储器时先用于传送片外存储器低8位地址,然后传送CPU对片外存储器的读写数据。MCS-51单片机的组成及结构分析单片机的组成及结构分析6、MCS-51单片机引

34、脚功能 MCS-51单片机的组成及结构分析单片机的组成及结构分析 引脚功能P1.7P1.0 可作为通用I/O口用P2.7P2.0 可作为通用I/O口用;第二功能与P0口相配合,用于输出片外存储器的高8位地址,但不能像P0口那样还可以传送片外存储器的读写数据。P3.7P3.0可作为通用I/O口用;第二功能作控制用,每个引脚功能不同。(2)电源线(2根) 8051单片机有2根电源线,VCC:+5V电源线;VSS:接地线。 MCS-51单片机的组成及结构分析单片机的组成及结构分析 引脚功能(3)控制线(6根)ALE/ 地址锁存允许/编程线 配合P0口引脚的第二功能使用。在访问片外存储器时,8051单

35、片机在P0.7P0.0引脚线上输出片外存储器低8位地址的同时还在ALE/ 线上输出一个高电位脉冲,其下降沿用于把片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7P0.0引脚线去传送随后而来的片外存储器的读写数据;在不访问片外存储器时,该控制线上输出频率为fOSC/6的脉冲序列,可用作外部时钟源或作为定时脉冲源使用。PROGPROG MCS-51单片机的组成及结构分析单片机的组成及结构分析 引脚功能控制线 /VPP 允许访问片外存储器/编程线 可以控制8051单片机使用片内还是片外ROM。 片外ROM选通线 在执行访问片外ROM 的指令时,单片机自动在该控制线上产生一个负脉冲,用于

36、为片外ROM 芯片的选通;其他情况下,该控制线均为高电平封锁状态。RST/VPD 复位/备用电源线 8051单片机的复位有自动复位和人工按钮复位;当主电源VCC发生故障而降低到规定低电平时,该控制线上的备用电源自动投入,以保证片内RAM中信息不丢失。EAPSEN MCS-51单片机的组成及结构分析单片机的组成及结构分析 引脚功能控制线 XTAL1和 XTAL2 片内振荡器输入线 两个端子用来外接石英晶体和微调电容,提供给单片机所需的时钟7、单片机时序 是指CPU执行指令时所需控制信号的时间顺序。(1)时钟周期 又称为振荡周期,有单片机内振荡电路OSC产生,定义为时钟脉冲频率的倒数,是时序中最小

37、的时间单位。(2)机器周期 定义为实现特定功能所需的时间。8051的机器周期由12个时钟周期组成,一个机器周期又分为6个状态(S1S6),每个状态分为P1和P2两拍,所以一个机器周期中的12个振荡周期可表示为S1P1、 S1P2、S2P1、S2P2S6P2。 MCS-51单片机的组成及结构分析单片机的组成及结构分析 单片机时序(3)指令周期 定义为执行一条指令所需的时间,是时序中最大的时间单位。 8051有单周期指令:包含一个机器周期的指令;双周期指令:包含两个机器周期的指令;四周期指令:包含四个机器周期的指令,这类指令只有乘法和除法两条;(4)单片机指令的取指/执行时序 8051单片机有单字

38、节单周期指令时序、双字节单周期指令时序和单字节双周期指令时序。具体执行情况见下图: MCS-51单片机的组成及结构分析单片机的组成及结构分析 单片机指令的取指/执行时序 MCS-51单片机的组成及结构分析单片机的组成及结构分析单片机指令的取指/执行时序 (4)单片机指令的取指/执行时序 由图可知一个机器周期包含12个振荡周期,编号为S1P1到S6P2,每一拍持续一个振荡周期,每一个状态持续两个振荡周期;每个机器周期中,ALE信号两次有效,一次在S1P2和S2P1期间,还有一次在S4P2和S5P1期间,CPU就进行两次取指。 执行一条单周期指令时,在S1P2时读入操作码并把它锁存到指令寄存器IR

39、中。如果是一条双字节指令,第二个字节在同一机器周期的S4P2时读出;如果是一条单字节指令,在 S4P2时仍然有一个读操作,但这时读出的字节(下一条指令的操作码)是不加以处理的,而且程序计时器PC也不加“1”。 MCS-51单片机的组成及结构分析单片机的组成及结构分析 单片机指令的取指/执行时序(4)单片机指令的取指/执行时序 8051单片机的单字节单周期指令时序和双字节单周期指令时序,机器从取出指令到完成指令都仅需一个机器周期,不同在于双字节单周期指令时序执行返回指令时需要分两次从ROM中读出指令,ALE在第一次有效读出指令操作码,CPU对它译码后便知道是双字节指令,故使程序计数器PC加“1”

40、,并在ALE第二次有效时读出的第二字节(也使PC加“1” ),两种指令都是在S6F2时完成指令的执行。MCS-51单片机的组成及结构分析单片机的组成及结构分析 单片机指令的取指/执行时序 每一条指令的执行都可以包括取指和执行两个阶段。 在取指阶段,CPU从内部或者外部ROM中取出指令操作码及操作数,然后再执行这条指令的逻辑功能。 在8051指令系统中,其指令可由单字节、双字节和三字节组成。MCS-51单片机的组成及结构分析单片机的组成及结构分析 单片机指令的取指/执行时序 从机器执行指令的速度看,单字节和双字节指令都可能是单周期或双周期, 而三字节指令都是双周期, 只有乘、除指令占四个周期。

41、执行条指令的时间(指令周期)分别为2us、4us和8us。 (采用6MHz晶体振荡器)MCS-51单片机的组成及结构分析单片机的组成及结构分析 读片外ROM指令时序MCS-51单片机的组成及结构分析单片机的组成及结构分析 读片外RAM指令时序片内振荡器及时钟信号的产生 805l芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器及输入端为XTAL1,输出端为XTAL2,分别为8051的引脚19和18。在XTAL1和XTAL2两端跨接石英晶体及两个电容就构成了稳定的自激振荡器。电容器Cl和C2通常都取30pF左右,对振荡频率有微调作用。振荡频率范围是1.212MHz。 外部振荡脉冲信号 8

42、051也可使用外部振荡脉冲信号,由XTAl2端引脚输入,直接送至内部时钟电路。因为XTAL2的逻辑电平与TTL电平不兼容,所以应接一个上拉电阻(5.1k)。 对于CHMOS型80c51单片机,外部脉冲信号须从XTALl端引脚输入,XTAL2端悬空。 外部振荡脉冲源方式常用于多片8051同时工作,以便于同步。两相时钟信号Pl和P2 时钟信号的周期称为机器状态时间S(state),它是振荡周期的2倍。在每个时钟周期(即机器状态时间S)的前半周期,相位1(P1)信号有效,在每个时钟周期的后半周期,相位2(P2)信号有效。每个时钟周期(以后常称状态S)有两个节拍(相)P1和P2,CPU就以两相时钟Pl

43、和P2为基本节拍指挥8051单片机各个部件协调地工作。 两相时钟信号Pl和P2MCS-51单片机的单片机的复位及复位电路 复位状态是指对CPU内部单元的预先约定的初值状态。复位是指进入这种状态的过程。复位条件是:在RST管脚上维持两个机器周期的高电平将导致单片机进入复位状态。在复位状态下,PC指向0000H地址,SP内容为07H、P0-P3口锁存器内容为0FFH、其余SFR的内容为00H、通用RAM的内容保持不变。复位电路可采用由电阻和电容构成的上电复位电路或按键复位电路。 单片机复位 复位及复位电路 HMOS型805l的复位结构见图。 复位引脚RST通过片内一个斯密特触发器与片内复位电路相连

44、。斯密特触发器用来脉冲整形及抑制噪声,其输出在每个机器周期的S5P2时被复位电路采样一次。如果输出2个机器周期(24个振荡周期)的高电平的正脉冲,805l便执行内部复位。 上电复位电路 上电瞬间,RST端的电位与Vcc相同,随着充电电流的减小,RST端的电位逐渐下降,只要在RST处有时间足够长的阂值以上的电压时就能可靠复位。 图中参数适宜6MHz晶振。 按键手动复位电路 该电路是上述上电复位电路另加一个200电阻和手动开关组成。 实际上该电路是上电复位兼按键手动复位电路,当开关常开时。 上电复位:当常开按键闭合时,相当于RST端通过电阻与Vcc电源接通,提供足够宽度的阂值电压完成复位。 实验板

45、C C5151的数据类型扩充定义的数据类型扩充定义sfr:sfr:特殊功能寄存器特殊功能寄存器声明声明sfr16:sfrsfr16:sfr的的1616位数据声明位数据声明sbit:sbit:特殊功能位声明特殊功能位声明bitbit: :位变量声明位变量声明例:例:sfr SCON = 0X98;sfr SCON = 0X98; sfr16 T2 = 0 xCC; sfr16 T2 = 0 xCC; sbit OV = PSW2; sbit OV = PSW2;C51知识 C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开

46、发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进、扩充和移植。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。 C语言作为一种非常方便的语言而得到广泛的支持,很多硬件开发都用C语言编程,如:各种单片机、DSP、ARM等. C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。 C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。 C-51C-51的特点的特点例:例:数据类型数据类型 变量名变量名char var1;char var1;bit flags;bit flags;un

47、signed char vextor10;unsigned char vextor10;int wwww;int wwww;注意:变量名不能用注意:变量名不能用C C语言中的关语言中的关键字表示。键字表示。C-51C-51数据的存储类型数据的存储类型 C-51与ASM-51相比,有如下优点:1. 对单片机的指令系统不要求了解,仅 要求 对8051 的存贮器结构有初步了解;2. 寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;3. 程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;4. 提供的库包含许多标准子程序,具有较强的数据处理能力;5. 由于具有方便的模块化编程技术,

48、使已编好程序可容易地移植; MCS-51单片机单片机串行通信串行通信 通信是指计算机主机与其外部设备之间的信息交换,计算机主机之间的信息交换。通信分为:并行通信数据各位同时进行传送;串行通信数据一位一位地顺序传送。串行通信又分为异步通信,同步通信。1、异步通信 数据通常以字符(或字节)为单位组成字符帧传送,有发送端和接收端,平时发送线为高电平,每当接收端检测到传输线上发送过来的低电平(字符帧中的起始位)时,就知道发送端已开始发送,每当接收端接收到字符帧中的停止位时,就知道一帧字符信息已发送完毕。字符帧格式和波特率是异步通信中的两个重要指标。C C语言中的基本数据类型语言中的基本数据类型类型类型

49、符号符号关键字关键字数的表示范围数的表示范围所占位数所占位数整型整型字符型字符型实型实型有有无无(signed) int16-3276832767(signed) short16-3276832767(signed) long32-2147483648214748364716unsigned int0655353204294967295unsigned long intunsigned short int16065535有有float323.4e-383.4e38有有double641.7e-3081.7e308有有char8-128127无无unsigned char80255C-51C-5

50、1的包含的头文件的包含的头文件通常有通常有: :reg51.h reg52.h math.h reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.hctype.h stdio.h stdlib.h absacc.h常用有常用有: :reg51.h reg52.hreg51.h reg52.h (定义特殊功能寄存器和位寄存器);(定义特殊功能寄存器和位寄存器); math.h math.h (定义常用数学运算);(定义常用数学运算); C-51C-51的运算符的运算符与与C C语言基本相同:语言基本相同:+ - + - * * / / (

51、加(加 减减 乘乘 除)除) = = (位右移(位右移 位左移)位左移)& |& | ( (按位与按位与 按位或按位或) ) ( (按位异或按位异或 按位取反按位取反) ) C-51C-51的基本语句的基本语句 与标准与标准C C语言基本相同:语言基本相同: if if 选择语言选择语言 while while 循环语言循环语言 for for 循环语言循环语言 switch/case switch/case 多分支选择语言多分支选择语言 do-while do-while 循环语言循环语言 Main 函数格式:void main()特点:无返回值,无参。任何一个C程序有且仅有一个main函数

52、,它是整个程序开始执行的入口。例:void main() 总程序从这里开始执行; 其他语句; 中断服务程序中断服务程序函数名()函数名()interrupt interrupt n n using using m m 函数内部实现函数内部实现 . . I/OI/O口定义口定义sbit beep=P23;sbit beep=P23;KEIL软件使用 掌握KEIL工程的建立和软件的开发; 了解KEIL中软件仿真的基本应用; 掌握KEIL应用在硬件_实验板的方法KEIL软件使用熟练掌握keil工程的建立过程及操作步骤1、建立一个新工程单击【project】菜单中的New project选项,如图:K

53、EIL软件使用2、选择工程要保存的路径,输入工程文件名,单击保存,如图:KEIL软件使用2、选择工程要保存的路径,输入工程文件名,如图:KEIL软件使用3、第2步单击保存后弹出一个对话框,要求用户选择单片机型号,然后单击确定按钮KEIL软件使用3、第2步单击保存后弹出一个对话框,要求用户选择单片机型号,然后单击确定按钮KEIL软件使用4、单击【File】中的New选项,新建文件后的,窗口界面如图a,输入用户应用程序,点save图标保存,输入文件名,c语言编程时正确输入扩展名.c,如图b,然后单击【保存】按钮。KEIL软件使用5、第4步完成后新建的文件与之前建立的工程没有直接联系,在编辑界面单击

54、Target前面的“+”号,然后选择Add File to Group Source Group 菜单项,弹出对话框,选中led.c,单击Add按钮,再单击Close按钮,这样源代码文件就与工程关联起来了。KEIL软件使用6、完成代码编辑后编译调试程序,修改正确后下载到实验板进行调试,调试时注意几点:(1)代码编辑好后单击按钮 编译正在操作的文件;(2)修改后的文件单击按钮 进行编译;(3)需要重新编译当前工程中的所有文件时单击按钮(4)单击按钮 可以为当前工程设置选项 KEIL软件使用(4-1)单击Output菜单项弹出如图界面,勾选Create HEW File、Browse Inform

55、ation项,使程序编译后产生HEW、BIN 代码, HEW 、 BIN文件分别是十六进制、二进制文件,单片机只能下载这两种文件。KEIL软件使用(4-2)单击Debug菜单项弹出如图界面,勾选Use项,使文件下载到用户要用的单片机中,然后再单击Setting按钮,设置单片机所连接的COM端口和频率。KEIL软件使用(4-2)单击Debug菜单项弹出如图界面,勾选Use项,使文件下载到用户要用的单片机中,然后再单击Setting按钮,设置单片机所连接的COM端口和频率,单击OK然后确定。KEIL软件使用(5)以上工作完成后单击按钮 下载调试程序弹出如图a界面,再单击按钮 运行,结果如图b 。点

56、亮一个数码管C程序 #include void main() unsigned char xdata * ptr; ptr=0 x9fff; * ptr =0 x3f; ptr=0 x8fff; * ptr =0 x40; while(1); 左起第二个LED亮点亮一个数码管运行结果图点亮一个数码管C程序解析 #include SST89x5x4.H 该头文件定义了SST89x5x4系列芯片所用到的关键变量,包括端口、各个寄存器等。 这个头文件可在“KeilC51INC”文件夹中找到。点亮一个数码管C程序解析 void main() /主函数 unsigned char xdata * ptr

57、;/定义一个指针变量 ptr=0 x9fff; /段选 * ptr =0 x3f; /显示内容“0” ptr=0 x8fff; /位选 * ptr =0 x40; /左起第二个LED while(1); /while 循环 点亮一个数码管C程序解析 while(1); /while 循环 这个程序中没有while 循环这一句,运行结果没有任何改变,左起第二个LED会亮,但是当程序运行时,首先进入主函数当执行完四句程序之后,没有给单片机指明下一步要做什么,所以在运行时有可能出错。程序中没有while 循环,实际上是在不断地重复点亮LED的操作,我们的意图是让单片机在点亮LED后就结束,也就是让程

58、序停止在某处,这样程序有头有尾才完整。while(1); 中的“;”一定不能少,否则while()会把跟在它后面的第一个分号前的语句认为是它的内部语句。注:单片机有电后不会停止工作!点亮一个数码管C程序左移循环 #include #include #define uint unsigned int #define uchar unsigned char void delayms(uint); uchar aa; void main() unsigned char xdata * ptr; aa =0 x01; while(1)点亮一个数码管C程序左移循环 ptr=0 x9fff; * ptr

59、=0 x3f; ptr=0 x8fff; * ptr=aa; delayms(500); aa=_crol_(aa,1); /将aa循环左移1位后再赋给aa void delayms(uint xms) uint i,j; for(i=xms;i0;i-) for(j=110;j0;j-); 点亮一个数码管C程序左移循环解析 #include 该头文件定义了C51单片机的几个关键操作,这个头文件可在“KeilC51INC”文件夹中找到,是C51自带的库函数。 延时子函数Delayms 后面括号中的“uint xms”,是这个函数的参数形参,在调用此函数时,用具体真实数据(实参)代替此形参,函数

60、声明时必须把参数类型带上,方便多次调用函数。 这个程序运行结果是:数字“0”从最右边向左移,时间间隔500ms点亮一个数码管C程序数字变换左移循环 #include #include #define uint unsigned int #define uchar unsigned char uchar num,aa; uchar code table= 0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71; void delayms(uint); vo

温馨提示

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

评论

0/150

提交评论