数码管显示模板
来源:互联网 发布:c语言strcpy函数实现 编辑:程序博客网 时间:2024/05/21 11:35
一:数码管介绍
数码管其实就是8个发光二极管构成8个段,把所有负极接一起称为共阴,同理有共阳数码管。
通过对非公共端的单独操作可实现点亮具体某一段,从而实现数字或字符的显示。
上图中a为共阴,b为共阳
多位数码管是将每位数码管的公共端引出作为位选引脚,将不同位的同一段接在一起,最终形成的引脚有8个段引脚和n个位引脚(n为数码管位数)
假设段为x坐标,位为y坐标,通过x,y的值可映射到多位数码管中的具体某一段,对其操作便可实现数字或折服的显示。
二:具体显示方法
由上面讲解可知,要让一位数码管显示数字或者字符,必须向其各段输入高低电平,如果将8各段接在一个8位寄存器(P1)
只需向此寄存器输入一个二位十六进制数即可。
三:共阴数码管码表
0x3f , 0x06 , 0x5b , 0x4f ,0x66 , 0x6d ,
0 1 2 3 4 5
0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,
6 7 8 9 A B
0x39 , 0x5e , 0x79 , 0x71 , 0x00
C D E F 无显示
实际操作中,定义一个数组即可
unsigned char Digit[17] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x00};
四:显示实例
1:硬件连接
将四位共阴数码管的8个段选通过锁存器接在一组P0口(记得加10K上拉电阻),4个位选通过锁存器接在P0口,形成段选锁存器及位选锁存器,两个锁存器的LE端接在其他IO引脚上,硬件连接便算完成。
需要操作的寄存器为: P0(对锁存器进行数据输入用) ,2个IO引脚(控制段选锁存器,或位选锁存器)
PS:锁存器不熟悉的请移步至:http://blog.csdn.net/metalseed/article/details/8259255
2:静态显示
(让数码管静态显示一个具体字符)
#include<reg52.h>sbit duan = P2^6;sbit wei = P2^7;void main(){wei = 1; /*对位锁存器送数据,实现要点亮的数码位的选定*/P0 = 0xc0;wei = 0;duan = 1; /*对段锁存器送数据,实现选定位的数码显示*/P0 = 0x06;duan = 0;while(1);}
3:动态扫描
由上所述,所有位的段接在一起(大大简化了硬件电路),要实现不同位显示不同字符就比较纠结了TvT 不过,既然敢这么接,必然有解决方案。
原理:如果我们要让四位数码管显示1,2,3,4;
可如下操作:先让第一位显示1,然后让第二位显示2,再让第三位显示3·· 快速循环,由于单片机的工作周期比人眼视觉暂留短的多,所以如此操作人眼便可清晰的看到数码管显示的是1,2,3,4 ^_^ 由于是动态扫,所以称其动态扫描法。(其中涉及到消影等细节,自己研究吧少年~)
#include<reg52.h> sbit duan = P2^6; sbit wei = P2^7; unsigned char code digit[]={ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71}; void delay(uint z); void main() { int num; while(1) { for(num=0;num<4;num++) { P0 = 0xff; /*消影*/ wei = 1; /*位选定*/ P0 = 0xff - (1 << num); wei = 0; P0 = 0x00; /*消影*/ duan = 1; /*段点亮*/ P0 = digit[num + 1]; duan = 0; } } } void delay(int z) { int x, y; for(x = z; x; --x) for(y = 110; y; --y); }
- 数码管显示模板
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管动态显示字符
- 定时器数码管显示秒表
- 数码管显示"HELLO!"
- 数码管滚动显示
- 按键控制数码管显示
- 数码管显示键值
- 单片机数码管动态显示
- ds1302 数码管显示 C51
- 按键控制数码管显示
- LED数码管的显示
- 静态数码管显示
- hdu 1114 Piggy-Bank(DP背包)
- POJ 1416 Shredding Company
- servlet基础
- phpmyadmin 遇到Access forbidden的处理方法
- 游戏服务器位置同步
- 数码管显示模板
- 喜欢的名言
- Android布局属性详解
- JAVA操作properties文件
- 需求那些事儿
- ASCII码排序 STL练手题
- Redis学习手册
- Android--ContentProvider跨程序访问数据
- c#中连接数据库后绘制柱状图和饼状图