slide1
Download
Skip this Video
Download Presentation
项目一 发光二极管 LED 点亮控制

Loading in 2 Seconds...

play fullscreen
1 / 58

项目一 发光二极管 LED 点亮控制 - PowerPoint PPT Presentation


  • 101 Views
  • Uploaded on

项目一 发光二极管 LED 点亮控制. 教学目的. 了解单片机的内部结构与主要型号; 掌握单片机引脚功能; 掌握单片机 I/O 口的基本功能; 掌握用 I/O 口实现简单控制的方法; 利用单片机的 I/O 口实现 LED闪烁 的控制。. 工作模块一 点亮一个发光二极管. 工作任务 使用 AT89S52 单片机, P1.0 引脚接发光二极管( LED )的阴极,通过 C 语言程序控制,从 P1.0 引脚输出低电平,使发光二极管点亮。 . PROTEUS 简介.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 项目一 发光二极管 LED 点亮控制' - elpida


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
教学目的

了解单片机的内部结构与主要型号;

掌握单片机引脚功能;

掌握单片机I/O口的基本功能;

掌握用I/O口实现简单控制的方法;

利用单片机的I/O口实现LED闪烁的控制。

slide3
工作模块一 点亮一个发光二极管
  • 工作任务
    • 使用AT89S52单片机,P1.0引脚接发光二极管(LED)的阴极,通过C语言程序控制,从P1.0引脚输出低电平,使发光二极管点亮。
proteus
PROTEUS简介
  • PROTEUS是英国Labcenter Electronics公司开发的多功能EDA软件。PROTEUS不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,也是目前较先进的单片机和嵌入式系统的设计与仿真平台。
  • 它实现了在计算机上完成从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整的电子设计、研发过程。
slide5
LED控制电路
  • 按照工作任务要求,点亮一个LED电路是由AT89S52单片机和1个LED电路构成。
  • AT89S52单片机是美国ATMEL公司生产的低电压、高性能8位单片机,具有丰富的内部资源, 使用AT89S52单片机无须外部存储器。
proteus led
用PROTEUS设计第一个LED控制电路
  • 新建设计文件
  • 保存设计文件
  • 选取元器件
  • 放置元器件
  • 编辑元器件
  • 放置终端
  • 连线
  • 属性设置
  • 电气规则检测
slide7
工作过程
  • P1.0引脚接发光二极管(LED)的阴极,P1.0引脚输出低电平时,发光二极管点亮。
    • 问题:

为什么P1.0引脚输出低电平,发光二极管点亮?

  • 通过程序控制,使P1.0引脚输出低电平,使发光二极管点亮。
    • 问题:

程序怎么使P1口的引脚输出低电平?

下面我们来看一下程序,就可以找到答案。

slide8
LED点亮程序
  • #include <AT89X52.H> //包含AT89X52.H头文件
  • sbit LED=P1^0; //定义LED是P1.0引脚对应的变量名
  • void main (void)
  • {
  • LED=0; // P1.0=0,LED点亮
  • while(1);
  • }
keil c51 p32
KEIL C51(P32)
  • Keil C51 是德国Keil软件公司开发的基于8051 内核的微控制器软件开发平台,是51系列单片机C语言软件开发系统,是目前开发8051 内核单片机的主流工具。
  • Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。μVision2 集成开发环境可以完成从工程建立和管理、编译、连接、目标代码的生成、软件仿真和硬件仿真等完整的开发流程。
keil c51 c
用KEIL C51编写第一个C语言程序
  • 建立第一个C程序项目
    • 建立工程文件
    • 建立源文件
    • 加载源文件
    • 设置工程的配置参数
    • 进行编译和连接
    • 进入调试模式
    • 全速运行程序
proteus1
用PROTEUS仿真运行调试
  • 加载“点亮一个LED.hex ”目标代码文件
    • 打开Proteus “点亮一个LED”电路。
    • 双击单片机“AT89S52”,在弹出的“编辑元件”对话框中单击“Program File”栏的打开按钮,在弹出的“选择文件名”对话框找到前面编译生成的“点亮一个LED.hex ”HEX文件,单击“打开“按钮,完成“点亮一个LED.hex ”HEX文件加载。
    • 将“Clock Frequency”栏中的频率设为12MHz,单击“确定”,即可完成加载目标代码文件。
  • 仿真运行调试
    • 单击仿真工具栏“运行”按钮,单片机全速运行程序。
slide12

T

INT

定 时 器 / 计 数 器

中 断 系 统

并行I/O口

C P U

串行I/O口

P0-P3

TxD

RxD

存 储 器

认识单片机
  • 单片机实质上是一个芯片(P7)
