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左右的頻率范圍