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

標題: STC89單片機 定時器做PWM程序 [打印本頁]

作者: 人人學會單片機    時間: 2020-12-31 11:20
標題: STC89單片機 定時器做PWM程序
本帖最后由 人人學會單片機 于 2020-12-31 15:10 編輯

很多小白不明白PWM怎么回事。只能說明你們看的教程沒講。我們人人學會單片機教程就講過。其實很簡單的。特分享CPU定時器模擬PWM輸出給你們
#include "STC89.H"                                        //頭文件包含
#include <intrins.h>                                //頭文件包含
typedef unsigned char u8;                        //重新定義數據類型名
typedef unsigned short u16;                        //重新定義數據類型名
typedef unsigned long u32;                        //重新定義數據類型名
sbit PWM_OUT=P2^1;        
u8 idata PWM_Write_Byte[3]=0;

//****************************祁緒電子 2020年5月***
// 定時器0初始化  晶振11059200,12T,輸出50Hz的PWM,占空比0~255
// 定時器初值為:256-(11059200÷12÷50Hz÷256) = 184 = 0xB8
void PWM_Init(void)
{
        TMOD &= 0xF0;                                        //配置定時器工作模式
        TMOD |= 0x02;                                        //配置定時器工作模式 8位自動重裝模式
    TL0 = 0xB8;;                    //定時器初值
    TH0 = 0xB8;                                //定時器重裝初值
    TR0 = 1;                        //啟動定時器0
    ET0=1;                                                         //允許定時器0申請中斷
        EA=1;                                                        //中斷總閘閉合
}
//****************************祁緒電子 2020年5月***
//定時器0的CPU處理函數,位置任意寫都行
void PWM_Display_timer0() interrupt 1
{
        
        static u8 pwm_t=0;                                 //局部變量,不丟失數據
        if(pwm_t<PWM_Write_Byte[0])
        {
                PWM_OUT=1;                                 
        }
        else PWM_OUT=0;
        pwm_t++;
}

//***************************祁緒電子 2020年5月***
// PWM 數模變換數據分配
void PWM_Allot()                                          
{
        static u8 kkk=0;        
        static u8 count=0;
        count++;
        if(count>100)
        {
                count=0;
                kkk++;
                PWM_Write_Byte[0]=kkk;        //kkk為占空比自動增加
                PWM_Write_Byte[1]=10;        
                PWM_Write_Byte[2]=10;
        }
}


void main()                                                        //主函數
{
        PWM_Init();
        while(1)                                                //主函數大循環
        {
                PWM_Allot();        
        }
}



作者: cdiyy    時間: 2021-1-5 17:42
學習了。很好
作者: 明日香    時間: 2021-1-24 09:52
請問PWM_Write_Byte[3]的作用是什么啊?為什么要進行數模轉換呢?

作者: 人人學會單片機    時間: 2021-1-24 10:16
明日香 發表于 2021-1-24 09:52
請問PWM_Write_Byte[3]的作用是什么啊?為什么要進行數模轉換呢?

你居然能問這種問題,你家的燈,你不開它你又看不見,開它吧你又覺得太亮,太浪費電。而有時候必須最亮工作。你說怎么辦?
作者: aktuan007    時間: 2021-1-24 14:17
這貌似是一個比較復雜的PWM
作者: 51mcu學習    時間: 2021-1-25 15:38
學習啦!用到哪里學習到哪里,知識慢慢地積累
作者: 249449417@qq.co    時間: 2021-1-29 09:51
學習啦!用到哪里學習到哪里,知識慢慢地積累
作者: zhujiyong    時間: 2021-1-29 15:37
程序看的很清楚,真是用心啊
作者: 249449417@qq.co    時間: 2023-9-13 16:03
需要這樣才能產生準確的50HZ的PWM。
void PWM_Init(void)
{
    TMOD &= 0xF0;                   //配置定時器工作模式
    TMOD |= 0x02;                   //配置定時器工作模式 8位自動重裝模式
    TL0 = 0xB8;;                    //定時器初值
    TH0 = 0xB8;                     //定時器重裝初值
    TR0 = 1;                        //啟動定時器0
    ET0=1;                          //允許定時器0申請中斷
    EA=1;                           //中斷總閘閉合
}
void PWM_Display_timer0() interrupt 1
{
        static u8 pwm_t=0;                                 //局部變量,不丟失數據
                TR0 = 0;
        if(pwm_t<PWM_Write_Byte[0])
        {
            PWM_OUT=1;                                 
        }
        else PWM_OUT=0;
        pwm_t++;
                TR0 = 1;
}
作者: oiui1    時間: 2023-10-6 19:50
249449417@qq.co 發表于 2023-9-13 16:03
需要這樣才能產生準確的50HZ的PWM。
void PWM_Init(void)
{

pwm_t 都沒有清零,
作者: hww22    時間: 2023-10-12 10:49
oiui1 發表于 2023-10-6 19:50
pwm_t 都沒有清零,

if(pwm_t >255)
pwm_t =0;
作者: hww22    時間: 2023-10-12 10:56
oiui1 發表于 2023-10-6 19:50
pwm_t 都沒有清零,

if(pwm_t >100) pwm_t =0;
作者: 王秋冬    時間: 2024-6-22 15:43
多謝樓主分享,51黑有你更精彩。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 超碰在线人 | 国产福利资源在线 | 国产一区二区三区四区在线观看 | 国产97久久 | 欧美激情一区二区 | 国产精品永久久久久久久www | 久久综合av | 欧美一区二区免费 | 一区二区三区欧美 | 精品av天堂毛片久久久借种 | 在线观看国产精品一区二区 | 久久成人免费观看 | 91麻豆产精品久久久久久夏晴子 | 亚洲精品在线免费观看视频 | 少妇一区在线观看 | 中文字幕av色 | 精品视频免费在线 | 国产日韩欧美在线观看 | 国产美女自拍视频 | 午夜精品久久久久久久久久久久久 | 天堂成人国产精品一区 | 欧美中文一区 | 一区在线观看 | 国产欧美精品一区二区三区 | a级毛片基地 | 成人国产在线视频 | 国产日韩欧美在线 | 久久精品国产久精国产 | 女女百合av大片一区二区三区九县 | 精品国产99| 久久精品成人一区 | 九九伦理片 | 美女日批免费视频 | 久久新视频 | 中文字幕在线一区二区三区 | 久久国产精品久久久久久 | 亚洲欧美视频 | 成人在线一区二区 | 青青草综合网 | 国产欧美一区二区在线观看 | 国产一区免费 |