本论文是一篇指针方面有关论文提纲,关于C语言在单片机开发中的应用相关开题报告范文。免费优秀的关于指针及语言及参考文献方面论文范文资料,适合指针论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
【摘 要】在单片机的开发应用中,已逐渐开始引入高级语言,C语言就是其中的一种.对用惯了汇编语言的人来说,总觉得高级语言“可控性”不好,不如汇编语言那样随心所欲.但是只要我们掌握了一定的C语言知识,有些东西还是容易做出来的,以下是本人在实际工作中遇到的几个问题进行研究与探讨.
【关 键 词】单片机;C语言;指针
C是一种编译型语言.有高级语言的特点,并具备汇编语言的功能,移植性能好,便于自顶向下结构化程序设计,C语言在单片机中的应用,给开发者带来了很大的方便.软件开发者不需要对单片机硬件的结构有很深人的了解,编译器可以自动完成变量存储单元的分配.使得单片机的程序设计更加简单可靠.指针、地址、数组及其相互关系是C语言中最有特色的部分.在编写单片机的应用程序时,常常需要对端口及存储单元进行寻址.因此,掌握指针在这些寻址过程的工作原理是很有必要的,这有利于编写灵活高效的程序.
一、指针结构声明
C语言中,对于指针的声明采用如下形式:类型标识符*指针变量名;由于单片机存储区的关系,所以单片机C语言的指针声明格式有别于普通C语言指针的声明格式,其格式为:
类型标识符[存储区类型]
指针变量名[指针变量存储区类型]
单片机C语言的指针的定义比普通C语言指针的定义多两个部分:存储区类型是指指针变量所指向的数据的存储区,可以是所有的数据存储类型;指针变量存储区类型是指指针变量的存放区域的数据,可以是data、ldata、xdata或pdata如下声明:
unsignedcharxdata*datayc;
上声明语句是指在RAM(data)内声明一指针变量yc,该指针变量指向一无符号字符型数据,该无符号型字符存在xdata区内.该指针变量的应用格式如下:
unsignedcharxdataindata[6];
unsignedcharxdata*datayc;
yc等于indata;
其编译后的的汇编为:MOV08H,#00H;0x08和0x09是在片内RAM存储区分配的yc指针变量的地址空间.
二、指针寻址的实现
单片机C语言的数组的寻址和普通C语言的寻址基本上是一样的,只是当数组存储在片内时,由于片内RAM资源十分有限,所以很难有比较复杂的数据结构,而且在编程过程中也尽量避免在片内RAM中使用较大的数组.
1.指向data区的指针寻址的实现
这是最基本的寻址方法,比如一个检测系统中,通过A/D转换把外部数据输入单片机中,单片机对这6次采样数据求和,具体程序如下:
unsignedchardatainputdata[6];
有关论文范文主题研究: | 关于指针的论文例文 | 大学生适用: | 函授毕业论文、在职论文 |
---|---|---|---|
相关参考文献下载数量: | 62 | 写作解决问题: | 怎么写 |
毕业论文开题报告: | 论文任务书、论文选题 | 职称论文适用: | 期刊目录、职称评副高 |
所属大学生专业类别: | 怎么写 | 论文题目推荐度: | 优秀选题 |
unsignedintdatasum,i;
unsignedchardata*datayc;
voidmain()
{sum等于0;
collectdata();/*采集数据函数,输入到数组inputdata中*/
yc等于inputdata;
for(i等于0;i<=6;i++,yc++)
sum+等于*yc;
}
2.指向程序存储区的指针寻址实现
指针指向数据存储区其其实质就是C语言中指向函数的指针这一概念,可以利用这种指针来实现函数指针调用函数.指向函数的指针变量定义格式为:类型标识符(*指针变量名)([参数1],[参数2]等);定义好后用(*指针变量名)([参数],[参数]等)即可调用这个函数.例如,主程序中要引用一个键盘扫描函数scan,程序如下所示:
Voidscan()
Voidmain()
{void(*yc)();
Yc等于scan;
For(;;)
{(*yc)();}
}
三、C51热启动代码的编制
对于工业控制计算机,往往设有看门狗电路,当看门狗动作使计算机复位,这就是热启动.热启动时,一般不允许从头开始,这将导致现有的已测量到或计算到的值复位,导致系统工作异常.因而在程序中必须判断是热启动还是冷启动,常用的方法是:确定某内