Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные_Методичка_07-04-11.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
7.8 Mб
Скачать

4.2.Пример работы с платой и ide.

В качестве примера приведем простейшую программу мигания светодиодом. Исходный код находится по следующему пути: «C:\SiLabs\MCU\Examples\C8051F36x\Blinky\F36x_Blinky.asm».

Скопируйте его в свой проект.

Рис. 4.8 Основное окно с загруженным проектом.

Данная программа – простейший пример программирования. Она управляет выводом порта (в данном случае P2.7), который подключается к светодиоду с помощью матрицы коммутации. Для соединения служит перемычка. В данном случае необходимо соединить гнездо P2.7 с гнездом LED3 для мигания третьим светодиодом (рис. 4.8).

Рис. 4.9 Матрица коммутации.

Листинг программы нужно скомпилировать, загрузить в плату, запустить и наблюдать за результатами работы программы.

Листинг программы с краткими объяснениями:

$NOMOD51

$include (c8051f360.inc) ;Подключаем заголовочный файл, в котором

;определяются регистры МК.

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

; EQUATES

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

GREEN_LED equ P2.7 ;Вывод P2.7 сопоставляется имени

;GREEN_LED

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

; RESET and INTERRUPT VECTORS

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

; Reset Vector

cseg AT 0

ljmp Main ;Сегмент кода начинается с прыжка на метку Main

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

; CODE SEGMENT

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

Blink segment CODE

rseg Blink ;Выбор регистрового банка 0, который используется

using 0 ;в основной программе

Main:

;Отключение сторожевого таймера

anl PCA0MD, #NOT(040h) ;Очистка Watchdog Enable bit

;Переключение на SFR-страницу Configuration Page

mov SFRPAGE, #CONFIG_PAGE

;Включение коммутационной матрицы портов ввода/вывода

mov XBR1, #40h ;Включение матрицы

orl P3MDOUT, #04h ;Перевод выхода на светодиод в режим

;push-pull

; Сброс светодиода

clr GREEN_LED

;Простой цикл задержки

Loop2: mov R7, #03h

Loop1: mov R6, #00h

Loop0: mov R5, #00h

djnz R5, $

djnz R6, Loop0

djnz R7, Loop1

cpl GREEN_LED ;Переключение светодиода

jmp Loop2

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

; End of file.

END

Приступаем к отладке программы. Основные способы отладки это выполнение программы в пошаговом режиме и расстановка точек останова.

Рис. 4.10 Метка напротив текущей команды.

После компиляции и загрузки программы в МК, в главном окне появляется синяя метка (рис. 4.9) напротив той строки кода, с которой начнется выполнение программы. Естественно, что после остановки программы (красной кнопкой Stop)метка переместится в другое место, т.к. остановка произойдет в случайное время.

При пошаговой отладке кнопками синяя метка будет смещаться по строчкам с операндами, отмечая текущую команду, которая будет выполнена далее.