[Atmel] 用AtmelStudio6.2跑mega16例程(56)扩展外存

[复制链接]
1005|0
 楼主| ddllxxrr 发表于 2014-11-19 22:35 | 显示全部楼层 |阅读模式
本例中,74LS37362256与AVR 单片机的连接,其中单片机ALE引脚(Address Latch Enable,地址锁存使能)
与74LS373的LE(锁存器使能,Latch Enable)引脚连接,单片机的读写控制引脚RD,WR与62256的OE,WE连接,这3条控制总线引脚负责地址锁存及读/写控制。为了访问外部扩展内存,一定要在主程序内将MCUCR寄存器的最高位SRE置位。
本例向62256写入1001~1200共200个整数。

以下是Studio6.2编译通过的截图:


程序清单:

  1. /*
  2. * GccApplication1.c
  3. *
  4. * Created: 2014/11/19 星期三 下午 10:27:26
  5. *  Author: Administrator
  6. */



  7. #define F_CPU 1000000UL
  8. #include <AVR/io.h>
  9. #include <util/delay.h>
  10. #include <stdint.h>

  11. #define EXTMEM_ADDR (uint8_t *) 0x8000

  12. //LED 控制
  13. #define LED_ON() (PORTB &=~_BV(PB7))
  14. #define LED_BLINK() (PORTB ^= _BV(PB7))

  15. int main()
  16. {
  17.         uint8_t i;
  18.         DDRB = 0xFF;PORTB = 0xFF;
  19.         LED_ON();_delay_ms(1000);
  20.         MCUCR |= 0x80; //允许访问外部存储器
  21.         for(i=0;i<200;i++)
  22.         {
  23.                 *(EXTMEM_ADDR+i)= i+1;
  24.         }

  25.         for(i=0;i<200;i++)
  26.         {
  27.                 *(EXTMEM_ADDR+i+0x0100)= *(EXTMEM_ADDR+199-i);
  28.         }

  29.         while(1)
  30.         {
  31.                 LED_BLINK();
  32.                 _delay_ms(200);
  33.         }
  34. }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2404

主题

7001

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部