欢迎来到天天文库
浏览记录
ID:43478691
大小:138.00 KB
页数:28页
时间:2019-10-08
《单片机原理及应用教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第9章单片机C语言程序设计9.1KeilC简介与环境设置9.2Cx51简介9.3Cx51开发工具简介9.4Cx51应用程序设计举例随着单片机应用的深入发展和强盛的社会需求,应用高级语言进行单片机程序设计正在逐渐增多,本章主要介绍如何用C语言开发单片机应用程序。一般情况下单片机常用的程序设计语言有两种:●汇编语言:汇编语言具有执行速度快、占存储空间少、对硬件可直接编程等特点,因而特别适合在对实时性能要求比较高的情况下使用。●C语言:C语言克服了汇编语言的不足之处,同时又增加了代码的可读性,C语言大多
2、数代码被翻译成目标代码后,其效率和汇编语言相当。特别是C语言的内嵌汇编功能,使C语言对硬件操作更加方便。9.1KeilC简介与环境设置KeilCμVision2开发环境是德国KeilSoftware,Inc.andKeilElektronikGmbH开发的微处理器开发平台,可以开发多种8051兼容单片机程序。其界面如图9-1所示。图9-1:KeilCμVision2Cx51有两种使用方式。第一种方式是在μVision2IDE中使用,不用进行设置;第二种方式是在命令提示符下使用。如果使用命令方式,需
3、要设置如下变量:①PATH=E:KeilcC51BIN②TMP=E:KeilcTmp③C51INC=E:KeilcC51INC④C51LIB=E:KeilcC51LIB在WindowsNT环境下设置方式为:我的电脑->属性->高级->环境变量->新建设置好运行环境后就可以在命令提示符下编译C语言源程序,其格式如下:C51源文件名[控制命令...]9.2Cx51简介9.2.1Cx51的扩展Cx51编译器兼容ANSIC标准,又扩展支持了8051微处理器,其扩展内容如下:①存储区;
4、②存储区类型;③存储模型;④存储类型说明符;⑤变量数据类型说明符;⑥位变量和位可寻址数据;⑦SFR;⑧指针;⑨函数属性。9.2.2存储区8051单片机支持程序存储器和数据存储器的分离,存储器根据读写情况可以分为:程序存储区(ROM)、快速读写存储器(内部RAM)、随机读写存储器(外部RAM)。1.程序存储器(code)在8051中程序存储器是只读存储器,其空间为64K。2.内部数据存储器在8051单片机中,内部数据存储器属于快速可读写存储器,与51兼容的扩展型单片机最多有256字节内部数据存储区。
5、3.外部数据存储器外部数据存储器又称随机读写存储器,访问存储空间为64KB。其访问速度要比内部RAM慢。访问外部RAM的数据要使用指针进行间接访问。9.2.3存储模式在Cx51中,存储器模式可以确定一些变量在缺省情况下的存储器类型。程序中可用编译器控制命令SMALL、COMPACT、LARGE指定存储器模式。1.SMALL模式SMALL模式中所有的变量在缺省的情况下位于单片机的内部数据区,这和用data存储类型标识符声明的变量是相同的。在本模式中变量访问非常有效,然而所有对象和堆栈必须适和内部RA
6、M。2.COMPACT模式COMPACT模式中所有变量在缺省的情况下都存放在外部数据区的一页(256B)中,这和用pdata存储类型标识符声明的变量是相同的。3.Large模式LARGE模式下所有变量在缺省情况下存放在外部数据存储区(范围为64k字节),这和用xdata存储类型标识符声明的变量是一致的,该模式使用数据指针DPTR寻址。9.2.4数据类型在Cx51中不仅支持所有的C语言标准数据类型,而且还对其进行了扩展,增加了专用于访问8051硬件的数据类型,使其对单片机的操作更加灵活。1.bit类
7、型bit用于声明位变量,其值为1或0。2.sbit类型sbit类型用于声明可位寻址变量中的某个位变量,其值为1或0。3.sfr类型sfr类型用于声明特殊功能寄存器(8位),位于内部RAM地址为0x80-0xFF的128字节存储单元,这些存储器一般用作对计时器、计数器、串口、并口和外围使用。4.sfr16类型sfr16类型用于声明两个连续地址的特殊功能寄存器(地址范围为0~65535)。9.2.5指针所谓指针就是存储单元的地址,指针变量就是存放地址的变量。在Cx51编译器中指针可以分为两种类型:通用
8、指针和指定存储区地址指针。1.通用指针所谓通用指针是指未对指向的对象(变量)存储空间进行说明的指针。通用指针可以访问8051存储空间中与位置无关的任何变量。2.存储区域的指针所谓存储区域的指针是指在指针声明中包含存储器类型。程序中使用指定存储区域的指针速度要比通用指针快(指定存储区域指针在编译时Cx51编译器已知道其存储区域,而通用指针直到运行时才确定存储区域),在实时控制系统中应尽量使用指定存储区域的指针。9.2.6函数函数是C程序的基本单元,全部C都是由一个个函数组成的。在结构
此文档下载收益归作者所有