Далее необходимо соединить элементы между собой согласно принципиальной схеме по методике, изложенной в п. 3.3.4.
3.4.3. Теперь нужно скорректировать параметры некоторых элементов схемы. С этой целью выделите резистор R1, перейдите в режим редактирования свойств и измените величину его сопротивления на 300 Ом (слово Ом вводить не надо), а также тип модели на DIGITAL. Далее выделите резистор R2 и измените тип его модели также на DIGITAL.
И, наконец, выделите клемму питания и перейдите в режим редактирования. В раскрывшемся окне на вкладке Label (метка) щелкните по кнопке в строке String. Из раскрывшегося списка выберите пункт VDD. Щелкните по кнопке подтверждения выбора OK. На схеме над изображением клеммы питания появится надпись VDD. Это означает, что на клемму подано положительное напряжение VDD (по умолчанию +5 В), которое используется для питания микроконтроллера.
Щелкните левой кнопкой по пустому месту схемы, чтобы убрать возможные выделения элементов.
Если полученная схема в окне редактирования Proteus соответствует приведенной на рис. 3, то разработку схемы МКУ можно считать законченной.
Теперь нужно сохранить проект в вашей папке. Выберите пункт меню File > Save Design As… Раскройте вашу папку и сохраните проект под именем but.dsn.
3.4.4. Следующим этапом проектирования МКУ является разработка программы работы микроконтроллера. Предположим, что после включения питания МК (его сброса) светодиод не горит. При нажатии на кнопку светодиод начинает мигать с частотой 1 Гц (как в предыдущей программе). При отжатии кнопки (размыкании ее контакта) светодиод гаснет. Для упрощения программы будем предполагать, что даже при кратковременном замыкании контакта кнопки светодиод будет гореть в течение 0,5 с. Текст программы работы МКУ может иметь следующий вид.
list p=16f84a
#include<p16f84a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC
Count 1 equ 0x0C ; регистры хранения переменных
Count2 equ 0x0D
Count3 equ 0x0E ; для подпрограммы временной задержки
org 0x000
clrf PORTA ; очистить регистр-защелку порта А
clrf PORTB ; очистить регистр-защелку порта В
bsf STATUS,RP0 ; выбрать банк 1
movlw 0xFF ; настроить все линии
movwf TRISA ; порта А на ввод
clrf PORTB ; настроить все линии порта В на вывод
bcf STATUS,RP0 ; выбрать банк 0
wait
btfsc PORTA,0 ; пропустить команду, если RA0=0
goto wait ; идти на метку, если RA0=1
bsf PORTB,0 ; включить светодиод
call del500ms ; задержка на 0,5 с
bcf PORTB,0 ; выключить светодиод
call del500ms ; задержка на 0,5 с
goto wait ; зацикливание программы
#include”del500ms.asm”
end
Задание 1. Наберите текст программы управления светодиодом и сохраните его в папке с вашим проектом под именем but.asm.
3.4.5. Далее нужно получить выходной hex-файл программы и загрузить его в память МК, то есть запрограммировать МК. Это можно сделать по методике, изложенной в пп. 3.3.7, 3.3.8.
3.4.6. После записи hex-файла программы в МК надо проверить работу МКУ. С этой целью с помощью кнопки Play – ПУСК запустите проект на выполнение. Согласно алгоритму программы после запуска МКУ светодиод должен быть погашен. Нажмите кнопку на схеме МКУ, щелкнув по кружку активатора около кнопки. Контакт кнопки должен замкнуться, а светодиод начать мигать с частотой 1 Гц. После этого вновь щелкните мышью по кружку активатора. Контакт кнопки должен разомкнуться, а светодиод погаснуть. Если все эти действия МКУ выполняет правильно, то можно сделать вывод, что программа работает согласно заданному алгоритму.
В заключение проверьте работу МКУ при кратковременном нажатии на кнопку. Это будет соответствовать кнопке без фиксации замкнутого положения контактов. С этой целью щелкните мышью по середине кнопки. Контакт кнопки должен кратковременно замкнуться, а затем разомкнуться. При этом светодиод должен загореться на время 0,5 с.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.