STM32 0-999循环显示

该程序是基于STM32微控制器的实时时钟(RTC)测试应用。主要功能包括:初始化系统时钟、延时、串口、LED、LCD和RTC模块;在LCD上显示固定文本信息;通过循环在LCD上动态显示数字计时(0-999),同时控制LED闪烁。程序使用__DATE__和__TIME__获取编译时间,并定义了数字显示查找表disdt\[\]。主循环中分解计数值为百、十、个位,分别用不同颜色显示,每次循环间隔10秒。该代码展示了STM32基础外设的初始化和简单的人机交互实现。

https://download.csdn.net/download/czhaii/93038280?spm=1001.2014.3001.5501

#include <stm32f10x_lib.h>

#include "sys.h"

#include "stdio.h"

#include "usart.h"

#include "delay.h"

#include "led.h"

#include "key.h"

#include "exti.h"

#include "wdg.h"

#include "timer.h"

#include "lcd.h"

#include "rtc.h"

const u8 disdt\[\]={48,49,50,51,52,53,54,55,56,57};

const u8 *COMPILED_DATE=DATE;//获得编译日期

const u8 *COMPILED_TIME=TIME;//获得编译时间

int main(void)

{

//u8 t=0;

u8 l,m,n;

u16 i;

Stm32_Clock_Init(9);//系统时钟设置

delay_init(72); //延时初始化

uart_init(72,9600); //串口1初始化

LED_Init();

LCD_Init();

RTC_Init();

//RTC_Set(2004,12,31,23,59,55); //设置时间

POINT_COLOR=RED;//设置字体为红色

LCD_ShowString(10,10,"Mini STM32");

LCD_ShowString(10,30,"RTC TEST");

LCD_ShowString(10,50,"ATOM@ALIENTEK");

LCD_ShowString(10,70,"2016/10/1");

//显示时间

POINT_COLOR=BLUE;//设置字体为蓝色

//void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)

LCD_ShowString(60,130," - - ");

LCD_ShowString(60,162," : : ");

while(1)

{

for(i=0;i<1000;i++)

{

l=i/100;

m=(i-l*100)/10;

n=i-l*100-m*10;

POINT_COLOR=RED;//设置字体为红色

LCD_ShowChar(10,90,disdtl,16,0); //10横向 90纵向disdt\[\]

POINT_COLOR=BLUE;//设置字体为蓝色

LCD_ShowChar(18,90,disdtm,16,0); //18横向 90纵向disdt\[\]

POINT_COLOR=BROWN;//设置字体为棕色

LCD_ShowChar(26,90,disdtn,16,0); //26横向 90纵向disdt\[\]

delay_ms(10000);

LED0=!LED0;

}

delay_ms(10);

};

}

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////

#include <stm32f10x_lib.h>

#include "delay.h"

#include "sys.h"

#include "usart.h"

int main (void)

{

u8 t=0;

Stm32_Clock_Init(9);

delay_init(72);

uart_init(72,9600);

while(1);

{

printf("t:%d\n",t);

t++;

delay_ms(500);

}

}