软件:keil5
main.c
#include "stm32f10x.h"
#include "dp.h"
#include "delay.h"
#include "stdint.h"
int main(void)
{
unsigned char j;
uint16_t i;
unsigned char shi=0,gei=0,bai=0;
dp();
while(1)
{
for(i=0;i<1000;i++)
{
bai=i/100;
shi=i%100/10;
for(j=0;j<50;j++)
{
ig(1,bai);
ig(2,shi);
ig(3,gei);
}
}
}
}
dp.c
#include "dp.h"
#include "delay.h"
void dp(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin=0xfff0;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOB,GPIO_Pin_6);
GPIO_ResetBits(GPIOB,GPIO_Pin_7);
GPIO_ResetBits(GPIOB,GPIO_Pin_8);
GPIO_ResetBits(GPIOB,GPIO_Pin_9);
GPIO_ResetBits(GPIOB,GPIO_Pin_10);
GPIO_ResetBits(GPIOB,GPIO_Pin_11);
GPIO_ResetBits(GPIOB,GPIO_Pin_12);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
GPIO_SetBits(GPIOB,GPIO_Pin_14);
GPIO_SetBits(GPIOB,GPIO_Pin_15);
}
unsigned char se[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void ig(unsigned char wei,unsigned char duan)
{
GPIO_Write(GPIOB,se[duan]<<5);
switch (wei)
{
case 1:LSAH;LSBH;LSCH;break;
case 2:LSAL;LSBH;LSCH;break;
case 3:LSAH;LSBL;LSCH;break;
case 4:LSAL;LSBL;LSCH;break;
case 5:LSAH;LSBH;LSCL;break;
case 6:LSAL;LSBH;LSCL;break;
case 7:LSAH;LSBL;LSCL;break;
case 8:LSAL;LSBL;LSCL;break;
}
Delay(1);
GPIO_Write(GPIOB,0X0000);
}
dp.h
#ifndef _dp_H
#define _dp_H
#include "stm32f10x.h"
#define LSAH GPIO_SetBits(GPIOB,GPIO_Pin_13)
#define LSBH GPIO_SetBits(GPIOB,GPIO_Pin_14)
#define LSCH GPIO_SetBits(GPIOB,GPIO_Pin_15)
#define LSAL GPIO_ResetBits(GPIOB,GPIO_Pin_13)
#define LSBL GPIO_ResetBits(GPIOB,GPIO_Pin_14)
#define LSCL GPIO_ResetBits(GPIOB,GPIO_Pin_15)
void dp (void);
void ig(unsigned char wei,unsigned char duan);
#endif
delay.c
#include "delay.h"
void Delay(unsigned int count)
{
unsigned int i;
for(;count!=0;count--)
{
i=5000;
while(i--);
}
}
delay.h
#ifndef _DELAY_H
#define _DELAY_H
#include "stm32f10x.h"
void Delay(unsigned int count);
#endif