Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Віднімає номер вашої бригади. Результат в Т_С




;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

btfss STATUS,C;якщо > 0, пропустити

goto main_0;інакше, - знову почати з більшого числа

call BINBCD; перетворення BIN=(Т_С) у BCD=(MSD, LSD)

call BCD_7;перетв. BCD-коду у код індикаторів

disp: CALL DISPLAY; Результат - на індикацію

 

;-----------------------------------------------

movlw 4;затримка на 1 с

movwf LOOP3;

call DELAY; затримка 250 мс

decfsz LOOP3,f;

goto main_1;повторити для наступного числа

;-----------------------------------------------

 

;п/п зсуву регістрів M7, L7 молодшими розрядами

;в 2 регістри зсуву

DISPLAY:

movlw d'16';лічильник в _N

movwf _N

NastBit: rrf M7,f;зсув вправо пари регістрів M7, L7

rrf L7,f

bcf PORTC,5;

btfsc STATUS,C;якщо висунутий біт=0, RC5=0,

bsf PORTC,5; інакше - RC5=1

;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

; тут складіть фрагмент, що формує

; тактовий імпульс у біті 3 порта С

;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

decfsz _N,f;лічильник - 1, і пропустити, якщо 0

goto NastBit;зсув повторюється 16 разів

return

 

;---------------------------------------

DELAY:

MOVLW.250; Затримка 250 мс

MOVWF LOOP1

DELAY_N_MS:

OUTTER:

MOVLW.102; Затримка 1 мс

MOVWF LOOP2

INNER:

movlw d'15'

movwf LOOP0

ININNER:

DECFSZ LOOP0,F

goto ININNER

DECFSZ LOOP2, F

GOTO INNER

DECFSZ LOOP1, F

GOTO OUTTER

RETURN

;********************************************

; Стандартні процедури роботи з дисплеєм

;********************************************

; коментар до цієї підпрограми написати самостійно

BINBCD:

CLRF MSD

MOVF T_C,w

MOVWF LSD

GTENTH:

movlw d'10'

subwf LSD,W

btfss STATUS,C

retlw 0

movwf LSD

incf MSD,F

goto GTENTH

 

;------------------------------------

;п/п перетворення BCD (MSD, LSD)

;в 7-сегментні коди двох цифр (M7, L7)

BCD_7: movf MSD,W

call tab7s;п/п перетв. цифри (W) в 7-сегментний код

movwf M7;7-сегм. код старшої цифри – в M7

movf LSD,W

call tab7s

movwf L7;7-сегм. код молодшої цифри – в L7

return

;------------------------------------

tab7s: addwf PCL,f;п/п перетвор. цифри (W)=0..9

; у 7-сегментний код в W

retlw b'11111100';0

retlw b'01100000';1

retlw b'11011010';2

retlw b'11110010';3

retlw b'01100110';4

retlw b'10110110';5

retlw b'10111110';6

retlw b'11100000';7

retlw b'11111110';8

retlw b'11110110';9

;*************************************************

int: retfie

 

END

 

8. Виконати компіляцію програми (Project – Make Project або кнопка у вигляді зеленої лійки). Після цього на екрані з'являється вікно результатів компіляції (Build Results).

9. Якщо з'явилось повідомлення про помилки (error), слід, ознайомившись з поясненням змісту помилки, натиснути мишкою на цей рядок вікна Build Results. MPLAB зробить активним той рядок у тексті програми, де, ймовірно, зроблено помилку. Слід виправити її і далі так само й інші помилки. Потім повернутись до п. 8, 9, поки не буде видано повідомлення "Build completed successfully" (компіляцію завершено успішно). При цьому створюється файл з тим же ім'ям і розширенням.hex. Може також з'явитись віконце нагадування про те, що після змін у програмі потрібно виконати програмування мікроконтролера за допомогою налагоджувача.

10. Закрийте це вікно і вікно Build Results. Виконайте програмування мікроконтролера, натиснувши у вікні MPLAB ICD кнопку Program.

11. Виконайте програму, натиснувши клавішу F9 або кнопку зеленого світлофора. На індикаторі мають відображуватись числа, що залежать від номера вашої бригади. Запишіть їх.

12. Змініть програму, щоб швидкість їх виведення збільшилась удвічі.

 

 

ЗМІСТ ЗВІТУ

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

 

 

КОНТРОЛЬНІ ЗАПИТАННЯ

1. Які недоліки має симулятор MPLAB?

2. Які основні можливості налагоджувача?

3. Які переваги і недоліки підключення семисегментних індикаторів до мікроконтролерів за допомогою регістрів зсуву?

4. Які основні етапи перетворення двійкового числа на семисегментний код відповідних десяткових цифр?

5. Що потрібно змінити у дослідженій програмі, щоб числа на індикаторі з'являлись вдвічі швидче, щоб числа змінювались з вдвічі більшим кроком?

 

Лабораторна робота № 27




Поделиться с друзьями:


Дата добавления: 2015-06-25; Просмотров: 326; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.