打印
[MCU]

用IO口模拟watch窗口

[复制链接]
1150|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 chongdongchen 于 2018-5-17 20:44 编辑

总有些时候,一个简单的项目往往没有显示界面,只有一个LED显示状态,剩余IO口都有相应功能,而且不能仿真。
这时候想知道运行情况(一些参数),如果是数字量还好,可以直接用LED显示,那模拟量呢,LED想要表达就比较麻烦了。

在这里分享一下我的方法,希望多多指点,并分享你更好的方法。

对,用示波器,比如一个字节,从高位到低位用这个LED的电平顺序输出。

我这里用了三种不同的模式,输出高电平代表1,输出高阻状态(输入状态也可以)代表0,输出低电平代表背景(这样有个好处看得清楚)。
像我这个图片例子里,就可以得出结果是:00000011,也就是0x03。


把这个功能写成一个函数,比如 void LedDispByte (unsigned char dat) ,只要在需要的地方调用一下就可以用示波器观察了。

123.jpg (338.46 KB )

就像这样

就像这样

相关帖子

沙发
linqing171| | 2018-5-17 22:52 | 只看该作者
不错。
在没有做高级调试上位机之前,很多老鸟都有过各种方法。你这个三电平的确实第一次见。以前模仿proteus焊了个洞洞板,上拉绿灯和电阻,下拉红灯和电阻,悬空的时候两个灯都不怎么亮。要测哪几个IO就把哪几个飞到LED板上。1的时候红灯亮,0的时候绿灯亮。

使用特权

评论回复
评论
chongdongchen 2018-5-18 09:48 回复TA
对对,用低端单片机,有没有多余IO口,只能是大开脑洞了 
板凳
mailshichao| | 2018-5-18 08:05 | 只看该作者
我一般都是有串口的话,直接用串口输出数据吧,模拟串口输出数据也行

使用特权

评论回复
评论
chongdongchen 2018-5-18 09:44 回复TA
当然了,有串口的话肯定用串口咯 
地板
ayb_ice| | 2018-5-18 08:32 | 只看该作者
直接用IO模拟串口输出,打印字符串,波特率可以搞高点,用串口助手显示,一目了然

使用特权

评论回复
评论
chongdongchen 2018-5-18 09:45 回复TA
这样也是可以,不过要求会高点,在单片机资源受限的情况下(比如1K ROM的单片机),就不适合了 
5
ayb_ice| | 2018-5-18 11:07 | 只看该作者
ayb_ice 发表于 2018-5-18 08:32
直接用IO模拟串口输出,打印字符串,波特率可以搞高点,用串口助手显示,一目了然 ...

模拟介串口发送花不了一点资源,再说这些都是可禁止的,配置下就可以了

使用特权

评论回复
6
chongdongchen|  楼主 | 2018-5-18 11:33 | 只看该作者
ayb_ice 发表于 2018-5-18 11:07
模拟介串口发送花不了一点资源,再说这些都是可禁止的,配置下就可以了 ...

仔细一想,的确不会花费太多,不过要把握好时序,毕竟要按照标准走。
模拟串口发送好处是明显的,通过串口助手直接看数据。
好方法,先收下。

使用特权

评论回复
7
linqing171| | 2018-5-18 21:39 | 只看该作者
有了串口后就开始做电脑程序,然后就一发而不可收拾,早晚要用keil的AGDI接口做仿真器了。

使用特权

评论回复
评论
chongdongchen 2018-5-18 22:34 回复TA
哈哈,你这套思维方式真是说到心里去了。不过还是打住吧,无止境啊。 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

1231

帖子

10

粉丝