蓝桥杯嵌入式扩展板模块之数码管

Nysa ·
更新时间:2024-09-20
· 849 次阅读

蓝桥杯嵌入式扩展板模块之数码管硬件电路介绍Seg.cSeg.c函数实现的讲解Seg.h总结 硬件电路介绍

在这里插入图片描述
从硬件电路中我们可以看出这三个数码管都是共阴管,则输入高电平即可亮。
在数码管模块这里我们要用到一个芯片74ls595,它的中文名叫做“8位输出锁存移位寄存器”,在比赛的时候我们只需要在乎SER,SCK,RCLK这三个引脚就可以了,具体的使用方法我在函数的实现中讲解。

Seg.c #include "seg.h" u8 Seg7[17] = { 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x4f,0x79,0x78,0x00}; void Seg_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2|GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); } void Seg_ShowNum(u8 N1,u8 N2,u8 N3){ u8 num,i; num =Seg7[N3]; //注意这里是N3!!!!我在后面进行了解释 for(i=0;i<8;i++){ if(num&0x80) SER_H; else SER_L; SCK_H; num<<=1; SCK_L; } num = Seg7[N2]; for(i=0;i<8;i++){ if(num&0x80) SER_H; else SER_L; SCK_H; num<<=1; SCK_L; } num = Seg7[N1]; for(i=0;i<8;i++){ if(num&0x80) SER_H; else SER_L; SCK_H; num<<=1; SCK_L; } RCLK_H; RCLK_L; } Seg.c函数实现的讲解 Seg7这个数组对应的是共阴数码管的数字,这个数组的编写比赛的时候应该不会提供的。
在这里插入图片描述 Seg_Init()初始化函数,没什么好说的,就是注意引脚就可以了,模式设成GPIO_Mode_Out_PP。 Seg_ShowNum(u8 N1,u8 N2,u8 N3)这个函数就是实现显示的功能了,因为这个芯片是8位输出锁存移位寄存器,所以它就是难在移位上面。if(num&0x80)就是判断这一位时是高电平还是低电平,如果高电平则SER_H(SER引脚置高电平),反之则为低电平。然后就是移位,SCK_H就是实现芯片内部的移位,然后再通过软件对这个数进行移位。后面同理,最后面的RCLK_H和RCLK_L就是实现通过芯片把数据传送给数码管。至于函数刚开头num =Seg7[N3]这里为什么是N3而不是N1,因为你是移位,所以你实现这三个循环后,其实最后一个循环发送的到第一个数码管了,而第一个循环发送到第三个数码管上了。 Seg.h #ifndef __SEG_H #define __SEG_H #include "stm32f10x.h" #define SER_H GPIO_SetBits(GPIOA,GPIO_Pin_1) #define SER_L GPIO_ResetBits(GPIOA,GPIO_Pin_1) #define RCLK_H GPIO_SetBits(GPIOA,GPIO_Pin_2) #define RCLK_L GPIO_ResetBits(GPIOA,GPIO_Pin_2) #define SCK_H GPIO_SetBits(GPIOA,GPIO_Pin_3) #define SCK_L GPIO_ResetBits(GPIOA,GPIO_Pin_3) void Seg_Init(void); void Seg_ShowNum(u8 N1,u8 N2,u8 N3); #endif 总结

其实这个模块相对来说难度不大的,只需要写好那个Seg_ShowNum函数就可以了,说白了就是写好一个循环之后后面只需要复制粘贴就可以了。注意的就是那个循环操作的对象不是形参本身的值,而是对应数码管段选的值!


作者:琰婧



数码管 蓝桥杯 模块 扩展 嵌入 嵌入式 数码

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章
Elsa 2020-07-30
515