51单片机的基本端口操作_第1页
51单片机的基本端口操作_第2页
51单片机的基本端口操作_第3页
51单片机的基本端口操作_第4页
51单片机的基本端口操作_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章51单片机的基本端口操作主要对单片机最简系统在实际应用中的使用方法,从简单到复杂地实现单片机最简系统的基本功能。“点亮最简单的单片机系统”从单片机原理上介绍单片机的基本组成和最简单系统的典型电路,以及有关单片机C51编程方法和例程。“更加明亮的小灯”从功能上介绍如何使LED发光稳定,从原理上介绍单片机I/O口的电气特性和使用方法。“定时亮灭的小灯”介绍如何使LED灯定时亮、灭,从单片机原理上介绍定时器的使用和编程方法。“小灯亮灭的人工控制”从功能上介绍如何通过按键控制LED灯的亮灭,从单片机原理上介绍单片机中断的使用和编程方法。先复习下Keil51的操作。1.1点亮最简单的单片机系统常用

2、MCS-51系列单片机引脚功能说明引脚定义引脚功能功能说明Vcc+5V电源电源电压Vss地电路接地端P0.0-P0.7通道08位漏极开路的双向I/O通道P1.0-P1.7通道18位拟双向I/O通道P2.0-P2.7通道28位拟双向I/O通道P3.0RXD串行输入口P3.1TXD串行输由口P3.2INT0外部中断0输入口P3.3INT1外部中断1输入口P3.4T0定时器/计数器0外部时间脉冲输入端P3.5T1定时器/计数器1外部时间脉冲输入端P3.6WR外部数据存储器写脉冲P3.7RD外部数据存储器读脉冲RST/VPD复位输入信号该引脚上有2个机器周期的高电平可以实现复位操作,在掉电情况下将只给

3、片内RAM供电ALE/PROG地址锁存有效信号主要作用是提供一个适当的定时信号PSEN程序选通有效信号低电平时,指令寄存器的内容读到数据总线上EA/Vpp片选使能当保持TTL高电平时,8051执行内部ROM勺指令;当使TTL为低电平时,从外部程序存储器取由所有指令XTAL1晶振输入端内部振荡器外接晶振的一个输入端XTAL2晶振输入端内部振荡器外接晶振的另一个输入端提问:什么是单片机系统、输出显示提问:单片机中晶振有什么作用?回答:单片机访问一次存储器的时间,称之为一个及其周期,是一个时间基准。一个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,它的一

4、个机器周期是12X(1/12us),也就是1uso若是12MHz的晶振,当单片机中定时/计数器的数值加1时,实际经过的时间就是提示:晶振电路,复位电路1uSo基本电路图:VCGczClGWD10K小导UIElVCC|EZ2R234S67310TT12nRBTi17Q工23.4.5E.7-»-»a-I0-PFPPPPPPP30/R2Dpsirrsppgj/iMToP3-3OTT?3.4rroP3.5rripm.苫还P3.?JRD00PO.O/ADI?PO.1/AD1PO.2/AD2PO.3/AD3P0.4/AD4PO.5/ADJ5PH%DEPO/7AAD7ALEPSENP2J

5、/A15F2,AUp2sMimP2.4JA12P2J3;AUP2.2/A10P2.1./A5P2.0/A8Q39至J7享35豆3332302D五27262534332221ATS9S51VI30pFGND发光二极管导通压降通常为1.7V-1.9V;为什么要接电阻?电路原理及器件选择?89C51:单片机,控制发光二极管亮灭OSG晶振,在本例中选择12MHz的立式晶振C3,C2:晶振电路的起振电容,容值为22pFL1:发光二极管R1:限流电阻,阻值为1k欧地址分配和连接?P1.0:与发光二极管电路相连,控制LED发光二极管阴极的电平高低RESET复位引脚X1,X2:单片机的晶振引脚程序设计:延时程

6、序:我们先不使用单片机的定时器,而是直接采用软件的延时程序定时控制发光二极管的亮灭。在12M晶振时,-个指令周期为1us,那么1M次就是1s。程序代码:#include<reg51.h>sbitgate=P1A0;/位定义voidmain(void)(unsignedinti,j;while(1)(for(i=1000;i>0;i-)/双重循环,延时约1sfor(j=1000;j>0;j-);gate=!gate;/对P10取反,控制小灯)补充:结合第五代开发板电路图可以看到1.2 更加明亮的小灯外加与非门做驱动电路,增大电流,当然也有相应的电子驱动芯片。1.3 定时亮

