搜索
bottom↓
回复: 24

单片机接受数据后,数据显示到数码管上面,数码管出现...

[复制链接]
头像被屏蔽

出0入0汤圆

发表于 2012-11-1 10:02:37 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

出0入296汤圆

发表于 2012-11-1 10:23:39 | 显示全部楼层
你是不是用了很多阻塞代码……
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-1 11:44:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-1 11:45:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-1 11:47:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-1 13:37:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入296汤圆

发表于 2012-11-1 14:23:43 | 显示全部楼层
详细说明下中断处理程序里面做了什么,主循环里面作了什么,是否开了中断嵌套。
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-1 17:20:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-1 17:23:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-11-1 17:38:39 | 显示全部楼层
扫描数码管时,一次把四位都扫一次,每一位显示要有1ms吧。

出0入0汤圆

发表于 2012-11-1 17:53:14 | 显示全部楼层
谁是王老师啊?

出0入50汤圆

发表于 2012-11-1 18:07:00 | 显示全部楼层
王老师当然是版主啦,你是新来的吧。

这种问题我习惯用的处理方式:接收的只管接收,显示的只管显示,但是主程序在接收完整的数据之后,会对接收的一帧数据进行校验译码转换等处理,如果有显示,则把数据转换到显示缓冲1区,然后建立一个标志,这个标志是通知显示刷新程序,在显示中断中,如果完成了一次从头至尾的显示扫描,那么就会坚持这个标志,如果标志有效,刷新程序会把显示缓存1区的数据整体复制到显示缓存2区,然后开始以2区的数据作为显示内容,进行显示刷新扫描,这样两边不会产生冲突。同时把刚刚建立的标志清零。同样的,如果主程序在建立这个标志之后,下次译码转换前会先判断这个标志,如果标志仍在,就不会做译码转换。

虽然2个缓冲区,内存RAM有点浪费,但是绝对避免了显示问题,否则的话,实际试验,LED上一直存在飘忽不定的鬼影。不过现在直接用显示驱动的专用芯片,就没这个烦恼了,便宜方便。

出0入0汤圆

发表于 2012-11-1 18:10:43 | 显示全部楼层
串口中断做的不好,居然在中断里干等一帧数据,还是开辟一个接收缓冲区吧

出0入0汤圆

发表于 2012-11-1 18:19:05 | 显示全部楼层
串口收数放缓冲区,主程序判断有数据更新,就更新数码管的显示缓冲区。接收只管接收,显示只管显示,我的建议。

出0入296汤圆

发表于 2012-11-2 10:43:26 | 显示全部楼层
taocongrong 发表于 2012-11-1 17:20
王老师您好:
这是我的代码
#include


说实话,看了代码,我当时就OTZ了……

解决这类问题其实是有标准的方式的,但考虑到循序渐进的问题,那个不提也罢,以下是我基于你现在的状况提的一些建议:
1、从LZ编写代码的风格来看,应该不是很熟悉队列操作,也就是说可能还不擅长使用缓冲区。从这点出发,我们直接考虑
   在中断里面处理数据的问题。
2、在中断里面接收数据不是不可以,而是不可以死等。简单说就是要用到状态机,一般做法是用一个static变量记录状态,
   然后在不同的状态等待接收不同的字符,状态机可以简单的用switch case来实现。这方面的例子很多,你也可以参考
   我板块里面的状态机教程。
3、用全局的数组或者变量来保存中断里面接收到的数据是没有问题的,但要注意做好原子保护,说白了就是在主循环里面
   操作这个全局变量或者数组的时候,要暂时性的关闭全局中断响应。
4、最后我比较在意的是,系统主频是多少?你有仔细确认过么?不要到最后跑个1M的频率……

出0入0汤圆

发表于 2012-11-2 10:50:56 | 显示全部楼层
版主说话就是条理清楚
还有个细节要注意,数码管动态扫描过程是
1、关所有位选信号
2、输出段信号
3、打开相应的位选
否则也有微弱的闪烁感
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-2 10:53:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入296汤圆

发表于 2012-11-2 18:29:27 | 显示全部楼层
taocongrong 发表于 2012-11-2 10:53
主频是7.3728MHZ,我看看,其实准备用两个单片机实现的,一个单片机用串口接收数据,而后 将第一个单片机 ...

这样一个简单的应用如果用两片单片机,真的是对不起你自己……
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-3 12:27:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2013-8-17 11:48:07 | 显示全部楼层
怎么什么都看不到
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 00:18

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

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