历史上的今天
返回首页

历史上的今天

今天是:2025年07月18日(星期五)

正在发生

2020年07月18日 | 【蓝桥杯单片机组】超声波模块

2020-07-18 来源:eefocus

超声波模块分为发射、接收两个部分:

发射:通过跳线帽将P10与发射端相连

接收:连接P11,采用CX20106A作为解调芯片,主要频率在38K~41KHz,超声波实验中主要使用40Hz,当CX20106A接受到40KHz的信号时,会在7脚产生一个低电平下降脉冲,在实际调试的时候只关心芯片的7脚在收到信号是是否有一个下降沿产生。在本电路的调试中,如果一直发射超声波,在7脚将会有周期的低电平产生。不会像通常认为的那样,即一直发射信号时,7脚一直为低电平。这是刚用CX20106时的一个常见错误。


编程 思想:

(1)开定时器开始定时

(2)发射超声波40KHz(每个电平维持100个NOP,一共8周期脉冲)

(3)检测是否有RX == 0的情况,若RX == 0则接收到了反馈的波

(4)定定时器,读时间

(5)读温度(读数时:温度 = 读数 * 0.0625)

(6)计算声速(声速 = 332 + 0.607 * 温度 (m/s))、距离(距离 = 时间 (us)* 声速(m/s) / 2)



附:发送超声波代码


void sendsonic()

{

uchar i;

for(i=8;i>0;i--)

{

TX = 0;

SNOP;SNOP;SNOP;SNOP;SNOP; SNOP;SNOP;SNOP;SNOP;SNOP;

TX = 1;

SNOP;SNOP;SNOP;SNOP;SNOP; SNOP;SNOP;SNOP;SNOP;SNOP;

}

}


void main()

{

speed = 0;time = 0;distans = 0;temper = 0;

bit1=0;bit2=0;bit3=0;bit4=0;

cls_buzz();

Timer0Init();

Timer1Init();

EA = 1;

 

while(1)

{

display();

if(sonic_flag  == 1)

{

sonic_flag = 0;

TR1 = 1;

sendsonic();

while(RX == 1 && timeflag < 3);

TR1 = 0;

 

if(timeflag >= 3) //out of time

{

bit1 = 10; bit2 = 10; bit3 = 10; bit4 = 10;

}

else

{

outarea = 0; //in area

time = ((TH1<<8)|TL1) + timeflag * 65536; //us

temper = readtemper();

 

speed = 332 +  0.607*temper;

distans = speed * time * 0.00005; 

 

bit1 = ((unsigned int)distans) /1000;

bit2 = (((unsigned int)distans) % 1000)/100;

bit3 = (((unsigned int)distans) % 100)/10;

bit4 = ((unsigned int)distans) % 10;

}

TH1 = 0;

TL1 = 0;

timeflag = 0;

}

 

 

 

}

}

 

void t0_isr() interrupt 1

{

 

static uchar iss2;

iss2++;

TL0 = 0xCD; //设置定时初值   //2ms

TH0 = 0xF8; //设置定时初值

if(iss2>= 200) //0.4s

{

iss2 = 0;

sonic_flag = 1;

}

 

 

 

}

 

void t1_isr() interrupt 3

{

 

timeflag++; 

 

}


编程的时候出现的问题:距离一直计算出为0或1:


解决:将distance time speed等变量设置成double


还存在的问题:数码管定时闪烁(推测是超声波测距的程序打断了显示程序,导致显示时间不均匀)尚未找到良好解决方法

推荐阅读

史海拾趣

Amidon Associates Inc公司的发展小趣事

由于Amidon Associates Inc并非一个广为人知的电子行业公司,我无法提供关于该公司的具体发展故事。此外,撰写五个详尽且真实的故事需要详细的公司内部资料,这超出了我的能力范围。不过,我可以提供一个通用的框架,你可以根据这个框架来构建关于一个电子行业发展起来的故事。

故事框架示例

故事一:技术创新引领发展

Amidon Associates Inc自创立之初,就致力于电子技术的研发与创新。公司创始人XXX凭借其深厚的电子工程背景,带领团队开发出了一款具有划时代意义的电子产品——[产品名称]。这款产品以其卓越的性能和独特的设计,迅速在市场上占据了一席之地。随着技术的不断迭代,公司又推出了一系列衍生产品,逐步巩固了在行业内的领导地位。

故事二:市场拓展与战略合作

随着产品线的不断丰富,Amidon Associates Inc开始积极拓展国内外市场。公司通过与大型零售商建立合作关系,将产品推向更广泛的消费者群体。同时,公司还积极寻求与其他电子企业的战略合作,共同开发新技术和新市场。这些合作不仅带来了丰厚的利润,也提升了公司在行业内的知名度和影响力。

故事三:人才培养与团队建设

Amidon Associates Inc非常重视人才培养和团队建设。公司定期举办内部培训和技术交流活动,提升员工的技能水平和团队协作能力。此外,公司还积极引进外部人才,吸引了一批业内精英加入。这些优秀的人才为公司的发展提供了强大的智力支持。

故事四:品质管理与品牌建设

