void display() { P1=SMG[Disbuf[2]]; s4=0; delayms(); s4=1; P1=SMG[Disbuf[1]]; s3=0; delayms(); s3=1; if(Disbuf[0]==0) { Disbuf[0]=10; P1=SMG[Disbuf[0]]; } else P1=SMG[Disbuf[0]]; s2=0; delayms(); s2=1; P1=0xff; s1=0; delayms(); s1=1; } 每一条功能解释
时间: 2024-04-27 08:21:54 浏览: 53
SMG.rar_4 3 2 1_SMg数码管_smg2数码管
这段代码是用来控制数码管显示的,以下是每个部分的功能解释:
1. `void display()`: 这是一个函数,用于控制数码管的显示。
2. `P1=SMG[Disbuf[2]];`: 将Disbuf[2]中存储的数字对应的数码管编码通过P1端口输出,使之在第三个数码管上显示。
3. `s4=0;`: 选择第四个数码管,使其处于工作状态。
4. `delayms();`: 延时一段时间,以便让数码管显示出来。
5. `s4=1;`: 关闭第四个数码管的工作状态。
6. `P1=SMG[Disbuf[1]];`: 将Disbuf[1]中存储的数字对应的数码管编码通过P1端口输出,使之在第二个数码管上显示。
7. `s3=0;`: 选择第三个数码管,使其处于工作状态。
8. `delayms();`: 延时一段时间,以便让数码管显示出来。
9. `s3=1;`: 关闭第三个数码管的工作状态。
10. `if(Disbuf[0]==0)`: 判断Disbuf[0]是否为0。
11. `Disbuf[0]=10; P1=SMG[Disbuf[0]];`: 如果Disbuf[0]为0,则将其设置为10,以便在第一个数码管上显示A。
12. `else P1=SMG[Disbuf[0]];`: 如果Disbuf[0]不为0,则将其对应的数码管编码通过P1端口输出,使之在第一个数码管上显示。
13. `s2=0;`: 选择第二个数码管,使其处于工作状态。
14. `delayms();`: 延时一段时间,以便让数码管显示出来。
15. `s2=1;`: 关闭第二个数码管的工作状态。
16. `P1=0xff;`: 关闭所有数码管的显示。
17. `s1=0;`: 选择第一个数码管,使其处于工作状态。
18. `delayms();`: 延时一段时间,以便让数码管显示出来。
19. `s1=1;`: 关闭第一个数码管的工作状态。
阅读全文