打印

对于led数码管显示大家有什么好的方法吗?

[复制链接]
3809|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wilkes|  楼主 | 2007-4-19 12:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/******
用单片机的io口直接驱动led,行列中断扫描循环显示(15x8),一共
用到23个io口。但是整个装置程序运行后会出现闪烁现象,扫描频率
很快,循环扫描一遍少于20ms。感觉是扫描中断太快,但是程序还有其他的
中断处理(ad计算,uart等),其他中断的处理长了影响扫描中断显示效果,所以导致出现滚动式的拖曳闪烁。
请问大家在做led数码管显示装置的时候都是怎么处理显示和其他中断处理的?

相关帖子

沙发
ayb_ice| | 2007-4-19 13:14 | 只看该作者

20ms也叫快...

使用特权

评论回复
板凳
foxmax| | 2007-4-19 21:24 | 只看该作者

一般都用1ms

使用特权

评论回复
地板
wilkes|  楼主 | 2007-4-21 11:40 | 只看该作者

20ms是整个扫描完一遍

 每个当然只有1ms或者更少咯,问题不是这里.是由于其他中断影响了扫描时间,导致扫描时间间隔不严格相等

使用特权

评论回复
5
conwh| | 2007-4-21 12:07 | 只看该作者

扫描周期再短点,程序尽量短

使用特权

评论回复
6
ocon| | 2007-4-21 13:17 | 只看该作者

把不需要全部实时处理的ad计算,uart等放到主循环中执行。

使用特权

评论回复
7
jinhwang| | 2007-4-21 13:45 | 只看该作者

中断程序的执行时间绝对不能大于扫描中断时间

使用特权

评论回复
8
twz8858877| | 2007-4-21 15:19 | 只看该作者

每次扫一位

用中断进行,置最高优先。

使用特权

评论回复
9
baipengwei| | 2007-4-21 21:08 | 只看该作者

真是浪费资源啊

用595驱动,只要用到3个IO口就够了

闪烁的话可能写完数据后适当加几个NOP看下

使用特权

评论回复
10
jxmemail| | 2007-4-21 22:03 | 只看该作者

扫描的时候关中断

可以在扫描的时候关中断。

使用特权

评论回复
11
wilkes|  楼主 | 2007-4-26 10:39 | 只看该作者

扫描的时候关中断会不会对其他程序有影响

 因为不止一个中断阿,还有ad中断也很快的,大约1秒1600次采样中断,上面有位朋友说写完数据加几个nop,不知道起什么作用。倒是可以尽量把时间长的程序移出中断,这样效果好一些了。

使用特权

评论回复
12
dengm| | 2007-4-26 11:44 | 只看该作者

UART 及时退出中断

INT_AD:  ; 高优先
      ; AD 采样
      ; ad计算
      SETB IE_AD
      RET
;--------------------------------
INT_SCAN:
      ; 扫描
      RETI

;------------------
INT_UART:          
   JBC RI, UART_RX
     JBC TI, UART_TI 
INT_RET:
      IRET
      NOP
;--------------------
UART_RI:
   MOV SBUF_RX, SBUF
   CALL INT_RET
  ;---------------
  ; UART RX 处理
  ;
  RET
;--------------
UART_TI:
   CALL INT_RET
  ;---------------
  ; UART TI 处理
  ;
   RET

使用特权

评论回复
13
lbx_00| | 2007-4-26 19:18 | 只看该作者

用锁存器不就行了

使用特权

评论回复
14
sdouen| | 2007-4-26 19:59 | 只看该作者

用164串行输出显示

使用特权

评论回复
15
wilkes|  楼主 | 2007-4-27 18:13 | 只看该作者

uart中断?

 上面有个兄弟写的汇编是什么意思呢?我感觉不是uart的原因阿,因为测试的时候没有通信发生都会闪烁的,可能还是ad中断执行时间太长的原因

使用特权

评论回复
16
yaoyunyuan| | 2007-5-17 16:41 | 只看该作者

7289

用7289解决吧

使用特权

评论回复
17
zxq1234508| | 2007-5-17 17:13 | 只看该作者

支持16楼 用ZLG7290 两根线就可以了

使用特权

评论回复
18
ayb_ice| | 2007-5-17 18:40 | 只看该作者

扫描用中断(1~2MS),设为最高优先级...

使用特权

评论回复
19
gyt| | 2007-5-17 19:25 | 只看该作者

中断处理尽量短

中断处理程序本身一定要短,大量的计算应该放在中断以外来做。

使用特权

评论回复
20
wilkes|  楼主 | 2007-7-23 14:03 | 只看该作者

程序里有ad中断和timerA中断(负责led显示),请问怎么处理?

  我的程序里有ad中断和timerA中断(负责led显示),两者都对时间有要求,请问怎么处理呢?
 ad负责对工频电量采集转换,1秒采样1600次,也是定时(timerB)触发采样

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

147

帖子

0

粉丝