STM32红外遥控交通灯
单片机源程序如下:
- /* Includes ------------------------------------------------------------------*/
- #include "stm32f10x.h"
- #include "Lcd_Driver.h"
- #include "GUI.h"
- #include "delay.h"
- #include "Picture.h"
- #include "LCD.h"
- #include "led.h"
- #include "sys.h"
- #include "usart.h"
- #include "remote.h"
- GPIO_InitTypeDef GPIO_InitStructure;
- void RCC_Configuration(void);
- void Delayms(__IO uint32_t nCount);
- unsigned char Num[10]={0,1,2,3,4,5,6,7,8,9};
- unsigned char flag=0;
- int i ;
- uchar num0=30;
- void Redraw_Mainmenu(void)
- {
- Lcd_Clear(GRAY0);
-
- Gui_DrawFont_GBK16(16,0,BLUE,GRAY0,"全动电子技术");
- Gui_DrawFont_GBK16(16,20,RED,GRAY0,"液晶测试程序");
- DisplayButtonUp(15,38,113,58); //x1,y1,x2,y2
- Gui_DrawFont_GBK16(16,40,YELLOW,GRAY0,"颜色填充测试");
- DisplayButtonUp(15,68,113,88); //x1,y1,x2,y2
- Gui_DrawFont_GBK16(16,70,BLUE,GRAY0,"文字显示测试");
- DisplayButtonUp(15,98,113,118); //x1,y1,x2,y2
- Gui_DrawFont_GBK16(16,100,RED,GRAY0,"图片显示测试");
- Gui_DrawFont_GBK16(16,120,BLUE,GRAY0,"S1:Move. ");
- Gui_DrawFont_GBK16(16,140,RED,GRAY0, "S2:Sellect ");
-
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[5]);
- delay_ms(1000);
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[4]);
- delay_ms(1000);
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[3]);
- delay_ms(1000);
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[2]);
- delay_ms(1000);
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[1]);
- delay_ms(1000);
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[0]);
- }
- void Num_Test(void)
- {
- u8 i=0;
- Lcd_Clear(GRAY0);
- Gui_DrawFont_GBK16(16,20,RED,GRAY0,"Num Test");
- delay_ms(1000);
- Lcd_Clear(GRAY0);
- for(i=0;i<10;i++)
- {
- Gui_DrawFont_Num32((i%3)*40,32*(i/3)+30,RED,GRAY0,Num[i+1]);
- delay_ms(100);
- }
-
- }
- void Font_Test(void)
- {
- Lcd_Clear(GRAY0);
- Gui_DrawFont_GBK16(16,10,BLUE,GRAY0,"文字显示测试");
- delay_ms(1000);
- Lcd_Clear(GRAY0);
- Gui_DrawFont_GBK16(16,30,YELLOW,GRAY0,"全动电子技术");
- Gui_DrawFont_GBK16(16,50,BLUE,GRAY0,"专注液晶批发");
- Gui_DrawFont_GBK16(16,70,RED,GRAY0, "全程技术支持");
- Gui_DrawFont_GBK16(0,100,BLUE,GRAY0,"Tel:15989313508");
- Gui_DrawFont_GBK16(0,130,RED,GRAY0, "www.qdtech.net");
- delay_ms(1800);
- }
- void Color_Test(void)
- {
- u8 i=1;
- Lcd_Clear(GRAY0);
-
- Gui_DrawFont_GBK16(20,10,BLUE,GRAY0,"Color Test");
- delay_ms(200);
- while(i--)
- {
- Lcd_Clear(WHITE);
- Lcd_Clear(BLACK);
- Lcd_Clear(RED);
- Lcd_Clear(GREEN);
- Lcd_Clear(BLUE);
- }
- }
- //16位 垂直扫描 右到左 高位在前
- void show_pic()
- {
- int i,j,k;
- unsigned char picH,picL;
- Lcd_Clear(GRAY0);
- Gui_DrawFont_GBK16(16,10,BLUE,GRAY0,"图片显示测试");
- delay_ms(1000);
- Lcd_Clear(GRAY0);
- k=0;
- for(i=0;i<128;i++)
- for(j=0;j<160;j++)
- {
- picH=gImage_123[k++];
- picL=gImage_123[k++];
- Lcd_WriteData(picH);
- Lcd_WriteData(picL);
- }
- }
- u16 ID=0;
- int main(void)
- {
-
- u8 key,t=0;
- u8 *str=0;
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- uart_init(115200);
- LED_Init();
-
- Remote_Init();
-
- SystemInit();
- delay_init(72);//延时初始化
- Lcd_Init(0);
- LCD_LED_SET;//??IO?????
-
- while(1)
- {
- TM1620_Init();
- init_TM1620i(); // ???LCD????
- init_TM1620ii();
- LCD_LED_SET;//??IO?????
- /*Redraw_Mainmenu();
- Color_Test();//????????
- Num_Test();
- Font_Test();//???????
- show_pic();//??????
- delay_ms(1200);*/
-
-
- lcd0_display(88); //lcd0???????
- lcd2_display(88);
- lcd1_display(88); //lcd0???????
- lcd3_display(88);
-
-
- key=Remote_Scan();
- if(key)
- {
- Lcd_Clear(GRAY0); //有按键则清屏
- switch(key)
- {
- case 0:str="ERROR";break;
- case 162:str="yellow led on";flag=1;break;
- case 98:str="yellow led off";flag=0;break;
- case 2:str="green led on";flag=2; break;
- case 226:str="green led off"; flag=3; break;
- case 194:str="Pattern 1"; flag=4;break;
- case 34:str="Pattern 2";flag=5;break;
- case 224:str="Pattern 3";flag=6;break;
- case 168:str="Pattern 4";flag=7;break;
- case 144:str="play";flag=8;break;
- case 104:str="1";flag=9;break;
- case 152:str="2";break;
- case 176:str="3";break;
- case 48:str="4";break;
- case 24:str="5";break;
- case 122:str="6";break;
- case 16:str="7";break;
- case 56:str="8";break;
- case 90:str="9";break;
- case 66:str="0";break;
- case 82:str="DELETE";break;
- }
-
- Gui_DrawFont_GBK16(16,10,BLUE,GRAY0,str);
- }
- if(flag==1)
- {
-
- LED0= 1 ;
- LED1=1;
- LED2=1;
- LED3=1;
- }
- if(flag==0)
- {
- LED0= 0 ;
- LED1=0;
- LED2=0;
- LED3=0;
- }
- if(flag==2)
- {
- LED4= 1 ;
- LED5=1;
- LED6=1;
- LED7=1;
- }
- if(flag==3)
- {
- LED4= 0 ;
- LED5=0;
- LED6=0;
- LED7=0;
- }
- if(flag==4)
- {
- while(num0)
- {
- num0--;
- lcd0_display(num0);
-
-
- delay_ms(200);
-
- if(num0 == 0)
- {
- while(4-i)
- {
- LED0= 1 ;
- LED1=1;
- LED2=1;
- LED3=1;
- LED4= 1 ;
- LED5=1;
- LED6=1;
- LED7=1;
- delay_ms(1000);
- LED0= 0 ;
- LED1=0;
- LED2=0;
- LED3=0;
- LED4= 0 ;
- LED5=0;
- LED6=0;
- LED7=0;
- delay_ms(1000);
- i++;
-
- }break; }
-
-
- }break;
- }
- if(flag==5)
- {
- while(num0)
- {
-
- num0--;
- lcd1_display(num0);
-
- delay_ms(200);
- if(num0 == 0)
- {
- while(4-i)
- {
- LED0=1 ;
- delay_ms(200);
- LED0=0;
- LED7=1;
- delay_ms(200);
- LED7=0;
- LED3=1;
- delay_ms(200);
- LED3=0;
- LED4=1;
- delay_ms(200);
- LED4=0;
- LED2=1;
- delay_ms(200);
- LED2=0;
- LED5=1;
- delay_ms(200);
- LED5=0;
- LED1=1;
- delay_ms(200);
- LED1=0;
- LED6=1;
- delay_ms(200);
- LED6=0;
- delay_ms(200);
- i++;
- } break;}
- }break;
- }
-
-
- if(flag==6)
- {
- while(num0)
- { num0--;
- lcd3_display(num0);
-
-
- delay_ms(200);
- if(num0 == 0)
- {
- while(4-i)
- {
- LED0=1 ;
- delay_ms(200);
- LED0=0;
- LED6=1;
- delay_ms(200);
- LED6=0;
- LED1=1;
- delay_ms(200);
- LED1=0;
- LED5=1;
- delay_ms(200);
- LED5=0;
- LED2=1;
- delay_ms(200);
- LED2=0;
- LED4=1;
- delay_ms(200);
- LED4=0;
- LED3=1;
- delay_ms(200);
- LED3=0;
- LED7=1;
- delay_ms(200);
- LED7=0;
- delay_ms(200);
- i++;
- }break;}
- }break;
- }
- if(flag==7)
- {
- while(num0)
- {num0--;
- lcd2_display(num0);
-
-
- delay_ms(200);
- if(num0 == 0)
- {
- while(4-i)
- {
- LED0=1 ;
- LED1=1;
- LED2=1;
- LED3=1;
- delay_ms(200);
- LED0=0 ;
- LED1=0;
- LED2=0;
- LED3=0;
-
- LED4=1;
- LED5=1;
- LED6=1;
- LED7=1;
- delay_ms(200);
- LED4=0;
- LED5=0;
- LED6=0;
- LED7=0;
- i++;
- }break;}
- }break;
- }
- }
- LCD_LED_CLR;//IO?????
- }
- void RCC_Configuration(void)
- {
- /* Setup the microcontroller system. Initialize the Embedded Flash Interface,
- initialize the PLL and update the SystemFrequency variable. */
- SystemInit();
- }
- void Delayms(__IO uint32_t nCount)
- {
- for(; nCount != 0; nCount--);
- }
- #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(uint8_t* file, uint32_t 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
- /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
复制代码
所有资料51hei提供下载:
程序.7z
(95.83 KB, 下载次数: 19)
|