欢迎来到天天文库
浏览记录
ID:33622966
大小:257.50 KB
页数:6页
时间:2019-02-27
《pic单片机c语言程序设计(15)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、删川一燃羞万方数据PIC单片机c语言程序设计(15)本文是讲座《单片机C语言程序设计》的结束篇,为了帮助大家更好地掌握前面所学的知识,我们将归纳性地介绍初学者用C语言编辑PIC单片机实用程序时应具备的思维方法和基本知识,并通过下面的实例进行一次小结,以期对大家今后深入学习PIC单片机C语言程序设计有所帮助。十六、PIC单片机C语言程序的组成7一个完整的PIC单片机C语言源程序应包括:包含头文件、变量定义、常量说明、函数定义、主函数main()、若干个其他功能函数、各种功能C语句,以及已定义的函数和函数体、注释等部分组成。说明:对PIC单片机中级或中级以下的产
2、品.其头文件是#include和撑incIude:对高级产品,如PICl8F452器件,其头文件是撑incIude和#include。C程序的运行,总是从主函数main()开始(可以通过模拟仿真直接观察到),由主函数调用其他函数.其他函数也可互相调用,如此运行工作。而C语句,又可按其执行方式的不同而分为顺序结构、选择结构和循环结构等。这里的顺序结构.是指程序按语句的顺序逐条执行;选择结构,是指程序根据相关条件选择的执行顺序:循环结构,是指程序根据某条件的存在执行一段程序,直到条
3、件消失为止,若该条件永远存在,就形成无限循环。1.延时函数的三种表达式用汇编语言编辑二个较大的PIC单片机程序时.一般分为多个程序模块,每个模块的子程序实现一个特定的功能。而用C语言编辑该程序时。模块的功能是用函数实现的,即函数相当于汇编语言的子程序。下面我们以延时函数应用的实例,来说明PIC单片机C语言程序的基本组成格式。延时函数是PIC单片机源程序中出现频率较高的函数。而且具有相同功能的延时函数也有多种形式,我们选择常用的三种延时函数进行讨论。所引用的三种延时函数都是由循环控制语句——while、do—while和for等实现的。(1)带形式参数的由fo
4、r语句组成的延时函数voiddeIay(unsignedintk){unsignedinti.j:fir(i=O;i<=81:i++)fir(j=O:j<=k:j;+)continue;·}该延时函数由两个for语句组成,第一个for语句中的81是笔者设置的常数(可任意设定),用于使延时值增加:第二个for语句中的k是在程序中主函数main()调用delay(k)时,由用户给定的值,k值不同,延时时间就不等.所以该延时函数可在一个C程序中实现不同的多个延时量,显然比汇编语言延时子程序简单多了。在延时量要求较短时.该延时函数种的两个for语句的功能可用一个fo
5、r语句来实现。(2)带形式参数的由while循环语句组成的延时函数VoiddeIey(unsignedlongintk){Unsignedlongintd=k:电孑簧佑47鬣雠熟——————二——一Ⅲ¨二万方数据W{;}l此延时函数简单、容易记忆。使用时,在程序中主函数main()调用delay(k)时,由用户给定不同的k值,亦可实现多种延时值。(3)带形式参数的由do—while语句组成的延时函数Voiddefay(unsignedlongintk){Unsignedintlongj-o:dOfj++:}While(j<=k):j=o:}该延时函数简单易记
6、。使用时,在程序中主函数main()调用delay(k)时,由用户给定不同的k值,即可实现多种延时值。需要说明的是。上述由while循环语句和由do—while语句组成的延时函数中的形式参数,不一定用长整型(10nginko2.电路功能相同形式不同的四种C程序下面介绍利用PICl6F84A单片机的PORTB端口外接的8只LED,采用四种C程序控制端口的LED灯。来说明编辑C语言程序时的基本格式及其灵活性。电路参见《电子制作》2009年9期《单片机C语言程序设计(1)》一文中的图1,程序流程如图64所示。采用的是无限循环工作方式。?PORTB口的LEDl、3、
7、5、7亮1秒上PORTB口的LED2、4、6、8亮2秒IPORTBa的LED全亮3秒图64(1)C程序一。文件名为pic09.c。清单如下:482010VOL.12#include//头文件.voiddeIay(unsIgnedlongintK)/,延时函数开始{unsignedintlongj_O:,,说明语句do//由do—while组成的延时执行语句{j++:Jwhile(j<=K);j_O:}main(),,主函数开始{TRISB=0x00;/,设置PORTB口全为输出INTCON=0x00;//关闭所有中断PORTB=0x00;//R
8、B口先送低电平while(1)//永久循环开始{PO
此文档下载收益归作者所有