Pic单片机C语言程序一实例6
发布时间:2008/6/3 0:00:00 访问次数:964
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
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
上一篇:家用单相功率调节器
上一篇:吸顶式荧光灯电路原理与检修