PWM通過看書還算不難,比較難的到是矩陣鍵盤選擇輸出;
基于MSP430F5438A單片機的占空比可調的PWM信號發生器;
通4x4矩陣鍵盤控制占空比大小,顯示在LCD12864液晶上;
0.png (35.88 KB, 下載次數: 108)
下載附件
2017-10-9 21:58 上傳
單片機源程序如下:
- #include <msp430x54x.h>
- #include "12864.h"
- #include "XT.h"
- #include "key.h"
- #define uchar unsigned char
- #define uint unsigned int
- #define ulong unsigned long
- uint num;
- void main( void )
- {
- WDTCTL = WDTPW + WDTHOLD;
- initsys();//TX2時鐘初始化
- P4DIR |= 0x06; // P4.1 and P4.2 輸出
- P4SEL |= 0x06; // P4.1and P4.2 選擇
- TBCCR0 = 24000;
- // PWM 周期定義 24000/24M=0.001s ,頻率為500Hz
- TBCCTL1 = OUTMOD_7; // CCR1 比較輸出模式7,復位/置位
- TBCCR1 = 12000; //CCR1 50%占空比定義 12000/24000=0.5
- TBCCTL2 = OUTMOD_7; // CCR2 比較輸出模式7,復位/置位
- TBCCR2 = 12000; // CCR2 50%占空比 12000/24000=0.50
- TBCTL=TBSSEL_2+MC__UP+TBCLR;//(TASSEL_2)定時器時鐘源為SMCLK=24MHz ,
- //(MC__UP)增計數模式,不分頻,開中斷
- P9DIR|=0xff;//液晶控制端口
- P9OUT =0xff;
- P8DIR|=0xff;//液晶數據端口
- P8OUT =0xff;
- P1DIR =0xf0;//矩陣鍵盤設置P1.0-P1.3 為輸入方向
- P1OUT =0xf0;
- LCD_Init(); //LCD12864初始化
- diaply();//數據顯示
- // diaply1();
- _EINT();
- while(1)
- {
- key_display();//按鍵值顯示
- }
- }
復制代碼
所有資料51hei提供下載:
PWM信號發生器.zip
(1.53 MB, 下載次數: 280)
2017-10-9 21:17 上傳
點擊文件名下載附件
PWM信號發生器 下載積分: 黑幣 -5
|