X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
51单片机
[求助] 菜鸟遇到问题了!请大家帮忙
1386734
2011-3-25 22:16
楼主
近日从网上下了个超声测距程序(由于是c语言,小弟看不懂),编译之后出现下图中的错误,好像是“空地址溢出”。不知是何故,求教具体修复方法,附程序
谢谢诸位了!已上传相关图片,劳烦大家了!谢谢!谢谢!
[
本帖最后由 1386734 于 2011-3-26 20:58 编辑
]
2051超声测距.rar
(2011-3-25 22:16 上传)
1.42 KB, 下载次数: 9
问题详情.rar
(2011-3-26 20:58 上传)
246.54 KB, 下载次数: 3
点赞
回复评论 (9)
沙发
daicheng
回复 楼主 1386734 的帖子
请将错误图片上传,大家帮你分析一下
处处留心皆学问!
点赞
2011-3-26 10:36
板凳
ddllxxrr
没图没法看啊
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞
2011-3-26 11:06
4楼
辛昕
回复 沙发 daicheng 的帖子
最近挺忙的,都没每天回回贴了。
感觉好像,,daicheng,ddllxx,还有一些人,一时没看到,想不起来。
感觉这几位一直都在帮我看着帖子,心想,是不是琳子姐打得招呼呢?
还是,呵呵,几位主动跑来帮忙,感激不尽,感激不尽。
强者为尊,弱者,死无葬身之地
点赞
2011-3-26 12:02
5楼
辛昕
回复 楼主 1386734 的帖子
下载了你的附件,其中只有一份源程序。
请重新上传你的图,让大家好帮你解决问题。
或者说,直接把那个错误信息 复制上来。
另外,想说,为了让大家更方便地帮你看看问题出在哪里,最好是把你用的整个KEIL的项目文件传上来——如果你是用的KEIL的话,现在51,它是大主流。
强者为尊,弱者,死无葬身之地
点赞
2011-3-26 12:05
6楼
ddllxxrr
楼主的管脚定义错了
#include
sbit csbout=P3^5;
sbit csbint=P3^7;
#define csbc=0.034
sbit bg=P3^4;
unsigned char csbds,opto,digit,buffer[3],xm1,xm2,xm0,key,jpjs,ki;//显示标识
unsigned char convert[10]={0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0~9段码
unsigned int s,t,i,sj1,sj2,sj3,mqs,sx1,sjtz,sja,sjb;
bit cl;
void csbcj();
void delay(i);
void scanLED();
void showOnce();
void timeToBuffer();
void offmsd();
void main() //主函数
{
EA=1; //开中断
TMOD=0x11; //设定时器0为计数,设定时器1定时
ET0=1; //定时器0中断允许
ET1=1; //定时器1中断允许
TH0=0x00;
TL0=0x00;
TH1=0x9E;
TL1=0x57;
csbds=0;
csbint=1;
csbout=1;
cl=0;
opto=0xff;
jpjs=0;
sj1=25;
sj2=100;
sj3=450;
ki=0;
TR1=1; //设定时值1为20ms
while(1)
{
csbcj(); //调用超声波测距程序
if(s>sj3) //大于时显示"CCC"
{
buffer[2]=0x39;
buffer[1]=0x39;
buffer[0]=0x39;
}
else if(s
{
buffer[2]=0x40;
buffer[1]=0x40;
buffer[0]=0x40;
}
else timeToBuffer(); //调用转换段码功能模块
offmsd(); //调用判断百位数为零模块,百位为零时不显示
scanLED(); //调用显示函数
}
}
void scanLED() //显示功能模块
{
digit=0x04;
for( i=0; i<3; i++) //3位数显示
{
P3=~digit&opto; //依次显示各位数
P1=~buffer
; //显示数据送P1口
delay(20); //延时处理
P1=0xff; //P1口置高电平(关闭)
if((P3&0x10)==0) //判断3位是否显示完
key=0;
digit>>=1; //循环右移1位
}
}
void timeToBuffer() //转换段码功能模块
{
xm0=s/100;
xm1=(s-100*xm0)/10;
xm2=s-100*xm0-10*xm1;
buffer[0]=convert[xm2];
buffer[1]=convert[xm1];
buffer[2]=convert[xm0];
}
void delay(i) //延时子程序
{
while(--i);
}
void timer1int (void) interrupt 3 using 2 //终断处理程序,1秒测量一次
{
TH1=0x9E;
TL1=0x57;
csbds++;
if(csbds>=40)
{
csbds=0;
cl=1;
}
}
void csbcj() //超声波测距子程序
{
if(cl==1)
{
TR1=0;
TH0=0x00;
TL0=0x00;
i=20; //超声波脉冲个数10个
while(i--)
{
csbout=!csbout;
}
TR0=1;
i=450;
while(i--)
{
}
i=0;
while(csbint) //判断接收回路是否收到超声波的回波
{
i++;
if(i>=2450) //如果达到一定时间没有收到回波,则将csbint置零,退出接收回波处理程序
csbint=0;
}
TR0=0;
TH1=0x9E;
TL1=0x57;
t=TH0;
t=t*256+TL0;
s=t*csbc/2; //计算测量结果
TR1=1;
cl=0;
}
}
void offmsd() //百位为数0判断模块
{
if (buffer[2] == 0x3f) //如果值为零时百位不显示
buffer[2] = 0x00;
}
[
本帖最后由 ddllxxrr 于 2011-3-26 12:27 编辑
]
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞
2011-3-26 12:25
7楼
1386734
回复 6楼 ddllxxrr 的帖子
非常感谢!编译通过了!但直接复制过去不行,有几个括号括错了,我对照原程序改了下行了(虽然不知道为什么
)。
但hex文件有3k多写不进去,打开看20H--7F0H之间没数据啊!800H--C80H之间有数据,程序应该就是这个吧?
能不能吧程序拉到空白的那部分啊?那样的话就好写入了
点赞
2011-3-26 21:40
8楼
ddllxxrr
回复 7楼 1386734 的帖子
你没选对芯片吧,按理说3K对任何51都没问题地
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞
2011-3-27 08:15
9楼
feng19870208
第一次回帖
点赞
2011-3-27 15:45
10楼
1386734
回复 8楼 ddllxxrr 的帖子
我用at89c2051啊。2k内存,原理图上就是这个的,而且我花了两个星期的午休时间刚做完电路板!朋友买的成品电路板上就是这个芯片,我怀疑是程序哪个部分出错了,或多余了。要不是的话看来只有换89c52,再改电路板了。
[
本帖最后由 1386734 于 2011-3-27 19:55 编辑
]
点赞
2011-3-27 19:54
最新活动
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
PI 电源小课堂|无 DC-DC 变换实现多路高精度输出反激电源
2024 瑞萨电子MCU/MPU工业技术研讨会——深圳、上海站, 火热报名中
随便看看
【NXP USB Type C评测 】使用Jlink下载程序
大家讨论下如何系统升级的问题
想求购一块EK-LM3S8962的开发板
【新思科技IP资源】何为多裸晶设计——为何越来越受欢迎?
为什么你的工作不快乐?
射频识别技术(RFID)与非接触式IC的联系
DCDC电源方案征求
PAD中邦定IC的画法及注意事项Bonding PCB Layout注意事項
铁硅铝磁环在电感与铁氧体电感中的区别
imx8-cb300核心板
谁有基于单片机数字电流表的课程设计?
嵌入式开发工程师
2440+WINCE5.0摄像头拍第四张照时出现异常
我要转行了
《猫和老鼠》的最终结局
帮忙解决vhdl:quartus7.2 在运行if..genarate遇到的问题
交换源代码
IAR for AVR 数据类型
关于电源线的一个问题
首页用户名乱码了,神马情况?
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复