- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sbit的用法有三种: 第一种方法:sbit 位变量名=地址值 第二种方法:sbit 位变量名=SFR名称^变量位地址值 第三种方法:sbit 位变量名=SFR地址值^变量位地址值 如定义PSW中的OV可以用以下三种方法:sbit OV=0xd2 (1)说明:0xd2是OV的位地址值sbit OV=PSW^2 (2)说明:其中PSW必须先用sfr定义好sbit OV=0xD0^2 (3)说明:0xD0就是PSW的地址值 REG51.H #ifndef __REG51_H__ #define __REG51_H__ /* BYTE Register */ sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D; sfr IE = 0xA8; sfr IP = 0xB8; sfr SCON = 0x98; sfr SBUF = 0x99; 五、赋值和复合赋值运算符 符号“=”称为赋值运算符,其作用是将一个数据的值赋给一个变量。赋值表达式的值就是被赋值变量的值。 在赋值运算符的前面加上其它运算符可以构成复合赋值运算符。在C51中共有10种复合运算符: += 加法赋值; -= 减法赋值; *= 乘法赋值; /= 除法赋值; %= 取模赋值; = 左移位赋值; = 右移位赋值; = 逻辑与赋值; |= 逻辑或赋值; ^= 逻辑异或赋值; ~= 逻辑非赋值。 在C51中可以定义指针类型的变量。变量的指针就是该变量的地址。为了表示指针变量和它所指向的变量地址间的关系,可以利用运算符:*(取内容)和(取地址)。 一般定义形式为: 变量 = * 指针变量 取内容运算是将指针变量所指向的目标变量的值赋给左侧的变量; 指针变量 = 目标变量 取地址运算是将目标变量的地址赋给左侧的变量。 9.4 C51的指针类型 必须注意,指针变量中只能存放指针型数据(即地址),不要将一个非指针型的数据赋给一个指针变量。正确的赋值示例如: char data *p /* 定义指针变量 */ p = 30H /* 为指针变量赋值,30H为片内RAM地址 */ C51编译器支持两种指针类型:一般指针和基于存储器的指针。 9.4 C51的指针类型 9.5 C51的函数 与普通的C语言程序类似,C51程序是有若干模块化的函数构成。函数是C51程序的基本模块,常说的子程序就是由函数来实现的。 用户可以根据需要定义自己的功能函数,也可以调用C51编译器提供的标准函数(库函数)来完成某种特定的功能。 9.5.1 C51函数的定义 函数的一般定义形式为: 返回值类型 函数名(形式参数列表)[编译模式][reentrant] [interrupt n][using n] { 函数体 } 当函数没有返回值时,应用关键字void明确说明。 形式参数的类型要明确说明,对于无形参的函数,括号也要保留。 编译模式为SMALL、COMPACT或LARGE,用来指定函数中局部变量和参数的存储器空间。 reentrant用于定义可重入函数。 interrupt n 用于定义中断函数,n为中断号,可以为0~31,通过中断号可以决定中断服务程序的入口地址。 using n 用于确定中断服务函数所使用的工作寄存器组,n为工作寄存器组号,取值为0~3。 9.5.3 C51的库函数 C51编译器提供了丰富的库函数,使用这些库函数可以大大提高编程的效率。 每个库函数都在相应的头文件中给出了函数的原形,使用时只需在源程序的开始用编译命令 #include 将头文件包含进来即可。 常用的C51库函数参见附录C.2。 C-51的包含的头文件 通常有—— reg51.h math.h ctype.h stdio.h stdlib.h absacc.h 常用有—— reg51.h (定义特殊功能寄存器和位寄存器); math.
您可能关注的文档
- 《中国共产党廉洁自律准则》及《中国共产党纪律处分条例》知识竞赛试题教程详解.doc
- 16现场总线控制技术教程详解.ppt
- 《准则》、《条例》学习考试复习题库教程详解.doc
- 16章量子物理教程详解.ppt
- 《准则》、条例》知识抢答赛题库教程详解.doc
- 《准则》《条例》知识测试题教程详解.doc
- 16总装图-30教程详解.ppt
- 《准则》《条例》知识竞赛试题及答案教程详解.doc
- 《准则》和《条例》考试题库教程详解.doc
- 17.2电流的磁场-LQ教程详解.ppt
- 高校教师资格证之《高等教育心理学》综合提升练习试题带答案详解(夺分金卷).docx
- 高校教师资格证之《高等教育心理学》综合提升练习试题完整参考答案详解.docx
- 高校教师资格证之《高等教育心理学》综合提升练习试题含答案详解(满分必刷).docx
- 高校教师资格证之《高等教育心理学》综合提升练习试题含答案详解(巩固).docx
- 高校教师资格证之《高等教育心理学》综合提升练习试题含答案详解(最新).docx
- 高校教师资格证之《高等教育心理学》综合提升练习试题含答案详解(新).docx
- 高校教师资格证之《高等教育心理学》综合提升练习试题带答案详解(a卷).docx
- 高校教师资格证之《高等教育心理学》综合提升练习试题含答案详解(完整版).docx
- 高校教师资格证之《高等教育心理学》综合提升练习试题含答案详解(基础题).docx
- 高校教师资格证之《高等教育心理学》综合提升练习试题含答案详解(轻巧夺冠).docx
文档评论(0)