- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                一、单片机C语言概述.ppt
                    一、单片机C语言概述 C51的特点 语言简洁,使用方便灵活 可移植性好 表达能力强、方便灵活 可进行结构化程序设计 可以直接操作计算机硬件 生成的目标代码质量高 语言简洁,使用方便灵活 C语言是现在程序设计语言中规模最小的语言之一,而小的语言体系往往能够设计出较好的程序 C语言的关键字很少,ANSI C 标准一共只有32个关键字,C51为适应51单片机编程在此基础上增加了为数不多的几条关键字。 书写自由,表示方法简洁,常常使用一些简单的方法就可以构造出相当复杂的数据类型和程序结构 可移植性好 不同的CPU具有不同的指令,尽管都有相应的汇编编译器,但是这些编译器处理源代码的方式并不相同,他们彼此互不兼容。 表达能力强、方便灵活 C语言有丰富的数据结构类型和多种运算符,可以方便的建立各种复杂的数据结构的运算。C语言还具有多种运算符和标准库函数,灵活使用可以实现汇编语言难以实现的运算。 C语言的语法规则不太严格、程序设计 的自由度比较大,书写格式自由灵活  可进行结构化程序设计 可以直接操作计算机硬件 C语言具有直接访问机器物理地址的能力,美国Francklin 公司的C51编译器可以直接对8051单片机内部特殊功能寄存器和IO口进行操作,可以直接访问片内或片外存储器,也可以进行各种位操作 生成的目标代码质量高 汇编语言程序目标代码的执行效率是最高的,统计表明,对于同一个问题,C语言程序生成的代码的效率比汇编生成的低10~20%,不过对于功能复杂的程序而且在有限的时间内编写的效果C却比汇编高了40%。特别是Franklin公司的C51编译器,能生成十分简洁高效的机器代码,可以和优秀的汇编语言程序员写出的代码相媲美。 牛刀小试 两种语言实现 你 的感觉? C语言是否清晰得多? C语言对硬件的控制是否比想象的要好? 没有读“汇编天书”的感觉了吧,语句是否要好记的多了?  * 	8051系列单片机作为事实上的工 业标准,从1985年开始就有8051单片 机的C语言编译器,简称C51 我本无名,只是源于 Intel MCS51 和 C语言 两大派系,所以江湖中人就叫我 C51 工程师们经历十余年精心打造, C51 已经成为开发单片机的必备利器,主要特点如下: 255条目标指令 VS  32个关键字 例如: 在80H中的数据与累加器中的数据相与 8086中的指令为       AND  AX,[80H] 8051中的指令为       ANL A,80H C语言中处理与的语句则可统一写成    a = b; 统计资料表明,不同机器上的C语言编译器80%的代码是公用的。由C语言编写的 uC/OSII 实时操作系统已经成功地被移植到了一百多种微处理器上         函数是构成C语言程序设计的基本单元,相当于一些程序语言中的子程序,不同的函数模块搭建起了整个程序,这使得编写C程序就象在玩积木游戏。 例:将P1口高4为置低、低4位置高 C语言的实现 P1 = 0X0F; 汇编语言的实现 MOV P1,#0FH           晶振频率12MHz ,请从P1.0 口输出 50Hz方波信号  (教科书P48)  ORG 0000H    AJMP MAIN MAIN: 	MOV TMOD,#01H 	SETB TR0 LOOP: MOV TH0,#0B1H 	MOV TL0,#0E0H LOOP1:JNB  TF0,LOOP1 	CLR TF0 	CPL P1.0 	SJMP  LOOP #include reg51.h sbit  P10 = P1^0; main() { 	TMOD = 0X01; 	TR0 = 1; 	while(1) 	{ 		TH0 = 0XB1; 		TL0 = 0XE0; 		while(!TF0); 		TF0 = 0; 		P10 = ~P10; 	} } * 
                
原创力文档
                        

文档评论(0)