基于proteus的51单片机仿真实例二十一、C语言的自增和自减运算演示实例

时间:2024-04-08 20:16:16
1、自增和自减运算符是C语言中特有的一种运算符,他们的作用分别是对运算对象做加1和减1运算,其功能如下:
++  自增运算符,如:a++,++a;
-- 自减运算符,如:a--,--a。
从表面上看,a++和++a的作用都是使变量a的值加1,但由于运算符++所处的位置不同,使变量a执行加1的运算过程也不同,
++a的运算过程是:先使变量a执行a+1的操作,再使用a的值,
a++的运算过程是:先使用变量a的值,再执行a+1的操作。
 
自增和自减运算符只能用于变量,不能用于常数或者表达式。
 
本实例利用两个变量num1,num2,分别实现num1++,++num2的效果,num1++的运算结果通过p0口显示,++num2的运算结果通过p1显示。
2、在keil c51中新建工程ex10,编写如下程序代码,编译并生成ex10.hex文件。
void main(void)
{
  unsigned char num1,num2;  //定义两个无符号字符型变量
 num1 = 0;
 num2 = 0;
 
 P0 = 0xff;       //先使P0,P1口的LED熄灭
 P1 = 0xff;
 delay();
 delay();
 delay();
 delay();
 P0 = num1++;     //自增运算一次
 P1 = ++num2;
 delay();
 delay();
 delay();
 delay();
 P0 = num1++;    //自增运算一次
 P1 = ++num2;
 delay();
 delay();
 while(1)
 {
 }
}
 
3、在proteus中新建仿真文件ex10.dsn,电路原理图如下:
基于proteus的51单片机仿真实例二十一、C语言的自增和自减运算演示实例
 
4、启动仿真,观察运行结果。可以看到,开始的时候,P0口和P1口的led全部熄灭,然后P1.0的LED熄灭,接着P0.0的LED熄灭,下图是最后的显示结果。
根据程序运行结果,验证了a++和++a这两种运算的执行过程。
基于proteus的51单片机仿真实例二十一、C语言的自增和自减运算演示实例