slide13
单片机的发展
  • 第一阶段(1974-1976年)为单片机初级阶段
    • 由于受工艺及集成度的限制,单片机采用双片形式,且功能比较简单。
  • 第二阶段(1976-1978年)为低性能单片机阶段
    • 单片机采用单芯片形式,是“小而全”。
  • 第三阶段(1978-1982年)为高性能单片机阶段,也是单片机普及阶段
  • 第四阶段(1982年以后)为16位单片机阶段
slide14
单片机的特点
  • 由于单片机是在一块芯片上集成了一台微型计算机所需的CPU、存储器、输入/输出部件和时钟电路等。因此它具有体积小,使用灵活、成本低、易于产品化、抗干扰能力强,可在各种恶劣环境下可靠地工作等特点。
    • 体积小、重量轻,价格低、功能强,电源单一、功耗低,可靠性高、抗干扰能力强;
    • 使用方便灵活、通用性强;
    • 目前大多数单片机采用哈佛(Harvard)结构体系;
    • 突出控制功能的指令系统;
    • 较低的处理速度和较小的存储容量。
slide15
单片机的应用
  • 单片机主要应用在以下几个方面:
    • 家用电器
    • 智能卡
    • 智能仪器仪表
    • 网络与通信
    • 工业控制
slide16
单片机的分类
  • 单片机可分为通用型单片机和专用型单片机两大类。
    • 通用型单片机是把可开发资源全部提供给使用者的微控制器。我们通常所说的单片机即指通用型单片机。
    • 专用型单片机则是为过程控制、参数检测、信号处理等方面的特殊需要而设计的单片机。
slide17
按片内不同程序存储器的配置来分
    • 片内带ROM、片内带EPROM型、片内无ROM
  • 按片内不同容量的存储器配置来分
    • 51子系列型(是基本型)、52子系列型(是增强型)
  • 按芯片的半导体制造工艺上的不同来分
    • HMOS工艺型、CHMOS工艺型(用“C”表示)
  • 按所能适应的环境温度范围,可划分为三个等级:
    • 0℃~70℃民用级、-40℃~+85℃工业级、-65℃~+125℃军用级。
mcs 51
MCS-51单片机
  • MCS-51是美国Intel公司的8位高档单片机系列,也是我国目前应用最为广泛的一种单片机系列。
  • 8051/80C51是整个MCS-51系列单片机的核心。
  • 51系列单片机源于Intel公司的MCS-51系列,在Intel公司将MCS-51系列单片机实行技术开放政策之后,许多公司都以MCS-51中的基础结构8051为基核推出了许多各具特色、具有优异性能的单片机,如Philips、Atmel等。这样,把这些厂家以8051为基核推出的各种型号的兼容型单片机统称为51系列单片机。
atmel at89
Atmel公司的AT89系列单片机
  • AT89系列单片机不但具有一般MCS-51单片机的所有特性,而且其Flash程序存储器可以用电擦除方式瞬间擦除、改写, 写入单片机内的程序还可以进行加密。
slide20

T0 T1

时钟电路

ROM

RAM

定时计数器

CPU

并行接口

串行接口

中断系统

TXD RXD

INT0 INT1

P0 P1 P2 P3

单片机硬件结构(P10)
  • 并行I/O口:4个8位的I/O口P0、P1、P2、P3。
  • 中央处理器CPU:8位,运算和控制功能
  • 内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。
  • 中断控制系统:5个中断源(外中断2个,定时/计数中断2 个,串行中断1个)
  • 时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ
  • 串行口:一个全双工串行口。
  • 内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。
  • 定时/计数器:两个16位的定时/计数器,实现定时或计数功能。

复位电路

slide21
中央处理器(CPU)
  • 中央处理器是单片机的核心,完成运算和控制功能。
  • MCS-51的CPU能处理8位二进制数或代码。
slide22
内部数据存储器(内部RAM)
  • 芯片中共有256个RAM单元
    • 前128单元,作为供用户使用的寄存器和用于存放可读写的数据;
    • 后128单元被专用寄存器占用。
  • 通常所说的内部数据存储器就是指前128单元,简称内部RAM。
slide23
内部程序存储器(内部ROM)
  • 芯片中共有4 KB个ROM单元。
  • 用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。
slide24
定时/计数器
  • 两个16位的定时/计数器。
  • 实现定时或计数功能,并以其定时或计数结果对计算机进行控制。
slide25
并行I/O口
  • 4个8位的I/O口(P0、P1、P2、P3)
  • 实现数据的并行输入/输出
slide26
串行口
  • 一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。
  • 该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。
slide27
中断控制系统
  • 5个中断源,即外中断两个,定时/计数中断两个,串行中断一个。
  • 全部中断分为高级和低级共两个优先级别。
at89s52
AT89S52单片机结构
  • 一个8位CPU;
  • 一个片内振荡器及时钟电路;
  • 8K字节可重复擦写的Flash闪速存储器
  • 三级加密程序存储器;
  • 256×8字节内部RAM;
  • 3个16位定时器/计数器;
  • 32条可编程的I/O线(四个8位并行I/O端口);
  • 一个可编程全双工串行口;
  • 具有8个中断源、两个优先级嵌套中断结构。
at89s52 p11
AT89S52引脚功能(P11)
  • 电源线:VCC(+5V)、VSS(地)
  • 振荡电路:XTAL1、XTAL2
  • 复位引脚:RST
  • 并行口:P0、P1、P2、P3
  • EA:访问程序存储控制信号
  • PSEN:外部ROM读选通信号
  • ALE:地址锁存控制信号
  • P3口线的第二功能
at89s521
AT89S52引脚功能
  • 电源引脚(2根)
    • VCC(40脚):电源端,接+5V电源。
    • VSS(20脚):接地端。
  • 时钟引脚(2根)
    • XTAL1(19脚):接外部晶振和微调电容的一端。
    • XTAL2(18脚):接外部晶振和微调电容的另一端。
at89s522
AT89S52引脚功能
  • 控制引脚(4根)
    • RST/VPD(9脚):复位信号。

当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。

    • ALE/PROG (30脚):地址锁存控制信号。

在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。

    • EA/VPP(31脚):访问程序存储控制信号。

当信号为低电平时,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。

    • PSEN(29脚):片外ROM读选通信号端。

在读片外ROM时,PSEN有效,为低电平,以实现对片外ROM的读操作。

at89s523
AT89S52引脚功能
  • P0口 (引脚32-39)普通I/O口
  • P1口 (引脚1-8) 普通I/O口
  • P2口 (引脚21-28)普通I/O口
  • P3口 (引脚10-17)普通I/O口,或作为其他第二功能口
slide34
最小单片机系统(P13)
  • 单片机
  • 5V电源,接地
  • 时钟电路(晶振)
  • 复位电路
slide35
时钟电路
  • 时钟电路为单片机产生时钟脉冲序列。
  • 系统允许的晶振频率一般为6 MHz和12 MHz,电容C1和C2取30 pF左右。
  • 晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。
slide36
时序的概念
  • 单片机内的各种操作都是在一系列脉冲控制下进行的,而各脉冲在时间上是有先后顺序的,这种顺序就称为时序。
  • 单片机的时序定时单位从小到大依次为:时钟周期、状态周期、机器周期和指令周期。
    • 振荡周期是指晶体振荡器直接产生的振荡信号的周期,是振荡频率fosc的倒数,用P表示。
    • 状态周期(或状态S)是振荡周期的两倍,它分为P1节拍和P2节拍。
    • 1个机器周期是由6个状态构成。
    • 执行一条指令所需的时间称为指令周期。
slide38
复位电路
  • 单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。
  • 常见的复位操作有上电自动复位和按键手动复位两种方式 。
    • 上电自动复位是通过外部复位电路的电容充电来实现的。
    • 按键手动复位是通过复位端经电阻与电源VCC接通而实现的,它兼备上电复位功能。
slide39
复位功能
  • 复位是单片机的初始化操作。
    • 是把PC初始化为0000H,使CPU从0000H单元开始执行程序;
    • 同时还对其他一些寄存器有影响,但内部RAM的数据是不变的。
  • 除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键重新启动。
slide40
技能训练1-1
  • 单片机最小系统只是单片机能满足工作的最低要求,它不能对外完成控制任务,实现人机对话。
  • 单片机最小系统应用—开关控制LED点亮
    • 电路设计
    • 程序设计
2 led
工作模块2-LED闪烁
  • 分析
    • 软件实现思路:
      • 点亮发光二极管
      • 延时(延时子程序)
      • 关闭发光二极管
      • 延时
      • 重复上述动作(循环)
    • 电路设计和前面一样
slide42
C语言程序

#include <AT89X52.h>

sbit LED = P1^0;

void Delay()

{

unsigned char i, j;

for (i=0;i<255;i++)

for (j=0;j<255;j++);

}

void main ()

{

while(1)

{

LED = 0;

Delay();

LED = 1;

Delay();

}

}

slide43
思考
  • 把Delay()延时函数放在后面如何处理?
    • 提示:在程序开头加入说明行(即子程序头加分号),既定义在前,使用再后。
c p47
C语言程序的构成(P47)
  • C语言的程序是由一个或多个函数构成的,最简单的程序只有一个main函数 。
  • 一个函数由两部份组成
    • 函数的首部、即函数的第一行;

包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。

    • 函数体,即函数首部下面的大括号“{}”内的部份。函数体一般包括:
      • 声明部份:定义所用到的变量,如void Delay()中的unsigned char i, j;。
      • 执行部份:由若干个语句组成。
slide45
标识符
  • C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
  • 变量名、常数名、数组名、函数名、文件名与类型名等统称为标识符。
  • 标识符分为预定义标识符和用户标识符。
  • 说明:
    • C语言中大写字母与小写字母被认为是两个不同的字符。
    • 标识符在命名时应当简单,含义清晰,这样有助于阅读理解程序。
slide46
关键字
  • 关键字则是编程语言保留的特殊标识符,它们具有固定名称和含义,在程序编写中不允许标识符与关键字相同。在Keil C中的关键字除了有ANSI C标准的32个关键字外,还根据51单片机的特点扩展了相关的关键字。
  • 在Keil C的文本编辑器中编写C程序,系统把保留字以不同颜色显示,缺省颜色为天蓝色。
c p52
C语言基本语句(P52)
  • C语言的程序是由一个或多个函数组成的,而函数又是由若干个语句组成的。语句是由一些基本字符和定义符按照C语言的语法规定组成的,每个语句以分号结束,分号是C语句的必要组成部份。C语言的语句可分为以下5种类型:
    • 表达式语句
    • 函数调用语句
    • 控制语句
    • 复合语句
    • 空语句
slide48
表达式语句
  • 表达式语句是由一个表达式加一个分号构成一个语句,其作用是计算表达式的值或改变变量的值。它的一般形式是:

表达式;

即在表达式末尾加上分号,就变成了表达式语句。最典型的表达式语句是:在赋值表达式后加一个分号构成赋值语句。例如:

    • a=3

是一个赋值表达式

    • a=3;

是一个赋值语句

slide49
函数调用语句
  • 由一个函数调用加一个分号构成函数调用语句,其作用是完成特定的功能。它的一般形式是:

函数名(参数列表);

  • 例如

mDelay(100); //调用延时函数,参数是100

slide50
控制语句
  • 控制语句用于完成一定的控制功能,以实现程序的各种结构方式。C语言有9种控制语句,可分为以下三类。
    • 条件判断语句:if语句、switch语句。
    • 循环语句:for语句、while语句、do-while语句。
    • 转向语句:break语句、continue语句、goto语句、return语句。
slide51
复合语句
  • 复合语句是用一对大括号将若干条语句括起来的,也称为分程序,在语法上相当于一条语句。例如
    • main()
    • {……
    • {t=x;
    • x=y;
    • y=t;} //复合语句
    • }
slide52
空语句
  • 只有一个分号的语句称为空语句。它的一般形式是:

;

空语句是什么操作也不执行,常用于作为循环语句中的循环体,表示循环体什么也不做。

slide53
注释
  • 注释内容可以单独写在一行上,也可以写在一个语句之后;
  • 可以用/*…..*/的形式为 C 程序的任何一部份作注释;
  • Keil C也支持 C++风格的注释,就是用“//”引导的后面的语句是注释,例:

P1_0=!P1_0; //取反 P1.0

    • 这种风格的注释,只对本行有效,书写比较方便,所以在只需要一行注释的时候,我们往往采用这种格式。
slide54
技能拓展-音频控制应用
  • 音频控制电路由单片机最小系统、放大滤波电路和扬声器构成。放大滤波电路由NPN三极管Q1、电阻R3、电容C4构成,Q1的基极经电阻R2接到P0.0引脚。
slide55
音频控制流程图
  • 利用AT89S52端口输出脉冲方波,方波经放大滤波后,驱动扬声器发声,声音的频率高低由延时长短控制。
slide56
音频控制程序
  • 音频控制程序和模块二LED闪烁程序基本一样,下面写出程序不同之处。
    • #include <AT89X52.H> //包含AT89X52.H头文件
    • sbit SPK=P0^0; //定义SPK是P0.0位对应的引用符号
    • ……
    • SPK = 0; // P0.0=0,输出低电平
    • Delay(); // 延时
    • SPK = 1; // P1.0=1,输出高电平
    • Delay();
    • ……
slide57
技能训练1-2
  • 报警产生器
    • P1.7引脚接一个开关;
    • 用P0.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号。
  • 要求
    • 1KHz信号响100ms,500Hz信号响200ms,交替进行;
    • 当开关合上报警信号响,当开关断开报警信号停止。
slide58
#include <AT89X52.H>

#include <INTRINS.H>

unsigned char count;

void dely500(void) //延时500us,即0.5ms

{

unsigned char i;

for(i=250;i>0;i--)

{

_nop_();

}

}

void main(void)

{ while(1)

{ if(P1_7==0)

{ for(count=200;count>0;count--)

{//1KHz信号响100ms

P1_0=~P1_0;

dely500();

}

for(count=200;count>0;count--)

{//500Hz信号响200ms

P1_0=~P1_0;

dely500();

dely500();

}

}

}

}

参考程序
ad