標題: 關于C語言定時器重載值修正的問題 [打印本頁]
作者: 星際漫游者 時間: 2017-7-24 10:28
標題: 關于C語言定時器重載值修正的問題
只是一個PWM控制LED燈的小程序。我對于C語言的定時器修正值判斷不清楚,這里的修正值13,
不知道從哪里開始數機械周期的
#include <reg52.h>
sbit PWMOUT = P0^0;
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
unsigned char HReloadH = 0; //高電平重載值的高字節
unsigned char HReloadL = 0; //高電平重載值的低字節
unsigned char LReloadH = 0; //低電平重載值的高字節
unsigned char LReloadL = 0; //低電平重載值的低字節
void ConfigPWM(unsigned int fr, unsigned char dc);
void ClosePWM();
void main ()
{
unsigned int i;
P0 = 0xFF; //P0口初始化
ADDR0 = 0; //選擇獨立LED
ADDR1 = 1;
ADDR2 = 1;
ADDR3 = 1;
ENLED = 0; //LED總使能
EA = 1; //開總中斷
while(1)
{
ConfigPWM(100, 10); //頻率100Hz,占空比10%
for (i=0; i<40000; i++);
ClosePWM();
ConfigPWM(100, 40); //頻率100Hz,占空比40%
for (i=0; i<40000; i++);
ClosePWM();
ConfigPWM(100, 90); //頻率100Hz,占空比90%
for (i=0; i<40000; i++);
ClosePWM();
for (i=0; i<40000; i++);
}
}
void ConfigPWM(unsigned int fr, unsigned char dc) //PWM配置函數,fr-頻率,dc-占空比
{
unsigned int high, low;
unsigned long tmp;
tmp = (11059200 / 12) / fr; //計算一個周期所需的計數值
high = (tmp * dc) / 100; //計算高電平所需的計數值
low = tmp - high; //計算低電平所需的計數值
high = 65536 - high + 13; //計算高電平的定時器重載值并修正
low = 65536 - low + 13; //計算低電平的定時器重載值并修正
HReloadH = (unsigned char)(high >> 8); //高電平重載值拆分為高低字節
HReloadL = (unsigned char)high;
LReloadH = (unsigned char)(low >> 8); //低電平重載值拆分為高低字節
LReloadL = (unsigned char)low;
TMOD &= 0xF0; //清零T0的控制位
TMOD |= 0x01; //配置T0為模式1
TH0 = HReloadH; //加載T0重載值
TL0 = HReloadL;
ET0 = 1; //使能T0中斷
TR0 = 1; //啟動T0
PWMOUT = 1; //輸出高電平
}
void ClosePWM() //關閉PWM
{
TR0 = 0; //停止定時器
ET0 = 0;
PWMOUT = 1; //輸出高電平
}
void InterruptTimer0() interrupt 1 //T0中斷服務函數
{
if (PWMOUT == 1) //當前輸出為高電平時,裝載低電平值并輸出低電平
{
TH0 = LReloadH;
TL0 = LReloadL;
PWMOUT = 0;
}
else //當前輸出為低電平時,裝載高電平值并輸出高電平
{
TH0 = HReloadH;
TL0 = HReloadL;
PWMOUT = 1;
}
作者: 星際漫游者 時間: 2017-7-25 10:05
我能說我打錯字了嗎 “這是控制LED燈的程序”
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
国产一级特黄
|
黄色片在线免费观看
|
韩日一级片
|
日本黄色录像
|
91蝌蚪少妇偷拍
|
成人精品免费视频
|
国产一区精品在线
|
九九色综合|
黄色免费片
|
日本久久久久
|
五月婷婷色
|
在线亚洲天堂
|
亚洲在线一区二区
|
日韩精品视频在线免费观看
|
国产欧美日本
|
中文字幕三区
|
欧美一区视频
|
三级在线观看
|
亚洲欧美日韩综合
|
免费看黄色aaaaaa 片
|
99久久九九
|
白白色在线观看
|
亚洲福利视频一区
|
亚洲色网址
|
久久久国产一区二区三区
|
亚洲一区二区国产精品
|
成人一级视频
|
中文在线免费看视频
|
视频在线一区
|
一区二区三区免费观看
|
久久精品福利视频
|
青青草网站
|
国产涩涩
|
国产一区二区三区久久
|
中文字幕在线观看日本
|
亚洲二区视频
|
精品亚洲一区二区
|
18视频在线观看
|
天天爽夜夜操
|
在线不卡av|
中文字幕在线观看一区二区三区
|