打印
[AVR单片机]

数码管循环显示0-9失败

[复制链接]
3587|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Karlshen|  楼主 | 2009-12-23 22:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我刚学avr汇编,写了一个用一位数码管循环显示0-9的小程序,但仿真没达到预期效果,不知道是怎么回事,请各位指教!!!
;一位数码管循环显示数字0-9程序
.include"m16def.inc"
.def Time =r20
.def count=r17     ;中断次数计数器
.org $0000
rjmp main
.org $010
rjmp time1_ovf
tab:.db 0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F ;0-9数字段码表,共阴极
main:
    ldi r16,0xff
    out ddrd,r16
    ldi r16,0x00
    out tccr1a,r16
    ldi r16,0x1E
    out tcnt1l,r16 ;计数器1赋初值
    ldi r16,0xfb
    out tcnt1h,r16
    ldi r16,$04
    out timsk,r16 ;开定时器1溢出中断
    ldi r16,0x01   ;1分频
    out tccr1b,r16
    ;clr count     
    ;clr time
    sei         ;开全局中断
Display:   
    ldi zh,high(tab*2)
    ldi zl,low(tab*2)
    add zl,Time     ;取数字段码
    lpm
    out portd,r0     ;段码从PD口输出
    rjmp Display     ;循环显示
time1_ovf:
    ldi r16,0x1E
    out tcnt1l,r16
    ldi r16,0xfb
    out tcnt1h,r16
    inc count       ;中断100次,中断时间为10ms
    cpi count,100   ;100x10=1S
    brlo M         ;小于100则退出,继续等待中断
    clr count       ;达到100次则清零中断计数器
    inc Time      
    cpi Time,9     ;小于9则退出
    brlo M
    clr Time       ;计数大于9则清零
M:   reti

相关帖子

沙发
Karlshen|  楼主 | 2009-12-25 12:00 | 只看该作者
为啥呢?有没有人知道咋回事

使用特权

评论回复
板凳
wf395962475| | 2009-12-25 15:43 | 只看该作者
怎么不用C语言的
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned char
uchar const duan[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar code wei[]={0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7};
void delay(uint);
void main()
{  
        uchar i=0;
        while(1)
     {                
        P0=duan[i];
        P2=wei[i];
        delay(1000);
        delay(1000);
        i++;
        if(i==16)
         i=0;     
      }
}

void delay(uint z)
{
        uint x;
        uchar y;
        for(x=z;x>0;x--)
                for(y=1200;y>0;y--);       
}

使用特权

评论回复
地板
lovelyegle| | 2009-12-26 21:46 | 只看该作者
汇编不熟,还是C好用

使用特权

评论回复
5
suoma| | 2009-12-28 23:18 | 只看该作者
看看,顶下

使用特权

评论回复
6
Karlshen|  楼主 | 2009-12-29 22:22 | 只看该作者
C不是哪里都能用得好的,不过汇编学起来困难多了

使用特权

评论回复
7
Karlshen|  楼主 | 2009-12-29 22:23 | 只看该作者
汇编大家熟的不多吗?

使用特权

评论回复
8
Yan.hong.yu| | 2010-1-15 19:47 | 只看该作者
LZ用的什么编译器?

使用特权

评论回复
9
午夜粪车| | 2010-1-16 23:30 | 只看该作者
不熟,都是汇编

使用特权

评论回复
10
senzh01| | 2010-1-17 22:51 | 只看该作者
汇编没有明显的规章,自由度比较大

使用特权

评论回复
11
Karlshen|  楼主 | 2010-2-2 13:29 | 只看该作者
8# Yan.hong.yu

KEIL的编译器

使用特权

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

本版积分规则

81

主题

734

帖子

1

粉丝