0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 10
1

PIC16F84A Вычитание двух 2-х разрядных двоичных чисел

19.02.2018, 18:20. Показов 1359. Ответов 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
LIST        p=16F84A
             #DEFINE      FLAG_DIG     REG.FL,0
;
             #DEFINE      SB0          PORTA,0
             #DEFINE      SB1          PORTA,1
 
 
 
;
;
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        SB2
             GOTO         M1.1
                                    ;
             MOVF         PORTA,W
             ANDLW        03H
             MOVWF        REG_A
                                    ;
M1.1         BTFSC        SB3
             GOTO         M1.2
                                    ;
             MOVF         PORTA,W
             ANDLW        03H
             MOVWF        REG_B
;
M1.2
             BTFSC        SB4
             GOTO         M2.0
                                    ; REG_A - REG_B
             MOVF         REG_B,W
             SUBWF        REG_A,W
             BCF          LED_RED
             BTFSS        STATUS,C
             BSF          LED_RED
             BTFSS        STATUS,C
             SUBLW        .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
             SUBWF        REZ.H,F
             BTFSS        REZ.L,3
             SUBWF        REZ.L,F
;
             MOVLW        .48
             BTFSS        REZ.H,7
             SUBWF        REZ.H,F
             BTFSS        REZ.L,7
             SUBWF        REZ.L,F
;
B2B1         RLF          REG.AL,F
             RLF          REZ.L,F
             RLF          REZ.H,F
             DECFSZ       Q.REG.L,F
             GOTO         ADJDEC
             RETURN
;
;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2018, 18:20
Ответы с готовыми решениями:

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

Сложение/вычитание 4-разрядных bcd-чисел
Всем доброго времени суток! Совсем запуталась с решением данной задачи, поэтому без вашей помощи не...

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

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

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

7
38 / 38 / 11
Регистрация: 27.09.2014
Сообщений: 476
19.02.2018, 19:02 2
Так на {del} уже написали...
Или это тест, какой форум лучше?
0
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 10
19.02.2018, 19:15  [ТС] 3
Нет).Просто интересно узнать может что то не так.
0
38 / 38 / 11
Регистрация: 27.09.2014
Сообщений: 476
19.02.2018, 19:27 4
А самому начать разбираться в готовом, запустив отладичк слабо?
0
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 10
19.02.2018, 19:28  [ТС] 5
Хорошо,подскажите хороший отладчик
0
pyzhman
20.02.2018, 07:41
  #6

Не по теме:

Цитата Сообщение от toha060999 Посмотреть сообщение
смог накидать
Да, освоить Ctrl+C и Ctrl+V тоже надо суметь.

0
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 10
20.02.2018, 17:18  [ТС] 7
Топ форум тролей(учитесь шутить юмор плоский как забор)
0
пофигист широкого профиля
4712 / 3147 / 858
Регистрация: 15.07.2013
Сообщений: 18,129
21.02.2018, 01:49 8
toha060999, вы бы честно попросили разъяснить сей "надыбанный" вами на просторах рунета код. Уверен, что вам наверняка помогли бы.
0
21.02.2018, 01:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2018, 01:49
Помогаю со студенческими работами здесь

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

Реализовать вычитание двух 64-разрядных чисел.
Всем привет:) Ребят подскажите, пожалуйста, в чём проблема?? Есть следующая задача: &quot;Реализовать...

Рекурсия: вычитание двух n-разрядных чисел
мне нужно вычесть два n-разрядные числа рекурсией, помогите пожалуйста мені потрібно відняти два...

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

Реализовать вычитание двух 64-разрядных чисел, не используя команду SUB
ФедосеевПавел, а подскажите, пожалуйста, почему вот эта программа выдаёт неверный результат??...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru