#include <reg51.h> #define SMG P0 //定义数码管段数据接口P0 typedef unsigned long ulong; //对数据类型进行声明定义 typedef unsigned int uint; typedef unsigned char uchar; sbit LSA=P2^2; //74hc138的A B C引脚定义 sbit LSB=P2^3; sbit LSC=P2^4; uchar buff[8]; //显示缓冲数组 uchar a[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴数码管 void delayms(uchar ms) { uchar i; while(ms--) for(i=0; i<123; i++); } void update(ulong val) //更新缓冲数组 { //分离各位数据 buff[0]=val/10000000%10; //12345678/10000000%10=1; buff[1]=val/1000000%10; //12345678/1000000%10=2; buff[2]=val/100000%10; //12345678/100000%10=3; buff[3]=val/10000%10; //12345678/10000%10=4; buff[4]=val/1000%10; //12345678/1000%10=5; buff[5]=val/100%10; //12345678/100%10=6; buff[6]=val/10%10; //12345678/10%10=7; buff[7]=val%10; //12345678%10=8; } void display(void) //显示函数 { uchar n; for(n=0; n<8; n++) { switch(n) //先位选 { case 0:LSC=0;LSB=0;LSA=0;break; case 1:LSC=0;LSB=0;LSA=1;break; case 2:LSC=0;LSB=1;LSA=0;break; case 3:LSC=0;LSB=1;LSA=1;break; case 4:LSC=1;LSB=0;LSA=0;break; case 5:LSC=1;LSB=0;LSA=1;break; case 6:LSC=1;LSB=1;LSA=0;break; case 7:LSC=1;LSB=1;LSA=1;break; } SMG=a[buff[n]]; //后发送段数据 delayms(1); //小延时,显示更稳定 } } void main(void) { ulong num=0; //要显示的数据 uchar t; //延时用 while(1) { update(num); //更新显示缓冲数组 for(t=0; t<50; t++) //用for循环来延时不然显示不正常 { display(); //显示缓冲数组 } num++; //显示数据自加 } }
时间: 2023-10-17 09:05:14 浏览: 422
要将该代码改为只显示最右边三位数码管,可以修改 update 函数如下:
```c
void update(ulong val)
{
buff[0] = val / 100 % 10; // 百位数
buff[1] = val / 10 % 10; // 十位数
buff[2] = val % 10; // 个位数
}
```
同时,修改 display 函数如下:
```c
void display(void)
{
uchar n;
for (n = 0; n < 3; n++) // 只显示最右边三个数码管
{
switch (n)
{
case 0: LSC = 0; LSB = 0; LSA = 0; break;
case 1: LSC = 0; LSB = 0; LSA = 1; break;
case 2: LSC = 0; LSB = 1; LSA = 0; break;
}
SMG = a[buff[n]];
delayms(1);
}
}
```
这样,程序就只会显示最右边三个数码管了。
相关问题
#include "stdafx.h" #define _WINSOCK_DEPRECATED_NO_WARNINGS #include <Winsock2.h> #include <stdio.h> #include <stdlib.h> #define DEFAULT_PORT 5050 //服务端默认端口 #pragma comment(lib, "wsock32.lib")什么意思
这段代码主要是实现了一个基于 Winsock2 库的服务端程序,其中:
- `#include "stdafx.h"` 是用来包含预编译头文件的指令。
- `#define _WINSOCK_DEPRECATED_NO_WARNINGS` 定义了一个宏,表示不使用已经过时的 Winsock API。
- `#include <Winsock2.h>` 是包含 Winsock2 库的头文件。
- `#include <stdio.h>` 和 `#include <stdlib.h>` 是标准 C 库头文件,用于输入/输出和内存管理等操作。
- `#define DEFAULT_PORT 5050` 定义了一个常量,表示服务端程序的默认端口号为 5050。
- `#pragma comment(lib, "wsock32.lib")` 是指定连接 Winsock 库时需要使用的库文件。
综上,这段代码主要是为了支持服务端程序通过 Winsock2 库实现网络通信,其中包含了 Winsock2 库的头文件和库文件,并定义了一些常量和宏来实现网络通信。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #define MAX_CONTACTS 100 #define PASSWORD "1234" 解释
这段代码包含了四个预处理指令(`#define`),以及四个头文件`<stdio.h>`, `<stdlib.h>`, `<string.h>`, 和 `<stdbool.h>`。其中:
1. `#define MAX_CONTACTS 100`: 宏定义了一个常量`MAX_CONTACTS`,它的值为100。这通常用于设置某个数据结构的最大容量,如数组或动态分配内存的上限。
2. `#define PASSWORD "1234"`: 宏定义了一个字符串常量`PASSWORD`,其值为"1234"。这可能是某个程序中用于验证用户密码的一个默认口令。
3. `#include <stdio.h>`: 引入了标准输入输出库,提供基本的I/O操作功能,如printf和scanf等。
4. `#include <stdlib.h>`: 引入了标准C库,包含内存管理函数,如malloc、calloc、realloc和free等。
5. `#include <string.h>`: 提供字符串处理函数,如strlen, strcpy, strcmp等。
6. `#include <stdbool.h>`: 引入布尔类型(bool)的支持,使得代码可以更清晰地表达条件判断。
这段代码可能会在处理用户输入、验证密码或者其他涉及字符串和内存管理的场景中发挥作用。
阅读全文
相关推荐
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![application/x-gzip](https://img-home.csdnimg.cn/images/20250102104920.png)
![application/x-dosexec](https://img-home.csdnimg.cn/images/20210720083343.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)