如果买超声波测距的模块没有晶振,40KHZ的方波需通过51单片机实现,要怎么写程序呀?请高手指点 20
4个回答
展开全部
void main()
{
EA=1;
ET0=1;
TMOD=0x10;
TH1=(65536-12)/256;
TL1=(65536-12)%256;
TR1=1;
TF1=0;
while(1)
{
TH1=(65536-12)/256;
}
}
SINGNAL(INTERRUPT1)
{
while(TF1==0) ;
//TF1=0;
P1_0=~P1_0;
TL1=(65536-12)%256;
}
呵呵 我不是很懂 只是简单的改了一下 不知道对不对 也希望高手指教
{
EA=1;
ET0=1;
TMOD=0x10;
TH1=(65536-12)/256;
TL1=(65536-12)%256;
TR1=1;
TF1=0;
while(1)
{
TH1=(65536-12)/256;
}
}
SINGNAL(INTERRUPT1)
{
while(TF1==0) ;
//TF1=0;
P1_0=~P1_0;
TL1=(65536-12)%256;
}
呵呵 我不是很懂 只是简单的改了一下 不知道对不对 也希望高手指教
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
唐航高科
2024-10-31 广告
2024-10-31 广告
超声波传感器是将超声波信号转换成其他能量信号(通常是电信号)的传感器,具有频率高、波长短、方向性好等特点。它广泛应用于工业、国防、生物医学等领域,可用于测量物体距离、速度、形状、流量和厚度等,也可用于超声治疗、监测等。超声波传感器采用非接触...
点击进入详情页
本回答由唐航高科提供
展开全部
配置中断 中断函数中写PWM = ~PWM;(PWM为sbit引脚变量)然后计算一下40KHZ 的中断初值 既可以在引脚出现40K方波了
更多追问追答
追问
void main()
{
EA=1;
ET0=1;
TMOD=0x10;
TH1=(65536-12)/256;
TL1=(65536-12)%256;
TR1=1;
TF1=0;
while(1)
{
while(TF1==0) ;
TF1=0;
P1_0=~P1_0;
TH1=(65536-12)/256;
TL1=(65536-12)%256;
}
}
是不是像这个样子呀,我不是理解。这个程序是别人的。如果要发送8个脉冲信号,是不是加个循环就好了?
追答
中断函数 与 主函数 要区别开 再有 TF1 是有硬件置位 不是有软件控制的 P1_0=~P1_0; 应放在中断函数里 不是放在主函数里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要晶振请找我! 4M晶振是不是有点小啊?!我也在做这个玩意,一刚学PIC,打算用PIC16F688,可以探讨探讨
追问
不是啦,是因为模块是我网上买的,但是模块里没有晶振,我问了店家,店家说波必须通过单片机实现呀,但是程序我不懂怎么搞(要求C语音的)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以同过中断实现。
追问
望高手不吝赐教,能详细点不?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |