Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер
Регистрация

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 05.05.2010, 03:00   #1
Funker
 
Регистрация: 04.05.2010
Сообщений: 7
Вопрос Программирование последовательного порта

Постановка задачи: С клавиатуры второго контроллера введите номер разряда и отображаемое число на многоразрядном индикаторе, подключенном к первому контроллеру.
Я так понял нужно ввести цифру (номер разряда) от 0 до 9 на клаве второго МК, а четырёхразрядную двоичную комбинацию, соответствующую двоичному коду введенной цифре, нужно отобразить на 4-х разрядном индикаторе первого МК? Поправьте, если не прав. С чего начать
Вот схема в Протэусе.
Изображения
Тип файла: jpg proteus2.jpg (343.9 Кб, 134 просмотров)
Funker вне форума   Ответить с цитированием
Старый 05.05.2010, 10:02   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...с изучения спецификации на МК/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума   Ответить с цитированием
Старый 06.05.2010, 02:13   #3
Funker
 
Регистрация: 04.05.2010
Сообщений: 7
По умолчанию

Я правильно задачу понял? См. первый пост.
Funker вне форума   Ответить с цитированием
Старый 06.05.2010, 23:55   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...так каков ваш вопрос:
1- c чего начать
2- последовательность действий пользователя при работе с клавиатурой
3- понять задачу

...ваша задача для 2-контроллера сводится к: считыванию нажатий, формированию буфера из двух введенных чисел с клавиатуры и посылки байта на TX
...для 1-го контроллера к: приему поступившей информации с 232 по прерыванию, расшифровке и динамической индикации на 4-х сегментном индикаторе
...итого, начните со спецификации на контроллер (это даст вам необходимые прерывания, порты и режимы), далее тренируйтесь писать по частям программу для 1 и 2-го (можно одну общую) контроллера ...в качестве симулятора можете использовать ICCAVR, WinAVR и многие другие/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума   Ответить с цитированием
Старый 07.05.2010, 02:56   #5
Funker
 
Регистрация: 04.05.2010
Сообщений: 7
По умолчанию

А протеус чем плох? Я в нём пишу и сразу проверяю на ошибки в листинге и симулирую работу программы на схеме. Интересно.
Funker вне форума   Ответить с цитированием
Старый 07.05.2010, 08:58   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...вы спросили с чего начать, вам ответили ...мне протеус не нравится делайте в нем
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума   Ответить с цитированием
Старый 27.05.2010, 02:19   #7
Funker
 
Регистрация: 04.05.2010
Сообщений: 7
Вопрос

Что нужно сделать: ввести сначала номер разряда индикатора от 0 до 4, потом отображаемое число, и это всё на клаве второго МК, после отправить на первый МК, и на его индикаторе отобразить то что было введено. Прошить нужно два МК. Один МК является передатчиком информации, второй приемником. Вот что получилось написать на данный момент. Программа дописана не полностью. Есть ошибки?
Программа передатчика
Код:
org 0000h
	jmp start
	org 0023h
	lcall uartper
	reti
	org 0100h	
start:	mov tmod,#00100001b
	mov tl1,#0fdh
	mov th1,#0fdh
	mov pcon,#0h
	mov scon,#01000000b	

	mov p1, #0FFh
        mov p2, #00h
        mov a, #11111110b
	


s1:     mov p0, a  
        jnb 90h.0,bt7
        jnb 90h.1,bt8
        jnb 90h.2,bt9
        rl a
	
        mov p0, a
        jnb 90h.0,bt4
        jnb 90h.1,bt5
        jnb 90h.2,bt6
        rl a
	
        mov p0, a
        jnb 90h.0,bt1
        jnb 90h.1,bt2
        jnb 90h.2,bt3
        rl a	

        mov p0, a
	jnb 90h.1,bt0
	
	cjne r7,#0,s2
	mov a, r1
	mov r2, a
	mov r7,#2
bt0:    mov r1, #0
	mov r7, #0
	jmp start

bt1:    mov r1, #1
	mov r7, #0
	jmp start

bt2:    mov r1, #2
	mov r7, #0
	jmp start

bt3:    mov r1, #3
	mov r7, #0
	jmp start

bt4:    mov r1, #4
	mov r7, #0
	jmp start

bt5:    mov r1, #5
	mov r7, #0
	jmp start

bt6:    mov r1, #6
	mov r7, #0
	jmp start

bt7:    mov r1, #7
	mov r7, #0
	jmp start

bt8:    mov r1, #8
	mov r7, #0
	jmp start

bt9:    mov r1, #9
	mov r7, #0
	jmp start

	jmp s1

s2:	mov SBUF, r2
	jmp s1
uartper:clr ti
	ret
      	jmp start

timer:	mov th1,#0d8h
	mov tl1,#0f0h

end
Funker вне форума   Ответить с цитированием
Старый 27.05.2010, 02:20   #8
Funker
 
Регистрация: 04.05.2010
Сообщений: 7
По умолчанию

Программа приёмника
Код:
org 0000h
		jmp start

	org	0023h
		lcall uartpr
		reti
			
	org 0100h
start:	
		mov	tmod,#00100000b

		mov	tl1,#0FDh
		mov	th1,#0FDh

		mov	tcon,#01000000b

		mov	pcon,#0h

		mov	scon,#01010000b
		jmp	start

uartpr:		clr	ri
		mov r1, sbuf
		mov r2, #0
		inc r2
		cjne r2,#0,s1

s1:		mov     a,r2
      		anl     a,#00001111b
		orl     a,#01110000b
                mov     p2,a
		mov     p2,#10110000b
                mov     p2,#11010000b
                mov     p2,#11100000b
                jmp     uartpr



		mov	p2,sbuf
		ret


		end
Funker вне форума   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Визуализация работы последовательного порта Vohakisa Помощь студентам 1 01.05.2010 19:30
программирование lpt порта alexs2141 Общие вопросы Delphi 5 07.06.2008 17:10
Осуществление последовательного считывания атрибутов Meskalito БД в Delphi 5 01.04.2008 17:17
Как получить данные с COM-порта или другого любого порта? DeLure Общие вопросы C/C++ 5 20.09.2007 00:50