久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3267|回復(fù): 4
收起左側(cè)

STC12C5A60S2單片機(jī)pwm頻率可調(diào)程序 定時(shí)器初值問(wèn)題

[復(fù)制鏈接]
ID:254747 發(fā)表于 2019-8-7 00:08 | 顯示全部樓層 |閱讀模式
這個(gè)程序目前可以實(shí)現(xiàn)  5-120hz可調(diào)   
但是超過(guò)120的時(shí)候 這個(gè)TH0 =(65536-FOSC/(XHZ*256))/256;計(jì)算就會(huì)出錯(cuò)  我調(diào)試的時(shí)候發(fā)現(xiàn)這個(gè)=2了  
但是我將FOSC/(XHZ*256)這個(gè)結(jié)果計(jì)算出來(lái)直接放進(jìn)去就可以正常輸出頻率  請(qǐng)問(wèn)這個(gè)是什么問(wèn)題啊   非常著急  希望告訴解答一下 謝謝

我想要的是0-300hz可調(diào)即可  

單片機(jī)源程序如下:
#include <STC12C5A60S2.H>
#include <math.h>
sbit   LED=P3^7;
unsigned int count ;

#define FOSC 18432000
#define XHZ   125
//#define T1MS (65536-FOSC/1000/256)
//unsigned char XHZ=100;
void Timer0Init(void)        
{


    AUXR |= 0x80;                //定時(shí)器時(shí)鐘1T模式
        TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
        TMOD |= 0x01;                //設(shè)置定時(shí)器模式
//        TH0 =254;//(65536-24000000/(XHZ*256))/256;                //設(shè)置定時(shí)初值
//        TL0 =152;//(65536-24000000/(XHZ*256))%256;                //設(shè)置定時(shí)初值
   TH0 =(65536-FOSC/(XHZ*256))/256;                //設(shè)置定時(shí)初值
   TL0 =(65536-FOSC/(XHZ*256))%256;                //設(shè)置定時(shí)初值

        TF0 = 0;                //清除TF0標(biāo)志
        TR0 = 1;                //定時(shí)器0開(kāi)始計(jì)時(shí)        
        EA=1;
        ET0=1;

}

void main()
{




        Timer0Init();
    CCON = 0;                       
    CL = 0;                        
    CH = 0;
    CMOD = 0x04;                    

//    CCAP0H = CCAP0L = 0x80;         //PWM0 port output 50% duty cycle square wave
//   CCAPM0 = 0x42;                  //PCA module-0 work in 8-bit PWM mode and no PCA interrupt
         
    CCAP1H = CCAP1L = 0x80;         //PWM1 port output 0% duty cycle square wave
    PCA_PWM1 = 0x00;
    CCAPM1 = 0x42;
    CR = 1;                         //PCA timer start run

    while (1);
}
void tm0_isr() interrupt 1 using 1
{
//        TH0 =254;//(65536-24000000/(XHZ*256))/256;                //設(shè)置定時(shí)初值
//        TL0 =152;//(65536-24000000/(XHZ*256))%256;                //設(shè)置定時(shí)初值
   TH0 =(65536-FOSC/(XHZ*256))/256;                //設(shè)置定時(shí)初值
   TL0 =(65536-FOSC/(XHZ*256))%256;                //設(shè)置定時(shí)初值

        
}

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:258566 發(fā)表于 2019-8-7 09:43 | 顯示全部樓層
后面加個(gè)UL
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2019-8-7 09:59 | 顯示全部樓層
殺雞焉用牛刀,想要50%占空比0-300hz可調(diào)的矩形波只要簡(jiǎn)單使用定時(shí)器就可以實(shí)現(xiàn)。
回復(fù)

使用道具 舉報(bào)

ID:596860 發(fā)表于 2019-8-7 14:17 | 顯示全部樓層
不錯(cuò),很喜歡,希望能實(shí)現(xiàn)。謝謝
回復(fù)

使用道具 舉報(bào)

ID:254747 發(fā)表于 2019-8-8 23:52 | 顯示全部樓層

謝謝  感謝你的回答  加了UL果然好用    但是為什么我    應(yīng)為我要可調(diào)頻率  我把初值里面XHZ這個(gè)變量替換成unsigned int 變量后就不能正常輸出了  只能宏定義才可以   這是為什么啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 网站黄色av| 中文精品视频 | 特级黄一级播放 | 日本小电影网站 | 国产乱码精品一区二区三区五月婷 | 久久精品亚洲精品国产欧美kt∨ | 断背山在线观看 | 精品二 | 91视频入口 | 伊人春色成人 | 亚洲精品视频导航 | 久久久久九九九女人毛片 | 国产精品久久久久久久久久久免费看 | 亚洲精品乱码久久久久久按摩观 | 91久久精品国产 | 亚洲区一区二 | 欧美精品1区2区3区 精品国产欧美一区二区 | 97久久精品午夜一区二区 | 亚洲欧美中文日韩在线v日本 | 一级黄色在线 | 国产免费观看久久黄av片涩av | 久久人 | 久久成人精品视频 | 国产日韩欧美一区 | 久久性av | 亚洲不卡在线视频 | 亚洲品质自拍视频网站 | 久久久激情视频 | 日韩精品在线一区 | 亚洲综合大片69999 | 亚洲免费高清 | 台湾a级理论片在线观看 | 911精品国产 | 一区二区日韩 | 精品成人免费一区二区在线播放 | 毛片免费视频 | av网址在线 | 不卡欧美 | 国产精品永久免费视频 | 亚洲国产精品网站 | www.一区二区三区 |