Informatics Point

Информатика и проектирование

Разработка алгоритма программы микроконтроллера

Алгоритм программы микроконтроллера состоит из двух основных частей:

основной программы и прерывающей программы таймера.

1. Основная программа (MAIN) осуществляет начальную инициализацию и переводит процессор микроконтроллера в спящий режим, при котором потребление минимально. Спящий режим прерывается запросом прерывания от внутреннего таймера, поступающего через каждые 2 мс, подпрограмма обслуживания которого и реализует все функции устройства.

2. Прерывающая программы таймера (Int_Timer_A) реализует следующие функции:

· динамическая индикация (подпрограмма Display вызывается через 2мс);

· опрос клавиатуры с защитой от дребезга (подпрограмма KeyBScan вызывается через 2мс);

· ввод/редактирование времени таймера (подпрограмма Servis_Key вызывается через 2мс);

· отсчет таймера (подпрограмма Timer вызывается через 1 сек);

· выдача звукового сигнала в течение 5 секунд, при истечении времени таймера (подпрограмма Beep вызывается через 1 сек).

Р-схемы программ приведены на рис. 4.

Рис.4. Таймер на микроконтроллере MSP430.Р-схемы

Приложение

Листинг программы

//-------------------------------------------------------------------

/*

Файл:

Автор: Егорова Екатерина Геннадьевна

Группа: РТЭ-11-08

Дата: 25.02.2012

Назначение: Таймер на микроконтроллере MSP430F2013

*/

//-------------------------------------------------------------------

//-------------------- Библиотечные файлы ---------------------------

#include <msp430x20x3.h>

//------------------------- Сокращения ------------------------------

#define u_char unsigned char

#define u_int unsigned int

//----------- Константы, используемые в разных программах -----------

#define NOT_DEFINE 0x99

#define KEY_MODE 0x01

#define KEY_UP 0x02

#define BOUNCE_TIME 20

#define TMR_2000MKS 1995

#define SW_Load 0x04

#define Power_On 0x10

#define fl_half_sec 0x01

#define blink_bit 0x02

#define REG_SHCP BIT5

#define REG_STCP BIT4

#define REG_DS BIT6

//begin ##############################################################_char hour_H; //десятки часов

u_char hour_L; //единицы часов_char min_H; //десятки минут_char min_L; //единицы минут_char sec_H; //десятки секунд_char sec_L; //единицы секунд_char mode; //режим работы_char ct_2ms; //счетчик интервала времени по 2 мс_char ct_beep; //счетчик интервала в сек. звучания сигнала_char key; //исполнительный код кнопок_char cur_num; //номер текущей отображаемой цифры_char cur_key; //номер текущего опроса кнопок_char prev_key; //результат предыдущего опроса кнопок_char bounce_tmr; //счетчик для программного исключения дребезга

u_char flags;A;_char value;_char c;TBL_IMAGE[ ] = {

xC0, //0

xF9, //1

xA4, //2

xB0, //3

x99, //4

x92, //5

x82, //6

xF8, //7

x80, //8

0x90, //9

Перейти на страницу: 1 2 3

Лучшие статьи по информатике

Расчёт электронно-дырочного перехода
Полупроводниковый диод, двухэлектродный электронный прибор на основе полупроводникового (ПП) кристалла. Понятие "Полупроводниковый диод" объединяе ...

Проектирование светодиодного табло на микроконтроллере PIC16C84
светодиодный надежность Развитие микроэлектроники и широкое применение ее изделий в промышленном производстве, в устройствах и системах управления самыми раз ...

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

Меню сайта