实现目标
将存放在AT89C52单片机程序存储器中的字符串“AT89C52 microcontroller!”,复制到内部数据存储器中,并使用printf函数,从串口输出该字符串到Proteus的串口虚拟终端显示
Proteus仿真图
C51程序
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30#include <REG52.H>//片内寄存器定义 #include <string.h>//字符串操作库函数 #include <stdio.h>//输入输出函数库 void initUart(void);/*初始化串口波特率,使用定时器1*/ code char *ucRomStr="AT89C52 microcontroller!"; //存放在ROM的字符串 data char ucRamStr[24];//接收字符串放在RAM中 /*********** main C **************/ main() { initUart();// 为了使用printf语句,要初始化串口 memcpy(ucRamStr,ucRomStr,strlen(ucRomStr)); //string.h库中memcpy完成字符串复制 printf("%s",ucRamStr); //从串口输出Ram中的字符串 while(1);//死循环,等待 } void initUart(void)/*初始化串口波特率,使用定时器1*/ { SCON = 0x50; TMOD |= 0x20; TH1 = 0xfd; TR1 = 1; TI = 1; }
注:
- code:80C51程序存储器空间
- data:直接寻址的80C51内部数据存储器
运行结果
个人理解
从要求可以得出,首先需要将程序存储器的数据移动到内部数据存储器,然后再使用printf函数从串口输出。所以先将字符串定义为code类型,再利用memcpy函数复制到内存数据存储器,最后直接使用printf函数输出即可。
本文Proteus仿真图及源程序获取见:
说明
参考课本:单片机原理与嵌入式系统设计
最后
以上就是正直斑马最近收集整理的关于Proteus仿真:存储器的全部内容,更多相关Proteus仿真内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复