#include "STC.H"
#define uchar unsigned char
#define uint unsigned int
uchar comm;
sbit P10 = P1^0;
/*******************************************************************/
/* */
/* 单片机向串口发送1字节 */
/* */
/* */
/*******************************************************************/
void uart_put_uchar(uchar c)
{
SBUF = c;
while(!TI);
TI = 0;
}
/*******************************************************************/
/* */
/* 单片机在串口接收1字节 */
/* 说明:串口接收中断 */
/* */
/*******************************************************************/
void serial_int(void) interrupt 4
{
ES = 0;
if (RI)
{
RI = 0;
comm = SBUF;
}
ES = 1;
}
/*******************************************************************/
/* */
/* 在外部SRAM的Addr处,写入Data */
/* */
/* */
/*******************************************************************/
void outportb(uint Addr, uchar Data)
{
*((uchar xdata *) Addr) = Data;
}
/*******************************************************************/
/* */
/* 在外部SRAM的Addr处,读取数据 */
/* */
/* */
/*******************************************************************/
uchar inportb(uint Addr)
{
return *((uchar xdata *) Addr);
}
/*******************************************************************/
/* */
/* SRAM清空函数 */
/* */
/* */
/*******************************************************************/
void sram_clr(void)
{
uint i; //请特别注意:i是uint类型!!!
P10 = 0; //选择低64K SRAM空间
for(i = 0; i < 0xffff; i++)
outportb(i,0x66); //全写0x66
outportb(0xffff,0x66);
P10 = 1; //选择高64K SRAM空间
for(i = 0; i < 0xffff; i++)
outportb(i,0x88); //全写0x88
outportb(0xffff,0x88);
}
/*******************************************************************/
/* */
/* 读出sram中的所有文件并发送到串口函数 */
/* */
/* */
/*******************************************************************/
void sram_rdall(void)
{
uint i; //请特别注意:i是uint类型!!!
P10 = 0; //选择低64K SRAM空间
for (i = 0;i < 0xffff;i++)
uart_put_uchar(inportb(i));
uart_put_uchar(inportb(0xffff));
P10 = 1; //选择高64K SRAM空间
for (i = 0;i < 0xffff;i++)
uart_put_uchar(inportb(i));
uart_put_uchar(inportb(0xffff));
comm = 0;
}
/*********************************************************/
/* */
/* main主程序 */
/* */
/*********************************************************/
void main(void)
{
AUXR = 0x03; //禁止访问内部扩展RAM;ALE引脚只在执行MOVX或MOVC指令时才输出信号
EA = 1; //开总中断
ES = 1; //开串口中断
SCON = 0x50; //串口方式1工作,8位数据位,1位停止位,无奇偶校验,允许接收
TMOD = 0x20; //置定时器/计数器T1工作于方式2(8位自动重装计数器)
PCON = 0x80; //波特率加倍控制,SMOD位
TH1 = 0xff; //定时器/计数器T1置初值
TL1 = 0xff; //定时器/计数器T1置重装数 22.1184M晶振,波特率:115200
TR1 = 1; //启动定时器T1
comm = 0;
sram_clr();
while(1)
{
if (comm == 0x7a)
sram_rdall();
}
}
sram.rar_SRAM
版权申诉
77 浏览量
2022-09-19
22:00:41
上传
评论
收藏 1KB RAR 举报
寒泊
- 粉丝: 74
- 资源: 1万+
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