0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 5

PIC16f84A Сложение двух 2-х разрядных двоичных чисел

22.02.2018, 15:10. Показов 1960. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с кодом для PiC16f84a со следующими функциями:
сложение двух 2-х разрядных двоичных чисел. Каждое число вводить через порт путем нажатия кнопок с фиксацией sb0 и sb1 факт ввода первого числа инициируется при нажатии кнопки SB2 , а второго sb3. Полученный результат при нажатии кнопки SB4 Вывести на 7-сегментный дисплей.Заранее спасибо.
Нашел код похожий но только на вычитание. Можете помочь объяснить и если что то не так исправить.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#include "p16f84a.inc"  
 
LIST        p=16F84A
 __CONFIG    03FF1H
             #DEFINE      FLAG_DIG     REG.FL,0
 
             #DEFINE      SB0          PORTA,0
             #DEFINE      SB1          PORTA,1
           REG_A EQU 0x0c
             REG_B EQU 0x0e
            
 
;
;
INV          MACRO        REG,BIT1
             MOVLW        1<<BIT1
             XORWF        REG,F
             ENDM
 
      
 
 
       CBLOCK       0x20      ;BANK0
 
 
 
 
REG.FL
 
 
 
REG_A,REG_B
REG_IND
 
             ENDC
;
             CBLOCK       0x70      ;ALL BANK
REG.AL
REZ.L,REZ.H
Q.REG.L
             ENDC
;
             ORG          0x00
INIT
;
;
;
;
MAIN
             BTFSC       PORTB,3
             GOTO         M1.1
                                    ;
             MOVF         PORTA,W
             ANDLW        03H
             MOVWF        REG_A
                                    ;
M1.1         BTFSC        PORTB,4
             GOTO         M1.2
                                    ;
             MOVF         PORTA,W
             ANDLW        03H
             MOVWF        REG_B
;
M1.2
             BTFSC        PORTB,5
             GOTO         M2.0
                                    ; REG_A - REG_B
             MOVF         REG_B,W
             ADDWF        REG_A,W
             BCF          PORTB,6
             BTFSS        STATUS,C
             BSF         PORTB,6
             BTFSS        STATUS,C
             ADDLW        .0
                                    ;
             MOVWF        REG_IND
;
M2.0
             MOVF         REG_IND,W
             MOVWF        REG.AL
             CALL         BIN2BCD8
;
             INV          FLAG_DIG
             BTFSC        FLAG_DIG
             GOTO         M2.1
;
             MOVF         REZ.L,W
             ANDLW        0FH
 
             BCF          P.DIG1
             CALL         SET.SEG
             MOVWF        PORTB
             BSF          P.DIG0
             GOTO         M2.0.OUT
;
M2.1
             SWAPF        REZ.L,W
             ANDLW        0FH
;
             BCF          P.DIG0
             CALL         SET.SEG
             MOVWF        PORTB
             BSF          P.DIG1
             GOTO         M2.0.OUT
;
;
M2.0.OUT
;
;
;
             GOTO         MAIN
;
;
;
SET.SEG
             ANDWF        PCL,F
;
             RETLW        SEG_0
             RETLW        SEG_1
             RETLW        SEG_2
             RETLW        SEG_3
             RETLW        SEG_4
             RETLW        SEG_5
             RETLW        SEG_6
             RETLW        SEG_7
             RETLW        SEG_8
             RETLW        SEG_9
;
;
;
BIN2BCD8
 ;in: REG.AL - BIN
;out: REZ.H, REZ.L - BCD (PACKED) 
  ;
             MOVLW        .8        ; Q.BIT IN
             MOVWF        Q.REG.L
;
             CLRF         REZ.H
             CLRF         REZ.L
             GOTO         B2B1
;
ADJDEC       MOVLW        .51
             ADDWF        REZ.H,F
             ADDWF        REZ.L,F
;
             MOVLW        .3
             BTFSS        REZ.H,3
             ADDWF        REZ.H,F
             BTFSS        REZ.L,3
             ADDWF        REZ.L,F
;
             MOVLW        .48
             BTFSS        REZ.H,7
             ADDWF        REZ.H,F
             BTFSS        REZ.L,7
             ADDWF        REZ.L,F
;
B2B1         RLF          REG.AL,F
             RLF          REZ.L,F
             RLF          REZ.H,F
             DECFSZ       Q.REG.L,F
             GOTO         ADJDEC
             RETURN
 
    END
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.02.2018, 15:10
Ответы с готовыми решениями:

PIC16F84A Вычитание двух 2-х разрядных двоичных чисел
Помогите с кодом для PiC16f84a со следующими функциями: Вычитание двух 2-х разрядных двоичных чисел. Каждое число вводить через порт...

Схема умножение двух 8-ми разрядных двоичных чисел
Здравствуйте, уважаемые форумчане! Есть задача: Построить схему умножения двух 8-ми разрядных двоичных чисел с анализом старших...

Устройство сложения 4-х разрядных двоичных чисел
Здравствуйте, проблема следующая Необходимо разработать устройство, позволяющее производить сложение четырехразрядных двоичных чисел....

7
1184 / 659 / 113
Регистрация: 15.05.2012
Сообщений: 4,074
22.02.2018, 19:06
Конечно.
0
0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 5
22.02.2018, 20:45  [ТС]
Конечно....
0
 Аватар для Voland_
1978 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
22.02.2018, 21:08
Цитата Сообщение от Torbi Посмотреть сообщение
Можете помочь объяснить и если что то не так исправить.
начните с комментариев. Опишите - что, зачем, и как это используется.
0
0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 5
22.02.2018, 21:43  [ТС]
Voland_ если бы я понял все.Большую часть кода нашел, как бы не старался понять пока не получается. ЧАсть дописал сам,ту что более менее понял
0
Модератор
Эксперт по электронике
8967 / 6733 / 921
Регистрация: 14.02.2011
Сообщений: 23,792
22.02.2018, 22:02
Цитата Сообщение от Torbi Посмотреть сообщение
.Большую часть кода нашел,
так переведи на русский язык, например вот это что
Цитата Сообщение от Torbi Посмотреть сообщение
RETLW SEG_0
0
0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 5
22.02.2018, 22:07  [ТС]
SEG_0-9 это сегменты на 7 сегментном индикаторе. еще не выбирал ножки.Точнее были проблемы с их выбором
0
Модератор
Эксперт по электронике
8967 / 6733 / 921
Регистрация: 14.02.2011
Сообщений: 23,792
22.02.2018, 22:16
Цитата Сообщение от Torbi Посмотреть сообщение
еще не выбирал ножки.
так выбери
программирование для микроконтроллеров это синтез программиста, электроника и схемотехника
и это дорого стоит, и вот так наедятся, что тебе выложат решение, которое стоит кучу бабок, не надо
помочь могут, но ты хоты бы "купи лотерейный билет"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.02.2018, 22:16
Помогаю со студенческими работами здесь

Сложение двух 16-ти разрядных двоичных чисел
Разработать ассемблерную программу сложения двух 16-ти разрядных двоичных чисел, пользуясь относительной адресацией. Буду благодарна за...

Вычитание двух 32-разрядных двоичных чисел
Добрый день! Понимаю, что задача простейшая, но все же вызывает затруднения. Мне надо написать программу вычитания двух 32-разрядных...

Написать программу сложения двух 32-разрядных двоичных чисел
День добрый, подскажите почему не могу посмотреть конечный результат(окно закрывается) и почему в конце работы программы выдает...

Сложение двух 256-разрядных чисел
Написать на ассемблере функцию сложения двух 256-разрядных чисел Написать на ассемблере функцию сложения двух 512-разрядных чисел ...

сложение двух двоичных чисел
Помогите разобраться со сложением двоичных чисел. Напишите алгоритм сложения двух двоичных чисел!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Трассировка корутин Kotlin с OpenTelemetry
mobDevWorks 14.07.2025
Асинхронное программирование меняет правила игры, особенно когда речь заходит о трассировке операций. В Kotlin с его корутинами эта проблема приобретает особый оттенок, который я хотел бы детально. . .
Облачные приложения на Rust: руководство по архитектуре микросервисов
golander 13.07.2025
Когда я впервые взялся за проектирование облачной платформы для одного из наших клиентов, выбор стоял между привычными Go и Java. Но после нескольких месяцев разработки микросервисной системы,. . .
Как Node.js выполняет асинхронные операции
Reangularity 13.07.2025
Каждый раз, когда я рассказываю про Node. js, возникает один и тот же вопрос: "Как эта штука может быть быстрой, если JavaScript — однопоточный язык?" И это действительно кажется парадоксом. Ведь в. . .
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru