第5章 C语言序的基本结构

第5章 C语言程序的基本结构

C语言程序是由若干个函数单元组成的,每个函数都是完成某个特殊任务的子程序段。组成一个程序的若干个函数可以保存在一个源程序文件中,也可以保存在几个源程序文件中,最后再将它们连接在一起。C语言程序的扩展名为“.c” ,如“test.c” 等。为了使初学者能彻底弄明白,我们通过实例进行引导,由浅入深。

5.1 用函数调用方式完成LED1~LED8这8个二极管实现D0、D2、D4、D6及D1、D3、D5、D7的交替点亮的实验,周期约1秒

5.1.1 源程序文件

在D盘建立一个文件目录(CS5-1),然后建立CS5-1.uv2的工程项目,最后建立源程序文件(CS5-1.c)。输入下面的程序:

#include //1

/*=====================2================*/

void delay(void)//3

{//4

unsigned int i,j;//5

for(i=0;i<500;i++)//6

{//7

for(j=0;j<121;j++)//8

{;}//9

}//10

}//11

//=====================12============

void light1(void)//13

{//14

P1=0xaa;//15

}//16

//=====================17============

void light2(void)//18

{//19

P1=0x55;//20

}//21

/*=====================22============*/

void main(void)//23

{//24

while(1)//25

{//26

light1();//27

delay();//28

light2();//29

delay();//30

}//31

}//32

编译通过后,试验板接通5V稳压电源,将生成的CS5-1.hex文件下载到51 MCU DEMO试验板上的单片机89S51中,注意,标示“LED”的双排针应插上8个短路块。我们看到D0~D7这8个二极管中的D0、D2、D4、D6及D1、D3、D5、D7的交替点亮,周期差不多为1S。图5-1为keil C51软件进行仿真时的界面。

图5-1 keil c51软件进行仿真时的界面

5.1.2 程序分析解释

序号1:包含头文件REG51.H。

序号2:程序分隔或注释,在“/*”及“*/”之间的内容,程序不会去处理,因此通常可进行文字注释,能增加程序的可读性,当然也可作为程序语句模块之间的分隔。

序号3:定义函数名为delay的延时子函数。

序号4:delay延时子函数开始。

序号5:定义两个无符号整形变量i,j。

序号6~10:两个for语句循环体,作用是延时,由于我们还未学习for语句,因此这里可暂不理会。

序号11:delay的延时子函数结束。

序号12:程序分隔或注释,在“//”之后的内容,程序也不会去处理,因此也可进行文字注释,能增加程序的可读性,当然也能作为程序模块之间的分隔。但应注意,这种风格的注释,只对本行有效,所以在只需要一行注释的时候,往往采用“//……”这种格式。而“/*……*/”风格的注释,既可用于一行,也可用于多行。

序号13:定义函数名为light1 的子函数,该子函数用于点亮D0、D2、D4、D6四个LED。

序号14:light1 子函数开始。

序号15:向P1口送数0xaa(0xaa为16进制数,相当于汇编语言中的AAH,前缀加0x为C51的风格),这条语句的目的是点亮D0、D2、D4、D6四个LED。

序号16:light1 子函数结束。

序号17:程序分隔。

序号18:定义函数名为light2 的子函数,该子函数用于点亮D1、D3、D5、D7四个LED。

序号19:light2子函数开始。

序号20:向P1口送数0x55,目的是点亮D1、D3、D5、D7四个LED。

序号21:light2子函数结束。

序号22:程序分隔。

序号23:定义函数名为main的主函数。

序号24:main的主函数开始。

序号25:while循环语句,这里进行无限循环。

序号26:while循环语句开始。

序号27:调用light1子函数模块。

序号28:调用延时子函数模块。

序号29:调用light2子函数模块。

序号3

