A. 怎么知道MSP430中的CPU的主频频率是多少啊
单片机的主频取决于你主系统时钟所选用的时钟源,即MCLK选取那种时钟振荡器,是DCO、低速晶体还是高速晶体。DCO频率随着温度波动,想要精确延时,选用低速晶体或者高速晶体,具体的MCLK的数值与选用的时钟源和时钟源分频比有关。如MCLK选用高速晶体8MHZ,分频比为1/8,那么你的MCLK为1MHZ。就像你说明里的那个,MCLK选用高速晶体8MHZ,分频比为1,你的MCLK为8MHZ。 如果你想要知道你单片机的MCLK,查找基础时钟控制寄存器。
B. 单片机问题
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint ms)
{
uchari;
while(ms--)for(i=0;i<120;i++);
}
//向串口发送字符
void Putc_to_SerialPort(uchar c)
{
SBUF=c;
while(TI==0);
TI=0;
}
//主程序
void main()
{
ucharOperation_No=0;
SCON=0x40; //串口模式1
TMOD=0x20; //T1工作模式2
PCON=0x00; //波特率不倍增
TH1=0xfd;
TL1=0xfd;
TI=0;
TR1=1;
while(1)
{
Putc_to_SerialPort(P1);
DelayMS(100);
}
}
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint ms)
{
uchari;
while(ms--)for(i=0;i<120;i++);
}
//主程序
void main()
{
SCON=0x50; //串口模式1,允许接收
TMOD=0x20; //T1工作模式2
PCON=0x00; //波特率不倍增
TH1=0xfd; //波特率9600
TL1=0xfd;
RI=0;
TR1=1;
while(1)
{
if(RI)
{
RI=0;
P1=SBUF;
}
DelayMS(100);
}
}
C. stc12c5a60s2单片机 输出自带pwm频率怎么改变,比如说我现在需要50hz的频率
1,stc12c5a60s2一般pwm频率=PCA时钟源/256
2,PCA时钟源设置有4种方式,一般都有T0的溢出率,来设置PCA时钟源,
一般在COMD这个寄存器的B2,B1两位来确定是那种方式,10方式就是T0溢出方式(1T更快),可以做可变PCA时钟源时钟源,从而得到可变频率的pwm输出。
3,理论可生成(1-65535)个频率级别,如12MHz主频,(1T)方式最小可以做到12MHz,但实际是到了的最快也就是1/2SYsclk,即6MHz,然后除以256,理想可以输出23Khz~0.5Hz左右的频率范围