历史上的今天
今天是:2024年11月03日(星期日)
2021年11月03日 | 共阴/共阳数码管 ----- 学习笔记
2021-11-03 来源:eefocus
一、数码管的动态显示原理
动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示,所谓动态扫描显示即轮流向各位数码管送出字形码和相应的选位,利用发光管的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示的要差一些,所以在选择限电阻时应略小于静态显示电路中的。

1..1、数码管的共阴与共阳



a b c d e f
共阴 a~f: 0x77 0x7c 0x39 0x5e 0x79 0x71
共阳 a~f: 0x88 0x83 0xa7 0xa1 0x86 0x8e
二、双P沟道增强型MOS---D74HC245芯片
特点:D74HC245是一种三态输出、八路信号收发器,主要应用于大屏显示,以及其他的消费类电子产品中增强驱动。
2.1、主要特性
采用CMOS工艺
宽电压工作范围:3.0V ---- 5V
双向三态输出
八线双向收发器
封装形式:SOP20、SOP20-2、TSSOP20、DIP20,
通透:输入是高电平,输出也是高电平;输入是低电平,输出也为低电平;
双向三态
双向:可以输出,也可以输出
三态:
P0口高阻态输出
管脚可以输出高电平,也可以输出低电平
2.2、应用领域
适用于显示器以及其他数字电路的驱动。
2.3、管脚的定义说明


三、功能真值表

四、译码器----D74HC138
是一种三通道输入,八通道输出译码器,主要应用于消费电子产品。
采用COMS工艺
低功耗
工作电压3.0V ----5.0V
封装形式:SOP16
4.1、应用领域
适用于数字电路中的 3—8 译码功能
4.2、管脚说明
4.3、封装形式
SOP16
代码
5.1、16进制
十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。
0x后面跟随的十六进制计数,十六进制计数用a~f表示该位上取百值10~15
0x3f
十六进制个位基数是1,高位=低位*16,那么度3对应的位基数专是16*1=16,f对应的基数是1,中包含3个16和15个1,加起来等于63。
0xfc表示对应基数是16这位上取值15,对属应基数是1的位上取值12,即15个16加12个1这个十进制数
5.2、ASCII码
5.3、静态数码管代码
#include "reg52.h"
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
u8 code smgduan[16] = {0X3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71}; //
void main(){
P0=~smgduan[0];
while(1)
{
}
}
5.4、动态数码管代码
#include #include typedef unsigned char u8; // 预处理数据类型 typedef unsigned int u16; // 预处理数据类型 // 138译码器管脚定义 sbit LSA = P2^2; sbit LSB = P2^3; sbit LSC = P2^4; // 延迟函数 void delay(u16 i){ while(i--); } // 数组 /********************************** 数码管显示真值表 共阳 0 1 2 3 4 5 0xc0 0xf9 0xa4 0xb0 0x99 0x92 6 7 8 9 a b 0x82 0xf8 0x80 0x90 0x88 0x83 c d e f 0xa7 0xa1 0x86 0x8e ************************************* 数码管显示数字的真值表 */ u8 code smgduan[16]={0X3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴 void DigDisplay(){ u8 i; // for(i=0;i<8;i++){ switch(i){ case(0): LSA = 0;LSB=0;LSC=0;break; case(1): LSA = 1;LSB=0;LSC=0;break; case(2): LSA = 0;LSB=1;LSC=0;break; case(3): LSA = 1;LSB=1;LSC=0;break; case(4): LSA = 0;LSB=0;LSC=1;break; case(5): LSA = 1;LSB=0;LSC=1;break; case(6): LSA = 0;LSB=1;LSC=1;break; case(7): LSA = 1;LSB=1;LSC=1;break; } P0 = smgduan[i]; delay(100); //P0= 0X00; } } void main(){ P0=~smgduan[0]; while(1){ DigDisplay(); } } 六、报错 *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?DIGDISPLAY?MAIN 未调用已定义的函数
下一篇:蜂鸣器 ----自学笔记
史海拾趣
|
1-4-3.并联开关电源储能电感的计算 与前面计算反转式串联开关电源中储能电感的数值方法基本相同,计算并联式开关电源储能电感也是从流过储能电感的电流为临界连续电流状态着手进行分析。并联式开关电源中的储能电感与反转式串联开关电源中的储能 ...… 查看全部问答> |
|
有没有做过胎压计的朋友,在坛子上逛了很久都没找到相关信息。之前买的两个胎压计(如下图),右边的“大棒”是在一家买五金电动工具商店买的,商标上写着——汽车轮胎压力表882型(南京汽车附件厂制造)。似乎挺好用,但回来一试,尾巴(标尺)一冲 ...… 查看全部问答> |
|
我把单位的瑞泰创新ICETEK-F2812-A开发板弄丢了,有偿,好的坏的都行, 光板也行,顶账。联系QQ:1332430115,,qq加我好友时注明一下 谢谢… 查看全部问答> |
|
本帖最后由 eeacc 于 2014-6-14 09:53 编辑 在互补输出模式下怎么关闭B相输出,使之为高电平呢?我将A相置高后 EPwm1Regs.AQCSFRC.bit.CSFA = AQ_SET; 互补的B相依旧是低电平EPwm1Regs.AQCSFRC.bit.CSFB = ...… 查看全部问答> |
|
TI的ZigBee协议栈的定时器接口函数无法使用?定时器在协议栈无法使用? TI的大神们,我使用协议栈的定时器接口函数准备操作定时器,搞不懂了,就是不进中断,回调函数也没用编译TIMER=TRUE在SampleApp_Init()里面定义的了定时器的配置函数HalTimerConfig(HAL_TIMER_0,HAL_TIMER_MODE_CTC, HAL_TIMER_CHANNEL_A,HAL_TIM ...… 查看全部问答> |









