为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

单片机的C语言程序设计与应用[姜志海等编著][电子教案]

2018-05-11 33页 ppt 211KB 146阅读

用户头像 个人认证

飞哥

暂无简介

举报
单片机的C语言程序设计与应用[姜志海等编著][电子教案]第2章C51程序设计基础 在标准C语言的基础上学习C51程序设计,应重点掌握标准C语言和C51的区别.本章主要介绍C51的数据类型和存储类型、基本运算与流程控制语句、构造数据类型、函数以及程序设计中的其他一些问题等内容.2.1C51数据类型及存储类型 2.1.1数据类型C51编译器支持的数据类型有:位型(bit)、无符号字符型(unsignedchar)、有符号字符型(signedchar)、无符号整型(unsignedint)、有符号整型(signedint)、无符号长整型(unsignedlong)、有符号长整型(sign...
单片机的C语言程序设计与应用[姜志海等编著][电子教案]
第2章C51程序基础 在C语言的基础上学习C51程序设计,应重点掌握标准C语言和C51的区别.本章主要介绍C51的数据类型和存储类型、基本运算与流程控制语句、构造数据类型、函数以及程序设计中的其他一些问题等内容.2.1C51数据类型及存储类型 2.1.1数据类型C51编译器支持的数据类型有:位型(bit)、无符号字符型(unsignedchar)、有符号字符型(signedchar)、无符号整型(unsignedint)、有符号整型(signedint)、无符号长整型(unsignedlong)、有符号长整型(signedlong)、浮点型(float)和指针型等。2.1.2常量与变量 1.常量C51语言中的常量是不接受程序修改的固定值,常量可为任意数据类型。(1)整型常量(2)实型常量(3)字符常量(4)字符串常量(5)符号常量2.变量其值可以改变的量称为变量。所有的C51变量必须在使用前定义。定义变量的一般形式为:数据类型变量名;(1)整型变量(int)(2)长整型变量(longint)(3)实型变量(4)字符变量char(5)位变量(bit)2.1.3数据存储类型1.存储区介绍(1)DATA区(2)BDATA(3)IDATA区(4)PDATA和XDATA区(5)程序存储区CODE2.存储模式(1)SMALL模式(2)COMPACT模式(3)LARGE模式2.2C51对单片机主要资源的控制 C51对单片机应用系统主要资源的控制主要包括特殊功能寄存器的定义、片内RAM的使用、片外RAM及I/O口的使用、位变量的定义。片内RAM的使用、片外RAM及I/O的使用又称为绝对地址的访问。2.2.1特殊功能寄存器的C51定义1.使用关键字定义sfr语法如下:sfr特殊功能寄存器名字=特殊功能寄存器地址;如:sfrSCON=0x98;sfrTMOD=0X89;2.通过头文件访问SFRC51编译器把MCS-51单片机的常用的特殊功能寄存器和特殊位进行了定义,放在一个“reg51.h”或“reg52.h”的头文件中。当用户要使用时,只需要在使用之前用一条预处理命令“#include<reg51.h>”把这个头文件包含到程序中,然后就可以使用特殊功能寄存器名和特殊位名称了。用户可以通过文本编辑器对头文件进行增减。3.SFR中位定义第一种方法:sbit位名=特殊功能寄存器名^位置;第二种方法:sbit位名=字节地址^位置;第三种方法:sbit位名=位地址;2.2.2绝对地址的访问1.绝对宏C51编译器提供了一组宏定义来对51系列单片机的code、data、pdata和xdata空间进行绝对寻址。在程序中,用“#include<absacc.h>”即可使用其中声明的宏来访问绝对地址,包括CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD.2._at_关键字一般格式如下:[存储器类型]数据类型说明符变量名_at_地址常数;2.2.3位变量的C51定义1.位变量的C51定义采用关键字“bit”进行定义。2.函数可包含类型为bit的参数,也可以将其作为返回值3.对位变量定义的限制4.可位寻址对象2.3C51的基本运算与流程控制语句主要包括:基本运算选择(分支)控制语句循环结构流程控制语句break语句、continue语句和goto语句2.3.1基本运算1.C51的算术运算 C51最基本的算术运算符有以下五种: +(加法运算符) -(减法运算符) ×(乘法运算符) /(除法运算符) %(模运算或取余运算符)2.C51的关系运算关系运算又称为比较运算,C51提供了以下六种关系运算符: <(小于) <=(小于等于) >(大于) >=(大于等于) ==(等于) !=(不等于)3.C51的逻辑运算逻辑运算是对变量进行逻辑与运算、或运算、及非运算。C51提供三种逻辑运算符。如下: &&(逻辑与) ||(逻辑或) !(逻辑非)5.C51的位运算 C51提供以下六种位运算:& 按位与;| 按位或;^ 按位异或; ~ 按位取反; << 位左移; >> 位右移;2.3.2选择(分支)控制语句if语句是C51语言的一个基本条件选择语句,它是用来判定所给定的条件是否满足,根据判定结果决定执行给出的两种操作之一。形式一:if(表达式){语句}形式二:if(表达式){语句1;}else{语句2;}形式三:if(表达式1){语句1;}elseif(表达式2){语句2;}elseif(表达式3){语句3;}...elseif(表达式m){语句m;}else{语句n;}2.switch语句switch/case语句的一般形式如下:switch(表达式){ case常量表达式1:{语句1;}break; case常量表达式2:{语句2;}break; ... case常量表达式n:{语句n;}break; default:{语句n+1;} }2.3.3循环结构流程控制语句1.基于if和goto构成的循环2.基于while语句构成的循环3.基于do-while语句构成的循4.基于for语句构成的循环5.“死”循环的实现2.3.4break、continue和goto语句1.break语句2.continue语句3.goto语句2.4C51的构造数据类型C51的构造数据类型主要有数组、指针和结构等。在单片机系统中,数组的应用比较广泛,指针则次之,结构用的相对较少,这和单片机系统的要求以及用户的程序设计习惯有一定的关系。这里我们只讨论数组和指针。2.4.1数组数组是同类型数据的一个有序集合。数组用一个名字来标识,称为数组名。1.一维数组类型说明符数组名[元素个数];2.二维数组或多维数组类型说明符数组名[行数][列数];3.字符数组5.数组与存储空间数组占用的内存空间(即字节数)的计算式为:字节数=第1维长度×第2维长度×...×第n维长度×该数组数据类型占用的字节数。2.4.2指针C51支持“基于存储器”的指针和“一般”指针两种指针类型。1.基于存储器的指针在定义一个指针时,若给出了它所指对象的存储类型,则该指针是基于存储器的指针。2.一般指针在函数的调用中,函数的指针参数需要用一般指针。一般指针的说明形式如下: 数据类型*指针变量;2.5C51函数函数是一个自我包含的完成一定相关功能的执行代码段。2.5.1函数的基本问题1.函数的分类从C51语言程序的结构上划分,C51语言函数分为主函数main()和普通函数两种。而对于普通函数,从不同的角度或以不同的形式又可以分为标准库函数和用户自定义函数。2.函数的定义不同的函数形式,具有不同的定义方式。(1)无参函数的定义方法无参函数的定义形式为: 返回值类型标识符函数名() { 函数体; }无参函数一般不带返回值,因此函数返回值类型标识符可以省略2.5.2中断函数中断函数的定义格式为:函数类型函数名interruptnusingn其中:interrupt和using为关键字;interrupt后面的n为中断源的编号,即中断号;using后面的n所选择的寄存器组,取值范围为0~3。2.6C51程序设计的其他问题养成好的编程习惯宏定义、文件包含与条件编译使用移位运算代替乘除和求模运算C51的库函数汇编语言和C语言混合编程C51程序设计中容易出错的地方本章小结本章介绍C51的基本内容和程序设计方法,充分重视C51与标准C的区别和联系,是学习好C51的关键,因此读者在学习本章之前,应有一定的C语言知识。C51和ANSI-C是非常相似的,其不同之处主要体现在三个方面:其一是基于MCS-51本身的特点,引入适应该单片机的数据类型和数据存储类型,如bits、bit、data、bdata、idata、pdata、xdata、code等。其二是C51中断函数的定义中使用了关键字interrupt、using、中断号、寄存器组号等。其三是C51中提供的函数少于ANSIC,C51只提供了字符函数、一般I/O函数、串函数、数学函数、绝对地址访问等。
/
本文档为【单片机的C语言程序设计与应用[姜志海等编著][电子教案]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索