STM32实时钟设计 实现功能:1、定时器用于实时钟的月日、时分和秒计时;2、2个按键用于实时钟的显示切换和设置;3、LCD用于实时钟的月日、时分和秒显示;4、通过UART接口在微机上显示和设置实时钟。按键要求:程序如下: #include""#include""//#include""#include""#include""//#defineNVIC_SETENA1(*(volatileunsignedlong*)(0xe000e104))intRx=0;intreceive=0;u8temp;inttime[6];intled=0x200;intlcddata[5][2]={0};intrunnian=1,flag=2,dian=0,flag2=1,timer=0;charrtc[30];charno=0;charlcd_code[16]= //编码 { 0xeb,//0 0x0a,//1 0xad,//2 0x8f,//3 0x4e,//4 0xc7,//5 0xe7,//6 0x8a,//7 0xef,//8 0xcf,//9 0x7e,//A 0x37,//B 0x71,//C 0x1f,//D 0x75,//E 0x74//F };//privatefunctionvoidLCD_Write(intdata,intbit);voidSystick_Proc(void);voidLcd_Proc(void);voidlcd_display0(void);voidlcd_display1(void);voidlcd_display2(void);voidlcd_display3(void);voidlcd_display4(void);voidlcd_display5(void);voidlcd_display6(void);voidUart_IO_Config(void);voidLCD_IO_Config(void);voidLed_IO_Config(void);voidUart_IO_Config(void);voidButton_IO_Config(void);voidEXTILineConfig(void);voidNVIC_Configuration(void);voidUart_Init(void);voidLCD_Init(void);voidSystick_Init(void);voidLED_Proc(void);voidLcd_Proc(void);voidUart(void);voiduartPuts(u8*s);voidUart_r(void);voidUSART_GetS_Time(void);intmain(void){ //SystemInit(); //Systick_Init(); SystemInit(); SysTick_Config(9000000); LCD_IO_Config(); Led_IO_Config(); Uart_IO_Config(); Button_IO_Config(); EXTILineConfig(); NVIC_Configuration(); Uart_Init(); LCD_Init(); while(1) { Systick_Proc(); Lcd_Proc(); Uart_r(); }}voidSystick_Proc(void){ if(NVIC_STCSR&0x10000) { dian^=1; if((++time[0])>=60){time[0]=0;if((++time[1])>=60){time[1]=0;if((++time[2])>=24)time[2]=0;switch(time[4]){case1:case3:case5:case7:case8:case10:case12:if(++time[3]>=32){if(++time[4]>=13)time[4]=1;}break;case2:if(runnian){if(++time[3]>=30){if(++time[4]>=13)time[4]=0;}}else{if(++time[3]>=29){if(++time[4]>=13)time[4]=0;}}break;case4:case6:case9:case11:if(++time[3]>=31){if(++time[4]>=13)time[4]=0;}break;default:break;//time[4]
STM32实时钟设计 来自淘豆网www.taodocs.com转载请标明出处.