时钟系统框图
接下来是制作过程!
单片机源程序如下:
- #include <stm32f10x.h>
- #include "led.h"
- #include "key.h"
- #include "beep.h"
- #include "system.h"
- /****************************************************************************
- * Function Name : main
- * Description : Main program.
- * Input : None
- * Output : None
- * Return : None
- ****************************************************************************/
- int main(void)
- {
- u8 ledState = 0xF0, keyValue, clk;
- u32 i;
- LED_Config();
- BEEP_Config();
- KEY_Config();
- clk = 6; //默认设置时钟为最高
- while(1)
- {
- keyValue = KEY_Scan(); //键盘扫描
- if( keyValue == KEY_UP) //上按键按下增加频率
- {
- clk++;
- if(clk > 6)
- {
- clk = 6;
- }
- }
- if(keyValue == KEY_DOWN) //下按键按下减少频率
- {
- clk--;
- if(clk < 1)
- {
- clk = 1;
- }
- }
- /* 若由按键设置,那么设置相应的时钟频率 */
- if((keyValue == KEY_UP) | (keyValue == KEY_DOWN))
- {
- switch(clk)
- {
- case(1):
- SYSTEM_SetClock(32);
- break;
- case(2):
- SYSTEM_SetClock(40);
- break;
- case(3):
- SYSTEM_SetClock(48);
- break;
- case(4):
- SYSTEM_SetClock(56);
- break;
- case(5):
- SYSTEM_SetClock(64);
- break;
- case(6):
- SYSTEM_SetClock(72);
- break;
- }
- }
- /* LED闪烁,并让蜂鸣器发声,方便大家看出时钟频率改变 */
- LED_SetState(ledState);
- for(i=0; i<0x05FFFF; i++);
- ledState = ~ledState;
- BEEP_Work();
- }
- }
复制代码
所有资料51hei提供下载:
4、时钟.rar
(479.71 KB, 下载次数: 35)
|