STM8S-LCD-按鍵查詢-按鍵中斷全部資料51hei下載地址:
STM8S_查詢按鍵.zip
(272.23 KB, 下載次數: 26)
2018-1-3 09:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
STM8S_按鍵中斷.zip
(263.23 KB, 下載次數: 24)
2018-1-3 09:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
STM8S_LCD.zip
(260.86 KB, 下載次數: 19)
2018-1-3 09:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
單片機源程序如下:
- /* Includes ------------------------------------------------------------------*/
- #include "stm8s.h"
- #include "sysclock.h"
- /* Private defines -----------------------------------------------------------*/
- /* LED 端口定義 */
- #define LED_PORT GPIOA
- #define KEY_PORT GPIOD
- #define KEY_EXTI_PORT EXTI_PORT_GPIOD
- #define LED_1 GPIO_PIN_3
- #define LED_2 GPIO_PIN_4
- #define LED_3 GPIO_PIN_5
- #define LED_4 GPIO_PIN_6
- #define KEY_1 GPIO_PIN_0
- #define KEY_2 GPIO_PIN_5
- #define KEY_3 GPIO_PIN_6
- #define KEY_4 GPIO_PIN_7
- #define ON 0 /* 定義LED燈亮 -- 低電平*/
- #define OFF 1 /* 定義LED燈滅 -- 高電平*/
- /* Private function prototypes -----------------------------------------------*/
- /* Private functions ---------------------------------------------------------*/
- /*******************************************************************************
- * 名稱: Delay
- * 功能: 簡單的延時函數
- * 形參: nCount -> 延時時間數
- * 返回: 無
- * 說明: 無
- ******************************************************************************/
- void Delay(u32 nCount)
- {
- u32 i;
- for(i=0;i<nCount;i++);
- }
- /*******************************************************************************
- * 名稱: LED_Init
- * 功能: LED外設GPIO引腳初始化操作
- * 形參: 無
- * 返回: 無
- * 說明: 無
- ******************************************************************************/
- void LED_Init(void)
- {
- //定義LED的管腳為輸出模式
- GPIO_Init(LED_PORT, LED_1, GPIO_MODE_OUT_PP_HIGH_FAST );
- GPIO_Init(LED_PORT, LED_2, GPIO_MODE_OUT_PP_HIGH_FAST );
- GPIO_Init(LED_PORT, LED_3, GPIO_MODE_OUT_PP_HIGH_FAST );
- GPIO_Init(LED_PORT, LED_4, GPIO_MODE_OUT_PP_HIGH_FAST );
- }
- /*******************************************************************************
- * 名稱: LED_Operation
- * 功能: LED 燈亮滅設置操作
- * 形參: led -> 要操作的led燈
- * state -> 亮還是滅
- * 返回: 無
- * 說明: 無
- ******************************************************************************/
- void LED_Config(GPIO_Pin_TypeDef led, u8 state)
- {
- if(ON == state)
- {
- GPIO_WriteLow(LED_PORT, led);
- }
- else
- {
- GPIO_WriteHigh(LED_PORT, led);
- }
- }
- /*******************************************************************************
- * 名稱: LED_Show
- * 功能: 現流水燈
- * 形參: 無
- * 返回: 無
- * 說明: 無
- ******************************************************************************/
- void LED_Show(void)
- {
- LED_Config(LED_1, ON);
- LED_Config(LED_2, OFF);
- LED_Config(LED_3, OFF);
- LED_Config(LED_4, OFF);
- Delay(0x1ffff);
- LED_Config(LED_1, OFF);
- LED_Config(LED_2, ON);
- LED_Config(LED_3, OFF);
- LED_Config(LED_4, OFF);
- Delay(0x1ffff);
- LED_Config(LED_1, OFF);
- LED_Config(LED_2, OFF);
- LED_Config(LED_3, ON);
- LED_Config(LED_4, OFF);
- Delay(0x1ffff);
- LED_Config(LED_1, OFF);
- LED_Config(LED_2, OFF);
- LED_Config(LED_3, OFF);
- LED_Config(LED_4, ON);
- Delay(0x1ffff);
-
- }
- /*******************************************************************************
- * 名稱: Key_Exti_Init
- * 功能: 按鍵外設引腳初始化操作
- * 形參: 無
- * 返回: 無
- * 說明: 無
- ******************************************************************************/
- void Key_Exti_Init(void)
- {
- /* 與按鍵相連的引腳設置為輸入模式 */
- GPIO_Init(KEY_PORT, KEY_1, GPIO_MODE_IN_PU_IT);
-
- /* 將KEY_PORT端口設置為下降沿觸發中斷--因為按鍵按下時產生一個低電平 */
- EXTI_SetExtIntSensitivity(KEY_EXTI_PORT, EXTI_SENSITIVITY_FALL_ONLY);
-
- }
- int main(void)
- {
-
- /* 系統時鐘初始化 */
- SystemClock_Init();
-
- Key_Exti_Init(); /* 外部中斷初始化 */
-
- enableInterrupts(); /* 開啟總中斷 */
- LED_Init();
- while (1)
- {
- /*放置你的代碼*/
- // LED_Show();
- }
-
- }
- #ifdef USE_FULL_ASSERT
- /**
- * @brief Reports the name of the source file and the source line number
- * where the assert_param error has occurred.
- * @param file: pointer to the source file name
- * @param line: assert_param error line source number
- * @retval : None
- */
- void assert_failed(u8* file, u32 line)
- {
- /* User can add his own implementation to report the file name and line number,
- ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
- /* Infinite loop */
- while (1)
- {
- }
- }
- #endif
復制代碼
|