找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2148|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

請問stc15單片機芯片這個更改頻率的程序是否有效?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:480680 發(fā)表于 2019-7-26 14:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
占空比可以不變,一直是百分之50,直接改變定時器定時時長周期=1/頻率   定時時長=周期/2假設(shè)晶振頻率12M,定時器可以定時1us至65ms1000HZ時周期1ms,定時500us   50HZ時周期為20ms 定時10ms,剛好在其定時范圍內(nèi).以下是我寫的程序

#include "15.h"               
#define uchar unsigned char
#define uint  unsigned int
#define CCP_S0   0x10
#define CCP_S1   0x20
sbit pluse=P1^1;
sbit key1=P2^0;
uint f=0,t;
void delayms(uint z)
{
        uint i,j;
        for(i=z;i>=0;i--)
        for(j=110;j>=0;j--);
}
void keyscan()
{
if(key1==0)
{  
        delayms(10);//延時消抖
        if(key1==0)
        {
                while(key1==0);//等待按鍵抬起
                f=f+50;//頻率增加50HZ
        }
        if(f>1000)
                f=50;//超過1000HZ回到最低50HZ
                t=1000000/f/2;//計算定時器定時時長,即計時脈沖個數(shù)
}
}
void T0_timer()  interrupt 1
{
        TL0=(65536-t)%256;
        TH0=(65536-t)/256;
        pluse=~pluse;
}
void init()
{

        TMOD=0x01;
    TL0=(65536-t)%256;
        TH0=(65536-t)/256;
        EA=1;
        ET0=1;
        TR0=1;
}
void pwminit()
{
        CMOD=0x20; //系統(tǒng)頻率為原來的二分之一
        CCAPM0=0x42;
        PCA_PWM0=0x00;
        CH=0;
        CL=0;
        CCAP0H=128;           //初始化裝載值
        CCAP0L=128;
        CR=1;
}
void main()
{
        ACC = P_SW1;
    ACC &= ~(CCP_S0 | CCP_S1);              //CCP_S0=0 CCP_S1=0
    P_SW1 = ACC;                            //(P1.2/ECI, P1.1/CCP0, P1.0/CCP1, P3.7/CCP2)

//  ACC = P_SW1;
//  ACC &= ~(CCP_S0 | CCP_S1);              //CCP_S0=1 CCP_S1=0
//  ACC |= CCP_S0;                          //(P3.4/ECI_2, P3.5/CCP0_2, P3.6/CCP1_2, P3.7/CCP2_2)
//  P_SW1 = ACC;
//
//  ACC = P_SW1;
//  ACC &= ~(CCP_S0 | CCP_S1);              //CCP_S0=0 CCP_S1=1
//  ACC |= CCP_S1;                          //(P2.4/ECI_3, P2.5/CCP0_3, P2.6/CCP1_3, P2.7/CCP2_3)
//  P_SW1 = ACC;
        init();
        pwminit();
        while(1)
        {
                keyscan();        
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表