本人萌新,基于STM32的6路PWM控制,并且用矩陣鍵盤分別去控制六路占空比,并做了48*48的字庫在LCD上顯示。
單片機源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "timer.h"
- extern void LCD_ShowHZ(u16 x,u16 y,u8 num);
- extern void LCD_ShowHZStr(u16 x,u16 y,u8* pstr);
- extern float A;
- extern float B;
- extern float C;
- extern float D;
- extern float E;
- extern float F;
- int main(void)
- {
- int key;
- delay_init(); //延時函數初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
- uart_init(115200); //串口初始化為115200
- LED_Init(); //LED端口初始化
- LCD_Init();
- Key_Config();
- TIM3_PWM_Init(899,15);
- TIM4_PWM_Init(899,15);
- TIM2_Int_Init(1,7199); //定時器2中斷初始化
- POINT_COLOR=RED;
- POINT_COLOR=BLUE;//字體為藍色
-
- LCD_ShowHZ(0,0,0);//顯示速字
- LCD_ShowHZ(48,0,1);//顯示度字
- LCD_ShowHZ(96,0,3);
- LCD_ShowHZ(144,0,2);
- POINT_COLOR=RED;//字體為紅色
- LCD_ShowHZ(0,48,0);//顯示速字
- LCD_ShowHZ(48,48,1);//顯示度字
- LCD_ShowHZ(96,48,4);//顯示:
- LCD_ShowHZ(144,48,2);
- POINT_COLOR=BROWN;//字體為黃色
- LCD_ShowHZ(0,96,0);//顯示速字
- LCD_ShowHZ(48,96,1);//顯示度字、
- LCD_ShowHZ(96,96,5);
- LCD_ShowHZ(144,96,2);
- POINT_COLOR=BLACK;//字體為黑色
- LCD_ShowHZ(0,144,0);//顯示速字
- LCD_ShowHZ(48,144,1);//顯示度字
- LCD_ShowHZ(96,144,6);
- LCD_ShowHZ(144,144,2);
- POINT_COLOR=GREEN;//字體為綠色
- LCD_ShowHZ(0,192,0);//顯示速字
- LCD_ShowHZ(48,192,1);//顯示度字
- LCD_ShowHZ(96,192,7);
- LCD_ShowHZ(144,192,2);
- POINT_COLOR=BRRED;
- LCD_ShowHZ(0,240,0);//顯示速字
- LCD_ShowHZ(48,240,1);//顯示度字
- LCD_ShowHZ(96,240,8);
- LCD_ShowHZ(144,240,2);
- POINT_COLOR=MAGENTA;//字體為紫色
- while(1)
- {
- key=KeyScan();
- //LCD_ShowxNum(140,288,5,3,48,0X80);
-
- //LCD_ShowString(140,288+144,200,200,48,":;'/.");
- switch(key)
- {
- case 1:A=A+0.2;break;
- case 2:A=A-0.2;break;
- case 3:B=B+0.2;break;
- case 4:B=B-0.2;break;
- case 5:C=C+0.2;break;
- case 6:C=C-0.2;break;
- case 7:D=D+0.2;break;
- case 8:D=D-0.2;break;
- case 9:E=E+0.2;break;
- case 10:E=E-0.2;break;
- case 11:F=F+0.2;break;
- case 12:F=F-0.2;break;
- }
- LCD_ShowNum(180,0 ,10*(A-5),2,48);
- LCD_ShowNum(180,48 ,10*(B-5),2,48);
- LCD_ShowNum(180,96 ,10*(C-5),2,48);
- LCD_ShowNum(180,144 ,10*(D-5),2,48);
- LCD_ShowNum(180,192 ,10*(E-5),2,48);
- LCD_ShowNum(180,240 ,10*(F-5),2,48);
- //LCD_ShowNum(144,288+96 ,key,2,48);
- if(A<5)//控制占空比在規定范圍內
- {A=14;}
- if(A>14)
- {A=5;}
- if(B<5)//控制占空比在規定范圍內
- {B=14;}
- if(B>14)
- {B=5;}
- if(C<5)//控制占空比在規定范圍內
- {C=14;}
- if(C>14)
- {C=5;}
- if(D<5)//控制占空比在規定范圍內
- {D=14;}
- if(D>14)
- {D=5;}
- if(E<5)//控制占空比在規定范圍內
- {E=14;}
- if(E>14)
- {E=5;}
- if(F<5)//控制占空比在規定范圍內
- {F=14;}
- if(F>14)
- {F=5;}
- }
- }
復制代碼
所有資料51hei提供下載:
TFTLCD和4×4矩陣鍵盤程序.rar
(360.12 KB, 下載次數: 40)
2018-7-19 00:35 上傳
點擊文件名下載附件
STM32源碼 下載積分: 黑幣 -5
|