7、灭的小灯下面我们进入单片机最重要的内容之一,定时和中断。1 .什么是单片机的定时器?MSC-51单片机一般有两个内部的16位定时器/计数器,分别成为T0和T1.分别有两个8位的RAMI元组成,即每个计数器都是16位的计数器,最大计数量为2的16次方等于65536.而定时和计数的关系是什么呢?找个同学告诉我吧。定时器每完成一个时间的定时,计数器就加1.2 .一定要计满65536个数吗?3 .如何使用MCS-51单片机的定时器呢?定时器有两个特定的寄存器TMO西口TCON就象定时器的操作界面。首先介绍定时器/计数器的方式寄存器TMODTMOD的控制字TMOD.7TMOD.6TMOD.5TMOD.4

8、TMOD.31TMOD.2:TMOD.iTMOD.0GATEC/TM1M0GATEC/TM1M0可以看到,高四位和第四位分别代表两个定时器/计数器,所以我们可以以TMODI四位来说明各位的定义与功能。GATE:分为两种情况,GATE=0时,定时器的起停和INT1无关,在这种情况下,定时器的起停只取决与TR0.GATE=1时,在此种情况下定时器/计数器的开关不仅要由TR0来控制,而且还要受到INT1引脚的控制,只有TR1为1时,且INT1引脚也是高电平,定时器才能开始工作。C/T:定时/计数器功能选择。如果C/T为0就做定时器,如果C/T为1就做计数器。当然只能二选一。M1,M0:用M1,M0来

9、控制定时器/计数器4种工作方式的选择。工作方式0:M1=0,M0=0.13位定时.计数方式。它由TL(1/0)的低五位和TH(0/1)的8位构成13位的计数器,此时TL(1/0)的高3位未用。工作方式1:M1=0,M0=1.是16位定时/计数方式,其他特性与工作方式0相同。工作方式2:M1=1,M0=0.自动重装初值的8位定时/计数器。初值放在T(0/1)的高8位。在工作方式2,只有低8位参与计算,而高8位不参与计算,用作预置数存放,技术范围256。每当计数溢由,就会打开T(0/1)的高、低8位之间的开关,计预置数进入低8位。这是由硬件自动完成的。通常这种方式用于波特率发生器(我们将在串行接口

10、中讲解)工作方式3:M1=1,M0=1.这种工作方式下,定时/计数器被拆成2个独立的定时/计数器来用。其中,TL0可以构成8位的定时器或计数器的工作方式,儿TH0则只能作为定时器来用。只有在T1以工作方式2运行时,才让T0以工作方式3运行。然后,我们介绍控制寄存器TCONTCON控制寄存器TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.CTF1TR1TF0TR0IE1IT1IE0IT0TR0:T0的运行控制位。启动定时器T0没有专门的指令,而是通过TR0进行控制。当GATE=0寸,T0的运行只取决于TR0的0和1;当门控位GATE=1时,仅当TR0

11、=1,并且外中断0引脚上的输入值为高电平时,T0才开始计数,这两个条件缺一不可TF0:T0的溢由和中断申请标志位。当T0溢由时,硬件置位TF0,表示提由了中断申请。该标志位可以通过软件查询,也可以用软件清零和置位,在单片机响应中断申请后,硬件自动清零。TR1:TF1:接下来我们来看一个典型的定时器程序。要求:定时10ms,P1.0反相。/定义头文件和位定义#include<reg51.h>#include<stdio.h>sbitP00=P0A0;sbitP13=P1A3;voidmain(void)/初始化端口P0=0xFF;P13=0;/初始化定时器TMOD=0x0

