STM8S-LCD-按键查询-按键中断全部资料51hei下载地址:
STM8S_查询按键.zip
(272.23 KB, 下载次数: 26)
STM8S_按键中断.zip
(263.23 KB, 下载次数: 24)
STM8S_LCD.zip
(260.86 KB, 下载次数: 19)
单片机源程序如下:
- /* 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
复制代码
|