单片机c51语言,i++。i--,--i,++i的区别

供稿:hz-xin.com     日期:2025-01-13
1. i++ 是先使用 i 的值,然后 i 自增 1。
例如:
```c
int i = 1;
int a = 0, b = 0;
a = i++;
b = i;
```
在这个例子中,a 被赋值为 1,而 b 被赋值为 2。
2. ++i 是先将 i 自增 1,然后使用新的值。
例如:
```c
int i = 1;
int a = 0, b = 0;
a = ++i;
b = i;
```
在这个例子中,a 被赋值为 2,而 b 被赋值为 2。
3. --i 是先将 i 自减 1,然后使用新的值。
例如:
```c
int i = 3;
--i;
```
在这里,i 的值变为 2。
4. i-- 是先使用 i 的值,然后 i 自减 1。
例如:
```c
int i = 3;
i--;
```
在这里,i 的值变为 2。
总结:i++ 和 ++i 的主要区别在于 i 的值是在赋值前还是赋值后改变。同样,--i 和 i-- 也是在赋值前还是赋值后改变 i 的值。这些操作符在单片机 C51 语言中非常重要,因为它们会影响程序的逻辑和输出。

简单单片机C51语言延时程序
在实际开发中,实现延时功能的常见方法是使用循环结构,如以下示例所示:c void DELAY(void){ unsigned char i;for(i = 0; i < 1000; i++){ ; \/\/ 空操作,用于等待时间 } } 这段代码通过循环执行空操作,实现了一定时间的延时。循环次数可根据实际需求调整,以达到不同的延迟效果。为了在C51...

C51单片机中怎么写一个中断程序,可以用一个温度传感器来实现。当温...
while(i>0)i--;DS=1;i=4;while(i>0)i--;} bit tmpreadbit(void) \/\/read a bit 读一位 { uint i;bit dat;DS=0;i++; \/\/i++ for delay 小延时一下 DS=1;i++;i++;dat=DS;i=8;while(i>0)i--;return (dat);} uchar tmpread(void) \/\/read a byte date 读一个字节...

C语言单片机主要运用到那些
C语言,单片机主要运用到那些?在单片机的开发应用中,已逐渐开始引入高级语言,C语言就是其中的一种。对用惯了汇编的人来说,总觉得高级语言’可控性’不好,不如汇编那样随心所欲。但是只要我们掌握了一定的C语言知识,有些东西还是容易做出来的,以下是笔者实际工作中遇到的几个问题,希望对初学C51...

C51延时1秒问题
这是机器周期的问题,在12M晶振下,一条for循环大概8个机器周期,一个机器周期是1us,上式的延时时间就是1000*125*8us=1s.这只是大概的时间,实际上C语言的延时是不准确的,只有汇编的延时是准确的.

c51程序设计计算1-100的累加值,放到sum中。
include<iostream.h> int main(){ int i=0,sum=0;for(i=1; i<=100; i++) {\/\/从1到100依次累加,把累加和赋值给sum sum = sum+i;} cout<<sum;\/\/输出累加和 return 0;}

单片机C51编程(C语言):实现学号的显示(学号是10位数字)
wei=位选 duan=段选 \/\/断码表 uchar code shuzi[12]={0xc0,0xf9,0xa4,0xb0,0x99,\/\/0,1,2,3,4,0x92,0x82,0xf8,0x80,0x90,\/\/5,6,7,8,9,0x00,0xff};void led_scan(void){ uchar i,j;\/\/共阳数码管 wei=0xff;j=0x01;for(i=0;i<8;i++){ duan=shuzi[i];wei=!j...

51单片机C语言中delay函数是怎么定义和使用的?
定义一个延时xms毫秒的延时函数 void delay(unsigned int xms) \/\/ xms代表需要延时的毫秒数 { unsigned int x,y;for(x=xms;x》0;x--)for(y=110;y》0;y--);} 使用:void Delay10us(uchar Ms){ uchar data i;for(;Ms》0;Ms--)for(i=26;i》0;i--);} i=[(延时值...

单片机C51,三个内容。一个最小系统带一个流水灯。两个按键控制两个灯...
流水灯:#include<reg51.h>#include<intrins.h>void delay(uchar a){uchar i;while(a--)for(i=0;i<120;i++);}main(){P0=0xfe;while(1) { P0=_crol_(P0,1); delay(200); }}按键控制两个灯#include<reg51.h>sbit led1=P1^0;sbit led2=P1^1;void ext0() inter...

51单片机中怎么得到精确延时?
将汇编语言与C51结合起来,充分发挥各自的优势,无疑是单片机开发人员的最佳选择。2.3 使用示波器确定延时时间 利用示波器来测定延时程序执行时间。方法如下:编写一个实现延时的函数,在该函数的开始置某个I\/O口线如P1.0为高电平,在函数的最后清P1.0为低电平。在主程序中循环调用该延时函数,通过...

在单片机C51中如何将01111000转变成00011110?
你这个问题既可以看做右移2位得到,又可以看做镜像交换(左右倒置)得到。如果是前者一条语句就够,,\/\/old表示原数 old>>=2;如果是后者,镜像交换,\/下面old代表原数,new代表新数 old=原数 ;new=0;for(i=0;i<8;i++){ new<<=1;if((old&0x01)==0x01) new|=0x01;old>>=1;} ...