//晟矽微单片机编程第九天PWM
//qq:74145445
//快手:共同学习stm8
//2020102521.39
/**************************************************/
// MC32P7311
// _____@_____
// pwm --p16|1 16|p17--anjian
// vdd|2 15|vss
// --p15|3 14|p00--
// --p14|4 13|p01--
// --p13|5 12|p02--
// --p12|6 11|p03--
// --p11|7 10|p04--
// --p10|8_________9|p05--
/**************************************************/
#define bit0 0b00000001
#define bit1 0b00000010
#define bit2 0b00000100
#define bit3 0b00001000
#define bit4 0b00010000
#define bit5 0b00100000
#define bit6 0b01000000
#define bit7 0b10000000
/**************************************************/
#define led0 P00D
#define led0_oe P00OE
#define anjian P17D
#define anjian_oe P17OE
#define anjian_pu P17PU
#include"MC32P7311.h"
void main()
{
/**************************************************/
//T0CR
//TC0EN =1; //启动T0
PWM0OE =1; //允许PWM0输出
BUZ0OE =0; //禁止BUZ0
T0PTS1 =1;
T0PTS0 =0; //FLOSC
T0PR2 =0;
T0PR1 =0;
T0PR0 =0; //预分频/1
//T0CNT //T0CNT的值(增长)
T0CNT =99;
//T0LOAD //T0重载值
T0LOAD =99;
//T0DATA //PWM0高电平时间
T0DATA =50;
/**************************************************
T0CR=0x40; //PWM1输出 Fcpu 1分频 0.25us
T0CNT=100-1;
T0LOAD=100-1;
T0DATA=50;
// PWMCR0=0xA4; //FPWM输出 FPWM取反 2*TPWM
// PWMCR1=0x00; //T1时钟为Fcpu,TMRCKS无效
TC0EN=1;
/**************************************************/
led0_oe =1; //输出模式
anjian_oe =0;
anjian_pu =1; //上拉电阻
led0 =1;
/**************************************************/
TC0EN =1; //启动T0
for(;;)
{
if(!anjian)
{
while(!anjian){} //松手
led0 ^=1; //取反
//if(led0==1){led0=0;}
// else{led0=1;}
}
}
}
|