| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Таймер / счетчик МК 8051 |
| Автор: vahoo 3.6.2006, 15:50 |
| Всем привет! помогите новичку для чего используют в программировани МК 8051 таймер счетчик, если можно примеры на C, Заранее спасибо! |
| Автор: vital123 3.6.2006, 18:30 |
| я сам новичек, использовал таймер счетчик для реализации задержек и формировал меандр примера на С нет вот на 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 |
| Автор: vahoo 3.6.2006, 22:42 |
| по твоему vital123 лучше писать программы на С или на АСМ? коким компилятором ты исползуеш |
| Автор: vahoo 14.6.2006, 16:27 |
| Не кто не хочет помоч? |
| Автор: Sardar 14.6.2006, 17:10 |
vahoo, чем тебе помочь? Счётчик используеться по назначению, если нужно чего нибудь посчитать (импульсы на ноге). Таймер что бы отмерять время, если софтинка твоя в пару потоков работает, то по таймеру можно их переключать. Уснуть на время ожидая медленную железку (простой LCD экранчик например) тоже проще по таймеру чем диким циклом. Что тебе конкретно не ясно и какова задача? |
| Автор: vahoo 17.6.2006, 16:46 | ||
| привет ManiaK! я хочу программировать AT89c2051 на C собрал схему http://www.blitzlogic.com/7seg_89.htm имеется программатор ATPROG, тоесть включил микроконтролеру 7 сегментный 2 индикатора, включил 2 кнопки, хочу чтоб при нажати кнопки стал писать 0, потом если ещо нажал стало писать 1 и так дале , я это написал на С без таймеров, а сейчас хочу писат используя Таймер / счетчик, вот
у меня софт KEIL UVISION v8.02a, Заранее спасибо! Модератор: Пользуйся кнопкой "код" пожлста. |
| Автор: ManiaK 19.6.2006, 10:16 |
В этом месте, как я понял, ты хочешь проверять кнопку. По схеме у тебя они висят на выводах P3_2 и P3_3. А маска 0x10 - выставленный четвёртый (!) бит. То есть, ты в данном куске кода проверяешь четвёртый бит порта на ноль. А он у тебя ни к чему не подключен... Вообще, попробуй безусловно сначала что-нибудь вывести на индикатор. А ещё лучше - на светодиод. Начинать сразу с кнопок и семисегментников не очень разумно - я год бился, чтоб отшлифовать код так, чтоб эти две вещи работали безотказно и быстро. Повесь на какой-нибудь порт светодиод и заставь его моргать. Это уже будет прогресс |