欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2604|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

用TFTLCD顯示漢字,6路PWM矩陣鍵盤控制源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:374261 發(fā)表于 2018-7-18 17:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本人萌新,基于STM32的6路PWM控制,并且用矩陣鍵盤分別去控制六路占空比,并做了48*48的字庫在LCD上顯示。

單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"
  7. #include "timer.h"

  8. extern void LCD_ShowHZ(u16 x,u16 y,u8 num);
  9. extern void LCD_ShowHZStr(u16 x,u16 y,u8* pstr);
  10. extern        float A;       
  11. extern        float B;
  12. extern        float C;
  13. extern        float D;       
  14. extern        float E;
  15. extern        float F;
  16. int main(void)
  17. {         
  18.     int key;
  19.     delay_init();                     //延時函數(shù)初始化          
  20.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  21.     uart_init(115200);                 //串口初始化為115200
  22.     LED_Init();                             //LED端口初始化
  23.     LCD_Init();
  24.                 Key_Config();
  25.                 TIM3_PWM_Init(899,15);
  26.                 TIM4_PWM_Init(899,15);
  27.                 TIM2_Int_Init(1,7199);        //定時器2中斷初始化
  28.     POINT_COLOR=RED;
  29.     POINT_COLOR=BLUE;//字體為藍(lán)色
  30.    
  31.                 LCD_ShowHZ(0,0,0);//顯示速字
  32.     LCD_ShowHZ(48,0,1);//顯示度字
  33.                 LCD_ShowHZ(96,0,3);
  34.           LCD_ShowHZ(144,0,2);
  35.                 POINT_COLOR=RED;//字體為紅色
  36.     LCD_ShowHZ(0,48,0);//顯示速字
  37.     LCD_ShowHZ(48,48,1);//顯示度字
  38.           LCD_ShowHZ(96,48,4);//顯示:
  39.                 LCD_ShowHZ(144,48,2);
  40.           POINT_COLOR=BROWN;//字體為黃色
  41.           LCD_ShowHZ(0,96,0);//顯示速字
  42.     LCD_ShowHZ(48,96,1);//顯示度字、
  43.           LCD_ShowHZ(96,96,5);
  44.                 LCD_ShowHZ(144,96,2);
  45.                 POINT_COLOR=BLACK;//字體為黑色
  46.           LCD_ShowHZ(0,144,0);//顯示速字
  47.     LCD_ShowHZ(48,144,1);//顯示度字
  48.                 LCD_ShowHZ(96,144,6);
  49.                 LCD_ShowHZ(144,144,2);
  50.                 POINT_COLOR=GREEN;//字體為綠色
  51.           LCD_ShowHZ(0,192,0);//顯示速字
  52.     LCD_ShowHZ(48,192,1);//顯示度字
  53.                 LCD_ShowHZ(96,192,7);
  54.                 LCD_ShowHZ(144,192,2);               
  55.                 POINT_COLOR=BRRED;
  56.           LCD_ShowHZ(0,240,0);//顯示速字
  57.     LCD_ShowHZ(48,240,1);//顯示度字
  58.                 LCD_ShowHZ(96,240,8);
  59.                 LCD_ShowHZ(144,240,2);       
  60.                 POINT_COLOR=MAGENTA;//字體為紫色               
  61.           while(1)
  62.         {                 
  63.                 key=KeyScan();
  64.                 //LCD_ShowxNum(140,288,5,3,48,0X80);
  65.                
  66.                 //LCD_ShowString(140,288+144,200,200,48,":;'/.");
  67.                 switch(key)
  68.                 {
  69.                         case 1:A=A+0.2;break;
  70.                         case 2:A=A-0.2;break;
  71.                         case 3:B=B+0.2;break;
  72.                         case 4:B=B-0.2;break;
  73.                         case 5:C=C+0.2;break;
  74.                         case 6:C=C-0.2;break;
  75.                         case 7:D=D+0.2;break;
  76.                         case 8:D=D-0.2;break;
  77.                         case 9:E=E+0.2;break;
  78.                         case 10:E=E-0.2;break;
  79.                         case 11:F=F+0.2;break;
  80.                         case 12:F=F-0.2;break;                       
  81.                 }
  82.                 LCD_ShowNum(180,0 ,10*(A-5),2,48);
  83.                 LCD_ShowNum(180,48 ,10*(B-5),2,48);
  84.                 LCD_ShowNum(180,96 ,10*(C-5),2,48);
  85.                 LCD_ShowNum(180,144 ,10*(D-5),2,48);
  86.                 LCD_ShowNum(180,192 ,10*(E-5),2,48);
  87.                 LCD_ShowNum(180,240 ,10*(F-5),2,48);
  88.                 //LCD_ShowNum(144,288+96 ,key,2,48);
  89.                 if(A<5)//控制占空比在規(guī)定范圍內(nèi)
  90.                 {A=14;}
  91.                 if(A>14)
  92.                 {A=5;}
  93.                 if(B<5)//控制占空比在規(guī)定范圍內(nèi)
  94.                 {B=14;}
  95.                 if(B>14)
  96.                 {B=5;}
  97.                 if(C<5)//控制占空比在規(guī)定范圍內(nèi)
  98.                 {C=14;}
  99.                 if(C>14)
  100.                 {C=5;}
  101.                 if(D<5)//控制占空比在規(guī)定范圍內(nèi)
  102.                 {D=14;}
  103.                 if(D>14)
  104.                 {D=5;}
  105.                 if(E<5)//控制占空比在規(guī)定范圍內(nèi)
  106.                 {E=14;}
  107.                 if(E>14)
  108.                 {E=5;}
  109.                 if(F<5)//控制占空比在規(guī)定范圍內(nèi)
  110.                 {F=14;}
  111.                 if(F>14)
  112.                 {F=5;}
  113.         }
  114. }
復(fù)制代碼

所有資料51hei提供下載:
TFTLCD和4×4矩陣鍵盤程序.rar (360.12 KB, 下載次數(shù): 40)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表