Do_SRAM.C
上传用户:zanguozi01
上传日期:2014-02-19
资源大小:155k
文件大小:3k
源码类别:

GPS编程

开发平台:

Others

  1. /********************************************************
  2. * 文件名:  Do_SRAM.C
  3. * 创建时间:2005年5月16日
  4. * 创建人:  
  5. * 版本号:  1.00
  6. * 功能:   针对GPS方面数据的处理
  7. * 文件属性:公共文件
  8. * 修改历史:(每条详述)
  9. ********************************************************/
  10. #include <msp430x14x.h>
  11. #include "Do_SRAM.h"
  12. #include "Uart01.h"
  13. #define NOP() { _NOP(); _NOP(); _NOP(); _NOP(); _NOP();  }
  14. /********************************************************
  15. * 函数名:SRAM_Init
  16. 作用域:外部文件调用
  17. * 功能:  SRAM的初始化
  18. * 参数:  无
  19. * 返回值:无
  20. * 创建人:
  21. *
  22. * 修改历史:(每条详述)
  23. 补充说明:该程序初始化SRAM的接口逻辑,必须在在任何SRAM_Read或者SRAM_Write操作之前
  24.   被调用一次,可作为复位才操作的一部分
  25. ********************************************************/
  26. void SRAM_Init(void)
  27. {
  28. P5DIR=0xFF; //允许端口5作为输出方式
  29. P5OUT=0xFF;
  30. P4DIR=0x00; //允许端口4作为输入方式
  31. P3DIR|=LE+WR+RD; //允许三个控制管脚作为输出方式
  32. P3OUT|=WR+RD; //设置WR,RD为高电平
  33. P3OUT&=~LE; //设置ALE为低电平
  34. }
  35. /********************************************************
  36. * 函数名:SRAM_Write
  37. 作用域:外部文件调用
  38. * 功能:  SRAM对指定的地址写入一个数据
  39. * 参数:
  40. * 返回值:
  41. * 创建人:
  42. *
  43. * 修改历史:(每条详述)
  44. 补充说明:读程序外部SRAM
  45. ********************************************************/
  46. void SRAM_Write(unsigned int ByteAddress,unsigned char WriteOneByte)
  47. {
  48. unsigned char DPH,DPL;
  49. IE2&=~URXIE1;            //USART1接收中断禁止
  50. DPH=ByteAddress/0x100;
  51. DPL=ByteAddress%0x100;
  52. P5OUT=DPH; //输出外部高8位地址A15---A8
  53. P4DIR=0xFF; //允许A7----A0为输出方式
  54. P4OUT=DPL; //输出外部低8位地址A7----A0
  55. P3OUT|=LE; //设置ALE为高电平
  56. NOP(); //延迟一定的时间间隔
  57. P3OUT&=~LE; //设置ALE为低电平
  58. P4OUT=WriteOneByte; //将数据送到数据总线
  59. P3OUT&=~WR; //启动写操作;
  60. P3OUT|=WR; //写选通无效;
  61. P4DIR=0x00; //允许A7----A0为输入方式
  62. IE2|=URXIE1;            //USART1接收中断允许
  63. }
  64. /********************************************************
  65. * 函数名:SRAM_Read
  66. 作用域:外部文件调用
  67. * 功能:  SRAM对指定的地址读出一个数据
  68. * 参数:
  69. * 返回值:
  70. * 创建人:
  71. *
  72. * 修改历史:(每条详述)
  73. ********************************************************/
  74. unsigned char SRAM_Read(unsigned int ByteAddress)
  75. {
  76. unsigned char DPH,DPL;
  77. unsigned char Data_Temp;
  78. IE2&=~URXIE1;            //USART1接收中断禁止
  79. DPH=ByteAddress/0x100;
  80. DPL=ByteAddress%0x100;
  81. P5OUT=DPH; //输出外部高8位地址A15---A8
  82. P4DIR=0xFF; //允许A7----A0为输出方式
  83. P4OUT=DPL; //输出外部低8位地址A7----A0
  84. P3OUT|=LE; //设置ALE为高电平
  85. NOP(); //延迟一定的时间间隔
  86. NOP(); //延迟一定的时间间隔
  87. P3OUT&=~LE; //设置ALE为低电平
  88. P4DIR=0x00; //允许A7----A0为输入方式
  89. P4OUT=0xFF;
  90. P3OUT&=~RD; //发出读选通;
  91. NOP(); //延迟一定的时间间隔
  92. Data_Temp=P4IN; //读数据
  93. NOP(); //延迟一定的时间间隔
  94. P3OUT|=RD; //使读选通无效;
  95. IE2|=URXIE1;            //USART1接收中断允许
  96. return(Data_Temp);
  97. }