标题: 基于MSP430的占空比可调的PWM信号发生器源程序和资料 [打印本页]

作者: 吴晓京123    时间: 2017-10-9 21:21
标题: 基于MSP430的占空比可调的PWM信号发生器源程序和资料
PWM通过看书还算不难,比较难的到是矩阵键盘选择输出;
基于MSP430F5438A单片机的占空比可调的PWM信号发生器;

通4x4矩阵键盘控制占空比大小,显示在LCD12864液晶上;



单片机源程序如下:
  1. #include <msp430x54x.h>
  2. #include "12864.h"
  3. #include "XT.h"
  4. #include "key.h"
  5. #define uchar unsigned char
  6. #define uint unsigned int
  7. #define ulong unsigned long

  8. uint num;

  9. void main( void )
  10. {
  11.   WDTCTL = WDTPW + WDTHOLD;
  12.   initsys();//TX2时钟初始化
  13.   P4DIR |= 0x06;                            // P4.1 and P4.2 输出
  14.   P4SEL |= 0x06;                            // P4.1and P4.2 选择
  15.   TBCCR0 = 24000;
  16.   // PWM 周期定义 24000/24M=0.001s ,频率为500Hz

  17.   TBCCTL1 = OUTMOD_7;                      // CCR1 比较输出模式7,复位/置位

  18.   TBCCR1 = 12000;                            //CCR1 50%占空比定义 12000/24000=0.5

  19.   TBCCTL2 = OUTMOD_7;                      // CCR2 比较输出模式7,复位/置位

  20.   TBCCR2 = 12000;                            // CCR2 50%占空比 12000/24000=0.50

  21.   TBCTL=TBSSEL_2+MC__UP+TBCLR;//(TASSEL_2)定时器时钟源为SMCLK=24MHz ,
  22.                              //(MC__UP)增计数模式,不分频,开中断

  23.   P9DIR|=0xff;//液晶控制端口
  24.   P9OUT =0xff;

  25.   P8DIR|=0xff;//液晶数据端口
  26.   P8OUT =0xff;

  27.   P1DIR =0xf0;//矩阵键盘设置P1.0-P1.3 为输入方向
  28.   P1OUT =0xf0;

  29.   LCD_Init();    //LCD12864初始化
  30.   diaply();//数据显示
  31. // diaply1();
  32.   _EINT();
  33.   while(1)
  34.   {
  35.     key_display();//按键值显示
  36.   }
  37. }

复制代码

所有资料51hei提供下载:
PWM信号发生器.zip (1.53 MB, 下载次数: 280)



作者: 天下1213    时间: 2018-4-23 18:40
谢谢楼主分享资料了,下去可以研究一下了
作者: 时空来客    时间: 2020-5-14 13:25
楼主能给个proteus仿真图吗,我下载了你给的压缩包,但是没有仿真文件,谢谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1