位置:51电子网 » 技术资料 » 测试测量

Pic单片机C语言程序一实例6

发布时间:2008/6/3 0:00:00 访问次数:964

十一、c语言语句

1.赋值语句和赋值表达

1)赋值语句赋值语句是c语言中最常用的一种语句,如公式中的计算,一般都是通过赋值语句完成的,赋值语句的格式为:

标识符二表达式;

等式左边的标识符,代表变量的标识符,该变量是除函数以外的一种变量。等式右边的表达式,可以是任何一种c表达式。赋值语句的执行过程算法规则是,首先计算等式右边的表达式,再将计算的结果(值)作为变量的值,赋给等式左边的标识符(变量)。

赋值表达式的使用频率很高,在pic单片机c语言实例1-5中,赋值语句曾多次出现,如trisb =ox00;intcon=0x00;trisa=ox 1 f;rbo=! rbo:

注意:这里的‘,=”号,在c语言中不是等号,而是代表将等式右边的计算值,赋给等式左边的变量,如rbo=! rbo,即先对rbo取反(值),再送给等式左边的rbo。这点初学c语言者很容易弄错!c语言中的等号应该是“二二”。

2)赋值表达式赋值表达式是c语言中一种特殊形式的赋值,它不能独立构成语句,只能在赋值语句的表达式中应用。赋值表达式的格式为:

变量二表达式

其执行过程与赋值语句相同。例如,赋值语句:m=a+(b=c+d)中的赋值表达式b=c+d属于赋值语句的中间结果(b),中间结果(b)会在该程序中该语句之后使用,从而省去相同的计算,还可以节省程序空间和运行时间。

2.循环语句

循环语句是c语句重复结构的组成部分。c语言循环语句有三种形式:while语句、do-while语句和for语句。循环语句按循环条件控制循环次数,但可在循环体中用break(间断语句)或return(返回语句)来终止循环,还可用continue继续语句)终止当前循环周期中的操作,使控制进人下一循环,继续执行。

1)while语句while语句的格式为:

while(条件表达式)语句1

可以看出,while循环结构简单,仅有条件部分,其他成分(如增量等)应另外安排。正因为如此.while语句执行过程是首先判断while中的“条件表达式’,中的条件是否满足,满足,就执行while语句中的语句;不满足,就退出循环。当while中的条件一开始就为0时,则语句一次也不执行;当while中的条件为1 }}' , while语句无限循环。可见while语句的使用极其灵活多样。

2) do -while语句do -while语句的格式为:do

语句

while(条件表达式犷1

语句;

其执行过程是不管while语句中的条件表达式,首先执行一次d。中的语句,而后再进行while中的条件判断,若满足条件,则返回重新执行do中的语句,直到while中表达式不满足条件或0时,才退出循环。

注意:即使while中的表达式一开始就为‘,0”,其do中的语句也要执行一次。

3)for语句for循环语句包括计数器初始化、条件及增量等,其格式为:

for(初始化表达式,条件表达式,士曾量表达式)

语句;

其执行过程是,先求解初始化表达式,再判断条件表达式,若满足条件要求,则执行for中的语句,然后求解增量表达式,之后又判断条件表达式,若不能满足条件,则执行for语句下面的语句。

3if语句

if晤句又称条件语句。在程序设计时,若需根据某些条件,来决定程序的流向,常用ifla句完成。所以,if语句又称转移语句。i石吾句有三种格式,限于版面,这里仅介绍程序实例6中要用到的一种格式:

if(条件表达式)

语句

例如:if(a>b)

c=d//如条件中a>b,则d赋值给

ifla句中的表达式,可以是关系

表达式,算术表达式等多种,其执行过程是先判断if中的条件,若满足该条件,就执行if中的语句,若条件不满足,则转移到if语句的下一条语句。

十二、实例6

这里用pic16f84a单片机(其他一型号同样等效)编辑一种c程序,其硬件电路如图7所示。电路功能:在单片机的b口外接两位led数码管、在ra4位外接微动开关k,作电路启动信号。按动一下k,led数码管开始从00-99自动计数,且反复循环,从而实现led数码管计数的动态扫描功能。这里仅取两位计数显尔。读者很容易将程序扩展到多位数。为此命名该c程序为pic06.c,其清单如下,#include <pic.h>//包含文件

#define portait (add,bit) ((unsigned)(&add)*8+(bit))

static bit port-2 @portait(porta,2);

static bit port_3 @portait(porta,3);

static bit port_4 @portait(porta,4);

//ra2、ra3、ra4的定义unsigned int ttr-0;

//ttr为无符号整型变量,并赋值。void delay(unsigned long int k)//定义带形参数k的延时子函数//延时函数开始

unsigned long int i;//i为无符号长整型变量