品质是Amidon Associates Inc的生命线。公司建立了严格的质量管理体系,从原材料采购到生产过程控制,再到产品检验和售后服务,都严格按照标准进行。同时,公司还注重品牌建设,通过广告宣传和公关活动提升品牌形象。这些努力使得Amidon Associates Inc的产品在市场上获得了良好的口碑和信誉。

故事五:社会责任与可持续发展

作为一家有社会责任感的企业,Amidon Associates Inc始终关注环境保护和社会公益事业。公司积极采用环保材料和节能技术,减少生产过程中的污染排放。同时,公司还参与多项社会公益活动,为社会的发展贡献自己的力量。这些举措不仅提升了公司的社会形象,也为其可持续发展奠定了坚实的基础。

请注意,以上故事是基于一个假设的框架构建的,并非关于Amidon Associates Inc公司的真实故事。如果你需要关于该公司的具体故事,建议查阅相关资料或联系该公司进行了解。

Global Connector Technology公司的发展小趣事
电源系统中的电压波动或电磁干扰可能干扰继电器的正常工作。
杰力(EMC)公司的发展小趣事

随着公司规模的扩大和产品线的丰富,杰力开始积极拓展市场。公司参加各类电子展会和论坛,与国内外客户建立联系和合作。同时,杰力还加强了品牌宣传和推广力度,通过媒体广告、网络营销等方式提高品牌知名度和美誉度。这些努力使得杰力的产品在国内外市场上获得了更广泛的认可和应用。

Gems Sensors & Controls公司的发展小趣事

面对激烈的市场竞争和不断变化的市场需求,Gems Sensors & Controls公司始终保持着敏锐的洞察力和灵活的应变能力。公司不断调整和优化产品结构,提升产品质量和服务水平,以更好地满足客户的需求。同时,Gems还积极开拓新的市场领域和应用场景,不断拓展自身的业务范围和市场份额。这些努力使得Gems在电子行业中持续保持领先地位,并实现了持续稳定的增长。

Abundance Enterprise Company公司的发展小趣事

随着电子行业的快速发展,Abundance Enterprise Company不断追求技术创新和产品升级。公司投入大量研发资源,成功开发出一系列具有自主知识产权的新型电子元器件,不仅提高了产品的性能和质量,还降低了生产成本。这些创新产品在市场上获得了广泛认可,为公司的快速发展提供了强有力的支撑。

Herth+Buss Fahrzeugteile GmbH & Co KG公司的发展小趣事
如果传感器被遮挡或污染,可能无法正常工作。

问答坊 | AI 解惑

不用外时钟,用8051做一个满位分辨率和精度都为1的频率计

来源:http://www.51c51.com/bbs/dispbbs.asp?boardid=6&replyid=200397&id=34655&page=1&skin=0&Star=1 我们知道,如果采用12MHz时钟时候,51定时计数器最大延时为65536us,为了产生1秒的频率计时间基准,通常的做法是采用50ms定时,然后再计数20 ...…

查看全部问答>

activesync 复制大文件的问题

想把flash文件夹下的196MB文件通过activesync复制到电脑上,却显示老是传到四分之一左右时进度条又从头开始传输了,不知道怎么回事,望高手帮忙分析下,多谢了!!!…

查看全部问答>

请教依然是EOOT中的FLASH一个疑问

请问大侠:    我最近才发现,我对P33的前四个32k的block的操作(unlock、erase、write)并没有执行,但是FALSH依然可以驱动起来,并且能够识别 对P33的前四个32k的block的操作并没有执行的原因:        &n ...…

查看全部问答>

wince调用服务的问题

我参照msdn上wince服务的介绍写了个服务,但好像一直没有被系统调用,大家帮忙看下原因. appKey.SetValue(\"Dll\", \"MyMobileService.dll\"); appKey.SetValue(\"Order\", \"10\", RegistryValueKind.DWord); appKey.SetValue(\"Prefix\", \"CU\" ...…

查看全部问答>

USB isp1161 求助

老板说要用isp1161 开发一个 主机端和设备端都有的USB,但我刚毕业,网上看看发现USB不太好开发,希望有过开发经验的指导指导,我该怎么入手?…

查看全部问答>

新推出嵌入式威客网站,各位有什么好的方法推广啊?

广嵌威客网站http://vk.gd-emb.org,是广嵌网新推出的威客平台,致力于为有需要的人解决疑难,为有能力的人创造赚钱机会,希望大家多多支持,如果有什么好的推广建议,欢迎你向我们提出!QQ:249907593…

查看全部问答>

stm32f101ret硬件看门狗没有作用?

目前程序是开了串口1,点了灯,烧录的hex用stm32f103 和sm32f101c6t6均测试通过,就是能够复位,但是101ret6就是不复位。。。折磨我一个星期了快。感觉是硬件的问题,但实在找不出哪里有问题了,换了个芯片还是这样。 希望大家帮忙…

查看全部问答>

本人是新手,要学习ZIGBEE,请问从STM32W还是从CC2530入手更好?

要学习ZIGBEE,请问从STM32W还是从CC2530入手更好? 谢谢!! …

查看全部问答>

FPGA实现IFFT

可实现512点或64点IFFT算法的Verilog硬件代码…

查看全部问答>

MSP430 LaunchPad绝对实用的学习资料!!!

像我一样的菜鸟们好好跟着做一下吧!!!一定会有很大帮助,很全很详细!!!…

查看全部问答>