- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51程序设计无须懂得单片机的具体硬件,也能够编出符合硬件实际的.ppt
C51程序设计;无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;
不懂得单片机的指令集,也能够编写完美的单片机程序;
不同函数的数据实行覆盖,有效利用片上有限的RAM空间;;提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;
C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;
提供small、compact、large等编译模式,以适应片上存储器的大小;;中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;
程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏
提供常用的标准函数库,以供用户直接使用;
有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;;可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。
头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;
;头文件
不同的芯片(89C51,89C52,89S8252…),其内部资源(定时器、中断,I/O等)数量和功能不同,需要各自的头文件对功能寄存器进行定义;C51与ANSI C的主要区别
多了一种数据类型——位(bit)
可以指定数据存储器类型——程序存储器、片内、片外数据存储器等
数据运算、程序控制和函数使用上没有太大区别。库函数区别较大,ANSI C的有些库函数(如字符和屏幕图形)在C51中不能使用,有的库函数功能上也有变化 。
如printf和scanf函数用于串口数据的传送;;bit 位标量
bit 可定义一个位标量或位函数,但不能定义位指针,也不能定义位数组。
它的值是一个二进制位,不是 0 就是1,类似一些高级语言中的 Boolean 类型中的True 和 False。;sbit可寻址位
sbit 可以访问芯片内部的 RAM 中的可寻址位或特殊功能寄存器中的可寻址位。
如要访问 P1 口中的第 2 个引脚P1.1。可以??以下的方法去定义:
(1)sbit 位变量名=位地址
sbit P1_1 = 0x91;
这样是把位的绝对地址赋给位变量。sbit 的位地址必须位于 80H-FFH 之间。 ;(2)Sbit 位变量名=特殊功能寄存器名^位位置
sfr P1 = 0x90;
sbit P1_1 = P1 ^ 1; //先定义一个特殊功能寄存器名再指定位变量名所在的位置 当可寻址位位于特殊功能寄存器中时可采用这种方法
通常这些可以直接使用系统提供的预处理文件,里面已定义好各特殊功能寄存器的简单名字。当然也可以自己写自己的定义文件,用您认为好记的名字;sfr 特殊功能寄存器
sfr 可占用一个内存单元,以访问 51单片机内部的所有特殊功能寄存器。
如sfr P1 = 0x90,定义P1 为P1 端口在片内的寄存器,在后面的语句中用以用 P1 = 255(对P1 端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器
sfr16 16位特殊功能寄存器
sfr16 占用两个内存单元,值域为 0~65535。sfr16 和sfr 一样用于操作特殊功能寄存器,所不同的是它用于操作占两个字节的寄存器
如定时器 T0 、T1和 T2,sfr16 T2=0xCC;与标准C一样
整型常量可以表示为十进制,八进制以0开头,十六进制则以 0x 开头
如123,0,-89,0x34,-0x3B。长整型就在数字后面加字母L,如104L,034L,0xF340L等。
浮点型常量可分为十进制和指数表示形式。
十进制如0.888,3345.345,0.0 ,整数或小数部分为 0,可以省略但必须有小数点。
指数表示形式为[±]数字[.数字]e[±]数字,[]中的内容为可选项,其中内容根据具体情况可有可无,但其余部分必须有,如125e3,7e9,-3.0e-3。 ;与标准C一样的内容:
字符型常量是单引号内的字符
如‘a’,‘d’等,不可以显示的控制字符,可以在该字符前面加一个反斜杠“\”组成专用转义字符。
字符串型常量由双引号内的字符组成,如“test”,“OK”等。当引号内的没有字符时,为空字符串。
在使用特殊字符时同样要使用转义字符如双引号。
在 C 中字符串常量是做为字符类型数组来处理的,在存储字符串时系统会在字符串尾部加上\0转义字符以作为该字符串的结束符。
字符串常量“A”和字符常量‘A’是不同的,前者在存储时多占用一个字节的字
您可能关注的文档
最近下载
- 人教版六年级上册英语第三单元教案和反思1.pdf
- ISO 20653-2023中文-道路车辆.防护等级.pdf
- 幼儿园教案幼儿园中班优质课教案.doc VIP
- 2023中国工商银行四川分行秋季校园招聘笔试历年典型考题及考点剖析附带答案详解.docx
- 顺丰控股香港上市IPO招股说明书2024版.pdf
- 3.3 地波天线.ppt
- 中国第一高中湖北卷湖北省武汉市华中师范大学第一附属中2024-2025学年高三上学期10月检测(10.19-10(含答案).pdf VIP
- 智慧消防及消防监管云平台解决方案.pptx
- 美国Megger TM1700断路器分析仪使用说明书.pdf VIP
- 水利科学技术史.pdf VIP
文档评论(0)