按键切换LCD背景色,采用嵌入式设计
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "lcd.h"
- #include "stm32f10x_gpio.h"
- #define key1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)
- #include "stm32f10x_rcc.h"
- void key_init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
- GPIO_Init(GPIOA,&GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
-
- }
- int main(void)
- { void key_init(void);
- u8 x=0;
- LCD_Display_Dir(0);
- //u8 lcd_id[12]; //存放LCD ID字符串
- delay_init(); //延时函数初始化
- uart_init(9600); //串口初始化为9600
- LED_Init(); //初始化与LED连接的硬件接口
- LCD_Init();
- POINT_COLOR=BLUE;
- //sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。
- while(1)
- {
- while(!key1)
- {
-
- switch(x)
- {
- case 0:{LCD_Fill(0,0,240,107,RED);
- LCD_Fill(0,107,240,214,WHITE);
- LCD_Fill(0,214,240,320,BLUE);}break;
- case 1:{LCD_Fill(0,0,240,107,WHITE);
- LCD_Fill(0,107,240,214,BLUE);
- LCD_Fill(0,214,240,320,RED);}break;
- case 2:{LCD_Fill(0,0,240,107,BLUE);
- LCD_Fill(0,107,240,214,RED);
- LCD_Fill(0,214,240,320,WHITE);}break;
- }
-
- LCD_ShowString(85,40,200,24,24,"HE XI");
- LCD_ShowString(70,150,300,300,24,"LUO HENG");
- LCD_ShowString(55,255,200,200,24,"SHAO PEIJUN");
- //LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
- //LCD_ShowString(30,110,200,16,16,lcd_id); //显示LCD ID
- //LCD_ShowString(30,130,200,12,12,"2014/3/7");
- // if(key1==0)
- //{delay_ms(20);
- x++;//}
- delay_ms(300);
- if(x==3)x=0;
- LED0=!LED0;
- LED1=!LED1;
- delay_ms(150);
- LED0=!LED0;
- LED1=!LED1;
- //delay_ms(1);
- }
- }
- }
复制代码
所有资料51hei提供下载:
按键切换LCD背景色.7z
(222.31 KB, 下载次数: 12)
|