for(i=o;i<=k;i++)// for语句标准格式continue;

void displa

十一、c语言语句

1.赋值语句和赋值表达

1)赋值语句赋值语句是c语言中最常用的一种语句,如公式中的计算,一般都是通过赋值语句完成的,赋值语句的格式为:

标识符二表达式;

等式左边的标识符,代表变量的标识符,该变量是除函数以外的一种变量。等式右边的表达式,可以是任何一种c表达式。赋值语句的执行过程算法规则是,首先计算等式右边的表达式,再将计算的结果(值)作为变量的值,赋给等式左边的标识符(变量)。

赋值表达式的使用频率很高,在pic单片机c语言实例1-5中,赋值语句曾多次出现,如trisb =ox00;intcon=0x00;trisa=ox 1 f;rbo=! rbo:

注意:这里的‘,=”号,在c语言中不是等号,而是代表将等式右边的计算值,赋给等式左边的变量,如rbo=! rbo,即先对rbo取反(值),再送给等式左边的rbo。这点初学c语言者很容易弄错!c语言中的等号应该是“二二”。

2)赋值表达式赋值表达式是c语言中一种特殊形式的赋值,它不能独立构成语句,只能在赋值语句的表达式中应用。赋值表达式的格式为:

变量二表达式

其执行过程与赋值语句相同。例如,赋值语句:m=a+(b=c+d)中的赋值表达式b=c+d属于赋值语句的中间结果(b),中间结果(b)会在该程序中该语句之后使用,从而省去相同的计算,还可以节省程序空间和运行时间。

2.循环语句

循环语句是c语句重复结构的组成部分。c语言循环语句有三种形式:while语句、do-while语句和for语句。循环语句按循环条件控制循环次数,但可在循环体中用break(间断语句)或return(返回语句)来终止循环,还可用continue继续语句)终止当前循环周期中的操作,使控制进人下一循环,继续执行。

1)while语句while语句的格式为:

while(条件表达式)语句1

可以看出,while循环结构简单,仅有条件部分,其他成分(如增量等)应另外安排。正因为如此.while语句执行过程是首先判断while中的“条件表达式’,中的条件是否满足,满足,就执行while语句中的语句;不满足,就退出循环。当while中的条件一开始就为0时,则语句一次也不执行;当while中的条件为1 }}' , while语句无限循环。可见while语句的使用极其灵活多样。

2) do -while语句do -while语句的格式为:do

语句

while(条件表达式犷1

语句;

其执行过程是不管while语句中的条件表达式,首先执行一次d。中的语句,而后再进行while中的条件判断,若满足条件,则返回重新执行do中的语句,直到while中表达式不满足条件或0时,才退出循环。

注意:即使while中的表达式一开始就为‘,0”,其do中的语句也要执行一次。

3)for语句for循环语句包括计数器初始化、条件及增量等,其格式为:

for(初始化表达式,条件表达式,士曾量表达式)

语句;

其执行过程是,先求解初始化表达式,再判断条件表达式,若满足条件要求,则执行for中的语句,然后求解增量表达式,之后又判断条件表达式,若不能满足条件,则执行for语句下面的语句。

3if语句

if晤句又称条件语句。在程序设计时,若需根据某些条件,来决定程序的流向,常用ifla句完成。所以,if语句又称转移语句。i石吾句有三种格式,限于版面,这里仅介绍程序实例6中要用到的一种格式:

if(条件表达式)

语句

例如:if(a>b)

c=d//如条件中a>b,则d赋值给

ifla句中的表达式,可以是关系

表达式,算术表达式等多种,其执行过程是先判断if中的条件,若满足该条件,就执行if中的语句,若条件不满足,则转移到if语句的下一条语句。

十二、实例6

这里用pic16f84a单片机(其他一型号同样等效)编辑一种c程序,其硬件电路如图7所示。电路功能:在单片机的b口外接两位led数码管、在ra4位外接微动开关k,作电路启动信号。按动一下k,led数码管开始从00-99自动计数,且反复循环,从而实现led数码管计数的动态扫描功能。这里仅取两位计数显尔。读者很容易将程序扩展到多位数。为此命名该c程序为pic06.c,其清单如下,#include <pic.h>//包含文件

#define portait (add,bit) ((unsigned)(&add)*8+(bit))

static bit port-2 @portait(porta,2);

static bit port_3 @portait(porta,3);

static bit port_4 @portait(porta,4);

//ra2、ra3、ra4的定义unsigned int ttr-0;

//ttr为无符号整型变量,并赋值。void delay(unsigned long int k)//定义带形参数k的延时子函数//延时函数开始

unsigned long int i;//i为无符号长整型变量

for(i=o;i<=k;i++)// for语句标准格式continue;

void displa

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!