Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Таймер / счетчик МК 8051, помогите новичку! 
:(
    Опции темы
vahoo
Дата 3.6.2006, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 28.4.2006

Репутация: нет
Всего: нет



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


Заранее спасибо! 
PM MAIL   Вверх
vital123
Дата 3.6.2006, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.5.2006

Репутация: нет
Всего: нет



 я сам новичек,  использовал таймер счетчик для реализации задержек и формировал меандр
 примера на С нет вот на asm
regim1: SETB P0.4                       ; устанавливаем Р0.4=1        
 MOV A, #64                    ;
CLR TR0                        ; таймеры остановлены
 CLR TR1                         ;
MOV IE, #0                    ; все прерывания запрещены
MOV IP, #0                    ; все приоритеты низкие
 MOV TMOD, #00000001 ; 0-GATE1,0-с/т1#,00-режим т/с1
                                        ; 0-GATE0,0-с/т0#,00-режим т/с0
LOOP1: MOV DPTR, #25536       ; таймер 0 заряжаем числом 25536
 MOV TL0, DPL               ; 
 MOV TH0,DPH               ;
 SETB TRO                      ; старт таймера 0

LOOP:  CJNE TCON, #00100000, LOOP; 
DEC A                                     ; когда флаг TF=1→декремент
MOV TCON, #00000000          ; сброс флага TF
JZ, Simb5                                ;
SJMP LOOP1                           ;

Simb5:  CLR P0.4
MOV A, #64
CLR TR0
 CLR TR1
 MOV IE, #0
 MOV IE, #0
 MOV TMOD, #00000001

LOOP2: MOV DPTR, #25536
 MOV TL0, DPL
 MOV TH0,DPH
 SETB TRO

LOOP3: CJNE TCON, #00100000, LOOP3
DEC A
MOV TCON, #00000000
JZ, regim1
SJMP LOOP2
 
PM MAIL   Вверх
vahoo
Дата 3.6.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 28.4.2006

Репутация: нет
Всего: нет



по твоему  vital123  лучше писать программы на С или на АСМ?
коким компилятором ты исползуеш 
PM MAIL   Вверх
vahoo
Дата 14.6.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 28.4.2006

Репутация: нет
Всего: нет



Не кто не хочет помоч? smile  smile  
PM MAIL   Вверх
Sardar
Дата 14.6.2006, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



Цитата(vahoo @  14.6.2006,  15:27 Найти цитируемый пост)
Не кто не хочет помоч?

vahoo, чем тебе помочь? Счётчик используеться по назначению, если нужно чего нибудь посчитать (импульсы на ноге). Таймер что бы отмерять время, если софтинка твоя в пару потоков работает, то по таймеру можно их переключать. Уснуть на время ожидая медленную железку (простой LCD экранчик например) тоже проще по таймеру чем диким циклом.

Что тебе конкретно не ясно и какова задача?  


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
ManiaK
Дата 16.6.2006, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Цитата(vahoo @  3.6.2006,  22:42 Найти цитируемый пост)
по твоему  vital123  лучше писать программы на С или на АСМ?
коким компилятором ты исползуеш 

Я хоть и не vital123, но отвечу: для 8051 пользоваться Си, на мой взгляд, жирно. Хотя я начинал именно с него. Если уж такая нетерпимость к асму - поищи Keil. На нём пару проектов сделал. 
PM MAIL WWW   Вверх
vahoo
Дата 17.6.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 28.4.2006

Репутация: нет
Всего: нет



привет ManiaK! я хочу программировать AT89c2051 на C

собрал схему

http://www.blitzlogic.com/7seg_89.htm
 
 имеется программатор ATPROG,
тоесть включил микроконтролеру
7 сегментный 2 индикатора, включил 2 кнопки, хочу чтоб при нажати кнопки стал 
писать  0, потом если ещо нажал стало писать 1 и так дале , я это написал на С
без таймеров, а сейчас хочу писат используя  Таймер / счетчик, вот

Код


#include <AT892051.h>            /* 8051 I/O definitions */
#include <intrins.h>        /* 8051 SFR definitions */
#include <REG2051.H>
#include <limits.h>

static unsigned char Numbers[10] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
unsigned int summary;
int ff;
unsigned int i;    

void Display();
void wait();
void wait1();
void Summary();
void Start();
 
   void wait ()

{
;
}

   void   wait1 ()

    {    
     
        for (i=0;i<1000;i++);
             {
                 wait();
             } 
     }              

main()
{
      P1=0;   P3=0;    summary=0;
        

       {  P3= 0x10 ;   
       
  for(;;)
 
 {
   if ((P3&0x10)==0)  
   {
    summary++;
   }
   Display(); 
   P3= 0x10 ;    
   wait1();

 }
       }
}


void Display()
{
    unsigned int tmpSum ;
    unsigned char index;
    
    P3 = 0;       
    
    tmpSum = summary;

        
    index = tmpSum % 10;
    P3 |= 0x02 ;
    P1 = Numbers[index];
        for (i=0;i<50;i++)
             {
                 wait();
             }    
    P3 &=~0x02;
    
    index = tmpSum / 10;
    P3 |= 0x01;
    P1 = Numbers[index];
        for (i=0;i<50;i++)
             {
                 wait();
             }    
    P3 &=~0x01;    


     }



у меня софт KEIL UVISION  v8.02a, 


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

Модератор:  Пользуйся кнопкой "код" пожлста. 

Это сообщение отредактировал(а) ManiaK - 19.6.2006, 09:42
PM MAIL   Вверх
ManiaK
Дата 19.6.2006, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Цитата(vahoo @  17.6.2006,  16:46 Найти цитируемый пост)
if ((P3&0x10)==0)  

В этом месте, как я понял, ты хочешь проверять кнопку. По схеме у тебя они висят на выводах P3_2 и P3_3. А маска 0x10 - выставленный четвёртый (!) бит. То есть, ты в данном куске кода проверяешь четвёртый бит порта на ноль. А он у тебя ни к чему не подключен...

Вообще, попробуй безусловно сначала что-нибудь вывести на индикатор. А ещё лучше - на светодиод. Начинать сразу с кнопок и семисегментников не очень разумно - я год бился, чтоб отшлифовать код так, чтоб эти две вещи работали безотказно и быстро.

Повесь на какой-нибудь порт светодиод и заставь его моргать. Это уже будет прогресс smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.