搜索
bottom↓
回复: 22

单片机通过led传送调试信息有什么好方法吗?[询问帖]

[复制链接]

出0入0汤圆

发表于 2013-10-24 14:37:22 | 显示全部楼层 |阅读模式
本帖最后由 willX 于 2013-10-24 14:40 编辑

最近在做一个单片机设计,没有串口或者数码管来输出调试信息,只能用一个LED灯通过“亮”、“灭”的方式传送1字节信息,
看到LED灯后能根据闪烁的某种信息,将这个字节记下来。

应该通过什么方式好呢?比如我现在想到的一种方式是:
1. 有发送的信息时,LED开始点亮。
2. 发送逻辑“1”的时候灯会按照100ms的周期闪烁2下。
3. 发送逻辑“0”的时候灯会按照100ms的周期闪烁1下。
4. 发送结束,LED灯熄灭。没有数据的空闲时期LED常灭。
这样在发送数据0x5a时(二进制01011010),灯会按照:单双单双双单双单 的方式闪烁。
但是在实际使用中就会发现,在单片机发送信号的时候,很难记得住闪烁的次数,记录下的数据也经常错。

而我同学使用的是节拍型的记录方式,比如亮灭灭亮是1001,亮亮灭灭是1100,这样做虽然方便记录,但是一遇到连续的逻辑1或者逻辑0时很容易记错。
要是有能用一个LED灯输出调试信息的方法就好了。不知道路过的大侠有没有做过类似方案的,留下点建议吧,不胜感激的。~~~~(>_<)~~~~

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入93汤圆

发表于 2013-10-24 14:40:59 | 显示全部楼层
再做一个单片机系统用光电管接收这个LED的闪烁,解码出来显示到数码管、LCD、或者串口发给电脑用软件显示

出0入0汤圆

发表于 2013-10-24 15:20:14 | 显示全部楼层
tim 发表于 2013-10-24 14:40
再做一个单片机系统用光电管接收这个LED的闪烁,解码出来显示到数码管、LCD、或者串口发给电脑用软件显示{: ...

这下搞大了

出0入42汤圆

发表于 2013-10-24 15:25:40 | 显示全部楼层
您上示波器吧... 用人眼要命的

出0入0汤圆

 楼主| 发表于 2013-10-24 15:42:27 | 显示全部楼层
tim 发表于 2013-10-24 14:40
再做一个单片机系统用光电管接收这个LED的闪烁,解码出来显示到数码管、LCD、或者串口发给电脑用软件显示{: ...

可以很简短的信息么,比如半个字节4位信息,应该能读出来的吧。

出0入0汤圆

 楼主| 发表于 2013-10-24 15:42:46 | 显示全部楼层
albert_w 发表于 2013-10-24 15:25
您上示波器吧... 用人眼要命的

简单的信息,很明了的。不用示波器吧。

出0入0汤圆

发表于 2013-10-24 15:47:34 | 显示全部楼层
模拟串口,只要TXD就行!目前来说最简单的方式!还是建议找带JTAG的来折腾!如果是极其低端的,怎么也有仿真器嘛~~

出0入0汤圆

发表于 2013-10-24 16:20:47 | 显示全部楼层
建议使用楼上的
模拟个串口出来吧

出0入0汤圆

发表于 2013-10-24 16:32:09 | 显示全部楼层
有LED就有串口……就用这个IO模拟串口TXD,只发不收……

出0入0汤圆

 楼主| 发表于 2013-10-24 23:57:37 | 显示全部楼层
huangjiyue 发表于 2013-10-24 15:47
模拟串口,只要TXD就行!目前来说最简单的方式!还是建议找带JTAG的来折腾!如果是极其低端的,怎么也有仿 ...

只是个很小的功能,表示出4位数就行,不很占资源,又能表示16种不同的状态,用起来足够又不会影响程序内部结构。这样的好方法应该不是串口能搞定的吧?
况且如果备用出来的那个IO不是串口TXD怎么办?软串口?光是发送逻辑就是上百行代码,虽然可以表示无穷的状态,但是调用串口发送程序很容易干扰单片机原有的程序进程,本来只是延时现在变成跳转还启动了计时器启动了中断。有违初衷啊~

出0入0汤圆

 楼主| 发表于 2013-10-24 23:59:05 | 显示全部楼层
sync765 发表于 2013-10-24 16:20
建议使用楼上的
模拟个串口出来吧

要是串口逻辑能像操纵IO那样容易该多好啊。

出0入0汤圆

发表于 2013-10-25 09:15:23 | 显示全部楼层
把串口接在红外发射管上,再弄个解码的

出0入0汤圆

发表于 2013-10-25 09:17:59 | 显示全部楼层
搞个仿真器会死哇

出0入0汤圆

 楼主| 发表于 2013-10-30 09:57:49 | 显示全部楼层
huangjiyue 发表于 2013-10-25 09:17
搞个仿真器会死哇

没钱,也没资源。见过用1根线的仿真器吗?推荐下?

出0入0汤圆

发表于 2013-10-30 10:10:47 | 显示全部楼层
willX 发表于 2013-10-30 09:57
没钱,也没资源。见过用1根线的仿真器吗?推荐下?

不是1根线2根线;具体仿真器和你目标MCU相关!

出0入0汤圆

发表于 2013-10-30 10:47:34 | 显示全部楼层
简单的模拟信号是可以看出的,其它信号就难了...还是示波器吧!

出0入0汤圆

发表于 2013-10-30 10:53:27 来自手机 | 显示全部楼层
开关量表示一些简单事件就行了(比如初始化完成,正在发送数据等)

复杂的还是上串口比较好。。。

出0入0汤圆

 楼主| 发表于 2013-10-30 11:46:15 | 显示全部楼层
zgxcom123 发表于 2013-10-30 10:53
开关量表示一些简单事件就行了(比如初始化完成,正在发送数据等)

复杂的还是上串口比较好。。。 ...

额…… 其实我就想用LED 表示个状态,哎,还是两个LED用编码的方式表示吧。

出0入0汤圆

发表于 2013-10-30 11:56:41 来自手机 | 显示全部楼层
willX 发表于 2013-10-30 11:46
额…… 其实我就想用LED 表示个状态,哎,还是两个LED用编码的方式表示吧。 ...

1、如果是开发人员,那么led编码原理上可行,但至于"读取"过程会不会影响到你的调试思路就另当别论了
2、如果做成产品给客户用,那么编码led+码表,绝对是个失败作品!

出0入0汤圆

发表于 2013-10-30 12:52:06 | 显示全部楼层
Morse Code .........

出0入0汤圆

发表于 2013-10-30 13:23:47 来自手机 | 显示全部楼层
值是多少就亮多少下。我是这样做的。

出0入0汤圆

发表于 2013-10-30 22:40:50 | 显示全部楼层
读数据还是用串口比较好。要是单是判断程序的状态 用一个LED指示。
以前我长这么用

出0入0汤圆

发表于 2013-10-30 23:09:11 | 显示全部楼层
用摩尔斯电码(CW),字母、数字、标点都能显示出来。
但人工读取你还是得训练才行。
可借助电脑上的CW解码软件自动解码,单片机用蜂鸣器别用LED。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 14:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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