搜索
bottom↓
回复: 3

请教马老师如何实现查表

[复制链接]

出0入0汤圆

发表于 2008-6-24 23:27:55 | 显示全部楼层 |阅读模式
马老师,晚上好!请您详细帮我讲解一下MEG88如何查表!等您的回复今晚不调通显示程序睡不着觉哇!

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2008-6-25 00:27:48 | 显示全部楼层
我想做一个累加器,请帮我看看哪里不对!谢谢

.ORG        $0000
        RJMP    RESET                    ;RESET PRO
.ORG    $0010
        RJMP    TIM0_OVF                 ;FLAG OF TIMER0 OVERING

RESET:   
        LDI        R24,HIGH(RAMEND)
        STS        SPH,R10
        LDI        R24,LOW(RAMEND)
        STS        SPL,R10
       
IO_DEFINE:
        LDI        R24,0XFF
        OUT        DDRB,R24
        LDI        R24,0XFF
        OUT        PORTB,R24                ;CLS LCDSEG
        LDI        R24,0XFF
        OUT        DDRC,R24       
        LDI        R24,0X00                   
        OUT        PORTC,R24                ;CLS LCDCOM
        LDI        R24,0XFF
        OUT        DDRD,R24
        LDI        R24,0X00
        OUT        PORTD,R24                ;ALL LED ON

TIMER_DEFINE:
        LDI        R24,0X00
        OUT        TCCR0A,R24
        LDI        R24,0X05       
        OUT        TCCR0B,R24                ;SYSCLK(1M)/1024
        LDI        R24,0X86
        OUT        TCNT0,R24                ;(256-134)*1024/1=125US
        LDI        R24,0X01
        STS        TIMSK0,R24                ;ENABLE INT
       
       
         LDI        GEWEI,0X00              ;30单元存储个位值   
         LDI        BAIWEI,0X00             ;31单元存储十位值   
         LDI        QIANWEI,0X00            ;32单元存储百位值   
         LDI        SHIWEI,0X00             ;33单元存储千位值   
         SEI                                ;ENABLE GOBAL  
;=====================================================================================================
MAIN:
        CPI        FLAG_2MS,0X02                ;2MS到否
        BRNE        MAIN
        CLR        FLAG_2MS
        RCALL        DISPLAY
        CPI        FLAG_1S,0X09       
        BRNE        MAIN
        RCALL        COUNTER_ADD
        RJMP        MAIN
       
               
       
       

;=====================================================================================================            

COUNTER_ADD:
        INC           GEWEI                        ;个位值加1   
        CPI     GEWEI,0X0A
        BRNE        COUNTER_ADD_BACK
        CLR         GEWEI
        
        INC     SHIWEI                  ;十位值加1(个位到10的进位)   
        CPI      SHIWEI,0X0A                
        BRNE        COUNTER_ADD_BACK         ;   
        CLR     SHIWEI               
        ;           
        INC        BAIWEI                     ;百位值加1(十位到10的进位)   
        CPI        BAIWEI,0X0A                        
        BRNE        COUNTER_ADD_BACK                 ;   
        CLR         BAIWEI                         ;百位到10清零   
      
        INC        QIANWEI                        ;千位值加1(百位到10的进位)   
        CPI        QIANWEI,0X0A                ;  
        BRNE        COUNTER_ADD_BACK     
        CLR        QIANWEI                 ;千位到10清零
        CLR        GEWEI
        CLR        SHIWEI
        CLR        BAIWEI
COUNTER_ADD_BACK:
        RET

;====================================================================================================
     
      
DISPLAY:                     
         CLR         R0      
         LDI    ZL,LOW(TABLE)                 
         LDI    ZH,HIGH(TABLE)
         ADD        ZL,GEWEI
         LPM   
         OUT        PORTB,R0                     ;                                                
         CLR         R0                  
         LDI    ZL,LOW(TABLE*2)                 
         LDI    ZH,HIGH(TABLE*2)
         ADD        ZL,SHIWEI
         LPM   
         OUT        PORTB,R0                     ;   
                          
         CLR         R0                
         LDI    ZL,LOW(TABLE*2)                 
         LDI    ZH,HIGH(TABLE)
         ADD        ZL,BAIWEI
         LPM   
         OUT        PORTB,R0                     ;  
        
         CLR         R0                     
         LDI    ZL,LOW(TABLE)                 
         LDI    ZH,HIGH(TABLE)
         ADD        ZL,QIANWEI
         LPM                     
         OUT        PORTB,R0                     ;         
DISPLAY_BACK:
         RET        
   


;====================================================================================================
.ORG 0XF70
TABLE:  .db 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90                  ;段码表   
         ;   0    1    2    3    4    5    6    7    8    9               对应内容      

;====================================================================================================
TIM0_OVF:
        IN        R24,SREG
        PUSH        R24
       
        LDI        R24,0X86
        OUT        TCNT0,R24

        INC        FLAG_2MS
        INC        FLAG_1S
       
        POP     R24
        OUT        SREG,R24
        reti
;====================================================================================================

出0入0汤圆

发表于 2008-6-25 23:33:42 | 显示全部楼层
在我编写的教程第五章中的demo_5_2.asm例子中(汇编代码)有查表的使用(LED的7段码查表),请参考一下.

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-6-10 05:29

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

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