реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Индикатор на K1816BE51
misha88
сообщение Mar 3 2010, 13:16
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 23-12-07
Пользователь №: 33 564



Проверьте меня)

Программа поразрядной обработки 1816ВЕ51. Программа должна установить нулевой
разряд числа в регистре R5 в 1, сбросить четвёртый разряд в 0 и инвертировать шестой
разряд. В скобочках указано значение R5 после выполнения заданной операции

Код
org 50h
main:
  mov R5, #0FEh
  mov A, R5
  orl A, #1; Установка нулевого бита => A = FFh
  anl A, #0EFh; Сброс четвёртого бита => A = EFh
  xrl A, #40h; Инвертирование шестого бита => A = AFh
  mov R5, A
end
Go to the top of the page
 
+Quote Post
SSerge
сообщение Mar 3 2010, 14:58
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(misha88 @ Mar 3 2010, 19:16) *
Проверьте меня)

Правильно, но чтобы делать поменьше ошибок и произвести впечатление на препода лучше делать примерно так
CODE
Bit0 EQU (1 << 0)
Bit4 EQU (1 << 4)
Bit6 EQU (1 << 6)
; *******************************************************
; * bitbang
; * установить нулевой разряд числа в регистре R5 в 1,
; * сбросить четвёртый разряд в 0 и
; * инвертировать шестой разряд
; *******************************************************
bitbang xch A,R5
orl A, Bit0
anl A,~Bit4
xrl A, Bit6
xch A,R5
ret

; эту процедуру можно вызвать примерно так:
mov R5, #0FEh
call bitbang


заметим, что аккумулятор не портиться, его содержимое остаётся таким же что и до вызова.
А если ещё и MACRO применить...


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
misha88
сообщение Mar 14 2010, 18:10
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 23-12-07
Пользователь №: 33 564



Переделал


Сообщение отредактировал misha88 - Mar 14 2010, 18:27
Go to the top of the page
 
+Quote Post
vvs157
сообщение Mar 14 2010, 18:43
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(misha88 @ Mar 14 2010, 21:10) *
Переделал
У порта P0 в режиме ввода-вывода выходы с открытым истоком, поэтому нужно ставить подтягивающие резисторы на +5В. Или использовать порт Р1. Повторю еще раз - 1816ВЕ51 - с масочным ПЗУ, программируемым на заводе (конечный потребитель ничего в внутренее ПЗУ ВЕ51 записать не может в принципе), поэтому эту схему можно посторить только на Flash аналоге типа Атмеловского AT89S8252
Go to the top of the page
 
+Quote Post
misha88
сообщение Mar 14 2010, 19:00
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 23-12-07
Пользователь №: 33 564



Для динамической индикации группы символов удобно воспользоваться процедурой индикации символа, оформив ее в виде параметризуемой подпрограммы. Входными параметрами для подпрограммы REPEAT являются исходный код отображаемого символа и номер знакоместа, на которое осуществляется вывод. Исходный код символа задается текущим адресом в массиве DIGIT, а номер знакоместа текущим значением байта выборки (массив IPOS) и значением счетчика знакомест INDPOS .
Код
;indpos–номер включенного катода
;Таблица знакогенератора(без децимальных точек)
digit: db C0h, F9h, A4h, B0h, 99h, 92h, 82h, F8h, 80h, 90h
; Таблица кодов для включения одного из четырех катодов
ipos : db 01h, 02h, 04h, 08h
; Инициализация параллельного интерфейса

display:

mov A, 0FFh
mov P0, A
mov A, @R1
add A, digit
mov A, @A
mov P1, A
mov A, R2
mov P0, A
rl, A
mov R2, A
inc R1

repeat:

mov A, indpos
mov R1, number
add A, R1
mov R1, digit
add R1
mov A, R1
mov R1, ipos
add R1
mov A, 01h
dec D
mov A, D
jnz repeat
mov D, 7
jmp repeat


м?
Go to the top of the page
 
+Quote Post
vvs157
сообщение Mar 14 2010, 19:51
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(misha88 @ Mar 14 2010, 22:00) *
м?
Не-а. Резисторы (10К 8 шт) одним концом на +5V, другим - на ноги порта Р0
Go to the top of the page
 
+Quote Post
misha88
сообщение Mar 14 2010, 19:52
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 23-12-07
Пользователь №: 33 564



Цитата(vvs157 @ Mar 15 2010, 00:51) *
Не-а. Резисторы (10К 8 шт) одним концом на +5V, другим - на ноги порта Р0

А на общую шину??
Go to the top of the page
 
+Quote Post
misha88
сообщение Mar 15 2010, 04:53
Сообщение #23


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 23-12-07
Пользователь №: 33 564



так??
Go to the top of the page
 
+Quote Post
ae_
сообщение Mar 15 2010, 08:30
Сообщение #24


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(misha88 @ Mar 15 2010, 12:53) *
так??

Нет. Входы инверторов нужно подключить к порту контроллера напрямую, как в сообщении №18.
А каждый из 8-ми резисторов подтяжки нужно включить одним выводом к +5В, другим - к каждому выводу порта контроллера раздельно.

Сообщение отредактировал ae_ - Mar 15 2010, 08:33
Go to the top of the page
 
+Quote Post
misha88
сообщение Mar 15 2010, 08:41
Сообщение #25


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 23-12-07
Пользователь №: 33 564



нА другой порт чтоли? P1?
не догоняю. вывод порта P0 занят уже входом инвертора? куда еще резистор то подключать??,
а понял..помоему..ща нарисую

Сообщение отредактировал misha88 - Mar 15 2010, 08:56
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 15 2010, 09:04
Сообщение #26


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(misha88 @ Mar 15 2010, 13:41) *
не догоняю.

Прикрепленное изображение


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
misha88
сообщение Mar 15 2010, 09:07
Сообщение #27


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 23-12-07
Пользователь №: 33 564





Догнал)))))))))))))))
Go to the top of the page
 
+Quote Post
misha88
сообщение Mar 15 2010, 12:31
Сообщение #28


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 23-12-07
Пользователь №: 33 564



С прогой не могу разобраться....
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 16:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01463 секунд с 7
ELECTRONIX ©2004-2016