单片机数码管ppt课件
合集下载
51单片机_数码管显示演示幻灯片
11
二 LED显示器静态显示及应用实例
1. 静态显示的特点
静态显示就是单片机将所要显示的数据送出去后,数码管始终显示 该数据(不变),到下一次显示时,再传送一次新的显示数据。
静态显示的接口电路采用一个并行口接一个数码管,数码管的公共 端按共阴极或共阳极分别接地或接VCC。这种接法,每个数码管都要单 独占用一个并行I/O口,以便单片机传送字形码到数码管控制数码管的 显示。显然其缺点就是当显示位数多时,占用I/O口过多。
3。硬件电路设计如下图所示。
20
数码管动态显示电路原理图
21
课后作业: 请同学们在实验板上练习本项目中的所
有情况,学会根据不同的电路修改程序。
22
P2=0x00; P0=0x03; delay(400); P0=0x9f; delay(400); P0=0x25; delay(400);
} void delay(int x) {
int i,j; for(i=0;i<x;i++)
for(j=1;j<120;j++); }
10
LED字型显示代码表
1
7DH
82H
0
0
0
0
1
1
1
07H
F8H
1
1
1
1
1
1
1
7FH
80H
1
1
0
1
1
1
1
6FH
90H
1
1
1
0
1
1
1
77H
88H
1
1
1
1
1
0
0
7CH
《数码管显示》课件
具有高亮度、高对比度、低功耗等优点,是未来显示技术的发展方向之一。
具有高分辨率、低成本等优点,但存在视角较小、响应速度较慢等问题。
LCD显示器
具有高亮度、长寿命、低功耗等优点,但存在色彩表现较差等问题。
LED显示器
05
CHAPTER
数码管显示的实际应用案例
数码管常用于智能家居控制面板,显示温度、湿度、时间等信息,方便用户了解家居环境状况。
《数码管显示》ppt课件
目录
数码管显示概述数码管显示原理数码管显示驱动电路数码管显示技术发展趋势数码管显示的实际应用案例
01
CHAPTER
数码管显示概述
是一种通过控制LED灯的亮灭来显示数字或字符的电子显示器件。
数码管显示器
发光原理
显示效果
利用LED灯的发光特性,通过导通或截止控制LED灯的亮灭,以显示不同的数字或字符。
数码管显示器具有高亮度、高清晰度、低功耗等优点,常用于各种电子设备中。
03
02
01
按位数分类
01
一位、两位、三位、四位等数码管显示器,位数越多,可以显示的数字或字符越多。
按显示内容分类
02
七段数码管显示器、点阵式数码管显示器等,不同的显示内容适用于不同的应用场景。
按控制方式分类
03
静态数码管显示器、动态数码管显示器,静态数码管显示器直接控制每个LED灯的亮灭,而动态数码管显示器则是通过扫描方式控制LED灯的亮灭。
02
CHAPTER
数码管显示原理
数码管内部由多个LED灯珠组成,每个灯珠都有一个阴极和阳极,通过控制阴极和阳极的电压来控制灯珠的亮灭。
发光原理
数码管通常有单色和双色两种类型,单色数码管只能发出红、绿、黄等单色光,而双色数码管则能发出红、绿、黄等两种颜色。
具有高分辨率、低成本等优点,但存在视角较小、响应速度较慢等问题。
LCD显示器
具有高亮度、长寿命、低功耗等优点,但存在色彩表现较差等问题。
LED显示器
05
CHAPTER
数码管显示的实际应用案例
数码管常用于智能家居控制面板,显示温度、湿度、时间等信息,方便用户了解家居环境状况。
《数码管显示》ppt课件
目录
数码管显示概述数码管显示原理数码管显示驱动电路数码管显示技术发展趋势数码管显示的实际应用案例
01
CHAPTER
数码管显示概述
是一种通过控制LED灯的亮灭来显示数字或字符的电子显示器件。
数码管显示器
发光原理
显示效果
利用LED灯的发光特性,通过导通或截止控制LED灯的亮灭,以显示不同的数字或字符。
数码管显示器具有高亮度、高清晰度、低功耗等优点,常用于各种电子设备中。
03
02
01
按位数分类
01
一位、两位、三位、四位等数码管显示器,位数越多,可以显示的数字或字符越多。
按显示内容分类
02
七段数码管显示器、点阵式数码管显示器等,不同的显示内容适用于不同的应用场景。
按控制方式分类
03
静态数码管显示器、动态数码管显示器,静态数码管显示器直接控制每个LED灯的亮灭,而动态数码管显示器则是通过扫描方式控制LED灯的亮灭。
02
CHAPTER
数码管显示原理
数码管内部由多个LED灯珠组成,每个灯珠都有一个阴极和阳极,通过控制阴极和阳极的电压来控制灯珠的亮灭。
发光原理
数码管通常有单色和双色两种类型,单色数码管只能发出红、绿、黄等单色光,而双色数码管则能发出红、绿、黄等两种颜色。
单片机3数码管显示1234PPT课件
•
精选PPT课件
5
程序流程图
开始
N 条件?
Y 位显示
显示数字
延时
结束
精选PPT课件
6
编程与调试
• 建项目、选芯片 • 建C文件 • 编译、连接、生成HEX文件 • 调试
精选PPT课件
7
任务(2)分析
• 判断是否有按键按下 • 加入按防抖和放手防抖 • 判断按下键 • 将最右侧显示数值移位 • 将按键值送入显示存储器
z=P3;
if (z!=0xff)
{ a=0x7f;
for (i=1;i<=6;i++)
{if (z==a)
{
table1[0]=table1[1]; //将低位移出
table1[1]=table1[2];
table1[2]=table1[3]; table1[3]=i; delay(200);
while (P3!=0xff); delay(200);
精选PPT课件
8
程序(2)
• 参考程序
• //头文件: 显示输入
• #include "reg51.h"
• #include "intrins.h"
• #define uchar unsigned char
• //变量定义:
• unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x8 0,0x90};
• 2、计算机、KEIL uVISION软件、 STC-ISP-V3.1软件和等 。
精选PPT课件
4
分析
• 分析控制方法: • (1)、选择4个位控制端口置个十百千万
精选PPT课件
5
程序流程图
开始
N 条件?
Y 位显示
显示数字
延时
结束
精选PPT课件
6
编程与调试
• 建项目、选芯片 • 建C文件 • 编译、连接、生成HEX文件 • 调试
精选PPT课件
7
任务(2)分析
• 判断是否有按键按下 • 加入按防抖和放手防抖 • 判断按下键 • 将最右侧显示数值移位 • 将按键值送入显示存储器
z=P3;
if (z!=0xff)
{ a=0x7f;
for (i=1;i<=6;i++)
{if (z==a)
{
table1[0]=table1[1]; //将低位移出
table1[1]=table1[2];
table1[2]=table1[3]; table1[3]=i; delay(200);
while (P3!=0xff); delay(200);
精选PPT课件
8
程序(2)
• 参考程序
• //头文件: 显示输入
• #include "reg51.h"
• #include "intrins.h"
• #define uchar unsigned char
• //变量定义:
• unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x8 0,0x90};
• 2、计算机、KEIL uVISION软件、 STC-ISP-V3.1软件和等 。
精选PPT课件
4
分析
• 分析控制方法: • (1)、选择4个位控制端口置个十百千万
郭天祥单片机教学LESSON4数码管动态显示优秀课件.ppt
MCS-51单片机的中断系统结构
主程序
中断响应
中断请求
执行主 程序
断点
继续执行 主程序
执行 中断 处理 程序
中断返回
4.1 80C51中断的控制
一、中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏 蔽是由中断允许寄存器IE控制的。
▪EX0(IE.0),外部中断0允许位; ▪ET0(IE.1),定时/计数器T0中断允许位; ▪EX1(IE.2),外部中断0允许位; ▪ET1(IE.3),定时/计数器T1中断允许位; ▪ES(IE.4),串行口中断允许位; ▪EA (IE.7), CPU中断允许(总允许)位。
▪TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自 动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU 可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可 以用软件置1或清0,同硬件置1或清0的效果一样。 ▪TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置 0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/ 计数器的启动与停止。 ▪TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。 ▪TR0(TCON.4):T0运行控制位,其功能与TR1类同。
TL0
TCON
TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0
外部中断相关位
T1方式
内部总线 TMOD T0方式
4.2.2 定时/计数器的控制
80C51单片机定时/计数器的工作由两个特殊功 能寄存器控制。TMOD用于设置其工作方式; TCON用于控制其启动和中断申请。
主程序
中断响应
中断请求
执行主 程序
断点
继续执行 主程序
执行 中断 处理 程序
中断返回
4.1 80C51中断的控制
一、中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏 蔽是由中断允许寄存器IE控制的。
▪EX0(IE.0),外部中断0允许位; ▪ET0(IE.1),定时/计数器T0中断允许位; ▪EX1(IE.2),外部中断0允许位; ▪ET1(IE.3),定时/计数器T1中断允许位; ▪ES(IE.4),串行口中断允许位; ▪EA (IE.7), CPU中断允许(总允许)位。
▪TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自 动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU 可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可 以用软件置1或清0,同硬件置1或清0的效果一样。 ▪TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置 0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/ 计数器的启动与停止。 ▪TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。 ▪TR0(TCON.4):T0运行控制位,其功能与TR1类同。
TL0
TCON
TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0
外部中断相关位
T1方式
内部总线 TMOD T0方式
4.2.2 定时/计数器的控制
80C51单片机定时/计数器的工作由两个特殊功 能寄存器控制。TMOD用于设置其工作方式; TCON用于控制其启动和中断申请。
单片机原理及应11 LED数码管显示-PPT课件
•
MOV R2,#10H ;显示数字的个数设置
• HH: MOV A,R1
;取要显示的数字
•
MOV DPTR,#TAB ;字型表格首地址送DPTR
MOVC A,A+DPTR ;查表,得到与A中数对应的字型代码
•
MOV P2,A
;送I/O口,静态显示
•
LCALL DEL
;延时
•
INC R1
;调整下一个要显示的数
• LED数码显示器是1种由LED发光二极管组合显示字符的 显示器件。它使用了8个LED发光二极管,其中7个用于显 示字符,1个用于显示小数点,故通常称之为7段(也有称 作8段)发光二极管数码显示器。其内部结构如图3-12所示。
• LED数码显示器有两种连接方法: • 1.共阳极接法
• 把发光二极管的阳极连在一起构成公共阳极,使用时公共 阳极接电源正端,每个发光二极管的阴极通过电阻与输入 端相连。
• WW: MOV R6,#0FFH
•
DJNZ R6,$
•
DJNZ R7,WW
•
RET
•
END
1.静态显示
• 2)C语言程序:
• /**************************声明区***********************/
• #include<reg51.h>
• #define LED P2
1.静态显示
• 例3-9:使用共阴极结构的数码管与单片机的P2口连接, 如图3-13。
• 执行 MOV P1,#3FH这一语句可在数码管上显示数字1。 (对应的C语言语句是P1=0x3F;),3F是1的共阴极显 示代码,同样方法可使其显示其他数字或字符。
51单片机数码管显示程序设计PPT优秀课件
;全局变量定义
FLAG
EQU 20H ;标志位
DISSEG
EQU P0 ;显示段驱动
DISBIT
EQU P2 ;显示位驱动P2.7-P2.2
DISBUF
EQU 21H ;显示缓冲区首地址21H-26H
DISBITBUF
EQU 27H ;当前显示位计数器0-5
FLASH
EQU 28H ;闪烁控制xxxxxx00,将x=1闪烁,=0不闪
INC R0
CJNE R0,#50H,INIT1
;初始化定时器T0
;f=11.0592MHz,2.5ms定时
MOV TMOD,#01H ;模式1
MOV TL0,#05H
MOV TH0,#0F7HSETB TR0;启动
SETB ET0
;开中断
2021/6/3
SETB EA RET
10
动态显示参考程序3:中断服务程序
2021/6/3
9
动态显示参考程序2:主程序
ORG 0000H
LJMP START
ORG 000BH
LJMP T0SERV ;T0中断入口
ORG 0030H
START: MOV SP,#50H ;初始化堆栈
LCALL INIT
;初始化
LOOP: MOV DISBUF,#1
MOV DISBUF+1,#2
;----------2.5MS中断服务程序=动态显示-------
T0SERV: MOV TL0,#05H
MOV TH0,#0F7H
PUSH PSW
;保护现场
PUSH ACC
PUSH DPH
PUSH DPL
SETB RS0
单片机C51程序设计 数码管显示ppt课件
#define WR573(dat)\ {\
P0 = d);\ LE573 = 0;\ }
中断源的符号、称号及产生的条件
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。 INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 T0:定时器/计数器0中断,由T0计满回零引起。 T1:定时器/计数器l中断,由T1计满回零引起。 TI/RI:串行I/O中断,串行端口完成一帧字符发送/接纳后引起。
定时/计数器编程运用
初始化程序应完成如下任务: 1.对TMOD赋值,以确定T0和T1的任务方式。 2.计算初值,并将其写入TH0、TL0或TH1、TL1。 3.中断方式时,那么对IE赋值,开放中断。 4.使TR0或TR1置位,启动定时/计数器定时或计数。
TR1:定时器1控制位,置位时定时器1任务 TR0:定时器0控制位,置位时定时器0任务
定时器初值 计算
设单片机晶振频率为6MHZ,求方式1时的定时器初 值.
定时时间=(2X-初值)×机器周期 X由定时器任务方式决议,分别为13、16、8. 机器周期=12/单片机晶振频率 fosc。 由以上公式可知:定时lms所需的机器周期为2us.个数 为500D,即0lF4H,任务方式为1(16位方式)时定时初 值是01F4H.
动态显示
动态显示的特点是将一切位数码管的段选线 并联在一同,由位选线控制是哪一位数码管有 效。选亮数码管采用动态扫描显示。所谓动态 扫描显示即轮番向各位数码管送出字形码和相 应的位选,利用发光管的余辉和人眼视觉暂留 作用,使人的觉得好似各位数码管同时都在显 示。动态显示的亮度比静态显示要差一些,所 以在选择限流电阻时应略小于静态显示电路中 的。
JBCflag ? C002 DECval C002: RET
P0 = d);\ LE573 = 0;\ }
中断源的符号、称号及产生的条件
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。 INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 T0:定时器/计数器0中断,由T0计满回零引起。 T1:定时器/计数器l中断,由T1计满回零引起。 TI/RI:串行I/O中断,串行端口完成一帧字符发送/接纳后引起。
定时/计数器编程运用
初始化程序应完成如下任务: 1.对TMOD赋值,以确定T0和T1的任务方式。 2.计算初值,并将其写入TH0、TL0或TH1、TL1。 3.中断方式时,那么对IE赋值,开放中断。 4.使TR0或TR1置位,启动定时/计数器定时或计数。
TR1:定时器1控制位,置位时定时器1任务 TR0:定时器0控制位,置位时定时器0任务
定时器初值 计算
设单片机晶振频率为6MHZ,求方式1时的定时器初 值.
定时时间=(2X-初值)×机器周期 X由定时器任务方式决议,分别为13、16、8. 机器周期=12/单片机晶振频率 fosc。 由以上公式可知:定时lms所需的机器周期为2us.个数 为500D,即0lF4H,任务方式为1(16位方式)时定时初 值是01F4H.
动态显示
动态显示的特点是将一切位数码管的段选线 并联在一同,由位选线控制是哪一位数码管有 效。选亮数码管采用动态扫描显示。所谓动态 扫描显示即轮番向各位数码管送出字形码和相 应的位选,利用发光管的余辉和人眼视觉暂留 作用,使人的觉得好似各位数码管同时都在显 示。动态显示的亮度比静态显示要差一些,所 以在选择限流电阻时应略小于静态显示电路中 的。
JBCflag ? C002 DECval C002: RET
PIC单片机之数码管
现在我们已经了解了整个显示过程,所以我们也就有了写程序的思路: 程序中应该有一个变量,每隔一定时间在 0~9 之间变化,然后按照这个数 据去查找段码表,把查到的数据送到 RC 口,段码值我们参照表 2 中共阳 这一项。
我们使用 MPLab IDE 软件来进行 C 语言编程,它是我们的编程环境, 同时我们可以通过使用 ICD2 仿真烧写器和增强型 PIC 实验板连接进行程 序的仿真调试和烧写步骤,具体的操作步骤,我们已经在前几期做了详细的 说明和介绍,在此就不再重复,读者可以参阅以前的文章或直接登陆我们的 网站查看资料。前面,我们已经对硬件原理和软件编写思路进行了了解,现 在我们可以输入程序代码进行调试了。我们在 MPLab IDE 软件中新建工程, 加入源程序代码,同时进行芯片型号的选择和配置位的设置,我们实验所用 的芯片型号为 PIC16F877A。上面理论说了一大堆,现在我们可以从这里开
始动手了。本来 6 个数码管可以各自显示不同数字,RA 口动态扫描,每个 瞬间只有一个管显示,视觉上感到是 6 位数。作为初次实验,我们的任务是 要让六个数码管同时显示数字“0”~“9”字样,时间间隔为 1 秒。
#include<pic.h> const unsigned char display_numb[10]={0x c0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0 x90}; void delay_1ms(void) { unsigned int n; for(n=0;n<50;n++) { NOP(); } } void delay_ms(unsigned int time) { for(;time>0;time--) { delay_1ms(); } }
我们使用 MPLab IDE 软件来进行 C 语言编程,它是我们的编程环境, 同时我们可以通过使用 ICD2 仿真烧写器和增强型 PIC 实验板连接进行程 序的仿真调试和烧写步骤,具体的操作步骤,我们已经在前几期做了详细的 说明和介绍,在此就不再重复,读者可以参阅以前的文章或直接登陆我们的 网站查看资料。前面,我们已经对硬件原理和软件编写思路进行了了解,现 在我们可以输入程序代码进行调试了。我们在 MPLab IDE 软件中新建工程, 加入源程序代码,同时进行芯片型号的选择和配置位的设置,我们实验所用 的芯片型号为 PIC16F877A。上面理论说了一大堆,现在我们可以从这里开
始动手了。本来 6 个数码管可以各自显示不同数字,RA 口动态扫描,每个 瞬间只有一个管显示,视觉上感到是 6 位数。作为初次实验,我们的任务是 要让六个数码管同时显示数字“0”~“9”字样,时间间隔为 1 秒。
#include<pic.h> const unsigned char display_numb[10]={0x c0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0 x90}; void delay_1ms(void) { unsigned int n; for(n=0;n<50;n++) { NOP(); } } void delay_ms(unsigned int time) { for(;time>0;time--) { delay_1ms(); } }
单片机控制数码管显示PPT课件
1110
1001
1100
0110
0100
0000
1110
0000
0100
第14页/共33页
P2.1 P2.0
00 01 00 00 01 10 10 00 00 00
C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H
如表2.1所示,由于数码管显示的数字“0~9”的字型码 “0C0H、0F9H、0A4H、0B0H、99H、92H、82H、0F8H、 80H、90H”没有规律可循,只能采用查表的方式来完成我们所需 的要求。在程序设计中可以设计一个变量,每隔一定时间在 “0~9”之间变化,然后按照这个数据去查找段码表,把查到的 数据送到P2口。
74LS245
74LS245是8路同相三态双向 数据总线驱动芯片,具有双 向三态功能,既可以输出, 也可以输入数据。
➢ /G为低电平有效; ➢ DIR=“1”,信号由 A 向 B
传输。
引出端符号:
➢ A 总线端 ➢ B 总线端 ➢ /G 三态允许端(低电平
有效) ➢ DIR 方向控制端
第10页/共33页
• •
特点
• 原理简单;显示亮度强,无闪烁;占用I/O资源较多。
第24页/共33页
动态显示方式
连接
•
所有LED的段选线共同连接在一起共用一个 8位I/O口,而每个LED
的位选分别由一根相应的I/O口线控制。因此必须采用动态扫描显示方式,
每一个时刻只选通其中一个LED,同时在段选口送出该位LED的字型码。
R2
10k
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
基于单片机的数码管电子时钟PPT
图3-2
3.3.2复位电路设计 MCS—51复位电路有两种:一种是加电自动复位电路, 一种是开关复位电路。本实验采用的是开关复位电路。
图3-3
如图3-3所示,复位电路主要由型号为10UF/16V的电 解电容,型号为104的瓷片电容,10K的电阻以及按键S构 成,S接芯片的相应引脚RST,当开关按下时引脚RST为高 电平1,断开时引脚为低电平0。
第4章 原理图及PCB图
4.1原理图:
4.2 PCB图:
第5章 程序流程图
ห้องสมุดไป่ตู้
3.3.3位选模块电路设计
图3-4
图3-4为位选电路,三极管的集电极接数码管的公共端,当P2口对应的 引脚输出高电平时三极管导通,对应的数码管显示数据。这样,在同一时刻, 6位LED中只有选通的那1位显示出字符,而其他5位则是熄灭的。同样,在下 一时刻,只让下一位的位选线处于选通状态,而其他个位的位选线处于关闭 状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示 出相应的字符,而其他各位则是熄灭的。如此循环下去,就可以使各位显示 出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只 有一位显示,其他各位熄灭,但由于LED的余辉和人眼的视觉暂留作用,只 要每位显示间隔足够短,则可以造成多位同时亮的假象,达到同时显示的效 果。
3.3.4显示模块部分 显示电路分为共阳极七段数码管显示和发光二极管显示,其中, 为了能够自动识别显示电路是接发光二极管还是数据管及接数据管 的多少,该电路采用读取数码管I/O引脚的方法确定,从而达到智 能识别的目的。 该模块由共阳极LED数码管组成,用来显示电子钟信号的具体 路数的,6个引脚分别与单片机6个输出口连接,根据单片机引脚与 数码管的连接关系,可以列出显示不同数字的段选码,从而准确显 示出时间。如图3-5所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
while(1)
{
for(num=0;num<16;num++)
{
dula=1;
P0=table[num];
dula=0;
delay(500);
}
}
15
数码管的静态显示
void delay(uint z) {
uint x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--); }
定义编码使用code,程序编译后, 则将数组table[ ]保存到程序存储 器(FLASH),否则就会保存到数 据存储器(RAM) RAM是单片机的“紧缺资源”, 能省则省
void delay(uint z);
14
பைடு நூலகம்
void main() {
数码管的静态显示
wela=1;
P0=0xc0;
wela=0;
19
数码管的动态显示(主函数)
void main()
{
while(1)
{
dula=1;
P0=table[1]; dula=0; P0=0xff; wela=1;
消影:送位选数据前关 闭所有显示,防止打开 位选锁存时,原来段选 数据通过位选锁存器造 成混乱
P0=0xfe;
wela=0;
20
d数ula码=1管; 的动态显示(数据准备)
10
数码管的静态显示
#include<reg52.h>
sbit dula=P2^6; //申明U1锁存器锁存端
sbit wela=P2^7; //申明U2锁存器锁存端
void main()
{
wela=1;
//打开U2锁存器
P0=0xc0;
//送入位选信号(6个数码管全亮)
wela=0;
//关闭U2锁存器
P60 共阴极数码管编码
E
F
3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H 9
LED数码显示方式及电路
静态显示方式
LED显示器工作方式有两种:静态显示方式和动态显示 方式。静态显示的特点是每个数码管的段选必须接一个8位 数据线来保持显示的字形码。当送入一次字形码后,显示字 形可一直保持,直到送入新字形码为止。这种方法的优点是 占用CPU时间少,显示便于监测和控制。缺点是硬件电路比 较复杂,成本较高。
P0=table[2]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(500); …… } }
21
void d数ela码y(u管int的z)动态显示(数据准备)
{ uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);
11
dula=1; 数码管的静态显示
P0=0x3f; //送入段选信号(显示“0”) dula=0;
while(1); //程序停止到这里
}
注:1、我们在程序最后加上“while(1);”就可以让程序停止。
因为该语句表达式值为1,内部语句为空,执行时先判断表达式值, 因为为真,内部语句为空,所以什么也不执行,再判断表达式,仍然 为真,又不执行,因为只有当表达式值为0时跳出while循环,所以不 停地执行这条语句,也就是说单片机点亮发光管后将永远重复执行这 条语句。
17
数码管的动态显示
任务:
在6个LED依次显示“123456”,时间间隔为 0.5秒
分析:
6个LED的对应段位是并联在一起的,只能通过 控制阴极电位来选择允许哪个LED发光
开始允许LED1显示“1”
0.5秒后允许LED2显示“2”
……
18
#incl数ude码<r管eg5的2.h动> 态显示(数据准备)
#define uint unsigned int #define uchar unsigned char sbit dula=P2^6; sbit wela=P2^7; uchar code table[ ]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint z);
13
数码管的静态显示
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
uchar code table[ ]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
16
动态显示
动态显示的特点是将所有位数码管的段选线 并联在一起,由位选线控制是哪一位数码管有效。 选亮数码管采用动态扫描显示。所谓动态扫描显 示即轮流向各位数码管送出字形码和相应的位选, 利用发光管的余辉和人眼视觉暂留作用,使人的 感觉好像各位数码管同时都在显示。动态显示的 亮度比静态显示要差一些,所以在选择限流电阻 时应略小于静态显示电路中的。
2、单片机把发光二极管点亮后,就让他停止工作,不再执行别的
指令,不是更好?单片机不能停止工作,除非断电,但这样发光二极 管就不会亮了
12
练习:
练习与思考
在最右边的数码管上显示数字“9”
思考:
位选:P0=0xdf; 段选:P0=0x6f;
在本电路中,按照前一章讲过的延时程序,有 没有可能让六个数码管同时点亮,依次显示0 到F,时间间隔为0.5秒,循环下去?
第3章 数码管显示
1
数码管
2
共阴极数码管
仅当段位接高电平,阴极接低电平时,相 应位的LED才导通发光 a b c d e f g bp
3
共阳极数码管
仅当段位接低电平,阳极接高电平时,相 应位的LED才导通发光
Vcc
a b c d e f g bp
4
HOT-51增强型开发板数码管接口
5
下降沿锁存
锁存器
P36 锁存器
6
七段数码管的段位控制 a
dp g f e d c b a
f
b
0 0111111
g
e d
c dp
7
七段数码管的段位控制 a
dp g f e d c b a
f
b
0 0000110
g
e d
c dp
8
七段数码管与段位控制代码
0
1
a
2
3
f
b
4 5
g
6
7
e
c
8
9
A
d
b
C
d