[mw_shl_code=c,true]#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "seg.h"
#include "key.h"
u8 const CharCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳段码表
//数码管显示
int main(void)
{
int i;
int a;
int m,q,p,n;
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
SEG_Init(); //数码管初始化
SEG_DATAOUT(0); //取段码数据
KEY_Init();
while(1)
{
for(i=1;i<=3600;i++)
{
n=i%3600;
m=n/60; //此处m相当于显示分钟位
q=m%10; //q相当于显示分钟数个位
m=m/10; //此处m相当于显示分钟数十位
p=i%60; //p相当于显示秒数十位
p=p/10;
n=n%10; //n相当于显示秒数个位
delay_ms(1000);
//printf("%d,%d,%d,%d,%d\n",i,m,q,p,n);
for (a=0;a<=3;a++)
{
if(a==0)
{
SEG_DATAOUT(CharCode[m]<<8);
PC6=0;
PC7=1;
PC8=1;
PC9=1;
}
else if(a==1)
{
SEG_DATAOUT(CharCode[q]<<8);
PC6=1;
PC7=0;
PC8=1;
PC9=1;
}
else if(a==2)
{
SEG_DATAOUT(CharCode[p]<<8);
PC6=1;
PC7=1;
PC8=0;
PC9=1;
}
else if(a==3)
{
SEG_DATAOUT(CharCode[n]<<8);
PC6=1;
PC7=1;
PC8=1;
PC9=0;
}
delay_ms(3);
}
}
}
}
[/mw_shl_code]
这是我根据昨天向大神们请教以后写出来的代码
为什么烧写到板子里,数码管能正常显示数字,但是一闪一闪的,只能看清最后一位的数字是几,其余位的闪的太快,看不清!怎么破! |