MSP430单片机串口控制5路PWM频率变化程序

该博客介绍了如何使用MSP430单片机通过串口发送特定命令来控制P1、P2、P4、P5、P6端口的PWM频率,实现6路PWM波形的频率调整。程序允许通过发送0x00到0x05的指令改变PWM频率或使其变为零。同时,单片机还能够响应串口命令,发送4x4键盘的键值信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MSP430单片机串口控制5路PWM频率变化程序
下面介绍一段MSP430单片机通过232串口发送0x00,0x01,0x02,0x03,0x04控制IO端口P1,P2,P4,P5,P6输出6路PWM波形变化的程序,单片机发送0x05,IO端口P1,P2,P4,P5,P6输出PWM为0。单片机的电路如下图
程序如下:链接:https://pan.baidu.com/s/1-vcBVWfkaSu8C81LeTFqmw ;
提取码:18fo
https://share.weiyun.com/IHXUku45

/***********************************************
程序功能:实现流水灯以三种流动方式和四种流动速度
的不同组合而进行点亮"流动"
通过232串口发送0x00,0x01,0x02,0x03,0x04调节P1,P2,P4,P5,P6的6个管脚输出PWM波形的频率由小变大
通过232串口发送0x05调节P1,P2,P4,P5,P6的6个管脚输出PWM波形为零
程序功能:MCU通过串口向PC机发送4X4键盘的键值

通信格式:N.8.1, 9600

拨码开关设置:将LED位拨至ON,其余拨至OFF
测试说明:观察流水灯流动顺序和速度的变化
************************************************/
#include <msp430x14x.h>
//#include “flash.h”
typedef unsigned int uint;
typedef unsigned char uchar;
//void write_flash_char();
void writeflashchar(unsigned int addr,char *array,int count) ;
void writeflashint(unsigned int addr,int *array,int count) ;
void Delay400ms();
void delay();
void Delay5ms();
uint i = 0,j = 0,dir = 0;
uint flag = 0,speed = 0; //flag–灯光流动方式,speed–灯光流动速度
uint tmp;
uint m;
// uint tmp1=12000;
// uint tmp2=1200;
// uint tmp3=12000;
// uint tmp4=1200;
// uint tmp5=12000;
uchar shuju;
int shuju1;
/主函数/
void main(void)
{

/*下面六行程序关闭所有的IO口*/
P1DIR = 0XFF;P1OUT = 0XFF;
P2DIR = 0XFF;P2OUT = 0XFF;
P3DIR = 0XFF;P3OUT = 0XFF;
P4DIR = 0XFF;P4OUT = 0XFF;
P5DIR = 0XFF;P5OUT = 0XFF;
P6DIR = 0XFF;P6OUT = 0X00;

WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
P6DIR |= BIT2;P6OUT |= BIT2;    //关闭电平转换
P5OUT &= ~BIT7;

CCTL0 = CCIE;                   //使能CCR0中断
CCR0 = 50000;
TACTL = TASSEL_2 + ID_3 + MC_1; //定时器A的时钟源选择SMCLK,增计数模式
P2DIR = 0xff;                   //设置P2口方向为输出
P2OUT = 0xff;

P1DIR = 0xff;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值