[STM32F1] STM32-4位数码管动态显示0~9999

[复制链接]
 楼主| 米多0036 发表于 2023-8-26 23:41 | 显示全部楼层 |阅读模式
本章是基于STM32F1xx来写的四位数码管动态显示,通过定时器实现每秒加一。

LED数码管有两大类,一类是共阴极接法,另一类是共阳极接法,共阴极就是7段的显示字码共用一个电源的负极,是高电平点亮,共阳极就是7段的显示字码共用一个电源的正极,是低电平点亮。只要控制其中各段LED的亮灭即可显示相应的数字、字母或符号。
共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已,共阴为所有的LED负极接在一起,共阳为为所有的LED正极接在一起。
523964ea1d1434cfa.png
————————————————


5111564ea1d3b87502.png
 楼主| 米多0036 发表于 2023-8-26 23:42 | 显示全部楼层
共阳极数码管编码表(0~F):
unsigned char code smg[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
共阴极数码管编码表(0~F):
unsigned char code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
 楼主| 米多0036 发表于 2023-8-26 23:42 | 显示全部楼层
  1. 共阳极数码管编码表(0~F):
  2. unsigned char code smg[]=
  3. {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
  4. 共阴极数码管编码表(0~F):
  5. unsigned char code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
 楼主| 米多0036 发表于 2023-8-26 23:42 | 显示全部楼层
Pproteus8进行
8117064ea1d7c723a7.png
 楼主| 米多0036 发表于 2023-8-26 23:43 | 显示全部楼层
  1. 数码管选段
  2. uint8_t WEI_tab[]={0x0e,0x0d,0x0b,0x07};//1110,1101,1011,0111
 楼主| 米多0036 发表于 2023-8-26 23:43 | 显示全部楼层
  1. 延迟函数
  2. void delay(unsigned int ms)
  3. {
  4.    unsigned int i,j;
  5.    for(i=ms;i>0;i--)
  6.     for(j=150;j>0;j--);
  7. }
 楼主| 米多0036 发表于 2023-8-26 23:43 | 显示全部楼层
  1. 数码管显示代码
  2. void display()
  3. {
  4.     unsigned int shi,ge,bai,qian;
  5.         ge=Num%1000%100%10;;
  6.         shi=Num%1000%100/10;
  7.         bai=Num%1000/100;;
  8.         qian=Num/1000;
  9.                  GPIOC->ODR=(GPIOC->ODR & 0xfffff000) | SEG_tab_CC[ge] | WEI_tab[3]<<8;
  10.             delay(20);
  11.                   GPIOC->ODR=(GPIOC->ODR & 0xfffff000) | SEG_tab_CC[shi] | WEI_tab[2]<<8;
  12.             delay(20);
  13.                  GPIOC->ODR=(GPIOC->ODR & 0xfffff000) | SEG_tab_CC[bai] | WEI_tab[1]<<8;
  14.             delay(20);
  15.                 GPIOC->ODR=(GPIOC->ODR & 0xfffff000) | SEG_tab_CC[qian] | WEI_tab[0]<<8;
  16.                  delay(20);
  17. }
ousj 发表于 2023-8-27 11:01 | 显示全部楼层
控制其中各段LED的亮灭即可显示相应的数字、字母或符号。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

136

主题

1429

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

136

主题

1429

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部