数码管显示.c和.h文件.h文件内容
#ifndef __DISPLAY_H
#define __DISPLAY_H
#include "sys.h"
#include "delay.h"
void display_Init(void);
void display(void);
#endif
C文件内容
#include "display.h"
u8 table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
u8 num=0,g=0,s=0;
void display_Init(void)
{
RCC->APB2ENR=1<<2; //使能PA时钟
GPIOA->CRL&=0x00000000;
GPIOA->CRL|=0x33333333; //端口配置低寄存器配置PA.0~PA.7为推挽输出
GPIOA->CRH&=0x00000000;
GPIOA->CRH|=0x33333333; //端口配置高寄存器配置PA.8~PA.15为推挽输出
GPIOA->BSRR&=0x00000000;
GPIOA->BSRR|=0xffff0000; //使用端口位设置/清除寄存器,使PA端口输出为低电平
}
void display(void)
{
static u16 j=0;
s=num/10;
g=num%10;
j++;
if(j==300)
{
j=0;
if(num<100)
num++;
else
num=0;
}
GPIOA->ODR=table[s];
GPIOA->BSRR&=0x00000000;
GPIOA->BSRR|=0x01000080; //使用端口位设置/清除寄存器,使PA.7输出高电平,数码管十位显示
delayms(1);
GPIOA->ODR=table[g];
GPIOA->BSRR&=0x00000000;
GPIOA->BSRR|=0x00800100; //使用端口位设置/清除寄存器,使PA.8输出高电平,数码管十位显示
delayms(1);
}
|