1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
测距显示到65之后不显示66显示的是0,从0又开始了,是啥问题,还有我这个测距只能测1.3米什么问题,我的是CT107D开发板,下面是程序
#include #include #include #define uchar unsigned char #define uint unsigned int #define BUZZ XBYTE[0xBFFF] uchar code table[]= {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90}; uchar dspbuf[8]={10,10,10,10,10,10,10,10}; uchar dspcom=0; ***it TX=P1^0; //发送 ***it RX=P1^1; //接收 uchar a,flag; void delay() //延迟函数 { uchar i; i=10; _nop_(); _nop_(); _nop_(); while(--i); } void display() //显示函数 { XBYTE[0xE000]=0xff; XBYTE[0xC000]=(1< if(++dspcom==8) { dspcom=0; } } void init() //初始化计时器 { BUZZ=0; TMOD=0x11; TH0=(65536-2000)/256; TL0=(65536-2000)%256; TH1=0; TL1=0; EA=1; ET0=1; TR0=1; } void send_wave() //发送方波 { uchar x; for(x=0;x<8;x++) //发送八个方波 { TX=1; delay(); TX=0; delay(); } } uint getdistance() //测距 { uint distance,time; send_wave(); TR1=1; while((RX==1)&&(TF1==0)); //等待收到超声波 TR1=0; if(TF1==1) { TF1=0; distance=999; } else { time=TH1; //时间 time=(time<<8)|TL1; distance=time*17/1000; //距离 } TH1=TL1=0; return distance; } void main() { uint value; init(); while(1) { if(flag==1) { flag=0; value=getdistance(); dspbuf[0]=value/100; dspbuf[1]=value%100/10; dspbuf[2]=value%10; } } } void timer0() interrupt 1 //中断 { TH0=(65536-2000)/256; TL0=(65536-2000)%256; display(); if(++a==50) { a=0; flag=1; } } |
|
相关推荐
3个回答
|
|
总感觉这是一个16位的无符号数据除1000后取整的结果。是不是你这个受制于申请的变量长度的原因啊??
最佳答案
|
|
|
|
怎么改,大神,我快被这个问题烦死了 |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
852 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
592 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
705 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
926 浏览 2 评论
657 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11992 浏览 31 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 20:55 , Processed in 0.515645 second(s), Total 78, Slave 60 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号