数码管的原理
数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。使用时,共阴极数码管公共端(com端)接地,共阳极数码管公共端接电源。每段发光二极管需5~10mA的驱动电流才能正常发光,一般需加限流电阻控制电流的大小。
段选和位选:段选是选择二极管七个条形发光二极管和一个小圆点发光二极管那一个点亮,位选是指第几位被点亮
锁存器
所谓锁存器,就是输出端的状态不会随输入端的状态变化而变化,仅在有锁存信号时输入的状态才被保存到输出,直到下一个锁存信号到来时才改变。
当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
译码器
译码器的逻辑功能是将每个输入二进制的代码译成对应输出高、低电平信号或另一个代码,常用的译码器电路有二进制译码器,二-十进制译码器和显示译码器。
这里只介绍一种二进制译码器,以38译码器为例
如何看译码器的真值表
以第四行为例,当A0,A1,A3分别输入000是,Y0~Y7输出0111 1111的信号
switch语句
switch语句的一般形式:
switch
若表达式与常量一相同时,则执行语句一,然后break结束,若表达式与常量n相同时,则执行语句n,然后break结束
一维数组的定义与使用
一维数组的基本形式为:类型符 数组名[常量表达式];
例如unsigned char code duan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
引用时P0=duan[1]//P0=0x3f
驱动2个四位数码:可以使用16个IO口.使用16个IO口,也可以锁存器驱动段选,IO口直接驱动位选,也可以分别用两个锁存器驱动段位、位选,也可以用译码器驱动段选,锁存器驱动位选。这里只介绍两种情况。
1.两个锁存器驱动 2.一个锁存器一个译码器驱动
1两个锁存器静态驱动数码管
#include
2译码器与锁存器静态驱动数码管(译码器控制位选,锁存器控制段选)
#include
3两个锁存器动态驱动数码管
#include
4译码器与锁存器动态驱动数码管(译码器控制位选,锁存器控制段选)
#include