单片机数码管ppt课件

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

11
dula=1; 数码管的静态显示
P0=0x3f; //送入段选信号(显示“0”) dula=0;
while(1); //程序停止到这里
}
注:1、我们在程序最后加上“while(1);”就可以让程序停止。
因为该语句表达式值为1,内部语句为空,执行时先判断表达式值, 因为为真,内部语句为空,所以什么也不执行,再判断表达式,仍然 为真,又不执行,因为只有当表达式值为0时跳出while循环,所以不 停地执行这条语句,也就是说单片机点亮发光管后将永远重复执行这 条语句。
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--);
19
数码管的动态显示(主函数)
void main()
{
while(1)
{
dula=1;
P0=table[1]; dula=0; P0=0xff; wela=1;
消影:送位选数据前关 闭所有显示,防止打开 位选锁存时,原来段选 数据通过位选锁存器造 成混乱
P0=0xfe;
wela=0;
20
d数ula码=1管; 的动态显示(数据准备)
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};
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--); }
第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
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锁存器
2、单片机把发光二极管点亮后,就让他停止工作,不再执行别的
指令,不是更好?单片机不能停止工作,除非断电,但这样发光二极 管就不会亮了
12
练习:
练习与思考
在最右边的数码管上显示数字“9”
思考:
位选:P0=0xdf; 段选:P0=0x6f;
在本电路中,按照前一章讲过的延时程序,有 没有可能让六个数码管同时点亮,依次显示0 到F,时间间隔为0.5秒,循环下去?
16
动态显示
动态显示的特点是将所有位数码管的段选线 并联在一起,由位选线控制是哪一位数码管有效。 选亮数码管采用动态扫描显示。所谓动态扫描显 示即轮流向各位数码管送出字形码和相应的位选, 利用发光管的余辉和人眼视觉暂留作用,使人的 感觉好像各位数码管同时都在显示。动态显示的 亮度比静态显示要差一些,所以在选择限流电阻 时应略小于静态显示电路中的。
下降沿锁存
锁存器
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
17
数码管的动态显示
任务:
在6个LED依次显示“123456”,时间间隔为 0.5秒
分析:
6个LED的对应段位是并联在一起的,只能通过 控制阴极电位来选择允许哪个LED发光
开始允许LED1显示“1”
0.5秒后允许LED2显示“2”
……
18
#incl数ude码<r管eg5的2.h动> 态显示(数据准备)
P60 共阴极数码管编码
E
F
3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H 9
LED数码显示方式及电路
静态显示方式
LED显示器工作方式有两种:静态显示方式和动态显示 方式。静态显示的特点是每个数码管的段选必须接一个8位 数据线来保持显示的字形码。当送入一次字形码后,显示字 形可一直保持,直到送入新字形码为止。这种方法的优点是 占用CPU时间少,显示便于监测和控制。缺点是硬件电路比 较复杂,成本较高。
#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);
定义编码使用code,程序编译后, 则将数组table[ ]保存到程序存储 器(FLASH),否则就会保存到数 据存储器(RAM) RAM是单片机的“紧缺资源”, 能省则省
void delay(uint z);
14
void main() {
数码管的静态显示
wela=1;
P0=0xc0;
wela=0;
相关文档
最新文档