软件:keil5
main.c
#include "stm32f10x.h"
#include "dp.h"
#include "delay.h"
int main(void)
{
dp();
while(1)
{
ig(1,1);
ig(2,2);
ig(3,3);
ig(4,4);
ig(5,5);
ig(6,6);
ig(7,7);
ig(8,8);
}
}
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