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

单片机数据

发布时间:2022-01-12 07:17:12

‘壹’ 51单片机是如何存储程序和数据的

1 概念要明确 ROM 和 RAM是计算机的半导体存储器,速度与CPU相匹配,CPU只能直接访问和执行半导体存储器中的程序和数据。叫内存。
而硬盘不是半导体存储器,速度与CPU不匹配,CPU不能直接访问和执行半导体存储器中的程序和数据,只有先把硬盘的内容传递给内存,CPU间接通过内存访问和硬盘的程序和数据,因此硬盘叫外存。
2 ROM 为只读存储器,写入的程序和数据不可再更改,存放的程序断电也不丢失。
RAM是读写存储器,可读可写,用起来方便,价格低,被PC计算机广泛使用,即做内存条。
缺点:断电程序、信息不能保留。
ROM 在PC计算机中,用来存放开机的引导程序和基本的驱动程序,叫做BIOS.
3 PC计算机的ROM和 RAM的地址是统一编址的。访问是采用相同的指令去访问。
单片机由于地址线的引脚数目少,分配的地址空间有限,故ROM和 RAM的地址是分开编址的。为两个不同的逻辑空间,如一个程序存储器空间 地址为0000H~FFFFH.
一个片外数据存储器空间 地址为0000H~FFFFH.访问时为了加以区分,采用不同的执行访问不同的存储器。

‘贰’ 单片机接收数据

你可以在你的电脑和单品机通信的时候,自己定义一个通信协议——也就是定义一种通信格式:以什么字符作为一个数据包的开始如(0x66 0xab)代表数据帧的开头,之后的一个自己单表数据帧的总长度(如果所有的数据包是定长的可以不需要该字段),之后一个自己定义为命令的类型(如:0x01 表示电动机的转动方向;0x02 代表转动圈数等),之后跟上实际要发送给单品机的数据,如正传还是反转,转动的圈数是多少等。如果不放心你可以在最后加上数据帧的校验和,用来保证数据再传输过程中没有出错。

‘叁’ 单片机如何进行数据采集

对于液压设备中的8个待测参数选用相应的传感器来来检测,试验时选取应变式传感器作为测试现场的工具。这些选用的检测元件输出都是标准的4-20mA微弱的电流信号,电流信号又经过由LM324组成的放大转换电路转换成0-5V的电压信号输入到C8051F020的模拟输入端,如图2所示,经内部集成的A/D转换器转换成相应的数字量。C8051F020将8路采样值作为液压设备现场的状况存入相应的内存单元。

3.2 LCD显示

为了使数据采集系统小巧美观,同时又获得较高的性价比,选用德彼克公司生产的DMF-50174蓝屏液晶显示器,该显示器是320×240点阵式液晶,图形和文本都可以显示。显示驱动控制芯片采用EPSON 公司的一种高性能LCD 控制器SED1335。硬件电路采用间接接法,如图3所示。用单片机的P5.0~P5.7口作为SED1335的DB0~DB7数据总线的输入通道。P4.5作为SED1335的片选信号, 配合地址信号A0实现SED1335 通过数据总线接收来自单片机的指令和数据。当A 0= 0, P4.6(WR)=0,P4.7(RD)= 1时, 实现指令的写入和从SED1335 中读取数据。当A 0= 1, P4.6(WR)= 0, P4.7(RD)=1时, 则是显示数据的写入,该功能通过软件实现。

3.3 数据通讯

单片机C8051F020的TX0、RX0及P0.2通过MAX485与上位机相连,进行串行通信,如图3所示。P0.2控制MAX485的状态或发送,用软件控制。RX0为单片机的串行输入端,接收上位机通过MAX485向单片机发送的数据。TX0为单片机的串行输出端,通过MAX485发送给上位机。

4 系统软件设计

4.1 软件设计总体上由两部分组成:一部分为单片机C8051F020

主程序设计,一部分为LCD液晶显示程序设计。由于用C语言编程可以降低程序的复杂度,提高程序的可读性和可修改性,所以本软件采用C51进行编程,keil μVision2编译器进行编译。

‘肆’ 51单片机怎么存储数据

掉电存储需要用到EEPROM存储器的,普通的51单片机内部没有,可以使用外围EEPROM元件如24Cxx系列的存储器,也可以选用stc90系列的单片机,内部有EEPROM,程序兼容。

‘伍’ 单片机中的地址等的数据的位是什么意思

位地址是指向一个二进制位的,相当于给每个二进制位编了个号码。
字节地址指向单个字节,即每8个二进制位当一组编一个号。
比如0X90表示P1口,但是0X90这个地址单元的值可以控制这个口的每一个端口,具体来说应该是每一位控制一个口。
P1口应该是从P1.0~P1.7吧,也就是八个,在单片机中把八个端口作为一组,当作一个字节来管理。然后这个字节的值来控制这八个口,比如值0X10控制P1.0打开,其它口闭合,以此类推。

‘陆’ 单片机数据类型

单片机数据类型有bit,sbit,sfr,sfr16都用于单片机的C语言编程。
bit—定义位变量,定义位变量时可以为变量赋值,但不能指定变量的地址。定义格式:bit 变量名=变量值。
sbit—此类型变量只要用于访问可位寻址的特殊功能寄存器中的某个位。定义格式:sbit 变量名=位地址;sbit 变量名=SFR地址^位序号;sbit 变量名=sfr16变量^位序号。
sfr—此类型变量可以访问指定的8位特殊功能寄存器,地址范围为0x80~0xFF。定义格式:sfr 变量名=变量地址。

‘柒’ 单片机的数据空间和程序空间

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的,否则编译时肯定会报错的。

‘捌’ 单片机接收数据

楼主的意思是不是要判断从电脑串口发出的数据列中是否有00 01 这个数据列?如果是,1楼正解!如果是要判断从电脑发出的数据列的第三、四个字节是否为00 01,则程序如下:
设置一个计数标记count,和两个判断标记变量match1,match2初始化为0;使用串口中断;以下是流程:
中断函数()
{


读取接收数据;
count++;
if(count==3)//第三个字节
{

if(接收数据==0x00)//第三个字节匹配,设置状态1
match1=1;

}
if(count==4)//第四个字节
{

if(接收数据==0x01)//第四个字节匹配,设置状态1
match2=1;
}

中断返回;
}

主函数中:
main()
{

count=0;
match1=0;
match2=0;
while(1)
{
if(match1&match2) //如果第三位和第四位都匹配
P0^1=1;
else
P0^1=0;
}
}

希望能对你有所帮助!

楼主:你的单片机和变频器之间通讯的接口是什么样的?SPI,SCI,或I2C...?用是什么样的单片机?变频器的寄存器是什么样的?需要更多的资料。。。

‘玖’ 单片机data是什么

data:是指将要定义的变量,是用存储在单片机最内部的128字节RAM;
idata:是指将要定义的变量,存储在单片机内部的256字节RAM,idata包含data;
xdata:是指将要定义的变量,存储在单片机外部的RAM空间。

还有pdata,bdata,code等,你可以找个单片机C语言的书看一下就明白了。

阅读全文

与单片机数据相关的资料

热点内容
微商授权查询系统源码 浏览:980
安卓什么情况没法建立新工程 浏览:219
气球解压社区活动 浏览:924
话费会员充值源码 浏览:319
邮件接收服务器叫什么 浏览:529
代理服务器被限制怎么办 浏览:234
atompython环境变量 浏览:911
记录程序员 浏览:996
javabbs源代码 浏览:231
文件夹命名带什么符 浏览:966
黑马程序员全栈 浏览:225
萍乡溯源码鱼胶零售 浏览:440
幸存者pdf 浏览:556
中国人寿保险app怎么变更银行卡号 浏览:118
node服务启动命令 浏览:548
自编宝塔线源码 浏览:139
电脑桌面解压视频教程 浏览:846
安卓手机玩三国战略为什么会卡 浏览:536
浪潮服务器怎么进入启动项 浏览:156
华为当前手机壁纸放在哪个文件夹 浏览:446