Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 22
1

Программка для 8051

14.05.2017, 13:24. Показов 883. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Нужна помощь. я не совсем понимаю как организовать отнимание 1 и отображение.
вот задание:
Попеременно отображать на статическом индикаторе числа от 0 до 9, дублировать эти числа на линейке светодиодов (в двоичной форме).
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
ORG  0
Begin:
mov R1,#09h 
mov A,R1     
mov R3, A
mov P1,#01010101b  
mov A,R3
call decod      
mov P3,#1000b
mov P2,A
call DEL        
 
mov A,R3
call decod      
mov P3,#1000b
mov P2,A
mov P1,#10101010b 
call DEL    
 
label:
mov A,R3
call decod
djnz R1,label
 
jmp Begin   
 
decod:
  mov DPTR,#TabDecod 
  movc A,@A+DPTR     
  ret
   TabDecod:
  db 11000000b; ñèìâ "0"
  db 11111001b; ñèìâ "1"
  db 10100100b; ñèìâ "2"
  db 10110000b; ñèìâ "3"
  db 10011001b; ñèìâ "4"
  db 10010010b; ñèìâ "5" 
  db 10000010b; ñèìâ "6"
  db 11111000b; ñèìâ "7"
  db 10000000b; ñèìâ "8"
  db 10010000b; ñèìâ "9"
  db 10001000b; ñèìâ "À"
  ret
 
 
DEL:                     
          mov R6,#0FFh
          mov R5,#0Ah
C2:       mov R7,#0FFh
C4:       djnz R7, C4
          djnz R6, C2
          djnz R5, C2
          ret           
 
END
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2017, 13:24
Ответы с готовыми решениями:

Код для 8051
Объясните пожалуйста, что каждая строка этого кода делает #include <stdio.h> #include...

Дешевая отладка для 8051
Подскажите плз, есть ли под какой-либо из вариантов C-51 дешевые отладки наподобие STM8S-Dyscovery...

Вычисление по формуле для 8051
Здравствуйте, помогите бедному студенту, если у кого есть свободная минутка. Вот такое задание дали...

Программный UART для 8051, на С
Доброго времени суток. В общем и целом задача такова, есть программа на компе формирующая посылки...

Работа с массивами для ассемблера 8051
Здравствуйте я написал программу для работы с массивом .RSEG...

6
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
14.05.2017, 18:45 2
Цитата Сообщение от NYRA Посмотреть сообщение
как организовать отнимание 1
От 0 до 9 нужно прибавлять по 1. Команда инкремента.
Цитата Сообщение от NYRA Посмотреть сообщение
отображение.
Выводим в порт, к которому подключен индикатор. Тут играет роль тип индикатора.
0
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 22
15.05.2017, 16:06  [ТС] 3
вот, вроде так. но не работает. выдает только 9
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
ORG  0
Begin:
mov R1,#09h 
mov A,R1     
mov R3, A
mov P1,#01010101b  
mov A,R3
call decod      
mov P3,#1000b
mov P2,A
call DEL        
 
mov A,R3
call decod      
mov P3,#1000b
mov P2,A
mov P1,#10101010b 
call DEL    
 
label:
mov A,R3
call decod
djnz R1,label
DEC A
mov P3,A
 
jmp Begin   
 
decod:
  mov DPTR,#TabDecod 
  movc A,@A+DPTR     
  ret
   TabDecod:
  db 11000000b; ñèìâ "0"
  db 11111001b; ñèìâ "1"
  db 10100100b; ñèìâ "2"
  db 10110000b; ñèìâ "3"
  db 10011001b; ñèìâ "4"
  db 10010010b; ñèìâ "5" 
  db 10000010b; ñèìâ "6"
  db 11111000b; ñèìâ "7"
  db 10000000b; ñèìâ "8"
  db 10010000b; ñèìâ "9"
  db 10001000b; ñèìâ "À"
  ret
 
 
DEL:                     
          mov R6,#0FFh
          mov R5,#0Ah
C2:       mov R7,#0FFh
C4:       djnz R7, C4
          djnz R6, C2
          djnz R5, C2
          ret           
 
END
 Комментарий модератора 
используйте теги для выделения кода
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
15.05.2017, 17:43 4
Схему бы увидеть.
0
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 22
15.05.2017, 19:09  [ТС] 5
вот.
Вложения
Тип файла: rar 222222.rar (82.0 Кб, 2 просмотров)
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
15.05.2017, 19:35 6
Зажгите какой-либо разряд одним из портов Р3. Портом Р2 выводите код нужной цифры, а некод выводите в Р1.
0
$ su
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
30.05.2017, 02:16 7
Ну заносим в R1 допустим 9 на старте, потом делаем метку старт луп например, в ней отображаем содержимое R1 там где нужно, потом делаем djnz старт луп. Изи же.

Добавлено через 2 минуты
Это с декрементом, если охота наборот то можно через CJNE сравнивать и прибавлять пока не 9 при этом отображать.
0
30.05.2017, 02:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2017, 02:16
Помогаю со студенческими работами здесь

Подпрограмма для keil uvision 8051
Напишите пожалуйста такую подпрограмму для 8051, а то у меня с ассемблером все плохо /Реализовать...

Таймер для светофора на микропроцессоре intel 8051
Реализовать модель светофора, если принять что включение каждой лампы обусловливается «1» на одном...

Разыскиваю старый IAR для 8051, 6 версии
На работе возникла потребность поднять старый проект, который писали другие люди, давно...

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

Как создать файл для загрузки ПЗУ 8051?
Я не могу найти название ассемблера из тех что вы сказали, вот что написано в методичке:...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru