超声波驱鼠器设计原理和C程序源码参考.docVIP

  • 4
  • 0
  • 约3.71千字
  • 约 7页
  • 2024-04-16 发布于北京
  • 举报

超声波驱鼠器设计原理和C程序源码参考.doc

超声波驱鼠器设计原理和C程序源码参考

用的物料:STC单片机一个,蜂鸣器一个,LED一个,稳压器一个.

参考程序:

#includereg52.h

/*************功能说明**************

本程序使用定时器做软件PWM。

定时器0做16位自动重装,中断,从T0CLKO高速输出PWM。

本例程是使用STC15F/L系列MCU的定时器T0做模拟PWM的例程。

PWM可以是任意的量程。但是由于软件重装需要一点时间,所以PWM占空比最小为32T/周期,最大为(周期-32T)/周期,T为时钟周期。

PWM频率为周期的倒数。假如周期为6000,使用24MHZ的主频,则PWM频率为4000HZ。

******************************************/

typedefunsignedcharu8;

typedefunsignedintu16;

typedefunsignedlongu32;

#defineMAIN_FoscL//定义主时钟

//#definePWM_DUTY1200//定义PWM的周期,数值为时钟周期数,假如使用24.576MHZ的主频,则PWM频率为6000HZ。

u16PWM_DUTY=1200;

#definePWM_HIGH_MIN32//限制PWM输出的最小占空比。用户请勿修改。

#definePWM_HIGH_MAX(PWM_DUTY-PWM_HIGH_MIN)//限制PWM输出的最大占空比。用户请勿修改。

sfrP1M1=0x91;//P1M1.n,P1M0.n=00---Standard,01---push-pull

sfrP1M0=0x92;//=10---pureinput,11---opendrain

sfrAUXR=0x8E;

sfrINT_CLKO=0x8F;

//sbitP_PWM=P3^5;//定义PWM输出引脚。

sbitP_PWM=P1^2;//定义PWM输出引脚。STC15W204S

sbitled=P1^1;

u16pwm;//定义PWM输出高电平的时间的变量。用户操作PWM的变量。

u16PWM_high,PWM_low;//中间变量,用户请勿修改。

voiddelay_ms(unsignedcharms);

voidLoadPWM(u16i);

voidpwmflash();

/********************主函数**************************/

voidmain(void)

{

P_PWM=0;

//P3M1=~(15);//P3.5设置为推挽输出

//P3M0|=(15);

P1M1=~(14);//P1.4设置为推挽输出STC15W204S

P1M0|=(14);

TR0=0;//停止计数

ET0=1;//允许中断

PT0=1;//高优先级中断

TMOD=~0x03;//工作模式,0:16位自动重装

AUXR|=0x80;//1T

TMOD=~0x04;//定时

INT_CLKO|=0x01;//输出时钟

TH0=0;

TL0=0;

TR0=1;//开始运行

EA=1;

pwm=PWM_DUTY/10;//给PWM一个初值,这里为10%占空比

LoadPWM(pwm);//计算PWM重装值

while(1)

{

//pwmflash();

while(PWM_DUTY400)

{

PWM_DUTY-=100;

pwmflash();

led=0;

delay_ms(10);

led=1;

delay_ms(10);

}

w

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档