在8051单片机片外扩62256芯片(32K Bytes RAM),将其映射到8051芯片的外部数据空间地址0x8000—0xFFFF并编程实现对62256芯片RAM自检,在P1.0口驱动绿色LED,P1.1口驱动红色LED,当自检通过时绿色LED每秒闪烁1次,红色LED不亮;当自检不通过时红色LED每秒闪烁2次,绿色LED不亮。使用Proteus软件设计原理图,使用Keil软件进行单片机程序设计,最后采用Proteus进行仿真。
时间: 2023-10-05 09:07:20 浏览: 60
首先需要将62256芯片连接到8051单片机的外部数据空间地址0x8000—0xFFFF,可以使用74LS373或74LS573锁存器进行地址线的扩展,具体连线如下:
62256芯片
| A0-A14
| |
| | 数据线D0-D7
| |
| OE
| |
| WE
| |
| CS
| |
| Vcc
| |
| GND
74LS373/74LS573锁存器
| OE
| |
| | Q0-Q7
| |
| D0-D7
| |
| LE
| |
| GND
锁存器的输出Q0-Q7连接到62256芯片的地址线A0-A7上,锁存器的输入D0-D7连接到8051单片机的地址线A8-A15上,锁存器的LE引脚连接到8051单片机的EA引脚上。
接下来编写程序实现对62256芯片RAM的自检,代码如下:
```c
#include <reg51.h>
#define RAM_START_ADDR 0x8000
#define RAM_END_ADDR 0xFFFF
void delay_ms(unsigned int count)
{
unsigned int i, j;
for(i = 0; i < count; i++)
for(j = 0; j < 120; j++);
}
void main()
{
unsigned int i;
unsigned char *ram_addr = (unsigned char *)RAM_START_ADDR;
unsigned char data;
P1 = 0x00; // 初始化P1口
// RAM自检
for(i = 0; i < (RAM_END_ADDR - RAM_START_ADDR + 1); i++)
{
data = ~(*ram_addr++);
if(data != 0xFF)
{
// 自检不通过,红色LED每秒闪烁2次
while(1)
{
P1 = 0x02;
delay_ms(500);
P1 = 0x00;
delay_ms(500);
}
}
}
// 自检通过,绿色LED每秒闪烁1次
while(1)
{
P1 = 0x01;
delay_ms(500);
P1 = 0x00;
delay_ms(500);
}
}
```
程序中先定义了RAM的起始地址和结束地址,然后通过指针访问RAM中的每一个地址,并将地址对应的数据取反,如果取反后的数据不是0xFF,则表示RAM自检不通过,红色LED每秒闪烁2次;如果全部地址的数据都取反后都是0xFF,则表示RAM自检通过,绿色LED每秒闪烁1次。
最后在Proteus中设计原理图,仿真程序即可。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)