欢迎来到天天文库
浏览记录
ID:33489189
大小:1.19 MB
页数:30页
时间:2019-02-26
《keil c 编程教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、原创翻译,转载注明作者:小楼听雨来源:http://www.xl7y.tk/KeilC编程教程:引言►引言用c语言为微控制器编程正在变的越来越普通,通常用汇编建立一个应用比用c语言要难的多,因此掌握嵌入式c编程是非常重要的。由于我们使用KeilC51编译器,也常常称之为KeilC。►关键字KeilC编译器添加的一些关键字:_at_farsbitalienidatasfrbdatainterruptsfr16bitlargesmallcodepdata_task_compact_priority_usingdatareentrantxdatadata/idata:描述:变量将被存储在控制器内
2、部ram中。example:CODE:unsignedchardatax;//orunsignedcharidatay;bdata:描述:变量被存储在可位寻址的内部ram中。CODE:unsignedcharbdatax;//变量x的每一位可按以下的方式存取x^1=1;//设置x的第一位x^0=0;//清除x的第零位xdata:描述:变量将被存储在控制器外部ram中。example:CODE:unsignedcharxdatax;code:描述:这个关键字是用来将常量存储在rom中。假设你有一个大的字符串,而且这个字符串在程序中不会再被改变,为这个字符串浪费ram是很愚蠢的事,因此我们要像
3、下面的例子一样运用code关键字。example:CODE:unsignedcharcodestr="thisisaconstantstring";pdata:描述:这个关键字将会使变量存储在分页寻址ram中,它运用不是很频繁。example:CODE:unsignedcharpdatax;_at_:描述:用来将变量存储在ram的指定位置。example:CODE:unsignedcharidatax_at_0x30;//变量x将会存储在内部ram的0x30处sbit:描述:这个关键字用来定义SFR(特殊功能寄存器)的某一位。example:CODE:sbitPort0_0=0x80;//
4、地址0x80被定义为特殊位Port0_0sfr:描述:sfr被用来定义一个8位的特殊功能寄存器。example:CODE:sfrPort1=0x90;//地址0x90被定义为特殊功能寄存器Port1sfr16:描述:用来定义两个连续的8位特殊功能寄存器。example:CODE:sfr16DPTR=0x82;//开始于0x82的16位特殊功能寄存器using:描述:这个关键字位某个函数定义寄存器组,用户可以指定0-3的寄存器组。example:CODE:voidfunction()using2{//code}//名为function的函数在执行代码的时候使用寄存器组2interrupt:描
5、述:这个关键字将会告诉编译器被描述的函数是一个终端服务程序。C51编译器支持最多32个中断源(0-31),使用下面的中断向量地址来决定中断号。example:CODE:voidExternal_Int0()interrupt0{//code}►存储器模式用户有三种类型的存储器模式变量:1.Small:所有变量都在内部ram中。2.Compact:参数及局部变量放入分页外内部存贮区(最大256bytes)。3.large:所有变量都在外部ram中,使用DPTR存取。根据我们硬件的配置我们能够向下面这样指定存储器模式:CODE://ForSmallMemorymodel#pragmasmall
6、//ForCompactmemorymodel#pragmacompact//Forlargememorymodel#pragmalarge原文:keilCProgrammingTutorial:Introductionhttp://www.8051projects.net/keil-c-programming-tutorial/introduction.php原创翻译,转载注明作者:小楼听雨来源:http://www.xl7y.tk/KeilC编程教程:指针►KeilC中的指针KeilC中的指针类似于标准C,可以完成标准C中指针的所有运算。另外,KeilC扩展了它的运算去满足8051微控
7、制器架构,KeilC提供两种不同类型的指针:1.一般指针2.存储器指针►一般指针一般指针同标准C中的指针声明是一样的CODE:char*ptr;//字符型指针int*num;//整型指针一般指针用三个字节存储。第一个存储存储器类型,第二个第三个分别是高位偏移和低位偏移。一般指针能够存取任何变量,无论该变量在什么位置。►存储器指针存储器指针在指针说明时就指定了存储类型,例如:CODE:chardata*c;//指向一个存储
此文档下载收益归作者所有