C51的结构体数据在单片机编程中的应用.docx

上传人:scccc 文档编号:13593742 上传时间:2022-01-19 格式:DOCX 页数:3 大小:69.83KB
返回 下载 相关 举报
C51的结构体数据在单片机编程中的应用.docx_第1页
第1页 / 共3页
C51的结构体数据在单片机编程中的应用.docx_第2页
第2页 / 共3页
C51的结构体数据在单片机编程中的应用.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《C51的结构体数据在单片机编程中的应用.docx》由会员分享,可在线阅读,更多相关《C51的结构体数据在单片机编程中的应用.docx(3页珍藏版)》请在三一文库上搜索。

1、单片机开发所要求的人机随着单片机应用领域的逐渐扩展和显示、通信技术的不断进步,界面越来越丰富,以单片机为核心应用的产品已由纯实用向功能化、可视化、网络化发展。HMI (人机界面)技术及产品在近两年成为发展最快的领域。为了实现以更多的人机交 互信息、更清晰的仪表硬件描述为特征的HMI功能,相应地,单片机编程中的参数量及参数类型不断增加,仅有基本类型变量(如位、字节、整型、浮点型、指针型)和数组变 量已不能完全有效地表达参数的特性。使用 C51编译支持的一种结构体(struct )数据类 型,可有效地解决许多编程中所面临的种种数据结构管理问题。1结构体数据除了基本类型数据,数组是C51编程中一种常

2、用的构造类型数据。它由上述基本类型数据(位、指针除外)组成,并且一个数组的各元素应属于同一个类型。但是,只有这些数据类型并不能很好地表达我们所要引用的数据,有时需要将不同类型的数据组合成一个 有机的整体,以便于引用。例如,要保存一组采样值:时间(月、日、时、分)、温度、流量等,如果分别将它们定义为互相独立的简单变量,难以反映它们的内在联系。应当把 它们组织成一个组合项, 在一个组合项中包含若干个类型不同(也可以相同)的数据项。 这样的数据结构称为结构体(structure )。定义一个结构体类型的一般形式为: struct结构体名 成员表列; 例如上面提到的一组数据,可以表示为:struct

3、sample /* 结构体名 */ char month ; /* 月*/ char day ; /* 日 */ char hour ; /* 时 */ char minute ; /* 分 */ int temprature ; /* 温度 */ float flow ;/*流量等*/ sample1 , Sample2 ;它定义了一个反映某一时刻采得的温度值、流量值等的结构体sample ,同时定义了两个具有struct sample类型的变量(或参数)。2结构体数据的优点 (1)有效利用内存空间在C51编译时,结构成员在内存中是顺序存放的,因而不同类型的数据被有机地结合成 了一个数据块,

4、使单片机有限的内存资源空间得以充分利用。(2)参数组织结构紧密、清晰结构体数据在多参数的智能化仪表设计中尤为适用,它可将同一属性、不同类型的数据组织在一起,参数便于识别、调用。如编制某些通用型仪表的 程序,可定义下列结构体数据。例1 :放大环节描述struct amplifier int gain ;char offset ; input_amp,output_amp;以上定义了一个表示放大环节(amplifier )的结构体类型。它由放大环节增益( gain )和放大环节零点(offset)组成,并且定义了输入环节(input_amp )和输出环节(output_amp )两个结构体数据。例

5、2:仪表特征描述描述仪表特征的数据可以组合成一个有机的结构体,以便于识别与调用。struct meter int meter_no; /*仪表编号 */char meter_code10;/*仪表编码*/int meter_size;/* 仪表口 径*/float meter_factor; /*仪表系数 */char meter_zero; /*仪表零点 */ meter1 ;(3)参数调用方便结构体数据的调用方式有多种,最直接的方式为:结构体变量名.成员名如例2中,可以对变量赋值:meter1.meter_factor=1.0;这里着重介绍一种通过指针调用的方式。该方式在对结构体数据作顺序

6、存取时尤为方便。在数据存储区有以下结构:structparaint pr0 ;char pr1 ;float pr2 ; parameter ;在程序存储区与之相对应存放一组成员名数据表parameter_namemn。该表包含表1所列内容。参数类型地址偏移量参数名备注i0XXXXXX成员0c2XXXXXX成员1f3XXXXXX成员2成员n在引用时,先设计两个指针变量,分别指向数据存储区和程序存储区:p指向数据存储区;pcc指向程序存储区;p=¶meter.pr0;定位指针指向参数值首地址;pcc=¶meter_name;定位指针指向参数名首地址。需要调用第i个参数时:p+*(pcc+n*i+1) 指向第 m个参数;(pcc+n*i)中存放的是该参数的数据类型。这样,就可以根据数据类型的不同分支,对不同类型的数据进行相应的处理。(4)提高编程效率数据变量的有效组织使得程序的编制更便于结构化、模块化,从而方便了程序后续的扩 展,可以极大地加快单片机开发者的开发进度。3总结由于单片机内存资源的限制,如何合理、有效地组织利用数据内存空间,对于编制大型的单片机程序尤为重要。尽可能利用编译器提供的便利,优化程序,使程序做到更简化、更易于扩展,是每个编程人员追求的目标。结构体数据类型即是C51为单片机开发人员提供的一种有效的数据组织方式。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1