|
Отправлено: 11.05.05 13:41. Заголовок:
сегодня был успешно записан баит в озу и считан от туда и выведен на дисплей. схема с внешним озу вроде работает !!! методика подключения следующая :ставим 2 ИР23 к шине данных D0-d0 D7-d7 соответственно у обоих м/с первую ногу садим на корпус, 11-ую ногу первой садим на pb7 11-ую второй pb6, ОЗУ CS-PB5,OE-PB4,WE-PB3, адрес соотоветственно к выходам ИР23 A0-A7 к первой, А8-А14 ко второй, шину данных подключаем к нашей,для поддержки ставим резисторную сборку 10К на шину данных. Программа на асме для проверки всего энтого хозяйства смотрите ниже .include «8535def.inc» .DSEG .CSEG .ORG 0 RJMP main .ORG 0x1C main: ldi r16,0xff out ddrb,r16 ldi r16,0b11111000 out portb,r16 out spl,r16 ldi r16,0x01 out sph,r16 rcall dysplay_reset rcall clear_dysplay rcall disable_all ;--- ldi r26,01 ldi r27,00 ldi r16,0xaa rcall ozu_write_byte rcall disable_all ldi r16,0xff sbi portd,7 cbi portd,6 rcall byte_write rcall disable_all rcall ozu_read_byte push r16 rcall disable_all pop r16 sbi portd,7 cbi portd,6 rcall byte_write rjmp conec ;------------- ;====================dysplay_programs dysplay_reset: ldi r16,0xff out ddrd,r16 cbi portd,5 rcall pause sbi portd,5 rcall pause met1: rcall ins_read ori r16,0b00100000 breq met1 rcall cursor_set ret cursor_set: cbi portd,7 sbi portd,6 ldi r16,0x40 rcall ins_write cbi portd,6 sbi portd,7 rcall ins_write ldi r16,0xb8 rcall ins_write sbi portd,6 cbi portd,7 rcall ins_write ldi r16,0xc0 rcall ins_write cbi portd,6 sbi portd,7 rcall ins_write ldi r16,0x3f rcall ins_write sbi portd,6 cbi portd,7 rcall ins_write cbi portd,6 ret clear_dysplay: rcall cursor_set sbi portd,7 sbi portd,6 ldi r18,64 rcall met4 rjmp met5 met4: clr r16 rcall byte_write dec r18 brne met4 ret met5: ldi r19,0b10111001 met6: ldi r16,0b01000000 rcall ins_write mov r16,r19 rcall ins_write ldi r18,64 rcall met4 inc r19 mov r16,r19 cpi r16,0b11000000 brne met6 rcall cursor_set cbi portd,7 cbi portd,6 ret pause: ldi r16,0xff met2: dec r16 brne met2 ret byte_read: clr r16 out ddrc,r16 out portc,r16 sbi portd,2 sbi portd,3 sbi portd,4 nop in r16,pinc cbi portd,4 ret ins_read: clr r16 out ddrc,r16 out portc,r16 ldi r16,0xff out ddrd,r16 sbi portd,7 sbi portd,6 cbi portd,2 sbi portd,3 sbi portd,4 nop in r16,pinc cbi portd,4 cbi portd,6 cbi portd,7 ret byte_write: ldi r17,0xff out ddrc,r17 sbi portd,2 met3: cbi portd,3 out portc,r16 sbi portd,4 cbi portd,4 ret ins_write: ldi r17,0xff out ddrc,r17 cbi portd,2 rjmp met3 ret ;=================select_dysplay&ozu disable_all: ldi r16,0xff out ddrb,r16 out ddrd,r16 out portb,r16 ldi r16,0b00100100 out portd,r16 clr r16 out ddrc,r16 in r16,pinc ret rjmp conec ;===================ozu_proc ozu_read_byte: ;addres rx r26=l,r27=h r16=byte rcall adress_set clr r16 out ddrc,r16 cbi portb,5 cbi portb,4 sbi portb,3 out portc,r16 in r16,pinc sbi portb,5 ret ozu_write_byte: ;addres rx r26=l,r27=h r16=byte rcall adress_set ldi r17,0xff out ddrc,r17 cbi portb,5 sbi portb,4 cbi portb,3 out portc,r16 sbi portb,5 ret adress_set: ldi r17,0xff out ddrc,r17 mov r17,r26 out portc,r17 cbi portb,7 sbi portb,7 mov r17,r27 out portc,r17 cbi portb,6 sbi portb,6 ret conec: rjmp conec
|