标题: 接上一个,STM32寄存器方式使数码管显示0~99 [打印本页]

作者: 用户21111412    时间: 2020-11-13 08:49
标题: 接上一个,STM32寄存器方式使数码管显示0~99
数码管显示.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);       
}



作者: 长风007    时间: 2020-11-24 11:45
很好的,如果是加上外部按键来控制那就是最好的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1