本例中,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);
}
}
|