реклама на сайте
подробности

 
 
> Таймер / счетчик МК 8051, помогите новичку!
VAHOO
сообщение Jun 3 2006, 12:49
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Всем привет! помогите новичку для чего используют в программировани МК 8051
таймер счетчик, если можно примеры на C,


Заранее спасибо!


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Muxamor
сообщение Jun 5 2006, 04:07
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 4-05-05
Из: Novosibirsk
Пользователь №: 4 722



Я их использовал дял создания длительных задержек порядка секунды!
Можно использовать для подшета импульсов приходяших в МК.
Есть примеры но правдо на Асме!


--------------------
Бубен - однако штука шаманская!!!

Go to the top of the page
 
+Quote Post
Alexandr
сообщение Jun 5 2006, 11:58
Сообщение #3


Знающий
****

Группа: Модераторы
Сообщений: 804
Регистрация: 1-12-04
Пользователь №: 1 283



Странный вопрос. Ну каков вопрос - таков ответ: для реализации алгоритмов, в которых требуется производить действия связанные (зависимые) с временными интервалами


--------------------
Иван Сусанин - первый полупроводник
Go to the top of the page
 
+Quote Post
VAHOO
сообщение Jun 6 2006, 05:17
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Alexandr , если можно пример на C, с описанием!

заранее спасибо!


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 8 2006, 16:25
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Код
#define Timer0DL 0x00 // младший байт делителя
#define Timer0DH 0x80 // старший байт делителя

// Длительность периода между генерацией прерывания от таймера в режиме 1
// определяется по формуле:
// T =   (1 / (Fosc / 32)) * (65536 - Делитель) секунд


    
void interrupt[0x0B] timer_interrupt(void)
{
  TL0 = Timer0DL;  
  TH0 = Timer0DH;  // Загрузка делителя

  TF0 = 0;               // сброс флага прерывания
  // Какое-то ваше действие
}


#define TMOD_Common 0x21  

int main(void)
{
  TMOD = TMOD_Common; // Таймер 0 в режиме 1, Таймер 1 в режиме 2 (для UART'a)
  TR0 = 1;        // Запуск таймера 0
  IE = 0x82;     // Enabling Timer0 interrupt (ET0 = 1) and global int (EA = 1)
                            
  for(;;);
  return 0;
}


можете заглянуть сюда
хоть там и асм, но есть примеры с таймерами, и более менее наглядно показана структура МК.
Go to the top of the page
 
+Quote Post
VAHOO
сообщение Jun 10 2006, 11:02
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Defunct! очень, очень спасибо! я использую МК AT89C2051,
откудо взять полную версию программу single chip machine2?

заранее спасибо!


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 10 2006, 15:28
Сообщение #7


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(VAHOO @ Jun 10 2006, 14:02) *
я использую МК AT89C2051,
откуда взять полную версию программу single chip machine2?

Основное отличие полной от неполной версий заключается по большому счету только в наличии модуля ISP программатора. AT89C2051 не поддерживает ISP..
А писать под 2051 можно и как под i8051, только нужно помнить, что в 2051 всего 2k флеша, нет портов P0 и P2 и имеется компаратор со своим адресом обработчика прерывания.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 20:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016