打印

4位数码管扫描程序

[复制链接]
3046|12
手机看帖
扫描二维码
随时随地手机跟帖
沙发
zhaoyu2005| | 2009-5-24 20:22 | 只看该作者

可能是最后一位停留的时间长

使用特权

评论回复
板凳
李冬发| | 2009-5-24 20:59 | 只看该作者

哎,显示程序不是这样写的

Display$Temp:PROCEDURE PUB;
    Temp = Temperature / 16;
    Disp$Buf(0) = Char$Img(Temp MOD 10);
    Disp$Buf(1) = Char$Img((Temp / 10) MOD 10);
END Display$Temp;

System$Clock:PROCEDURE USING 1;
/* 1ms 一次 */
    MSecond$Cnt = MSecond$Cnt + 1;

    IF MSecond$Cnt MOD 4 = 0 THEN
    DO;
        LED1 = 1;
        LED2 = 1;
        P1 = Disp$Buf(Disp$Buf$Ptr);
        IF Disp$Buf$Ptr = 0 THEN
            LED1 = 0;
        ELSE IF Disp$Buf$Ptr = 1 THEN
            LED2 = 0;

        Disp$Buf$Ptr = Disp$Buf$Ptr + 1;
        IF Disp$Buf$Ptr >= 2 THEN
            Disp$Buf$Ptr = 0;
    END;

    IF MSecond$Cnt < 1000 THEN
        RETURN;
        
    MSecond$Cnt = 0;
    Second = Second + 1;

    IF FanOutDelay > 0 THEN
        FanOutDelay = FanOutDelay - 1;

END System$Clock;


/*=========================================================================*/
clk$Inter: PROCEDURE INTERRUPT 1 USING 1;
    TR0 = 0;
    TH0 = HIGH(-Timer0Cnt + 34);
    TL0 = LOW(-Timer0Cnt + 34);
    TR0 = 1;

    CALL System$Clock;
END clk$Inter;

使用特权

评论回复
地板
ningling_21|  楼主 | 2009-5-24 21:22 | 只看该作者

楼上写的怎么那么乱呢?

使用特权

评论回复
5
mcufan001| | 2009-5-25 00:22 | 只看该作者

要这么做~~

在void  display(void)里,
for循环完了,把数码管全部关掉,最后一位的亮度就一致了,一般人我不告诉他!

不过显示程序最好用定时器中断~~

使用特权

评论回复
6
ningling_21|  楼主 | 2009-5-25 07:44 | 只看该作者

多谢提醒!

显示程序为何用定时器中断?

使用特权

评论回复
7
xzq1019| | 2009-5-25 09:22 | 只看该作者

看我的博客,里面有定时器中断扫描的程序。

http://xzq1019.blog.163.com/

博客里我是用Atmega8单片机做的4位数码管扫描程序
有电路图和程序,都是经过本人通过ICC编译器编译通过的
硬件也调试稳定了。各位可以参考~

使用特权

评论回复
8
smileagain| | 2009-5-25 21:40 | 只看该作者

to 6楼

显示程序用中断的好处是:如果不用中断的话,则扫描延时需要占用大量的CPU时间
如果CPU还想做点别的,那么就会造成数码管闪烁或变暗

使用特权

评论回复
9
ningling_21|  楼主 | 2009-5-25 22:06 | 只看该作者

多谢楼上几位指点迷津

使用特权

评论回复
10
saul2006| | 2009-5-26 09:02 | 只看该作者

5楼正解,

要关掉的,不然会拖影

使用特权

评论回复
11
李冬发| | 2009-5-29 22:40 | 只看该作者

4L,我这个程序还会乱啊?你当是C代码啦

使用特权

评论回复
12
hotyong| | 2009-5-29 23:25 | 只看该作者

re:

3楼貌似什么Basic语言吧,,
$应该不是运算符之类的吧,,难道高手们喜欢用"$"?看起来怪怪的呀,,应该就是一般的字符,如"_"  ??

使用特权

评论回复
13
OUCHANGHUA| | 2010-8-3 15:59 | 只看该作者
大侠前辈们我有这个问题,,能帮解决下吗,,
https://bbs.21ic.com/frame.php?fr ... c.com/icnewest.html

使用特权

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

本版积分规则

5013

主题

17741

帖子

51

粉丝