欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 单片机原理及应用笔记:C51程序设计与项目实践

单片机原理及应用笔记:C51程序设计与项目实践

2024/10/25 16:24:58 来源:https://blog.csdn.net/WL999655/article/details/142901454  浏览:    关键词:单片机原理及应用笔记:C51程序设计与项目实践

个人简介

刘洋成志,男,银川科技学院计算机与人工智能学院,2022级计算机与科学技术9班本科生,单片机原理及应用课程第6组。
指导老师:王兴泽
电子邮件:376418637@qq.com

前言

本篇文章是参考《单片机原理及应用(c语言版)第2版》杨居义·编著教材编写的笔记
由刘洋成志、马彦宏、王恕诚、赵梦麟、杜昊同学共同完成此篇文章,其中刘洋成志同学负责编写,马彦宏总结以及排版内容,赵梦麟同学负责收集网络资料,王恕诚同学负责整理书本资料及图片材料,杜昊同学负责将以上同学收集的材料进行分析总结,并提炼出精简信息。


模块三、C51程序设计与项目实践

项目9:了解单片机C语言

1.C51程序开发概述

        单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短、运行速度高、所需存储空间小、符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言目标代码混和使用。

2.C51程序结构

        与普通的C语言程序类似,C51程序是由若干模块化的函数构成。主程序(main())可以根据需要用来调用所数。当函数执行完毕时,就发出返回(return)指令,而主程序main()后面的指令来恢复主程序流的执行。同一个函数可以在不同的地方被调用,并且函数可以重复使用。

3.标识符与关键字
(1)标识符

        C语言规定:标识符只能是字母(A~Z,a~z)、下划线“_”和数字(0~9)组成的字符串,并要求首字符是字母或下划线,不能是数字。例如,可以使用x、y作为变量的标识符,使用delay()作为函数的标识符。字母的大小写是有区别的,如max和MAX是两个完全不同的标识符。

(2)关键字

        关键字是一种已被系统使用过的具有特定含义的标识符。用户不得再用关键字给变量等命名。C语言关键字分为如下三类:
①类型说明符:用来定义变量、函数或其他数据结构的类型,如unsigned char、int 、long等。
②语句定义符:用来标识一个语句功能,如条件判断语句“if”,“while”等。
③预处理命令字:表示预处理命令的关键字,如程序开头的“include”。

·由ANSI C标准定义了32个关键字,如图表3-1

·另外51单片机还扩展了相应的关键字,如图表3-2

4.结构特点
(1)文件包含处理

        程序的第一行是一个“文件包含”处理,其含义是指一个文件内容将被另外一个文件全部包含了。由于单片机不认识端口“P1”要想让单片机认识“P1”就必须给“P1”作一个定义。这种定义已经由KeilC51完成,无须用户再定义,但是编程时必须将这种定义“包含”进去,才能使单片机认识“P1”等各种寄存器的名字。

(2)主函数main()

        main()函数被称为主函数,每一个C语言程序必须有并且只能有一个主函数,函数后面一定要有一对花括号“{}”,程序就写到里面。
        “{”花括号必须成对,位置随意,可在紧挨函数名后,也可另起一行,多个花括号可以同行书写,也可逐行书写,为层次分明,增加可读性,同一层的“{”花括号对齐,采用逐层缩进方式书写。

(3)语句结束标志

        C语言程序一行也可以写多条语句,但每个语句必须以“;”结尾,一个语句也可以多行书写。

(4)注释

        C语言程序设计中的注释只是为了提高程序的可读性,在编译时,注释内容不会被执行。C语言的注释有两种:
        一种是采用/*....*/表示;
        另一种采用“//”表示。
二者的区别是:前一种可以注释多行内容,后一种只能注释一行内容。

项目10:C51数据类型与项目实践

1.数据类型

        数据的不同格式叫数据类型。C语言中常用的数据类型有整型、字符型、实型、指针型和空类型。而根据变量在程序执行中是否发生变化,还可将数据类型分为常量和变量两种。在程序中,常量可以不经说明而直接引用,而变量则必须先定义类型后才能使用。

(1)常量与变量

        在程序运行过程中,其值不能被改变的量称为常量。常量区分为不同的类型,如10,0,-4为整型常量,2.6、-3.15为实型常量,'a','d'为字符常量在程序执行中,其值可以改变的量称为变量,变量标识符常用小写字母来表示,变量必须先定义后使用,一般放在程序开头部分。

(2)整型数据

        整形数据包括整型常量与整型变量。

        1)整型常量:整型常量就是整型常数。在C语言中,整型常量可以用以下三种形式表示:

                ①十进制整数。用0~9表示,如321,-106等。
                ②八进制整数。以0开头的数是八进制数,用0~7表示。如0215表示八进制数215,即等于十进制数141。
                ③十六进制整数。以0x开头的数是十六进制数,用0~9和A~F表示。如0XFF,代表十六进制数FF,等于十进制数255。

        2)整型变量:整型变量可分为基本型和无符号型,基本型类型说明符为int,在内存中占2个字节;无符号型类型说明符为unsigned,同样在内存中占2个字节。

·KeilC51软件编译器支持的数据类型,如图表3-3

(3)实型数据

        实型数据有两种表现形式:小数型和指数型(本课程未用到,不做研究)。

(4)字符型数据

        字符型数据包括字符型常量与字符型变量。

(5)指针型数据

        有时在程序中围绕变量的地址展开操作,这就引入“指针”的概念。变量的地址称为变量的指针,指针即是地址。

(6)位类型数据

        位类型数据是C51编译器的一种扩充数据类型,利用它可以定义一个位变量,但不能定义位指针,也不能定义位数组。该类型数据取值为“0”或“1”。

(7)空类型数据

        C语言经常使用函数,当函数被调用完之后,无需返回一个函数值,这个函数值称为空类型数据。

(8)变量赋值

        程序中常需要对一些变量预先赋值。C语言允许在定义变量的同时给变量赋值。

2.C51数据的储存类型

        C51是面向80C51系列单片机的程序设计语言,应用程序中使用的任何数据(变量和常数)必须以一定的存储类型定位于单片机相应的存储区域中。

·C51编译器支持的存储类型如图表3-4所示

3.80C51硬件结构的C51定义

        C51是适合于80C51单片机的C语言。它对标准C语言进行扩展,从而具有对80C51单片机硬件结构的良好支持与操作能力。
        特殊功能寄存器的定义
        80C51单片机内部RAM的80H~FFH区域有21个特殊功能寄存器,为了对它们能够直接访问,C51编译器利用扩充的关键字SFR和SFR16对这些特殊功能寄存器进行定义。

        SFR的定义方法:SFR特殊功能寄存器=地址常数

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com