如何用c语言给p1口赋初值,第14讲单片机C语言基础.ppt

第14讲单片机C语言基础

并行I/O口电路结构 P0口的结构 P0口的结构 P0口的结构 P1口的结构 P1口的结构 P2口的结构 P2口的结构 P3口的结构 P3口的结构 3.2 认识C语言 本节涉及C语言的特点、C语言程序的基本结构,包括函数构成和基本语法等知识。 3.2.1 第一个C语言程序 我们一起来认识一下任务2中的C51程序任务2.c,源程序如下: 3.2.1 第一个C语言程序 上述程序中,第1行:对程序进行简要说明,包括程序名称和功能。方便程序的编写、调试及维护工作,提高程序的可读性。程序在编译时,不对这些注释内容做任何处理。 提示:C51的另—种注释符号是“/* */”。在程序中可以使用这种成对注释符进行多行注释。 3.2.1 第一个C语言程序 第2行:#include 是文件包含语句,表示把语句中指定文件的全部内容复制到此处,与当前的源程序文件链接成一个源文件。该语句中指定的文件reg51.h是Keil C51编译器提供的头文件,保存在文件夹“keil\C5l\inc”下,该文件包含了对MCS-51系列单片机特殊功能寄存器SFR和位名称的定义。 3.2.1 第一个C语言程序 例如:sfr P1=0x90; 该语句定义了符号P1与MCS-51单片机内部P1口的地址0x90对应。 任务3.c中包含头文件reg51.h的目的,是为了通知C51编译器,程序中所用的符号P1是指MCS-51单片机的Pl口。 3.2.1 第一个C语言程序 在C51程序设计中,我们可以把reg51.h头文件包含在自己的程序中,直接使用已定义的SFR名称和位名称。例如符号P1表示并行口P1;也可以直接在程序中自行利用关键字sfr和sbit来定义这些特殊功能寄存器和特殊位名称。 3.2.1 第一个C语言程序 如果需要使用reg51.h文件中没有定义的SFR或位名称,可以自行在该文件中添加定义,也可以在源程序中定义,例如,我们在任务1.c中自行定义了下面的位各称。 sbit P1_0=P1^0; 3.2.1 第一个C语言程序 第3行:延时函数声明,在C语言中,函数遵循先声明、后调用的原则。如果源程序中包括很多函数,通常在主函数的前面集中声明,然后再在主函数后面一一进行定义,这样编写的C语言源代码可读性好,条理清晰,易于理解。 3.2.1 第一个C语言程序 第4~12行:定义主函数main()。main函数是C语言中必不可少的主函数,也是程序开始执行的函数。 第13~18行:定义函数delay()。delay函数的功能是延时,用于控制发光二极管的闪烁速度。 3.2.1 第一个C语言程序 重要提示: 1.发光二极管闪烁过程实际上就是发光二极管交替亮、灭的过程,单片机运行一条指令的时间只有几微秒,时间太短,眼睛无法分辨,看不到闪烁的效果。因此,用单片机控制发光二极管闪烁时,需要增加一定的延时时间。 3.2.1 第一个C语言程序 2.延时函数在很多程序设计中都会用到,这里的延时函数delay使用了双重循环,外循环的次数由形式参数i提供,总的循环次数是255*i,循环体是空操作。 3.2.2 C语言的基本结构 C语言程序以函数形式组织程序结构,C程序中的函数与其他语言中所描述的“子程序”或“过程”的概念是一样的。C程序的结构如下所示。 3.2.2 C语言的基本结构 一个C语言源程序是由一个或若下个函教组成的,每一个函数完成相对独立的功能。每个C程序都必须有(且仅有)一个主函敦main(),程序的执行总是从主函数开始,再调用其他函数后返回主函数main(),不管函数的排列顺序如何,最后在主函数中结束整个程序。 一个函数由两部分组成:函数定义和函数体。 3.2.2 C语言的基本结构 函数定义部分包括函数名、函数类型、函数属性、函数参数(形式参数)名、参数类型等。对于main()函数来说.main是函数名,函数名前面的void说明函致的类型(空类型,表示没有返回值),函数名后必须跟一对圈括号,里面是函数的形式参数定义,这里main()没有形式参数。 main()函数后一对大括号内的部分称为函数体。它由定义数据类型的说明部分和实现函数功能的执行部分组成。 3.2.2 C语言的基本结构 3.2.2 C语言的基本结构 对于如下任务1.c源程序中的延时函数delay(),第14行是函数定义部分: void delay(unsigned char i) 定义该函数名称为delay,函数类型为void,形式参数为无符号字符型变量i。 第14~19行是delay函数的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值