第一章 单片机与C语言.docx

上传人:b****6 文档编号:3552310 上传时间:2022-11-23 格式:DOCX 页数:3 大小:23.06KB
下载 相关 举报
第一章 单片机与C语言.docx_第1页
第1页 / 共3页
第一章 单片机与C语言.docx_第2页
第2页 / 共3页
第一章 单片机与C语言.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第一章 单片机与C语言.docx

《第一章 单片机与C语言.docx》由会员分享,可在线阅读,更多相关《第一章 单片机与C语言.docx(3页珍藏版)》请在冰豆网上搜索。

第一章 单片机与C语言.docx

第一章单片机与C语言

前言

用C语言进行8051单片机程序设计是单片机开发与应用的必然趋势。

目前,8051编程的代码长度,在未加入人工优化的条件下,已经做到了最优汇编程序水平的1.2-1.5倍,比得上中等程序员的水平。

如果谈到开发速度、软件质量、结构严谨性和程序坚固性等方面,C语言的完美绝非汇编语言编程所能比拟的。

第一章单片机与C语言

一、单片机的编程语言

1、汇编语言

优点:

执行效率高,运行速度快,与硬件结合较好,能充分发挥程序员的优势;

缺点:

对编程人员要求高,编程难度大,开发周期长,硬件更换后程序的可移植性差,可读性差。

不大适合专业人员开发程序。

2、Basic语言

优点:

Basic是高级语言,具有高级语言的优点,如可读性好,容易编程等。

解释性语言,易学、易查错。

缺点:

实时性差,因为所有变量均为浮点数,占用空间大,执行速度慢。

3:

C语言

具有以下优点:

1)C语言是编译型语言,具有高级语言的特点,也具备汇编语言简洁、可以控制硬件的功能。

2)表达能力强,易于编程,可读性好。

3)可移植性好,C语言本身不依赖系统硬件,可以很容易移植到不同类型的单片机上。

编译时要选择芯片,将同一条语句变成该芯片对应的指令。

4)有丰富的库函数可以调用。

5)寄存器的分配,由编译器完成,编程者可将精力集中到软件整体设计,有利于提高软件质量。

(汇编语言编程者必须记住这些分配)

6)可以多人编写一个大程序。

(将各模块之间接口确定即可)

7)有实时多任务操作系统(RTOS),可以合理的分配CPU的时间及单片机的资源。

8)开发周期短,适合工程技术人员开发应用软件。

存在的问题:

1)代码长度,C语言向单片机移植,最大的困难之一是“高级语言产生的代码长,运行速度慢,占用存储器空间大,不适合单片机应用”。

经过美国的keilSoftware公司和许多公司的努力,现在该问题已基本解决,经考核,对于程序长度超过2K字节,用C语言编写的程序,占用内存大小和运行速度优于一般编程人员(非程序员级的专业人员)用汇编语言编写的程序。

2)单片机种类多,结构不同。

编译软件还不能全部适应。

二、Keil编译器

1、简介

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。

与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,用过汇编语言后再使用C来开发,体会更加深刻。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具。

全Windows界面,另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。

KeilC51标准C编译器为8051微控制器的软件开发提供了C语言环境。

C51已被完全集成到μVision3的集成开发环境中,这个集成开发环境包含:

编译器,汇编器,实时操作系统,项目管理器,调试器。

2、KeilC51单片机软件开发系统的整体结构

C51工具包的整体结构如图所示,可以完成编辑、编译、连接、调试、仿真等整个开发流程,该集成系统可以编译C源程序,也可以编译汇编语言源程序。

开发人员可用IDE(Integrated Development Environment)本身或其它编辑器编辑C源文件或汇编源文件,然后分别由C51及A51编译器编译生成目标文件(.OBJ),目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)ABS文件。

由OH51转换成标准的Hex文件,以供调试器使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,HEX文件是最后写入程序存贮器中的代码。

(用多媒体进行演示)

 

三、单片机C语言与一般C语言的异同

特点:

单片机C语言和普通的C语言在很多方面都是相同的,现在各学校开设的编程语言大多是C语言,因此要学习单片机C语言较容易。

有的学校在开设C语言时就将单片机C语言作为一部分内容加进去,那样处理可以节约课时,但不利于单片机C语言的更好掌握。

相同点:

语法结构基本相同,也是采用函数结构;大部分函数相同。

不同点:

1)输入、输出不同,c语言中可以用Printf/Scanf等语句进行标准的输入、输出,直接从键盘输入或输出到屏幕上,而单片机用该指令,只能输出到串行口。

因此调试程序没有在计算机上调试普通C程序方便,可以看到运行的信息。

2)数据类型不同,单片机增加了bit、sbit、sfr、sfr16等数据类型。

3)单片机C语言增加了存储类型。

4)不隐含支持递归调用,要递归调用前必须说明。

5)库函数不同。

库函数大部分是相同的,有部分是不同的,如在CX51中没有freopen、fputs等库函数。

在ANSIC中没有_NOP_,应用时查相关资料。

6)单片机C有自动覆盖技术。

因为单片机的RAM和计算机相比少的可怜,所以在编译时会自动分析判断,将不再被用的变量占用的空间重新使用。

7)单片机C有优化技术,可以最大限度减少代码长度。

8)由于单片机C语言编程的目的是要将程序最后固化到单片机或者EPROM中,所以最后要生产后缀为.HEX的文件,该文件可以固化到单片机中。

用单片机C语言编程是要注意:

1)应用单片机的c更要注重对系统资源的理解,因为单片机的系统资源相对pc来说很贫乏,对于每一个ram,rom中的byte都要充分利用,可以多看看编译生成的.m51文件来了解自己程序中利用资源的情况。

2)对于程序上应用的各种算法要精简,不要对系统构成过重的负担。

尽量少用浮点运算,可以用unsigned型数据的就不要用有符号型数据,尽量避免多字节的乘除运算,多使用移位运算等等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1