КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |