分享一個基于STM32F103ZET6的指針式時鐘,非GUI設(shè)計。
單片機源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "usmart.h"
- #include "rtc.h"
- int main(void)
- {
- u8 t=0;
- delay_init(); //延時函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
- uart_init(115200); //串口初始化為115200
- LED_Init(); //LED端口初始化
- LCD_Init();
- usmart_dev.init(SystemCoreClock/1000000); //初始化USMART
- RTC_Init(); //RTC初始化
- Watch_mark(); //指針式時鐘刻度顯示
- Pointer(); //指針跳動顯示函數(shù)
-
-
- while(1)
- {
- if(t!=calendar.sec)
- {
- t=calendar.sec;
-
- POINT_COLOR=RED;
- LCD_ShowNum(10,240,calendar.w_year,4,24);
- LCD_ShowNum(60,240,calendar.w_month,2,24);
- LCD_ShowNum(90,240,calendar.w_date,2,24);
- Pointer();
- switch(calendar.week)
- {
- case 0:
- LCD_ShowString(130,240,200,24,24," Sunday ");
- break;
- case 1:
- LCD_ShowString(130,240,200,24,24," Monday ");
- break;
- case 2:
- LCD_ShowString(130,240,200,24,24," Tuesday ");
- break;
- case 3:
- LCD_ShowString(130,240,200,24,24," Wednesday ");
- break;
- case 4:
- LCD_ShowString(130,240,200,24,24," Thursday ");
- break;
- case 5:
- LCD_ShowString(130,240,200,24,24," Friday ");
- break;
- case 6:
- LCD_ShowString(130,240,200,24,24," Saturday ");
- break;
- }
- LCD_ShowNum(55,280,calendar.hour,2,24);
- LCD_ShowNum(103,280,calendar.min,2,24);
- LCD_ShowNum(151,280,calendar.sec,2,24);
- }
- };
- }
復(fù)制代碼
所有資料51hei附件下載:
STM32指針式時鐘顯示.7z
(241.54 KB, 下載次數(shù): 22)
2022-2-24 20:44 上傳
點擊文件名下載附件
|