欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STC15F104W單片機實現編碼器調節兩路PWM輸出程序
[打印本頁]
作者:
yaojil
時間:
2020-2-2 14:42
標題:
STC15F104W單片機實現編碼器調節兩路PWM輸出程序
#include <STC15F104E_PLUS.h>
#include <intrins.h>
#define uchar unsigned char
//#define uint unsigned int
sbit VD=P3^3; //紅色LED 0.50v=10v ;1.00=27v ;3.85=73v;
sbit CD=P3^4; //綠色LED
sbit ZS=P3^5; //指示LED轉換 0 - 紅色LED調整;1 - 綠色LED調整
sbit BA=P3^0; //編碼器的a腳接P3.0
sbit BB=P3^1; //編碼器的b腳接P3.1
sbit QH=P3^2; //編碼器的按鍵接P3.2 電壓調整或電流調整249=5.00V
uchar v_temp = 128,c_temp = 109,XZ = 0,flag,a0,b0,c0;//占空比 189=3.70V;109=0.75V;128=1.00V
//延時函數,大約延時10ms.此處未用到
/*void Delay10ms() //@11.0592MHz
{
unsigned char i, j;
i = 108;
j = 145;
do
{
while (--j);
} while (--i);
}*/
void bianmaqi(void)//捕捉EC11按下和旋轉信息
{
unsigned char a, b, c;
a = BA;
b = BB;
if (a != a0) // A changed
{
a0 = a;
if (b != b0) // B changed
{
b0 = b;
if (a == b)
{
if (XZ == 0)
{
if (v_temp < 249) v_temp++;
}
else if ( XZ == 1)
{
if (c_temp < 208)c_temp++;;
}
}
else if (a != b)
{
if ( XZ == 0)
{
if (v_temp > 85)v_temp--;
}
else if ( XZ == 1)
{
if (c_temp > 1)c_temp--;
}
}
}
}
c = QH;
if (!c && c0)
{
if (XZ == 0 )
{
XZ = 1;
ZS = 1;
}
else if(XZ == 1)//切換
{
XZ = 0;
ZS = 0;
}
}
c0 = c;
}
void InitTimer0() interrupt 1 // 0.5毫秒@11.0592MHz //定時器T0 16位自動模式定時1ms 控制燈滅時間 頻率 2000HZ
{
IE2 = 0x00; //關閉定時器2中斷
AUXR = 0XE4; //關閉定時器2計數
TL0 = 0xCD;
TH0 = 0xD4;
VD = 1;
CD = 1;
// blue=1;
flag = 1;
AUXR = 0xF4; //開啟定時器2計數
IE2 = 0x04; //開啟定時器2中斷允許
}
void InitTimer2() interrupt 12 // 2.5微秒@11.0592MHz //定時器T2 16位自動模式定時4us 控制燈亮時間
{
flag++;
T2L = 0xD4; //設置定時初值
T2H = 0xFF; //設置定時初值
if(v_temp == flag) VD=0;
if(c_temp == flag) CD=0;
// if(b_temp == flag) blue=0;
}
void init()
{
AUXR = 0XE4; //設置定時器0和2為1T模式
TMOD = 0x00;
TL0 = 0xCD;
TH0 = 0xD4;
T2L = 0xD4; //設置定時初值
T2H = 0xFF; //設置定時初值
EA = 1;
ET0 = 1;
TR0 = 1;
P3M1 &= 0xF7;
P3M0 |= 0x08; //P3.3(推挽)
P3M1 &= 0xEF;
P3M0 |= 0x10; //P3.4(推挽)
P3M1 &= 0xDF;
P3M0 |= 0x20; //P3.5(推挽)
VD = 0;
CD = 0;
ZS = 0; // 0 - 電壓調整狀態;1 - 電流調整狀態
a0 = BA;
b0 = BB;
c0 = QH;
}
void main()
{
init();
while(1)
{
bianmaqi();
}
}
復制代碼
STC15F104W實現編碼器調節兩路PWM輸出.rar
2020-2-2 14:40 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
33.85 KB, 下載次數: 129, 下載積分: 黑幣 -5
作者:
molo
時間:
2020-2-3 16:40
沒有工程文件;只有一個C文件,其中也沒有頭文件STC15F104E_PLUS.h
作者:
15250314250
時間:
2022-2-28 22:59
剛剛試了樓主的文件,好像沒成功,調整頻率和占空比無反應,不知道問題在那
作者:
youlinys
時間:
2022-3-1 11:07
樓主能不能介紹一下實現過程?
作者:
steary
時間:
2022-4-6 00:27
樓主能不能介紹一下實現過程?
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1