Чт янв 19, 2017 11:29:21
Чт янв 19, 2017 13:33:53
Пн янв 23, 2017 15:08:47
Ср фев 01, 2017 19:52:39
Ср фев 01, 2017 21:43:58
Чт фев 02, 2017 16:35:13
Чт фев 02, 2017 19:30:21
mov r7,port_n ; читаем порт в буфер
mov a,#0x0F ; маска младшей тетрады в АСС
anl a,r7 ; выделяем младшую тетраду
xch a,r7 ; исходный код в АСС, мл. тетрада в r7
anl a,#0xF0 ; выделяем старшую тетраду
swap a ; разворот тетрад
add a,r7 ; сложили
da a ; десятичная коррекция при сложении (поставит АС=1 при переносе
; в старшую тетраду
jnb AC,pt_0 ; анализ результата
clr a ; если результат более 9 сброс АСС в 0
pt_0: inc a
movc a,@a+pc ; позиция +1 байт - обход команды ret
ret ; возврат из подпрограммы обработки
segment_table:
.db ....... ; генератор сегментной комбинации
Чт фев 02, 2017 20:20:52
Вс фев 12, 2017 00:04:42
Вс фев 12, 2017 00:30:46
Раз не можете понять, как выполнять подпрограмму по переполнению таймера, и вообще настроить таймер - то лучше увольтесь из института - и никто не будет заставлять.WaL97 писал(а):.. (заставляют в институте )
..
.. Годной инфы не нашел, а где нашел - как-то слишком мудрено ...
Вс фев 12, 2017 06:30:46
вроде несложноWaL97 писал(а):слишком мудрено все расписано
Вс фев 12, 2017 08:45:28
salang писал(а):вроде несложноWaL97 писал(а):слишком мудрено все расписано
petrenko писал(а):Раз не можете понять, как выполнять подпрограмму по переполнению таймера, и вообще настроить таймер - то лучше увольтесь из института - и никто не будет заставлять.
Подсказывают тем, кто сам хоть что-нибудь пытается понять и сделать - Вы пытались ?
Если утверждаете, что пытались, то поведайте нам, что Вы уже знаете о таймерах м.к. и прерываниях
(, а пустословию место или в "МЯУ!" или в "Сделайте за меня задание" - там за $ помогают .. )
void mProcIntT0 () interrupt TF0_VECTOR {
TR0 = 0; // Останов таймера.
TH0 = ~mKodTime >>8; // Загрузка на отсчет
TL0 = ~mKodTime;// заданного времени.
TR0 = 1; // Пуск таймера.
mFlagTik =1; // Установка флажка тиков.
mCountTik++; // Счет системных“тиков”.
// Здесь при необходимости можно выполнять и другие действия.
}
void main(void)
{
mProcIntT0();
...
}
kursach.c(52): error C205: can't call an interrupt function
Вс фев 12, 2017 08:49:06
Вс фев 12, 2017 10:15:45
void t0set(void)
{
// Timer0 @ 11.0592Mhz /\ 0.0904us*12(PSC)*256*18=5ms - Led display refresh period
// 0xEE до 00 тикает 18 раз, т.е. 16-разрядный счетчик 0хЕЕ00 будет тикать до переполнения 4608 раз.
// ВАЖНО:
// После каждого переполнения пары (THx:TLx) в соответствии с заданным режимом работы (Mode 0)
// регистры TLх и THх будут автоматически заряжаться до указанных значений из "зеркальных"
// регистров RL_TLx и RL_THx. При остановленном таймере (TRх = 0) запись в TLх и THх автоматически
// запишет те же значения и в регистры RL_TLx и RL_THx.
// Если же таймер запущен (TRx = 1), запись в TLх и THх изменит
// значения ТОЛЬКО "зеркальных" регистров RL_TLx и RL_THx.
TMOD = 0; // T0 and T1 both 16-bit auto-reload timer mode
AUXR = 0; // T0 and T1 uses SysClk/12 (8051 compatibility mode).
INT_CLKO = 0;
TL0 = 0;
TH0 = 0xEE; // 18*256=4608
TF0 = 0; // Clear T0 interrupt flag, TCON,5
TR0 = 1; // Timer0 start, TCON,4
ET0 = 1; // Enable Timer0 interrupt
}
void timer0_isr (void) interrupt 1 using 1
{
//********************************************
// В прерывание по Т0 мы попадаем каждые 5 мс.
//********************************************
//******** Вывод на индикатор ********
anode |= 0x3C; // Р3[5:2] - set anode pins to switch off LEDs
cathode = filldisplay(row, digit, Led[row][digit]); // Преобразование числа в символ индикатора dbuf.
anode &= ~(1 << (digit + 2)); // Включаем разряд.
if (++digit > 3) digit = 0; // Следующий разряд.
if (abc_ena) t1set(); // Если автояркость активна, запускаем таймер для псевдо-ШИМ:
} // End of T0 interrupt
Вс фев 12, 2017 10:51:07
void t0set(void)
{
}
void timer0_isr (void) interrupt 1 using 1
{
}
void main(void)
{
while(1)
{
}
}
Вс фев 12, 2017 12:12:13
void t0set(void);
t0set();
Вс фев 12, 2017 12:30:02
в asm нет ничего плохого, особенно в условиях ограниченных ресурсов. А 89С51 поддерживается Вашим компилятором?WaL97 писал(а):А примеры кода на асме
Вс фев 12, 2017 12:44:04
salang писал(а):в asm нет ничего плохого, особенно в условиях ограниченных ресурсов. А 89С51 поддерживается Вашим компилятором?WaL97 писал(а):А примеры кода на асме
Вс фев 12, 2017 15:05:09
Вс фев 12, 2017 17:31:13