Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Именно такой файл __.c текста программы на Си нужно использовать, ведь к нему привязаны данные в файле .cof





Указываем симулятору частоту тактирования МК - у нас она 1МГц
.CLOCK 1meg
Указание виртуальному ЗАПОМИНАЮЩЕМУ осциллографу хранить данные симуляции за последние 2000 мс до остановки симуляции.
.STORE 2000m

Это время можно не указывать, но могут получаться очень большие файлы с результатами симуляции.

Указываем название узлов и напряжения питания и "земли"
.POWER VDD = 5 VSS = 0

Описание подключения светодиода - от питания МК ---|>|--- к резистору 430 Ом и другой вывод резистора к ножке PB0 МК

; =========================
; LED diodes D2 and current limiting resistor R1

D1 VDD res16; LED diode 1 on control panel.

Теперь зададим некоторое число определяющее время отсчета таймера
при симуляции - я выбрал число для задержки 28 сек:

; =======================
; 12-bit digit for timer 0000 1000 1100 = 140
; x 0,2 = 28 sec

Для имитации замкнутых контактов SW1 и SW2 будем использовать резисторы 1 Ом от "земли" (VSS) к соответствующим ножкам МК.

На ножках МК к которым ни чего не подключено (точнее подключены разомкнутые контакты SW1 и SW2) будут лог "1" за счет включенной "подтяжке" к + питания МК.

R0 VSS PD0 1
R1 VSS PD1 1

R4 VSS PD4 1
R5 VSS PD5 1

R6 VSS PC0 1

R8 VSS PC2 1
R9 VSS PC3 1
R10 VSS PC4 1
R11 VSS PC5 1

Добавляем кнопку SW3

; =======================
; SW3 === K0 on ControlPanal

K0 PD6 VSS LATCHED
; SW3 key toggles from open to closed as you press it.

Использовали кнопку "0" на клавиатуре 4х4 в "Контрол пэнел" и подключили ее по схеме таймера - к ножке PD6 МК и "общему" проводу устройства.

Кнопка с фиксацией (слово LATCHED), т.е. ее состояние меняется при каждом нажатии мышкой и остается таким до следующего нажатия.

Для моделирования подключения нагрузки мы
используем кнопку "С" на клавиатуре 4х4 и резистор 1 МОм

; =======================
; Load simulation

KC PB2 VSS LATCHED;

R20 VDD PB2 1M;

;if but. "C" was pressed - load looks like was been broken!
;if but. "C" was pressed once more - load looks like was been good!

В начале программы кнопки разомкнуты и на ножку-вход PB2 будет поступает напряжение питания через резистор 1 МОм - значит на ней будет лог. "1"
значит программа будет считать что нагрузка исправна.

Если нажать кнопку "С" то ее контакты замкнутся и PB2 окажется заземленной на ней появятся физический 0 вольт и соответственно лог. "0" - это соответствует случаю не исправной цепи нагрузки

Кнопку "F" подключим к ножке PD7 позволяет выбрать включать ли нагрузку только на 2 секунды или включить ее и не выключать.
; =======================
; How long IRLxxxx will state ON

KF PD7 VSS LATCHED;

; if button "F" was pressed - IRLxxxx
; will turn ON forefer
Если кнопку "F" не трогать, то она будет разомкнута и значит к ножке PD7 ни чего не будет подключено, подтяжка создас на ней "1" и значит транзистор будет включаться только на 2 сек.

Если кнопку "F" нажать, то она замкнет ножку PD7 на "землю" и транзистор будет включен после отработки таймером заданного времени "навсегда".

Запускаем симулятор VMLAB:

1) В меню "прожект" выбираем "открыть проект":

 

Рисунок 3.5 Открываем созданный файл для симуляции в Vmlab

2) теперь проект нужно " отбилдить " - как я это называю. Меню " прожект " далее " ребилд ол-л " - должны получить сообщение об успехе:

Рисунок 3.6 Сообщение об успешной симуляции

5) Измерение времени выдержки таймера. По начальному положению кнопок в симуляторе у нас нагрузка транзистора исправна и SW3 разомкнут. Кроме того мы как бы выбрали переключателями число 140 соответствующее времени отсчета 28 секунд.

Нам нужно измерить время задержки таймера, т.е. нужно сделать остановку перед циклом отсчета времени,

while (time_val > 1){

записать на бумажку время с момента запуска программы - оно отображается в правом нижнем углу симулятора, например так:

дождаться завершения цикла и включения транзистора, сразу остановиться и опять записать время. Найдя разность двух записей мы определим реальную задержку отработанную таймером.

6) давайте расставим пару точек останова.

Первую "точку останова" поставим так как на третьем рисунке выше, т.е. перед началом цикла while отсчета времени таймером.

Вторую "точку останова" поставим после включения транзистора, на строчке включения светодиода:

Рисунок 3.7 1-ая точка останова

Запускаем программу:

Кликнув на иконку - "зеленый светофор":

Рисунок 3.8 Результат симуляции программы

После прохождения определенного времени. Останавливаем симуляцию и переходим в окно Scope. В данном окне выставляем горизонтальные и вертикальные пределы для того чтобы лучше рассмотреть ход выполнения программы.

 

 

Date: 2016-01-20; view: 575; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию