Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AVRStudio ATMega128, отобразить результат побитовой инверсии 
:(
    Опции темы
Scratok
Дата 25.4.2015, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.4.2015

Репутация: нет
Всего: нет



Учебный стенд НТЦ-31.100. ATMega128.  Необходимо отобразить на ДСИ введённое число с клавиатуры и результат его побитовой инверсии. С выводом вышло всё, а вот с результатом его побитовой инверсии не выходит никак. 
Подскажите, что и как добавить нужно? 

Код

.include "m128def.inc"

 .equ Sgm_A=0b01111111
 .equ Sgm_B=0b10111111
 .equ Sgm_D=0b11011111
 .equ Sgm_E=0b11101111
 .equ Sgm_F=0b11110111
 .equ Sgm_C=0b11111011
 .equ Sgm_H=0b11111101
 .equ Sgm_G=0b11111110




.equ Symbol=(Sgm_A&Sgm_B&Sgm_E&Sgm_F&Sgm_G)
.equ symbolB=(Sgm_C&Sgm_D&Sgm_E&Sgm_F&Sgm_G)
.dseg
    .org    0x200    
VideoD:    .byte 8    
Video:    .byte 8    
.cseg
    .org        0
    jmp INIT
Symbols:.DB    Sgm_A&Sgm_B&Sgm_C&Sgm_D&Sgm_E&Sgm_F,Sgm_B&Sgm_C,Sgm_A&Sgm_B&Sgm_D&Sgm_E&Sgm_G,Sgm_A&Sgm_B&Sgm_C&Sgm_D&Sgm_G
    .DB    Sgm_B&Sgm_C&Sgm_F&Sgm_G,Sgm_A&Sgm_C&Sgm_D&Sgm_F&Sgm_G,Sgm_A&Sgm_C&Sgm_D&Sgm_E&Sgm_F&Sgm_G,Sgm_A&Sgm_B&Sgm_C
    .DB    Sgm_A&Sgm_B&Sgm_C&Sgm_D&Sgm_E&Sgm_F&Sgm_G,Sgm_A&Sgm_B&Sgm_C&Sgm_D&Sgm_F&Sgm_G
    .DB    Sgm_A&Sgm_B&Sgm_C&Sgm_E&Sgm_F&Sgm_G,Sgm_C&Sgm_D&Sgm_E&Sgm_F&Sgm_G
    .DB    Sgm_A&Sgm_D&Sgm_E&Sgm_F,Sgm_B&Sgm_C&Sgm_D&Sgm_E&Sgm_G,Sgm_A&Sgm_D&Sgm_E&Sgm_F&Sgm_G,Sgm_A&Sgm_E&Sgm_F&Sgm_G

KeyTable:    .DB    7,4,1,10,8,5,2,0,9,6,3,11
binar: .DB 0b0111,0b0100,0b0001,0b1010,0b1000,0b0101,0b0010,0b0000,0b1001,0b0110,0b0011,0b1011 
inver: .DB 0b1000,0b1011,0b1110,0b0101,0b0111,0b1010,0b1101,0b1111,0b0110,0b1001,0b1100,0b0100
INIT:
    ldi    R16,0xFF
    out    ddrA,R16
    ldi    R16,0b00001111
    out    ddrC,R16
    ldi    R17,0
    out    portC,R17

    ldi    R16,0xFF
    sts    VideoD,R16    
    ldi    R16,0xFF
    sts    VideoD+1,R16
    ldi    R16,0xFF
    sts    VideoD+2,R16
    ldi    R16,0xFF
    sts    VideoD+3,R16
    ldi    R16,0xFF
    sts    VideoD+4,R16
    ldi    R16,0xFF
    sts    VideoD+5,R16
    ldi    R16,0xb
    sts    VideoD+6,R16
    ldi    R16,0x0
    sts    VideoD+7,R16


    ldi    R26,low(Video)        ;X = Video
    ldi    R27,high(Video)
    ldi    R24,0         


Start:
     out portC,R24
     ld    R16,X+
     out portA,R16
     cbi portC,3
     sbi portC,3

     dec R25  ;<<<<<----------l
     brne PC-1;---------------l

     ldi R16,0xFF
     out portA,R16
     cbi portC,3
     sbi portC,3

     in    R16,pinC
     andi R16,0b11100000

     breq PC+20 ;------------------------l


     swap    R16                         ;l
     lsr    R16                         ;l
     clc                                ;l
     ldi    R17,-1
     inc    R17                         ;l<<<<<----l
     lsr    R16                         ;l         l
     brcc   PC-2  ;--------------------------------l
     lsl    R17
     lsl    R17                         ;l
     add    R17,R24                     ;l
     andi    R17,0x0F                    ;l 
     ldi    R18,0                       ;l 
     ldi    R30,low(2*KeyTable)        ;Z = KeyTable
     ldi    R31,high(2*KeyTable)        ;l
     add    R30,R17                     ;l
     adc    R31,R18                     ;l
     lpm    R10,Z                       ;l
     sts    VideoD,R10                  ;l


     inc    R24                ;<<<<-----l
     andi    R24,7    
     
     brne        PC+18                             ;---------l

     ldi    R26,low(Video)        ;X = Video                  l
     ldi    R27,high(Video)                                ;l
     ldi    R28,low(VideoD)        ;Y = VideoD                 l
     ldi    R29,high(VideoD)                               ;l
     ldi    R16,8                                          ;l
     ldi    R21,0                                          ;l
     ldi    R30,low(2*Symbols)        ;Z = Symbols <<<--ll   ;l
     ldi    R31,high(2*Symbols)                       ;l   ;l
     ld        R20,Y+                                    ;l   ;l
     add    R30,R20                                   ;l   ;l
     adc    R31,R21                                   ;l   ;l
     lpm    R10,Z                                     ;l    l
     st        X+,R10                                    ;l    l
     dec    R16                                       ;l    l
     brne    PC-8                  ;--------------------l    l
     ldi    R26,low(Video)        ;X = Video                  l
     ldi    R27,high(Video)                                ;l


     


     jmp            Start          ;<<<<<<<<--------------lll
;;;;;;;


Это сообщение отредактировал(а) Scratok - 25.4.2015, 19:51
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1047 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.