没有合适的资源?快使用搜索试试~ 我知道了~
KeilC编程教程.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 168 浏览量
2021-10-04
18:46:35
上传
评论
收藏 1.69MB PDF 举报
温馨提示
试读
30页
KeilC编程教程.pdf
资源推荐
资源详情
资源评论
原创翻译,转载注明
作者:小楼听雨
来源: http://www.xl7y.tk/
Keil C 编程教程:引言
? 引言
用 c 语言为微控制器编程正在变的越来越普通, 通常用汇编建立一个应
用比用 c 语言要难的多, 因此掌握嵌入式 c 编程是非常重要的。 由于我
们使用 Keil C51 编译器,也常常称之为 Keil C 。
? 关键字
Keil C 编译器添加的一些关键字:
_at_ far sbit
alien idata sfr
bdata interrupt sfr16
bit large small
code pdata _task_
compact _priority_ using
data reentrant xdata
data/idata:
描述 : 变量将被存储在控制器内部 ram 中。
example:
CODE:
unsigned char data x ;
//or
unsigned char idata y ;
bdata:
描述:变量被存储在可位寻址的内部 ram 中。
CODE:
unsigned char bdata x ;
// 变量 x 的每一位可按以下的方式存取
x ^ 1 = 1; //
设置
x
的第一位
x ^ 0 = 0; // 清除 x 的第零位
xdata:
描述 : 变量将被存储在控制器外部 ram 中。
example:
CODE:
unsigned char xdata x ;
code:
描述: 这个关键字是用来将常量存储在 rom 中。假设你有一个大的字符串, 而且这个字符串在程序中不会再被改
变,为这个字符串浪费 ram 是很愚蠢的事,因此我们要像下面的例子一样运用 code 关键字。
example:
CODE:
unsigned char code str ="this is a constant string" ;
pdata:
描述:这个关键字将会使变量存储在分页寻址 ram 中,它运用不是很频繁。
example:
CODE:
unsigned char pdata x ;
_at_:
描述:用来将变量存储在 ram 的指定位置。
example:
CODE:
unsigned char idata x _at_ 0x30 ;
//
变量
x
将会存储在内部
ram
的
0x30
处
sbit:
描述:这个关键字用来定义 SFR(特殊功能寄存器)的某一位。
example:
CODE:
sbit Port0_0 = 0x80 ;
// 地址 0x80 被定义为特殊位 Port0_0
sfr:
描述: sfr 被用来定义一个 8 位的特殊功能寄存器。
example:
CODE:
sfr Port1 = 0x90 ;
//
地址
0x90
被定义为特殊功能寄存器
Port1
sfr16:
描述:用来定义两个连续的 8 位特殊功能寄存器。
example:
CODE:
sfr16 DPTR = 0x82 ;
// 开始于 0x82 的 16 位特殊功能寄存器
using:
描述:这个关键字位某个函数定义寄存器组,用户可以指定 0-3 的寄存器组。
example:
CODE:
void function () using 2{
// code
}
//
名为
function
的函数在执行代码的时候使用寄存器组
2
interrupt:
描述: 这个关键字将会告诉编译器被描述的函数是一个终端服务程序。 C51 编译器支持最多 32 个中断源 (0-31 ),
使用下面的中断向量地址来决定中断号。
example:
CODE:
void External_Int0 () interrupt 0{
//code
}
? 存储器模式
用户有三种类型的存储器模式变量:
1. Small: 所有变量都在内部 ram 中。
2. Compact: 参数及局部变量放入分页外内部存贮区(最大 256 bytes )。
3. large: 所有变量都在外部 ram 中,使用 DPTR 存取。
根据我们硬件的配置我们能够向下面这样指定存储器模式:
CODE:
//For Small Memory model
#pragma small
//For Compact memory model
#pragma compact
//For large memory model
#pragma large
原文: keil C Programming Tutorial: Introduction
http://www.8051projects.net/keil-c-programming-tutorial/introduction.php
原创翻译,转载注明
作者:小楼听雨
来源: http://www.xl7y.tk/
Keil C 编程教程:指针
? Keil C 中的指针
Keil C 中的指针类似于标准 C,可以完成标准 C 中指针的所有运算。
另外, Keil C 扩展了它的运算去满足 8051 微控制器架构, Keil C 提
供两种不同类型的指针:
1. 一般指针
2. 存储器指针
? 一般指针
一般指针同标准 C 中的指针声明是一样的
CODE:
剩余29页未读,继续阅读
资源评论
maodi_lzc
- 粉丝: 1
- 资源: 4万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功