51单片机湿度系统,用共阴数码管显示
时间: 2023-03-02 07:24:54 浏览: 84
51单片机湿度系统可以通过连接传感器检测湿度,然后将检测到的数值通过51单片机进行处理并控制共阴数码管进行显示。共阴数码管可以根据不同的电平输入来显示不同的数字或字母,通过控制不同的输入信号,可以在共阴数码管上显示湿度值。需要注意的是,在编写程序时要考虑到数码管的共阴极需要连接到51单片机的输出引脚,同时也需要考虑到输入输出的电平匹配问题。
相关问题
51单片机篮球计分器共阴数码管
51单片机篮球计分器的共阴数码管可以使用以下代码进行控制:
```
#include <reg52.h>
unsigned char code LedChar[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; //共阴数码管编码表
void main()
{
unsigned char score = 0; //得分变量,初始化为0
unsigned char display = 0; //数码管显示变量,初始化为0
while(1)
{
if(P1_0 == 0) //检测按键1是否按下
{
score++; //得分加1
display = LedChar[score % 10]; //对得分取模,获取个位数码管的编码
P2 = display; //将编码输出到数码管
while(P1_0 == 0); //等待按键1松开
}
if(P1_1 == 0) //检测按键2是否按下
{
score--; //得分减1
display = LedChar[score % 10]; //对得分取模,获取个位数码管的编码
P2 = display; //将编码输出到数码管
while(P1_1 == 0); //等待按键2松开
}
}
}
```
在上述代码中,我们使用了一个数组 `LedChar` 来存储共阴数码管的编码表,其中每一个元素对应一个数字的编码,例如 `0xC0` 对应数字0的编码。在主函数中,我们使用两个按键来分别对得分进行加减,每次修改得分后,我们使用取模运算获取得分的个位数,并从 `LedChar` 数组中获取对应的编码,最后将编码输出到数码管中显示。
c51单片机实现两个共阴数码管动态显示0~99程序
以下是基于C语言的c51单片机实现两个共阴数码管动态显示0~99的程序:
```c
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[] = { // 共阴数码管数字编码表
0x3f, // 0
0x06, // 1
0x5b, // 2
0x4f, // 3
0x66, // 4
0x6d, // 5
0x7d, // 6
0x07, // 7
0x7f, // 8
0x6f // 9
};
void delay(uint z) { // 延时函数
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main() {
uchar cnt = 0; // 计数器
while(1) {
P0 = table[cnt / 10]; // 显示十位
P2 = 0xfe; // 打开十位数码管
delay(500); // 延时一段时间
P2 = 0xff; // 关闭数码管
P0 = table[cnt % 10]; // 显示个位
P2 = 0xfd; // 打开个位数码管
delay(500); // 延时一段时间
P2 = 0xff; // 关闭数码管
cnt++; // 计数器加1
if(cnt > 99) cnt = 0; // 计数器归零
}
}
```
该程序中使用了一个计数器来控制数码管的显示。首先在循环中将计数器的值分别除以10和取模,得到十位和个位数字,并通过共阴数码管数字编码表将数字转换为对应的编码。然后依次打开十位数码管和个位数码管,显示数字,并延时一段时间后关闭数码管。最后计数器加1,如果计数器的值大于99,则将计数器归零重新开始循环。