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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3871|回復: 4
打印 上一主題 下一主題
收起左側

求大神講解單片機pwm調光實驗

[復制鏈接]
跳轉到指定樓層
樓主
ID:59839 發表于 2014-7-10 11:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "config.h"
// 延時函數
void delay(U32 dly)
{
    U32 i;
    while(--dly > 0)
    {
        for(i=0;i++;i<1000000);
    }
}
#define TIMER0_RUN_HZ       10000          //每秒多少次進入定時器中斷
#define T0RELOAD      (65536 - (Fpclk/TIMER0_RUN_HZ))
// 定義一個易變型變量并初始化為0
volatile U32 SYS_Time = 0;
volatile U32 LED_PWM  = 0;
void ISR_TIMER0(void) interrupt 1 using 1
{
    // 重新裝載定時器值  
TH0 = T0RELOAD / 256;
TL0 = T0RELOAD % 256;
    // 以下添加用戶程序
    SYS_Time++;
    if(SYS_Time < LED_PWM) // PWM調光程序
    {
        P0 = 0;            // 點亮LED燈
    }else{
        P0 = 0xff;         // 關閉LED燈
    }
    if(SYS_Time > 100)SYS_Time = 0;
}
void TIMER0_Init(void)
{
    TMOD &= 0xf0;
    TMOD |= 0x01;       // 16位計數器
TH0 = T0RELOAD / 256;
TL0 = T0RELOAD % 256;
AUXR |= 0x80;       // 計數器0時鐘為Fosc,即1T
    PT0 = 1;            // 定時器0優先級控制位, 1 為高優先級 0 為低優先級
ET0 = 1;            // 定時器0中斷使能
TR0 = 1;            // 啟動定時器
    EA  = 1;            // 開總中斷
}
// 主程序入口函數
void main(void)
{
    U8  i;          // 循環用變量
    TR0 = 0;            // 暫時關閉定時器
    for(i = 0;i<3;i++)
    {
        P0 = 0;         // 八個燈全亮
        delay(50000);   // 延時一段時間
        P0 = 0xff;      // 八個燈全滅
        delay(20000);   // 延時一段時間
    }
    TR0 = 1;            // 啟動定時器
    while(1)
    {
        delay(5000);    // 延時一段時間
        P33 = 1;        // 釋放按鈕1輸出
        if(P33 == 0)    // 檢測按鈕1是否按下
        {
            LED_PWM = 0;// 熄滅LED
        }
        P34 = 1;        // 釋放按鈕2輸出
        if(P34 == 0)    // 檢測按鈕2是否按下
        {
            if(LED_PWM < 100)LED_PWM++;     // 調亮LED
        }
        P35 = 1;        // 釋放按鈕3輸出
        if(P35 == 0)    // 檢測按鈕3是否按下
        {
            if(LED_PWM > 0)LED_PWM--;       // 調暗LED
        }
    }
}
這個程序里定時器、各個變量的作用以及它們之間的關系是怎么樣的,LED_PWM++;LED_PWM--; 與定時器的周期是什么關系?     
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:44262 發表于 2014-7-17 16:43 來自手機 | 只看該作者
其實這就是改變了脈沖寬度 ,相同頻率的方波如果脈沖寬度越寬的話 ,在單位時間內輸出了功率就越高 所以等也就會越亮
回復

使用道具 舉報

板凳
ID:59839 發表于 2014-7-21 09:17 | 只看該作者
a110 發表于 2014-7-17 16:43
其實這就是改變了脈沖寬度 ,相同頻率的方波如果脈沖寬度越寬的話 ,在單位時間內輸出了功率就越高 所以等 ...

那這個程序里LED_PWM++;LED_PWM--;每加一次和每減一次的時間和定時器的周期有什么關系呢?
回復

使用道具 舉報

地板
ID:64203 發表于 2014-7-24 22:28 | 只看該作者
加減是控制亮度,周期的大小決定亮度變化的精度
回復

使用道具 舉報

5#
ID:64273 發表于 2014-8-6 02:47 | 只看該作者
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩欧美激情 | 国产精品一区一区 | 亚洲精品久久久9婷婷中文字幕 | 久久久久成人精品免费播放动漫 | 欧美精品一区二区三区在线播放 | 日韩av成人 | 男人的天堂久久 | 久久亚洲一区二区三 | 国产激情在线观看 | 久久国产精品99久久久久久丝袜 | 亚洲一区二区三 | 国产福利在线免费观看 | 成人一区二区三区在线观看 | 成人免费视频网站在线观看 | 天天躁日日躁狠狠的躁天龙影院 | av日日操 | 男女视频91| 九九精品在线 | 一本久久a久久精品亚洲 | 亚洲一区二区视频 | 精品毛片在线观看 | 精品国产一区探花在线观看 | av香蕉| 国产91亚洲精品一区二区三区 | 黑人巨大精品欧美黑白配亚洲 | 一区二区三区久久 | 亚洲视频免费 | av网址在线播放 | 天天天天天天操 | 亚洲 欧美 精品 | 久色网 | 视频一区二区在线观看 | 日韩不卡一区二区 | 99爱在线观看| 久久天天躁狠狠躁夜夜躁2014 | 国产精品久久久久久久久久久久冷 | 日韩一区二区黄色片 | 亚洲免费福利视频 | 一区二区三区四区在线视频 | 色爽女 | 国产伦精品一区二区三区视频金莲 |