Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2016, 15:07   #1
leidenit
Новичок
Джуниор
 
Регистрация: 29.05.2016
Сообщений: 2
По умолчанию MCS-51(8051) и lcd 16x2 подключение

Добрый день. Имеется плата UNI-DS3 и установленный UNI-DS3 40 PIN 8051 CARD. Нужно выводить текст на дисплей 16x2. Программа должна быть написана на ассемблере. Уже как только не изворачивался, всё перепробовал, но результата не достиг. Кидаю последний код, мб кто знает какие-нибудь вспомогательные материалы(всё уже перерыл и ничего не работает). Нужна любая помощь.

Код HTML:
U equ 31H 
L equ 32H 
Port equ P1 
RS equ P2.0 
RW equ P2.1 
EN equ P2.2 

ORG 0000h 
CLR RW 
ACALL init 
MOV A, #'T' 
ACALL lcd_data 
MOV A, #'E' 
ACALL lcd_data 
MOV A, #'N' 
ACALL lcd_data 
MOV A, #'T' 
ACALL lcd_data 
MOV A, #'U' 
ACALL lcd_data 
MOV A, #'T' 
ACALL lcd_data 
MOV A, #'S' 
ACALL lcd_data 
MOV A, #'.' 
ACALL lcd_data 
MOV A, #'C' 
ACALL lcd_data 
MOV A, #'O' 
ACALL lcd_data 
MOV A, #'M' 
ACALL lcd_data 
MOV A, #' ' 
ACALL lcd_data 
MOV A, #'4' 
ACALL lcd_data 
MOV A, #'B' 
ACALL lcd_data 
MOV A, #'I' 
ACALL lcd_data 
MOV A, #'T' 
ACALL lcd_data 

MOV A, #0c0H 
ACALL lcd_cmd 

MOV A, #'S' 
ACALL lcd_data 
MOV A, #'O' 
ACALL lcd_data 
MOV A, #'S' 
ACALL lcd_data 

SJMP $ 

separator: 
MOV U,A 
ANL U,#0F0H 
SWAP A 
ANL A,#0F0H 
MOV L,A 
RET 

move_to_Port: 
MOV port,A 
SETB EN 
ACALL DELAY 
CLR EN 
ACALL DELAY 
RET 

lcd_cmd: 
CLR RS 
ACALL separator 
MOV A, U 
ACALL move_to_port 
MOV A, L 
ACALL move_to_port 
RET 

lcd_data: 
SETB RS 
ACALL separator 
MOV A, U 
ACALL move_to_port 
MOV A, L 
ACALL move_to_port 
RET 

init: 
ACALL delay 
ACALL delay 
MOV port, #20h 
CLR RS 
SETB EN 
ACALL delay 
CLR EN 

MOV A, #28H 
ACALL lcd_cmd 
MOV A, #0CH 
ACALL lcd_cmd 
MOV A, #06H 
ACALL lcd_cmd 
MOV A, #01H 
ACALL lcd_cmd 
RET 

delay: 
MOV R0, #10H 
L2: MOV R1,#0FH 
L1: DJNZ R1, L1 
DJNZ R0, L2 
RET 

END
leidenit вне форума Ответить с цитированием
Старый 29.05.2016, 17:16   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

для начала замени длинное полотенце посимвольной выдачи циклом.
и погоняй под дебаггером.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 29.05.2016, 18:13   #3
leidenit
Новичок
Джуниор
 
Регистрация: 29.05.2016
Сообщений: 2
По умолчанию

Прогонял, даже записывал на плату, результата 0
leidenit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LCD HD44780 atmega16(a) сервопривод 25-й кадр Помощь студентам 0 28.05.2014 16:56
Ассемблер MCS-51. totoshka51 Помощь студентам 0 15.04.2011 19:52
Генератор шестнадцатиричного кода для LCD Nokse Помощь студентам 2 13.02.2011 21:30
выбор LCD панели a-l-f Компьютерное железо 2 27.11.2010 16:23
MCS-51 Dgeron Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 24.01.2010 14:12