久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STC12單片機兩路PWM輸出(占空比可調)程序
[打印本頁]
作者:
大風吹過啊
時間:
2017-8-4 18:39
標題:
STC12單片機兩路PWM輸出(占空比可調)程序
/****************************************************************************
*
*
* PWM輸出(可調)程序
*
* Don.2017.7
*
*****************************************************************************/
#include <STC12C5A60S2.h>
#include <intrins.h>
typedef unsigned char uchar8;
sbit PWM0_ADD = P2 ^ 0;
sbit PWM0_CUT = P2 ^ 1;
sbit PWM1_ADD = P2 ^ 2;
sbit PWM1_CUT = P2 ^ 3;
void PWM0_OUT( )
{
CCON = 0x00;
//PCA控制器清零
CL = 0;
CH = 0;
//16位PAC計數器清零
/*
TMOD = 0x42;
//定時器0工作在模式2(8位自動重裝)
TL0 = ;
TH0 = ;
//寫入初值
//計算: 初值 = (256 - 外部晶振頻率 / PCA時鐘源頻率)H
//PCA時鐘源頻率 = 256 * PWM頻率
AUXR = 0X80;
//T0工作在1T模式
TR0 = 1;
//T0開始工作
*/
CMOD = 0x08;
//設置計數器時鐘源
//0x00:系統時鐘/12, 0x02:系統時鐘/2
//0x04: 定時器T0溢出脈沖, 0x06: P1.2引腳輸入的外部時鐘
//0x08:系統時鐘, 0x0a: 系統時鐘/4
//0x0c: 系統時鐘/6, 0x0e: 系統時鐘/8
//PWM波的頻率 = CMOD數值(10位)/256
CCAPM0 = 0x42;
//8位PWM P1.3輸出
//0x42:無中斷;0x53:下降沿產生中斷;
//0x63:上升沿產生中斷;0x73:跳變沿產生中斷
CCAP0L = 0xc0;
CCAP0H = 0xc0;
//占空比設置:數值 / 256 * 100%
//0xc0:占空比為25%,0x80:占空比為50%,0x40:占空比為75%
CR = 1;
}
void PWM1_OUT( )
{
CCON = 0x00;
//PCA控制器清零
CL = 0;
CH = 0;
//16位PAC計數器清零
CMOD = 0x08;
//設置計數器時鐘源
//0x00:系統時鐘/12, 0x02:系統時鐘/2
//0x04: 定時器T0溢出脈沖, 0x06: P1.2引腳輸入的外部時鐘
//0x08:系統時鐘, 0x0a: 系統時鐘/4
//0x0c: 系統時鐘/6, 0x0e: 系統時鐘/8
//PWM波的頻率 = CMOD數值(10位)/256
CCAPM1 = 0x42;
//8位PWM P1.3輸出
//0x42:無中斷;0x53:下降沿產生中斷;
//0x63:上升沿產生中斷;0x73:跳變沿產生中斷
CCAP1L = 0xc0;
CCAP1H = 0xc0;
//占空比設置:數值 / 256 * 100%
//0xc0:占空比為25%,0x80:占空比為50%,0x40:占空比為75%
CR = 1;
}
void PWM0_Alter(uchar8 type0, uchar8 change0)
//type = 0減占空比,1增加占空比 change: 0x0c約5%,0x05約2%
{
if(type0 == 0)
{
if(CCAP0L < 0xe6) //<90%
{
CCAP0L += change0;
CCAP0H += change0;
}
}
else
{
if(CCAP0L > 0x19) //>10%
{
CCAP0L -= change0;
CCAP0H -= change0;
}
}
}
void PWM1_Alter(uchar8 type1, uchar8 change1)
//type1 = 0減占空比,1增加占空比 change1: 0x0c約5%,0x05約2%
{
if(type1 == 0)
{
if(CCAP1L < 0xe6) //<90%
{
CCAP1L += change1;
CCAP1H += change1;
}
}
else
{
if(CCAP1L > 0x19) //>10%
{
CCAP1L -= change1;
CCAP1H -= change1;
}
}
}
void PWM_Alter_Drive( )
{
if(PWM0_ADD == 0)
{
_nop_( );_nop_( );_nop_( );_nop_( );
//按鍵消抖
while(PWM0_ADD == 0);
//按鍵釋放才跳出執行下一步
PWM0_Alter(1, 0x05);
}
if(PWM0_CUT == 0)
{
_nop_( );_nop_( );_nop_( );_nop_( );
while(PWM0_CUT == 0);
PWM0_Alter(0, 0x05);
}
if(PWM1_ADD == 0)
{
_nop_( );_nop_( );_nop_( );_nop_( );
//按鍵消抖
while(PWM1_ADD == 0);
//按鍵釋放才跳出執行下一步
PWM1_Alter(1, 0x05);
}
if(PWM1_CUT == 0)
{
_nop_( );_nop_( );_nop_( );_nop_( );
while(PWM1_CUT == 0);
PWM1_Alter(0, 0x05);
}
}
void main( )
{
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
//配置標準I/O口
PWM0_OUT( );
PWM1_OUT( );
while(1)
{
PWM_Alter_Drive( );
}
}
作者:
大風吹過啊
時間:
2017-8-4 19:49
可調占空比
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久国产高清
|
亚洲福利视频网
|
精品国产一区二区三区免费
|
日韩成人影院在线观看
|
欧美久久电影
|
亚州av
|
亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区
|
黄片毛片
|
久久夜色精品国产
|
一区二区三区国产好的精
|
久久精品成人
|
99精品国自产在线观看
|
爱爱小视频
|
欧美一区二区综合
|
色噜噜狠狠色综合中国
|
欧美成人一区二区
|
黄色片网站国产
|
日韩精品一区二区三区中文字幕
|
亚洲日韩视频
|
午夜一级大片
|
国产精品久久久亚洲
|
国产中文字幕网
|
精品一区二区三区四区外站
|
久久精品色欧美aⅴ一区二区
|
午夜久久久
|
亚洲欧美日韩精品久久亚洲区
|
可以在线看的黄色网址
|
福利社午夜影院
|
亚洲精品免费视频
|
91精品国产91久久久久久最新
|
久久99网
|
国产精品一级
|
国产乱码精品1区2区3区
|
欧美一区二区三区电影
|
国产96在线
|
中文字幕在线一区二区三区
|
久久亚洲综合
|
美女二区
|
日韩和的一区二区
|
亚洲午夜视频
|
午夜精品久久久久久久久久久久久
|