Вт дек 24, 2019 12:49:36
; Reset Vector
RJMP Reset
RJMP Event
RJMP Event
NOP ; TIMER
NOP ; EEPROM
NOP ; Analog
NOP ; Timer 0 Compare A
NOP ; Timer 0 Compare B
NOP ; Watch
NOP ; ADC Conversion
; .ORG 0x0010
;==============
; CODE SEGMENT
;==============
Event:
Reset:
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,1 << PUD
OUT MCUCR,R16
Phase_1:; Vertical Out - Horizontal In
LDI R17,(1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB4)
OUT PORTB,R17
LDI R16,(1 << DDB0) | (1 << DDB1) | (1 << DDB2)
OUT DDRB,R16
LDI R17,(1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB4)
OUT PORTB,R17
IN R20,PINB
LDI R17,(1 << PB0) | (1 << PB2) | (1 << PB3) | (1 << PB4)
OUT PORTB,R17
IN R21,PINB
LDI R17,(1 << PB0) | (1 << PB1) | (1 << PB3) | (1 << PB4)
OUT PORTB,R17
IN R22,PINB
Phase_2:; Horizontal Out - Vertical In
LDI R17,(1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB4)
OUT PORTB,R17
LDI R16,(1 << DDB3) | (1 << DDB4)
OUT DDRB,R16
LDI R17,(1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB4)
OUT PORTB,R17
IN R23,PINB
LDI R17,(1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3)
OUT PORTB,R17
IN R24,PINB
Phase_3:; Pack the bits
ANDI R24,(1 << PB0) | (1 << PB1) | (1 << PB2)
LSL R24
LSL R24
LSL R24
ANDI R23,(1 << PB0) | (1 << PB1) | (1 << PB2)
OR R23,R24
ANDI R20,(1 << PB3) | (1 << PB4)
LSR R20
LSR R20
LSR R20
ANDI R21,(1 << PB3) | (1 << PB4)
LSR R21
OR R21,R20
ANDI R22,(1 << PB3) | (1 << PB4)
LSL R22
OR R22,R20
LDI R21,0x3F
EOR R22,R21
EOR R23,R23
; Now is code in R23 and R22
Stopped:RJMP Phase_1;Stopped
Ср дек 25, 2019 18:27:06
Чт дек 26, 2019 15:49:34
Пн янв 27, 2020 10:57:02
Пн янв 27, 2020 16:39:57
Пн янв 27, 2020 17:09:57
Пн янв 27, 2020 17:11:37
Вт янв 28, 2020 08:05:47
Вт янв 28, 2020 11:35:03
Вт янв 28, 2020 12:59:45
musor писал(а):
чем 1 ногий вариант с ADC не устроил?
Вт янв 28, 2020 13:35:19
Вт янв 28, 2020 13:42:36
Вт янв 28, 2020 14:54:42
Вт янв 28, 2020 22:59:54
Вт янв 28, 2020 23:10:52
Ср янв 29, 2020 09:26:55
Пт янв 31, 2020 14:50:30
Пт янв 31, 2020 22:31:52
Решение с кнопками на АЦП часто используется в устройствах, выпускаемых промышленно. Наверное, если реализовывать таким образом клавиатуру на пару сотен кнопок, понадобятся резисторы с точностью доли процента, и т.д. Пара десятков кнопок ("цифровая" клавиатура плюс десяток различных управляющих клавиш) реализуется легко.Jack_A писал(а):Решение для мазохистов. Дело не только в разрешении - резисторы делителя д.быть с точностью доли процента, переходное сопротивление кнопки = 0, а плата - очень большое сопротивление, не нарушаемое влагой и неотмытым флюсом. Лучше всего на фторопласте
а оно Вам надо? я так понял, что musor что-то вроде маскота этого форума. Фольклорный элементStan47 писал(а):Господин из Спиртогонска... Будьте так любезны и переведите то, что Вы написали
Сб фев 01, 2020 08:58:09
Сб фев 01, 2020 19:31:05