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

本章是基于STM32F1xx来写的四位数码管动态显示,通过定时器实现每秒加一。

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

共阳极数码管编码表(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}; 

 Pproteus8进行仿真

数码管选段
uint8_t WEI_tab[]={0x0e,0x0d,0x0b,0x07};//1110,1101,1011,0111
延迟函数
void delay(unsigned int ms)
{unsigned int i,j;for(i=ms;i>0;i--)for(j=150;j>0;j--);
}
数码管显示代码
void display(){unsigned int shi,ge,bai,qian;ge=Num%1000%100%10;;shi=Num%1000%100/10;bai=Num%1000/100;;qian=Num/1000;GPIOC->ODR=(GPIOC->ODR & 0xfffff000) | SEG_tab_CC[ge] | WEI_tab[3]<<8;delay(20);GPIOC->ODR=(GPIOC->ODR & 0xfffff000) | SEG_tab_CC[shi] | WEI_tab[2]<<8;delay(20);GPIOC->ODR=(GPIOC->ODR & 0xfffff000) | SEG_tab_CC[bai] | WEI_tab[1]<<8;delay(20);GPIOC->ODR=(GPIOC->ODR & 0xfffff000) | SEG_tab_CC[qian] | WEI_tab[0]<<8;delay(20);}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部