c语言cythe头文件,第5章 C语言序的基本结构.doc相关推荐

  1. c语言寄存器头文件共用重复定义,C语言头文件的使用

    让我们的思绪乘着时间机器回到大学一年级.C原来老师正在讲台上讲着我们的第一个C语言程序: Hello world! 文件名 First.c main() { printf("Hello wo ...

  2. 两种语言的html文件,2. 第二章 HTML语言(一)(33页)-原创力文档

    ;;;2.1 HTML基本语法2.2 HTML文档基本结构2.3 HTML文档头部相关标签2.4 段落与文本格式化2.5 列表2.6 超链接 ;2.1 HTML基本语法HTML是一种标签式语言,通过使 ...

  3. c语言二叉树的头文件叫什么,西安交大朱站立数据结构——使用C语言》头文件系列——二叉树.doc...

    西安交大朱站立数据结构--使用C语言>头文件系列--二叉树 本文为二叉链存储结构的二叉树操作实现,实现了二叉树的定义.插入数据.删除数据.撤销以及二叉树的打印.前序遍历.中序遍历.后序遍历等.本 ...

  4. C语言中头文件怎么写?(本文来源网络,由黑乌鸦进一步完善)

    c语言头文件怎么写?我一直有这样的疑问,但是也一直没去问问到底咋回事:所以今天一定要把它弄明白! 其实学会写头文件之后可以为我们省去不少事情,可以避免书写大量的重复代码.有利于整理思路.使代码脉络更加 ...

  5. c语言程序头文件作用,C语言头文件

    C语言头文件教程 C 语言的头文件一般都是 .h 做为结尾的. C语言头文件详解 语法 #include 参数 参数 描述 filename 我们需要引入的头文件的名称. 说明 C 语言的头文件一般都 ...

  6. 【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 头文件定义 | 头文件导入限制 | 兼容 C++ 语言 | 函数形参输入输出属性注释)

    文章目录 一.头文件定义 1.头文件导入限制 2.兼容 C++ 语言 3.函数形参输入输出属性 4.代码示例 一.头文件定义 1.头文件导入限制 头文件导入限制 : 防止头文件多次导入 , 将头文件的 ...

  7. C语言的头文件和库文件(函数库)

    C语言的头文件和库文件(函数库) 分类: Unix环境高级编程 2011-04-17 14:37 2576人阅读 评论(1) 收藏 举报 语言cgcclinuxunix 在C语言中,头文件提供对常量的 ...

  8. c语言的所有头文件,C语言所有头文件.doc

    C语言所有头文件 C语言所有头文件 stdlib.h包含了很多标准函数和标准宏定义,比如NULL, EXIT_SUCCESS等. ctype.h包含了很多类型定义 string.h包含了字符串操作相关 ...

  9. 在c语言中怎么返回引用参数,C语言函数 函数的声明 C语言的头文件 #include的用法 形参和实参 函数的返回值 - 猫扑天空...

    C语言函数 一.是什么? 是指编程中对一块功能代码的封装,可以理解一个程序片段 二.有什么用? 可以封装代码,方便调用,提高复用性 三.怎么用? 定义:  返回值类型  函数名(形参类型 参数名1-. ...

最新文章

  1. java token认证机制,OAuth认证协议原理分析及使用方法
  2. python高级开发面试题_python面试的100题(16)
  3. 算法-----前 k 个出现次数最多的单词
  4. valgrind 看内存泄漏
  5. 线程:volatile关键字
  6. BigDecimal相除异常
  7. Vue.js 事件处理
  8. Python第三、四种数据类型——List(列表) and Tuple(元组)
  9. ai如何旋转画布_「AI教程」使用AI制作3D立体文字效果
  10. qt调用html里面的函数吗,QT和JS的互相调用例子
  11. CentOS7.4 搭建ngrok 内网穿透
  12. 不是python文件处理seek()方法的参数是_python文件操作seek()偏移量,读取指正到指定位置操作...
  13. java面试中jvm执行子系统详细分析(三)
  14. 前端学习(1317):静态资源2
  15. 转载——开阔自己的视野,勇敢的接触新知识
  16. 关于音频PCM数据2字节(16位)byte与64位double之间的转换
  17. c语言调用Windows自定义消息,VC自定义消息postmessage用法(消息响应函数)
  18. Markdown:继续编号列表
  19. ❤️Mybatis开发中什么是多对一处理、一对多处理?
  20. DVWA中学习PHP常见漏洞及修复方法

热门文章

  1. tensorflow学习笔记(四十五):sess.run(tf.global_variables_initializer()) 做了什么?
  2. LeetCode简单题之单值二叉树
  3. 使用Jittor实现Conditional GAN
  4. 在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据
  5. 如何估算各种物体的重心
  6. Django 验证码4.4
  7. 浅谈MySQL中utf8和utf8mb4的区别
  8. error:CLEARTEXT communication to api.help.bj.cn not permitted by network security policy
  9. Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(andro
  10. TableLayout 表格布局,FrameLaout 帧布局 ,AbsoluteLayout绝对布局的分析