LED数码管显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#define DelayTime 300 uint code digital[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(uint x) {
uchar y,z; while(x--) {
} }
for(y=0;y<2;y++) {
02
LED数码管结构
LED数码管结构
按显示段数常分为8字形和米字形。 单只7段数码管的封装如图所示,数 码管的每段LED分别引出一个引脚, 引出电极分别为a、b、c、d、e、f、 g、h,其中h是小数点段的引出电极。 并将每一个LED的另一个引出电极连 接在一起称为公共端com的引出电极。
g f com a b
03
LED的静态显示方式
LED的静态显示方式
单片机驱动数码管静态显示两种方式 (1)一种是利用单片机输出端口具有的数据锁存功能驱动数码 管 (2)另外一种是在单片机的端口外接具有数据锁存功能的芯片, 由单片机将显示段码传给数据锁存器,由数据锁存器维持数码 管显示所需的段码,当单片机提供的段码发生改变,显示字符 才发生变化。 (3)所谓静态显示驱动法,即是指每一个LED灯分别对应一个 独立的I/O驱动口;其点亮和关闭由该I/O来对其进行控制,互 补干扰。对I/O驱动能力弱的MCU,必须增强外部的驱动芯片 或驱动三极管等器件。 LED显示器工作在静态方式时,其公共端应接到一个固定的电平 (共阴极接低电平,共阳极接高电平)。
void INT_0() interrupt 0 {
delay(10); if(INT0 == 0) {
State =0; }
State++; if(State >= 2)
}
void main() {
SP = 0x60;//设置堆栈指针
PX0 = 1; //设置优先级
IT0 = 1;//边缘触发
EA = 1;
LED数码管的静态和动态显示流程图
开始
定义字型码表格数组
定义查表变量i、移位变量j j=0x01;i=1
i<9? N Y
查表送P0,j送P2 j=j<<1,延迟0.5
i=i+1
#include<reg51.h>
typedef unsigned int typedef unsigned char
uint; uchar;
LED数码管显示
LED数码管的介绍 LED数码管结构 LED的静态显示方式 LED的动态显示方式
01
LED数码管的介绍
显示器是常用的输出设备,特别是发光二极管显示器 (LED)和液晶显示器(LCD) 常用的LED数码管用来显示各种数字及部分英文字符,这 些数值或字符可以是转速、温度、工作状态或者编号等内 容。 LED优点:显示数字清晰、亮度高、使用寿命长、价格低 廉、驱动简单。 LED缺点:由于每个LED需要一个I/O口,对I/O口的需求大, 不易实现大数量的LED驱动和显示,扩展性能差。 数码管有静态显示和动态显示两种显示控制方式。
//开放中断允许
EX0 = 1;
State = 0;
nu = 0; while(1) {
switch(State) {
case 0: reduce();break;
case 1: plus();break; } delay(DelayTime);
} }
感谢各位聆听ቤተ መጻሕፍቲ ባይዱ
LED数码管的静态和动态显示流程

开始
定义字型码表格数组
定义查表变量i
i=0
N
i<10?
Y
B
A
B
A
查表送P0 延时0.5s
i=i+1
04
LED的动态显示方式
LED的动态显示方式
所谓动态显示,是利用人眼的视觉暂留现象,快速地轮流显 示单个数码的显示方式。是将各数码管的相同段的输入端连接在 一起,使用同一锁存电路驱动,为数码管提供需要显示数字的段 码,而通过控制数码管的公共端使数字在不同的数码管上显示。
}
for(z=0;z<250;z++) {;}
void main() {
char i = 9; while(1) {
P0 = digital[i]; delay(DelayTime); i--; if(i<0)i=9;
}
}
#include<reg51.h>
typedef unsigned int uint; typedef unsigned char
uchar;
#define DelayTime 300 uint code digital[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; int State; int nu;
void delay(uint n) {
uchar y,z; while(n--) {
a f gb ed c
e d com c dp
共阴极结构和共阳极结构
共阴极:1亮0灭 共阳极:0亮1灭
hgfe dcba 共阴极:0 1 1 0 0 1 1 0 共阳极:1 0 0 1 1 0 0 1
7段数码管的段码
根据LED的工作原理,在共阴极数码管中, 点亮任何一段都需要在数码管的公共端接低 电平,同时在对应段的引脚上接高电平,否 则都将使该段不会被点亮。所以要显示指定 的数字就要数码管部分段亮,另一部分段不 会点亮。 高电平用1表示,低电平用0表示。
for(y=0;y<2;y++)
for(z=0;z<250;z++) {;}
} }
void plus() {
}
if(nu > 9)nu = 0; P0 = digital[nu]; nu++;
void reduce() {
}
if(nu < 0)nu = 9; P0 = digital[nu]; nu--;
所谓动态显示就是一位一位的轮流点亮各位显示器(扫描), 对于每一位显示器来说,每隔一段时间点亮一次。
显示器的亮度既与导通电流有关,也跟点亮时间和间隔时间的 比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。
若显示器的位数不大于8位,则控制显示器公共极电位只需I/O 口(称为扫描口),控制各位显示器所显示的字形也需一个8位口(称 为段数据口)。
相关文档
最新文档