📄 do_sram.c
字号:
#include <msp430x14x.h>
#include "Do_SRAM.h"
#include "Uart01.h"
#define NOP() { _NOP(); _NOP(); _NOP(); _NOP(); _NOP(); }
/********************************************************\
* 函数名:SRAM_Init
作用域:外部文件调用
* 功能: SRAM的初始化
\********************************************************/
void SRAM_Init(void)
{
P5DIR=0xFF; //允许端口5作为输出方式
P5OUT=0xFF;
P4DIR=0x00; //允许端口4作为输入方式
P3DIR|=LE+WR+RD; //允许三个控制管脚作为输出方式
P3OUT|=WR+RD; //设置WR,RD为高电平
P3OUT&=~LE; //设置ALE为低电平
}
/********************************************************\
* 函数名:SRAM_Write
作用域:外部文件调用
* 功能: SRAM对指定的地址写入一个数据
\********************************************************/
void SRAM_Write(unsigned int ByteAddress,unsigned char WriteOneByte)
{
unsigned char DPH,DPL;
IE2&=~URXIE1; //USART1接收中断禁止
DPH=ByteAddress/0x100;
DPL=ByteAddress%0x100;
P5OUT=DPH; //输出外部高8位地址A15---A8
P4DIR=0xFF; //允许A7----A0为输出方式
P4OUT=DPL; //输出外部低8位地址A7----A0
P3OUT|=LE; //设置ALE为高电平
NOP(); //延迟一定的时间间隔
P3OUT&=~LE; //设置ALE为低电平
P4OUT=WriteOneByte; //将数据送到数据总线
P3OUT&=~WR; //启动写操作;
P3OUT|=WR; //写选通无效;
P4DIR=0x00; //允许A7----A0为输入方式
IE2|=URXIE1; //USART1接收中断允许
}
/********************************************************\
* 函数名:SRAM_Read
作用域:外部文件调用
\********************************************************/
unsigned char SRAM_Read(unsigned int ByteAddress)
{
unsigned char DPH,DPL;
unsigned char Data_Temp;
IE2&=~URXIE1; //USART1接收中断禁止
DPH=ByteAddress/0x100;
DPL=ByteAddress%0x100;
P5OUT=DPH; //输出外部高8位地址A15---A8
P4DIR=0xFF; //允许A7----A0为输出方式
P4OUT=DPL; //输出外部低8位地址A7----A0
P3OUT|=LE; //设置ALE为高电平
NOP(); //延迟一定的时间间隔
NOP(); //延迟一定的时间间隔
P3OUT&=~LE; //设置ALE为低电平
P4DIR=0x00; //允许A7----A0为输入方式
P4OUT=0xFF;
P3OUT&=~RD; //发出读选通;
NOP(); //延迟一定的时间间隔
Data_Temp=P4IN; //读数据
NOP(); //延迟一定的时间间隔
P3OUT|=RD; //使读选通无效;
IE2|=URXIE1; //USART1接收中断允许
return(Data_Temp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -