willX 发表于 2013-10-24 14:37:22

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

本帖最后由 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灯输出调试信息的方法就好了。不知道路过的大侠有没有做过类似方案的,留下点建议吧,不胜感激的。~~~~(>_<)~~~~

tim 发表于 2013-10-24 14:40:59

再做一个单片机系统用光电管接收这个LED的闪烁,解码出来显示到数码管、LCD、或者串口发给电脑用软件显示{:titter:}

dlmaowf 发表于 2013-10-24 15:20:14

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

这下搞大了{:lol:}

albert_w 发表于 2013-10-24 15:25:40

您上示波器吧... 用人眼要命的

willX 发表于 2013-10-24 15:42:27

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

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

willX 发表于 2013-10-24 15:42:46

albert_w 发表于 2013-10-24 15:25 static/image/common/back.gif
您上示波器吧... 用人眼要命的

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

huangjiyue 发表于 2013-10-24 15:47:34

模拟串口,只要TXD就行!目前来说最简单的方式!还是建议找带JTAG的来折腾!如果是极其低端的,怎么也有仿真器嘛~~

sync765 发表于 2013-10-24 16:20:47

建议使用楼上的
模拟个串口出来吧

mhw 发表于 2013-10-24 16:32:09

有LED就有串口……就用这个IO模拟串口TXD,只发不收……

willX 发表于 2013-10-24 23:57:37

huangjiyue 发表于 2013-10-24 15:47 static/image/common/back.gif
模拟串口,只要TXD就行!目前来说最简单的方式!还是建议找带JTAG的来折腾!如果是极其低端的,怎么也有仿 ...

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

willX 发表于 2013-10-24 23:59:05

sync765 发表于 2013-10-24 16:20 static/image/common/back.gif
建议使用楼上的
模拟个串口出来吧

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

longfeix86 发表于 2013-10-25 09:15:23

把串口接在红外发射管上,再弄个解码的

huangjiyue 发表于 2013-10-25 09:17:59

搞个仿真器会死哇

willX 发表于 2013-10-30 09:57:49

huangjiyue 发表于 2013-10-25 09:17 static/image/common/back.gif
搞个仿真器会死哇

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

huangjiyue 发表于 2013-10-30 10:10:47

willX 发表于 2013-10-30 09:57 static/image/common/back.gif
没钱,也没资源。见过用1根线的仿真器吗?推荐下?

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

lryxr2507 发表于 2013-10-30 10:47:34

简单的模拟信号是可以看出的,其它信号就难了...还是示波器吧!

zgxcom123 发表于 2013-10-30 10:53:27

开关量表示一些简单事件就行了(比如初始化完成,正在发送数据等)

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

willX 发表于 2013-10-30 11:46:15

zgxcom123 发表于 2013-10-30 10:53 static/image/common/back.gif
开关量表示一些简单事件就行了(比如初始化完成,正在发送数据等)

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

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

zgxcom123 发表于 2013-10-30 11:56:41

willX 发表于 2013-10-30 11:46
额…… 其实我就想用LED 表示个状态,哎,还是两个LED用编码的方式表示吧。 ...

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

kayatsl 发表于 2013-10-30 12:52:06

Morse Code .........

zhanghuhhhhh 发表于 2013-10-30 13:23:47

值是多少就亮多少下。我是这样做的。

w1000 发表于 2013-10-30 22:40:50

读数据还是用串口比较好。要是单是判断程序的状态 用一个LED指示。
以前我长这么用

bg6ixm 发表于 2013-10-30 23:09:11

用摩尔斯电码(CW),字母、数字、标点都能显示出来。
但人工读取你还是得训练才行。
可借助电脑上的CW解码软件自动解码,单片机用蜂鸣器别用LED。
页: [1]
查看完整版本: 单片机通过led传送调试信息有什么好方法吗?[询问帖]