静态数码管
数码管介绍
数码管简介
公共端共阳极,低电平有效(灯亮), 共阳极数码管内发光二极管的阳极(正极)连接在一起,外面只有一个引脚 共阴极公共端连接阴极,高电平有效(灯亮)。共阴极数字管内发光二极管的阴极(负极)连接在一起,外部只有一个引脚。
共阳极数低电平(0)点亮共阳极数码管(二极管导通)
共阴极数码管:通过输入高电平(1)点亮(二极管导通)
数字管显示原理
- 通常通过输入低电平点亮共阳极阳极。
阴极阴极通常连接在一起GND,因此,通过输入高电平点亮。
-
如果想显示"8",只要将a、b、c、d、e、f、g点亮
如果想显示"0",只要将a、b、c、d、e、f点亮
-
共阴极数码管通常通过连接驱动电路来放大输出电流,因为点亮数码管需要消耗大量电流(会降低其他功能电流)。例如74HC245和74HC573芯片。‘
-
共阳极数码管通常通过VCC共阳极数码管一般用于实际工业开发。
编码原理
**以共阴极为例:**连接驱动芯片,输入高电平点亮数码管。如果要点亮"0",将a、b、c、d、e、f输入高电平,g和DP输入低电平。低位为111,高位为1100。
P0 ^ 7-P0 ^ 0为0011 1111转化为16进制为0x3F。
/!!同理,共阳极因为连接电源而连接电源VCC,因此,如果你想点亮,你必须输入低电平,即0x3F取反。
静态显示态显示原理
通过八个I/O端口控制段选择(由于单片机数码管采用动态显示连接,即八位数码管对应相同段的线路连接在一起)
三个端口通过3-8译码器控制位选。
硬件设计
:看 A0,A1,A2 输入管脚的电平状态。如果 A0,A1,A2 都是低电平,则Y0 输出有效电平(低电平),其他管脚输出高电平。如果 A0 为高电平,A1,A2 都为低电平,则 Y1 输出有效电平(低电平),其他管脚输出高电平。您可以根据真值表查看其他几种输出。如果 E1、E2 任何能量管脚的高电平或 E3 无论输入是什么,输出都是高电平。 总结一个方法:A0、A1、A2 输入相当于 3 位 2 进制数,A0 是低位,A1 是次高位,A2 是高位。而 Y0-Y7 具体输出有效电平取决于输入二进制对应的十进制值。例如,输入是 101(A2,A1,A0),对应的十进制数为 5,所以 Y5 输出有效电平(低电平)。
段选直接与I/O端口相连。位置选择74。HC138译码器由三个引脚控制LED(注意非门存在于3-8译码器中,输入高电平,如果输出有效,则输出低电平)。
若采用共阳极:输入电流通过电源直接提供。I/O可任意选择端口(P0、P1、P2、P3)与J8排针连接
软件设计
输出数字0的段码0x3f(共阴极),~0x3f(共阳极)
因为3-8译码器与电源相连,所以当P2 ^ 2,P2 ^ 3和P2 ^ 当4端口连接时,输入电平会点亮数字管。A2-A因为4开发板是集成电路,所以在LED因为P连接2口会导致数码管发光。
数码管的顺序相反。
可控制3-8译码器的输入电平来选择对应位数码管的发光。
#include"reg52.h" typedef unsigned char u8; typedef unsigned int u16; #define SMG_A_DP_PORT P0 sbit A0=P2^2; sbit A1=P2^3; sbit A2=P2^4; u8 gsmg_code[16]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //第一个g代表全局变量global 0x7f,/span>0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴0-F void main() {
A0=0; A1=1; A2=1;// 110B,则06数码管(第七个)发光(用于通过3-8译码器控制共阴极数码管) while(1) {
SMG_A_DP_PORT=gsmg_code[0];//共阴 //SMG_A_DP_PORT=~gsmg_code[0];//共阳 } }
A5开发板
共阴极:
共阳极:取反前
取反后