12、1;TH0=0xD8;TL0=0xF0;/启动定时器,开中断TR0=1;ET0=1;EA=1;/等待循环while(1);)/定时器0中断服务子程序voidtimer0_ISR(void)interrupt1using1(/定时器初始重载TH0=0xD8;TL0=0xF0;/操作P00=!P00;到这里,大家肯定就会有疑惑,什么叫做中断服务子程序,什么又叫做中断。我们稍后解释。这里需要提醒大家的是单片机定时/计数器各种工作方式下的最大计数量。工作方式0:13位,2的13次方等于8192次;工作方式1:16位,2的16次方等于65536次;工作方式2和3:都是8位的,2的8次方等于256次那么就

13、由现了一个问题,如果我想定时1s的话,该怎么做呢?大家思考一下,然后我请个同学来回答。下面我们一起来看看如何实现1s的定时亮灭。#include<reg51.h>#include<stdio.h>#defineunitunsignedint#defineucharunsignedcharsbitP00=P0A0;sbitP13=P1A3;uintoverflow_count=0;voidmain(void)(P0=0xFF;P13=0;TMOD=0x01;TH0=0xD8;TL0=0xF0;TR0=1;ET0=1;EA=1;while(1)(If(overflow_co

14、unt=100)P00=!P00;Overflow_count=0;voidtimer0_ISR(void)interrupt1using1(TH0=0xD8;TL0=0xF0;Overflow_count+;完成了小灯定时亮灭,我们就基本学会了如何使用单片机定时器/计数器的使用方法。下面,就让我们来看看前面留下的问题一“中断”。定义:中断属于一种对事件的实时处理过程,中断源可能随时停止CPU当前的工作,转而去处理中断服务程序,待中断服务程序完成后,再返回原来工作的断点处,继续原来的工作再者,我们需要知道,单片机内部有多个中断,分别是定时/计数器0中断-T0中断定时/计数器1中断一-T1中断外

15、中断0-INT0中断外中断1-INT1中断串口中断-一串口中断那么,当不同的中断同时发生终端申请,自然就会有一个中断优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已经产生而未结束,又有一个中断产生的情况最后,就是中断的响应过程。具体来说可以分为以下几个步骤。保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈;寻找中断入口,根据5个不同的中断源所产生的中断,查找5个不同的入口地址;执行中断服务程序,用中断服务程序处理需要改变的变量或者事件;中断返回,执行完中断服务程序后,从中断断点处返回主程序,继续执行主程序。上面分什么是中断,中断优先级,中断的响应

16、三个部分简单介绍了中断,下面我们来看看单片机中断系统有何作用。简单的说,单片机在自动控制中所起到的作用就两个,一个是定时/计数,另一个就是中断的使用。中断的作用如下:第一、实现高速CPU和低速外设之间的配合,利用中断方式进行I/O口操作,在宏观上可以看成CPU和外设的并行工作;第二、可以实现实时控制。实时处理是控制系统对单片机提由的要求,各个设备可以随时向CPU发生中断申请,而CPUI&必须做由快速响应和及时处理。第三、实现故障的紧急处理。当外设发生故障时,可以利用中断系统请求CPU及时处理这些故障。第四、便于人机联系。操作人员可以利用键盘等实现中断,完成人工介入。接下来我们学习中断的

17、使用!中断系统主要包括5个中断请求源和4个控制寄存器IE,IP,TCON和SCO昧控制中断申请,中断开关和中断优先级。1,中断方式和标志位TCONTCON勺低四位用于外部中断的控制,高4位用于T0,T1的控制。TCON中的控制字TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0TF1TR1TF0TR0IE1IT1IE0IT0外部中断请求源IT0:INTO触发方式控制位,可由软件进行置位和复位。IT0=0,INT0为低电平触发方式;IT0=1,INT0为负跳变触发方式。IE0:INT0中断请求标志位。当有外部中断的请求时,这位就会置1;在CPU响应中

18、断后,IE0置0;IT1:IE1:2.中断允许寄存器IE中断允许寄存器IEIE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0EAXXESET1EX1ET0EX0其中:EA:总开关,如果它等于0,则所有中断都不允许ES:串行口中断允许ET1:定时器1中断允许EX1:外中断1中断允许ET0:定时器0中断允许EX0:外中断0中断允许5个中断的自然优先级为:外中断0-INT0中断-EX0定时器0-T0中断-ET0外中断1-INT1中断-EX1定时器1-T1中断-ET1串口中断-串口中断-ES中断优先级寄存器一IP.4IP.3IP.2IP.1IP.0EAXXPSPT1PX1PT0PX0其中某位为1,那么就为高优先级。了解了中断的控制,最后我们回到开始程序中的中断服务子程序。函数格式为返回值函数名称(【参数】)【模式】【重入】interruptnusingn其中interruptn对

温馨提示

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

评论

0/150

提交评论