91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 36KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-05-12
  • 語言: 其他
  • 標簽: STM8??003??PWM??

資源簡介

在STM8S003系統(tǒng)上實現(xiàn)芯片PWM功能。通過定時器實現(xiàn)占空比可調(diào)。

資源截圖

代碼片段和文件信息

/*?MAIN.C?file
?*
?*?Copyright?(c)?2002-2005?STMicroelectronics
?*/
#include?“stm8s103f3p.h“
_Bool?LED1??@PB_ODR:5; //位定義?PB5定義為輸出
/*
將PD2口復(fù)用為TIM2_CH3然后輸出占空比可調(diào)的PWM波
TIM2_CH3_PWM
PD2?output
PB5?output
*/
void?delay_ms(unsigned?int?Tms)
{
unsigned?int?a;
while(Tms--)
{
for(a=0;?a<=500;?a++);
}
}

void?CLK_Init(void)
{
CLK_ICKR|=0x01; //高速內(nèi)部RC振蕩器使能?高速內(nèi)部RC開
CLK_CKDIVR?|=0x08; //16M內(nèi)部RC?2分頻?=?8M
while(!(CLK_ICKR&0x02)); //高速內(nèi)部振蕩器準備就緒??HSI準備就緒
CLK_SWR=0xe1; //設(shè)置HSI為主時鐘源
}
//**************************************************************//
//**************要在燒寫軟件中設(shè)置TIM2的復(fù)用功能****************//
//**************************************************************//
void?Tim2_Init(void)
{
TIM2_CCMR3|=0x70; //設(shè)置定時器2通道3(PD2)輸出比較3模式??PWM2模式2?向上計數(shù)時CNT TIM2_CCMR3|=0x04; //輸出比較3快速使能?加快輸出對觸發(fā)事件的響應(yīng)??禁止CCR寄存器預(yù)裝載功能
TIM2_CCER2|=0x03; //低電平有效?開啟信號輸出到對應(yīng)輸出引腳
TIM2_PSCR=0x07; //預(yù)分頻器的值為6??計數(shù)器的時鐘頻率為?8M/(7+1)=1M
//TIM2_ARRH=62500/256; //初始化自動重裝載寄存器,決定了PWM的頻率。f=1M/62500=16HZ
//TIM2_ARRL=62500%256; //
TIM2_ARRH=0;
TIM2_ARRL=100;
//TIM2_CCR3H=31250/256; //比較寄存器?如果未選擇預(yù)裝載功能?寫入的數(shù)值會立即傳輸至當(dāng)前寄存器中
//TIM2_CCR3L=31250%256; //決定了PWM的占空比??31250/62500=0.5
TIM2_CCR3H=0;
TIM2_CCR3L=50;
TIM2_CR1|=0x81; //?ARR寄存器由預(yù)裝載緩沖器緩沖?使能計數(shù)器
}
//調(diào)節(jié)頻率占空比
void?PWM_DC_T_DT(unsigned?int?DCunsigned?int?T)
{
????????????????????????//設(shè)置PWM頻率?Fpwm=8M/ARR????
TIM1_ARRH?=?0;??????//設(shè)定自動重裝載值高8位
TIM1_ARRL?=?T;??????//設(shè)置自動重裝載值低8位??PWM的周期
????????????????????????//設(shè)置占空比?TIM1_CNT TIM1_CCR1H?=?0; //捕獲比較寄存器高8位?未選擇預(yù)裝載功能時,寫入的數(shù)值立即傳輸至當(dāng)前寄存器中。
TIM1_CCR1L?=?DC;?? //捕獲比較寄存器低8位?占空比值????當(dāng)前寄存器的值同計數(shù)器TIM1_CNT的值比較,并在OC1端口上產(chǎn)生輸出信號

TIM1_CR1?|=?0x01;? //控制寄存器?使能TIM1計數(shù)器?默認邊沿對齊模式?向上計數(shù)?發(fā)生更新事件時計數(shù)器不停止?TIM1_ARR寄存器沒有緩沖可以被直接寫入
TIM1_BKR?|=?0x88;? //剎車寄存器?主輸出使能?使能OC1輸出?禁止剎車輸入?定時器不工作時OC1輸出無效電平
}


/*單片機管腳初始化
DDR???????CR1???????CR2???????引腳設(shè)置
0??????????0?????????0????????懸浮輸入
0??????????0?????????1????????上拉輸入
0??????????1?????????0????????中斷懸浮輸入
0??????????1?????????1????????中斷上拉輸入
1??????????0?????????0????????開漏輸出
1??????????1?????????0????????推挽輸出
1??????????X?????????1????????輸出(最快速度為10MHZ)
*/
//DDR?設(shè)置輸入輸出方向??0?輸入?1輸出
//CR1?設(shè)置輸入輸出方式??DDR=0:?0浮空輸入?1帶上拉電阻輸入。?DDR=1:?0模擬開漏輸出?1推挽輸出。
//CR2?設(shè)置中斷和輸出速度??DDR=0:?0禁止外部中斷?1使能外部中斷。?DDR=1:0?輸出最大速度為2M?1輸出最大速度為10M。
void?GPIO_Init(void)
{
PD_DDR|=0x04; //PD2?輸出
PD_CR1|=0x04; //PD2?推挽輸出
PC_CR2&=0xfb; //輸出最大速度為2M

PB_DDR|=0x20; //PB5?輸出
PB_CR1|=0x20; //PB5?推挽輸出
PB_CR2|=0xdf; //輸出最大速度為2M

}
main()
{
int?i;
CLK_Init();
GPIO_Init();
Tim2_Init();
while?(1)
{

????????//占空比從1%到100%增加
for(i=0;?i<100;?i++)
{
LED1=0; //通過位操作??LED指示燈亮
delay_ms(20);
PB_ODR|=0x20;???????????????//LED指示燈滅
delay_ms(20);

//TIM2_CCR3H=0;???????????????//調(diào)占空比
//TIM2_CCR3L=i;
????????????PWM_DC_T_DT(i30);
}
????????//占空比從100%到1%減小
for(i=100;?i>0;?i--)
{
LED

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????11888??2017-10-26?17:43??PWM\Debug\main.ls

?????文件??????16025??2017-10-26?17:43??PWM\Debug\main.o

?????文件??????14114??2017-10-26?17:43??PWM\Debug\pwm.elf

?????文件???????2288??2017-08-26?16:22??PWM\Debug\pwm.lkf

?????文件??????18299??2017-10-26?17:43??PWM\Debug\pwm.map

?????文件???????1432??2017-10-26?17:43??PWM\Debug\pwm.s19

?????文件??????16177??2017-10-26?17:43??PWM\Debug\pwm.sm8

?????文件???????5420??2017-08-26?18:19??PWM\Debug\stm8_interrupt_vector.ls

?????文件???????2619??2017-08-26?18:19??PWM\Debug\stm8_interrupt_vector.o

?????文件???????4220??2017-08-26?18:19??PWM\main.c

?????文件????????470??2017-10-31?18:04??PWM\pwm.dep

?????文件????????897??2017-10-31?16:24??PWM\pwm.pdb

?????文件??????12234??2017-08-26?16:47??PWM\pwm.stp

?????文件????????195??2017-10-31?18:04??PWM\pwm.stw

?????文件??????49243??2017-10-31?18:04??PWM\pwm.wdb

?????文件??????50930??2017-10-31?18:04??PWM\pwm.wed

?????文件???????2292??2017-08-26?16:22??PWM\Release\pwm.lkf

?????文件???????1954??2007-11-13?16:37??PWM\stm8_interrupt_vector.c

?????目錄??????????0??2017-10-14?11:37??PWM\Debug

?????目錄??????????0??2017-10-14?11:37??PWM\Release

?????目錄??????????0??2017-10-31?18:04??PWM

-----------?---------??----------?-----??----

???????????????210697????????????????????21


評論

共有 條評論