一 认识二级管
常用的二级管分为两种
1,(b)图共阴极结构:是把所有 LED 的阴极作为公共端(COM) 连起来,接低电平,通常接地。
通过控制每一个 LED 的阳极电平使其发光或熄灭,阳极为高电平时LED 发光,为低电平时 LED熄灭。
如显示数字0时,a、b、ad.e、t端为高电平,其他各端为低电平。
2,(c)图共阳极结构:是把所有 LED 的阳极作为公共端(COM) 连起来,接高电平,通常接电源(如+5V )。
通过控制每一 个LED 的阴极电平使其发光或熄灭,阴极为低电平时LED 发光,为高电平时 LED熄灭。
如下图
我们以共阴极结构举例,进行计算,其过程就是二进制转化为16进制,做法如下
以此列表可以看出,对于同一个字符,共阴极和共阳极的字形码是相反的
二 程序的实现
数码管静态显示电路图
代码实现数码管也有两种方式
一如上电路图,亮两个数码管
#include "stm32f10x.h"
//定义0~9十个数字的字形码表
uint16_t table[]={0x3f,0x06,0x5b,0x4f,0x66,0x7d,0x07,0x7f,0x6f};
uint16_t disp[2];
uint16_t temp,i;
void Delay(unsigned int count) //延时函数
{
unsigned int i;
for(;count!=0;count--)
{
i=5000;
while(i--);
}
}
void main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOB时钟
GPIO_InitStructure.GPIO_Pin = 0xffff; //PC0-PC15引脚配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //配置引脚为推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIOB速度为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PC0-PC15
while(1)
{
for(i=0;i<=20;i++)
{
disp[1] = table[i/10]; //数码管显示十位数字的字形码
disp[0] = table[i%10]; //数码管显示个位数字的字形码
//十位数的字形码左移8位,然后与各位数的字形码合并
temp = (disp[1]<<8)|(disp[0]&0x0ff);
GPIO_Write(GPIOC,temp);
Delay(100);
}
}
}
代码说明:
(1)语句"GPIO_InitStructure.GP1O_ Pin = Oxfff:” 用来配置 PCO~PC15 引1脚。
为什么使用Oxfit)参数就可以配置 PCO-PC15引1脚呢?可以参考stm32110x_gpio.h 头对 GPIO Pin_x的定义。
(2)disp1数组存放数码管将显示十位和个位数字的字形码,是经常用到的显示缓冲区。
(3)语句"temp = (disp[1]<<8)|(disp[0]&0x0ff);” 的作用:disp[1]<<8是把显示十位数字的字形码左移8 位(移到高 8位),disp[0]&0x0ff 是保留低8位,其他位清零(高8 位清零),然后把高8位(十位)和低8 位(个位)合并,完成循环显示 0-20字形码的显示效果。
二 第二种代码实现的方法
//头文件
#include "stm32f10x.h"
#include "GPIOLIKE51.h"
#define CLK PBout(8)
#define DAT PBout(9)
#define W1 PBout(4)
#define W2 PBout(5)
#define W3 PBout(6)
#define W4 PBout(7)
//函数声明
void GPIO_Configuration(void);
void delay(int m)
{
int i,j;
for(i=0;i
代码说明:
(1)这个程序是电亮4个数码管。
(2)头文件第二行“#include "GPIOLIKE51.h" ”这个是一个点h文件,具体作用我会写到下一个博客里(STM3中的“GPIOLIKE51.h”_奋发图强的小rui的博客-CSDN博客)。
(3)“nCount”这是一个没有返回值的带形式参数的函数函数名称是Delay,同时函数的参数部分中的_IO是类型修饰符;u32是数据类型,同等于uint_32_t同等于unsigned int型。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)