嵌入式C语言在工程编程中的应用技巧.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《嵌入式C语言在工程编程中的应用技巧.pdf》由会员分享,可在线阅读,更多相关《嵌入式C语言在工程编程中的应用技巧.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第24卷第1期 中南民族大学学报(自然科学版)Vol.24 No.12005年3月Journal of South2CentralU niversity for Nationalities(Nat.Sci.Edition)M ar.2005嵌入式C语言在工程编程中的应用技巧田晓梅王月姣(中南民族大学 电子信息工程学院,武汉430074)摘要指出了用C语言开发单片机系统较汇编语言开发所具有的优势,结合笔者用Keil C51开发的经验,重点阐述、分析了嵌入式C51语言的非AN 512C扩展部分及开发中应注意的问题.关键词嵌入式系统;C51语言;8XX51单片机;C语言中图分类号TP368文献标识码
2、A文章编号167224321(2005)0120061203Application Techn ique of Embedded C Languageon Engineering Programm ingT ian X iaom eiW ang YuejiaoAbstractThe article brings forward the advantage of developing SCM system w ith C language compared to w ithassemble language.Based on the authors developing practicew it
3、h KeilC51,the article expounds and analyzes thenon2AN 512C extension part of embedded C51 and the problem s that should be noticed in developing.Keywordsembedded system;C51 language;8XX51 SCM;C languageTian XiaomeiL ect,College of Electronics and Information Engineering,SCU FN,W uhan 430074,China嵌入式
4、系统是以嵌入式的形式隐藏在各种装置、产品和系统中的一种软硬件高度专业化并执行独立功能的特定计算机系统.随着电子技术的迅猛发展,计算机技术和产品对其他行业广泛渗透,嵌入式系统有着广阔的应用前景1.嵌入式系统中的核心硬件是各类的M CU,单片机就是其中之一,其软件必须高效率地设计,嵌入在ROM、RAM与FLA SH存贮器中.实际上,系统程序的编写效率在很大程度上决定了目标系统的研制成效.早期在开发研制单片机应用系统时,大多以汇编语言作为软件工具,随着市场竞争的日趋激烈,要求电子工程师在短时间内编写出执行效率高而又可靠的嵌入式软件的执行代码,同时由于实际系统的日趋复杂,要求所写代码规范、模块化并便于
5、多个工程师以软件工程的形式进行协同开发.汇编语言作为传统的嵌入式系统的编程语言已经不能满足这样的实际需要了2,3.而C语言是一种简洁、高效而又贴近硬件的编程语言,就其开发速度、软件质量、结构严谨、程序坚固等方面而言,C语言的完美绝非汇编语言能比拟的,因而目前单片机C语言已成为专业水平的高级语言,Keil公司开发的C51(简称C51)已成为如今广泛使用流行的一种嵌入式C语言.1嵌入式C语言的非AN SI2C的扩展部分C51是用C语言开发8XX51系列单片机的一种嵌入式语言1,3,它与C语言的差异关键是非AN SI2C的扩展部分.对于开发人员,除了熟悉AN SI2C标准,还要熟悉非AN SI2C的
6、扩展标准,这是进行嵌入式软件开发的前提.C51中的非AN SI2C的扩展部分主要如下.1.1头文件8XX51系列单片机目前有100多种型号,发展成了一个大家族,这些型号的芯片,其指令系统基本兼容,主体结构大同小异,为了访问内部的特殊功能寄存器(SFR)和片内?外的数据RAM或I?O,只需要将相应的头文件加载到程序中,就可以实现它们所指定的收稿日期2005201212作者简介田晓梅(19702),女,讲师,研究方向:计算机应用,E2mail:xm 不同功能.(1)对特殊功能寄存器访问的头文件.其包含语句可为:#include 寄存器定义文件可自由起名,但扩展名要用H或h,其中XXX为芯片型号的缩
7、写,常用的reg51.h,reg52.h等.C51只要建立了头文件,在该文件中就对所有的特殊功能寄存器进行了sfr定义,对特殊功能寄存器有位名称的可寻址的位进行了sbit定义,因此,只要用包含语句#include ,就可以直接引用特殊功能寄存器的名,或直接引用位名称.使用中注意:一是引用时,特殊功能寄存器位名称必须大写.二是中,对R0R8无定义,对P0P3口字节有定义,对其中的位无定义,若要对P3.2置1,不能写成P3.2=1或直接写成P32=1,而要写成:Sbit P32=P3 2;P32=1.(2)对存贮器或I?O的绝对地址访问的头文件.其包含语句格式为:#include 利用绝对地址访问
8、的头文件absacc.h,可对不同的存贮区进行访问.该头文件的函数有:CBYTE?CWORD (访问code区字符型?整型)DBYTE?DWORD (访问data区字符型?整型)PBYTE?PWORD (访问Pdata区或I?O口字符型?整型)XBYTE?XWORD (访问Xdata区或I?O口字符型?整型)使用中注意:一是absacc.h一定要包含进程序,二是XBYTE函数名要大写,三是变量要用#define宏定义.1.2变量的存贮类型C51中的变量定义如下:存贮类型数据类型存贮器类型变量名表;其中存贮类型和C语言相同,为auto(缺省),extern,register,static.C51
9、数据类型:char,int,long,float,3pointer,bit,str,sr16,sbit.存贮类型对C51是必须的.C51开发的对象是8XX51系列单片机,它所定义的变量必须以一定的存贮类型定位在8XX51硬件系统的某一存贮区中,否则无意义.8XX51系列单片机有程序存贮器ROM,片内外的数据存贮器RAM,因此,C51在定义变量类型时,一定要定义它们的存贮类型,具体见表1.表1C51变量的存贮类型存贮类型描 述data直接寻址内部RAM区btata可位寻址的内部RAM区idata间接寻址内部RAM区Pdata分页(256Byte)的外部RAM区Xdata外部的RAM区(64KBy
10、tes)CodeROM区(64KBytes)1.3对位变量的定义8XX51单片机片内RAM 20H2FH,除了字节寻址还可位寻址,共128个位空间(00H7FH),另外还有11个特殊功能寄存器也可位寻址,对它们的访问,C51有3种方法.(1)将变量用bit类型定义符定义为bit类型,其位地址C51自行安排在内部RAM可位寻址的bdata区.(2)利用字节寻址变量位方法.如:bdata int ibase;?3ibase定义为bdata区整型变量3?sbitmybit=ibase 15;?3mybit定义为ibase第15位3?这里的位运算符 相当于汇编中的.,其后的取值依赖于该位所在字节寻址变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 语言 工程 编程 中的 应用 技巧
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内