导航:首页 > 操作系统 > 单片机数据与程序

单片机数据与程序

发布时间:2023-03-22 08:05:43

单片机的数据空间和程序空间

AT89C52的程序空间是8KB是确认无疑的,但指的是存放纯二进制的机器码,就是二进制数。而KeilC编译的HEX代码文件并不是纯二进制数,是以ASCII码格式存放的文件,而且其中还有一些编译信息,如地址、校验和等。所以,不能看HEX文件的大小来确定下载到单片机内的真正的程序空间大小,也就是说HEX文件的大小并不是真正下载的单片机的程序大小。而下载到单片机的代码空间大小要看Keilc编译时给出的代码数的提示,才是真正要下载到单片机内的代码空间。举个例子,下图是一个程序编译后的提示,真正的二进制代码是337个字节,而HEX文件却是1KB。这里还有一个误区,你看到的HEX文件的大小是操作系统给出的大小吧,它是取整KB的,就是说HEX文件不足1KB时,也显示是1KB。再明确一点说吧,假如编译后的代码是750418,用纯二进制数(即BIN格式,有些汇编程序的编译器输出的就是BIN格式)的代码保存就是3个字节,而用HEX格式保存就是6个字节,因为要用6个ASCII码来表示。这来算来,HEX文件大小是BIN文件的二倍,加上一些地址信息,是大于二倍的。好,回到你的问题来,你的HEX文件是19KB,你看一下编译后的代码大小提示,肯定是不会超过8KB的,否则编译时肯定会报错的。

Ⅱ 在单片机里程序存储器和数据存储器的区别是什么

程序存储器顾名思义就是放程序的存储器。就是把你写的程序放到里面去。就算断电了但是里面的数据还在,好比手机里面存的电话薄,你换块电池这中间有个断电的过程但是数据还在。数据存储器顾名思义就是专门放数据的,哪样才是数据呢,比如说一个测温度的设备,温度时时都在变化我们不可能存某一固定的值进去,这个时候时时变化的温度数据就是放在数据存储器里面的。只要一断电它就不会保留数据

Ⅲ 51单片机通过串口实现数据的发送与接收程序

串口收发,要有通信协议。也就是什么时候开始接收,接收到指令后,转发什么数据。这个要知道,才可以写。而且使用不同的51单片机,其内部寄存器配置是不同的。
一般来说,过程如下:
1,配置串口参数、波特率等,开启串口中断;
void Init_UART()
{

}
2,中断函数里写中断响应函数,根据接收的指令或者数据,执行相应的动作;
程序一般为:
void UART_ISR() interrupt x using y
{
;串口中断处理函数
}
x - 单片机的C51中断号
y - 指定使用的当前工作寄存器组号(0-3 PSW中的RS0,RS1组合)

3,主程序
int main(void)
{
Init_UART();
while(1)
{
;//数据发送函数
}
}

阅读全文

与单片机数据与程序相关的资料

热点内容
单片机字符表代码 浏览:498
pdf转换word苹果电脑 浏览:659
python字典格式化输出 浏览:847
加密压缩包百度和谐 浏览:716
路由代码程序员 浏览:7
电脑上qq邮箱可以发文件夹吗 浏览:209
appiumpython环境 浏览:13
序列化后再压缩 浏览:154
福克斯15t压缩比 浏览:927
手机qq发压缩包 浏览:679
安卓机蓝牙耳机如何弹出弹窗 浏览:113
linuxoracle环境变量设置 浏览:363
php去掉重复数据 浏览:367
C关机编程 浏览:769
程序员将鼠标拉到现实世界 浏览:62
思科服务器怎么开机 浏览:85
减脂健身app哪个好用 浏览:747
照片怎么压缩分文件夹 浏览:74
传感器如何连接单片机 浏览:30
云服务器多少个 浏览:602