Розробка програми передачі даних через послідовний порт мікроконтролера

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ЛЬВІВСЬКИЙ ДЕРЖАВНИЙ ІНСТИТУТ НОВІТНІХ ТЕХНОЛОГІЙ ТА УПРАВЛІННЯ ІМ. В.ЧОРНОВОЛА

Факультет інформаційних технологій

Кафедра КСМ







ПОЯСНЮВАЛЬНА ЗАПИСКА

ДО КУРСОВОГО ПРОЕКТУ



з дисципліни



«МІКРОПРОЦЕСОРНІ СИСТЕМИ»



«Розробка програми передачі даних через

послідовний порт мікро контролера»



Варіант №30





Розробив студент групи КІ-31

Височанський Ярослав Михайлович

«____»____________________2006 р.

Керівник___________/ Колосов В.Р. /

«____»____________________2006 р.

Оцінка__________________________



Львів-2006


Розрахунок часових затримок для формування імпульсів у програмі



Для формування нуля:











Отже число, яке потрібно загрузити в перший таймер дорівнює 200.

Для формування одиниці:









Отже число, яке потрібно загрузити в перший таймер, після формування нуля дорівнює 158.



Розрахунок швидкості передачі даних через послідовний порт



Тут ми розраховуєм число, яке потрібно зарядити в таймер/лічильник для генерації потрібної швидкості послідовного порту, в залежності від режиму його роботи та заданої швидкості передачі даних.

Швидкість передачі даних = 1750 біт/с; Режим роботи порту – 3; fclk=22,5МГц

Формула, за допомогою якої визначаємо потрібні дані:





Підставляємо у формулу дані, задані за умовою. Рахуємо, що SMOD=1.

Примітка: при SMOD=1 швидкість передачі вдвоє більша ніж при SMOD=1







Дані для програмування регістрів спеціальних функцій



1. В регістр управління/статусу SCON встановлюємо одиниці у бітах SM0, SM1 для визначення режиму роботи послідовного порту.

2. В регістр масок переривання IE встановлюємо одиниці в бітах EA, ES для дозволу використання програмою переривань.

3. Накладаємо маску на регістр управління потужністю PCON – 10000000 для встановлення біта SMOD в одиницю.

4. В регістр режиму таймера/лічильника TMOD ми записуємо двійкове число 00100010, для встановлення таймерів у 2-ий режим роботи.

5. В TН0 таймера TMR0 записуємо число 189, для формування заданої швидкості передачі даних.

6. Встановлюємо біт RI в нуль, для використання переривання при прийомі байта даних.

7. В TL1 таймера TMR1 записуємо число 200, для формування нуля із заданою тривалістю на лінії порту.

8. В TL1 таймера TMR1 записуємо число 158, для формування одиниці із заданою тривалістю на лінії порту.




Алгоритм



Початок

	



Програмування TMR1

Послідовний порт





Запуск TMR1



OSN

Вибір режиму порту

Програмування TMR0

Ліч. поч. адр. масиву

SMOD = 1

Дозвіл на переривання





P0.7 = 0







Nul:





   Ні

TF = 1





Програмування TMR1

   Так





P0.7 = 1

Запуск TMR1

   Ні

   Так



Лічильник байт





Odyn:

Запуск TMR0



TF = 1








4.2 Алгоритм підпрограми обробки переривань від послідовного порту





Послідовний порт





Зчитув. даних з SBUF





Інкр. ліч. адреси







Декр. ліч. байт





RI = 0







Вихід






Лістинг програми



org	0

jmp	Osn				;Перехід на основну програму

org	0023h

mov	@R0,SBUF			;Зчитування з SBUF в адрес, що знаходиться в R0

inc	R0				;Інкрементуєм лічильник початкової адреси масиву

dec	R5				;Декрементуєм лічильник байт

clr	RI				;Скидаємо прапор переривання приймача

reti					;Вихід з підпрограми обробки переривань

Osn:	setb	SM0			;Визначаєм режим роботи послідовного порту

setb	SM1

clr	SM2			

setb	REN				;Встановлюємо біт дозволу прийому даних

setb	EA				;Знімаєм блокування переривань

setb	ES				;Встановлюєм дозвіл на переривання від посл. порту

orl	PCON,#10000000b	;Встановлюємо біт SMOD в одиницю

mov	TMOD,#00100010b	;Визначаємо режим роботи таймерів

mov	TH0,#189			;Загружаєм TMR0

mov	R0,#4eh			;Загружаєм лічильник початкової адреси масиву

mov	R5,#27			;Загружаєм лічильник байт

setb	TR0				;Запускаєм TMR0

Zagr:	mov	TH1,#200		;Загружаєм TMR1

clr	P0.7				;Встановлюємо на лінії порту P0.7 нуль

setb	TR1				;Запускаєм TMR1

Nul:	jnb	TF1,Nul		;Перевірка на переповнення TMR1

clr	TR1			

mov	TH1,#158		

setb	P0.7				;Встановлюємо на лінії порту P0.7 одиницю

setb	TR1			

Odyn:	jnb	TF1,Odyn

clr	TR1

jmp	Zagr				;Переходимо на мітку Zagr



	
Список використаної літератури

	

	В.В. Сташин, А.В. Урусов, О.Ф. Мологонцева. Проектирование цифровых устройств на однокристальніх микроконтроллерах.

	2. А.В. Фрунзе. Микроконтроллеры? Это же просто