本例中,74LS37362256与AVR 单片机的连接,其中单片机ALE引脚(Address Latch Enable,地址锁存使能)
与74LS373的LE(锁存器使能,Latch Enable)引脚连接,单片机的读写控制引脚RD,WR与62256的OE,WE连接,这3条控制总线引脚负责地址锁存及读/写控制。为了访问外部扩展内存,一定要在主程序内将MCUCR寄存器的最高位SRE置位。
本例向62256写入1001~1200共200个整数。
以下是Studio6.2编译通过的截图:
程序清单:
- /*
- * GccApplication1.c
- *
- * Created: 2014/11/19 星期三 下午 10:27:26
- * Author: Administrator
- */
- #define F_CPU 1000000UL
- #include <AVR/io.h>
- #include <util/delay.h>
- #include <stdint.h>
- #define EXTMEM_ADDR (uint8_t *) 0x8000
- //LED 控制
- #define LED_ON() (PORTB &=~_BV(PB7))
- #define LED_BLINK() (PORTB ^= _BV(PB7))
- int main()
- {
- uint8_t i;
- DDRB = 0xFF;PORTB = 0xFF;
- LED_ON();_delay_ms(1000);
- MCUCR |= 0x80; //允许访问外部存储器
- for(i=0;i<200;i++)
- {
- *(EXTMEM_ADDR+i)= i+1;
- }
- for(i=0;i<200;i++)
- {
- *(EXTMEM_ADDR+i+0x0100)= *(EXTMEM_ADDR+199-i);
- }
- while(1)
- {
- LED_BLINK();
- _delay_ms(200);
- }
- }
|