找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STC89C52RC用isp烧录程序成功但是烧录的功能硬件上没体现,是哪环节错了吗?

查看数: 3753 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-5-12 20:17

正文摘要:

程序烧录的时候有断开重连,stc-isp也没报错,握手后写入是显示成功的。电路的小灯是上电以后灯就一直亮,然后复位键按了也没反应,不会出现按下复位灯灭然后再亮的那种反应。 代码如下。是很简单的小灯闪烁的代码 ...

回复

ID:659172 发表于 2020-5-14 13:49
moon20000boy 发表于 2020-5-13 23:38
那就是你再改下你代码中的  led = ~led; 说实话位反转我从来没用过取反,我都是直接异或反转电平,你可以 ...

我直接用10定义串口电压测出来是对的,应该是led电路出问题了,我感觉可能是三极管的原因,我去查查
ID:726693 发表于 2020-5-13 23:38
我代码改了一下,烧录进去还是没反应。我怀疑是晶振坏了,我测了一下晶振显示数值是2.03-2.04和2v-1.98v。但是换了几个晶振好像压差都是0.4v、0.5v。led还是常量不闪烁

那就是你再改下你代码中的  led = ~led; 说实话位反转我从来没用过取反,我都是直接异或反转电平,你可以试试 led^=led; 取反这个操作是按位取反,就1位的这种不知道是不是不应该这么操作,我都是异或,你试试吧
ID:659172 发表于 2020-5-13 14:53
moon20000boy 发表于 2020-5-12 22:02
我上边说错了,你要是赋值1000000,unsigned int 最大才65535,仍然盛不下,得需要unsigned long了,建议你 ...

我代码改了一下,烧录进去还是没反应。我怀疑是晶振坏了,我测了一下晶振显示数值是2.03-2.04和2v-1.98v。但是换了几个晶振好像压差都是0.4v、0.5v。led还是常量不闪烁
ID:65956 发表于 2020-5-13 08:25
一楼说得很对,就是延时问题,你把这个void delay_100(unsigned char j)  改为void delay_100(unsigned long j) ,这样才符合你要输入值1000000
ID:726693 发表于 2020-5-12 22:11
原来你这个函数也是从官方软件里提供的,你可以设置成延时100ms,这样你直接调用里写Delay100ms(5);延时500ms就可以明显看到结果了

ID:726693 发表于 2020-5-12 22:02
我上边说错了,你要是赋值1000000,unsigned int 最大才65535,仍然盛不下,得需要unsigned long了,建议你调整那个delay函数
ID:726693 发表于 2020-5-12 21:54
你好,你这个函数void delay_100(unsigned char j)    参数是unsigned char 类型,最大255,应该改成unsigned int 类型,因为你调用时赋值是1000000,程序没有报错,运行的时候估计最大只能延时255*100us,或者干脆是1000000直接取了低位,延时太小,所以你肉眼看不到闪烁,一直为亮

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表