📄 testsram_lcd_c1.c
字号:
///////////////////////////////////////////////////////////////////
// 深圳思瑞科技 SRI Technology Studio.
// http://www.sri.cn, http://www.sricn.com
// mail: support@sri.cn, xjb@sri.cn
//
// 转载请注明该出处
//
// ----------------------------------------------------------------
// 源文件名: TestSRAM_LCD_C1.c
// 程序名称: 测试外部RAM并将结果显示在LCD上,K8和K9用于切换内、外部
// SRAM,内部测试大小同样按照外部最大SRAM大小来测试,实测
// 显示错误地址即为该单片机内部SRAM的大小
///////////////////////////////////////////////////////////////////
#include "..\..\library\lib1602.h"
#include "..\..\library\libkey.h"
#include "..\..\library\board.h"
void main()
{
WORD i;
BOOL e;
BOOL bExter = TRUE;
AUXR |= 2; // 访问外部RAM
LIBC_Init();
LCD_Init();
while (TRUE)
{
LCD_ClearScreen();
if (bExter)
LCD_WriteStr("Check Ex-SRAM...");
else
LCD_WriteStr("Check In-SRAM...");
EnDataBus(); // 使能数据总线
// 向SRAM写入数据
for (i=0; i<SRAM_SIZE; i++)
XBYTE[i] = (i & 0xFF) ^ (i >> 8);
e = FALSE; // 无错误标志
// 从SRAM读出数据并校验
for (i=0; i<SRAM_SIZE; i++)
{
if (XBYTE[i] != ((i & 0xFF) ^ (i >> 8)))
{
e = TRUE; // 错误标志
break;
}
}
LCD_SetLine(0);
if (e)
{
LCD_WriteStr("Error at: ");
LCD_WriteHex(i >> 8);
LCD_WriteHex(i & 0xFF);
LCD_WriteData('H');
}
else
{
LCD_WriteStr("Check OK!");
}
LCD_WriteStr(" ");
LCD_SetLine(1);
LCD_WriteStr("Press to Recheck");
switch (Key_GetDown(0xFF, GETKEYALL)) // 等待按任意键继续检查
{
case KEY8:
AUXR |= 2; // 访问外部RAM
bExter = TRUE;
break;
case KEY9:
AUXR &= !2; // 访问内部RAM
bExter = FALSE;
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -