数码管显示温控电机温度,温度在-20到70度电机不运行,用3位共阳数码管,p0段选,p2.0到p2.2,p1.3为0启动,1停止,温度传感器接p3.6
时间: 2024-06-14 17:06:15 浏览: 113
基于stc89c52读取hdc1080温湿度传感器,用74hc595.启动数码管显示,希望对你有参考价值 .rar
5星 · 资源好评率100%
根据提供的引用内容,可以使用单片机控制数码管显示温控电机的温度。以下是一个示例代码:
```python
#include <reg52.h>
sbit P0 = P0^0; // 段选
sbit P2_0 = P2^0; // 数码管第一位
sbit P2_1 = P2^1; // 数码管第二位
sbit P2_2 = P2^2; // 数码管第三位
sbit P1_3 = P1^3; // 启动/停止按钮
sbit P3_6 = P3^6; // 温度传感器
void delay(unsigned int t) {
unsigned int i, j;
for(i = 0; i < t; i++) {
for(j = 0; j < 125; j++);
}
}
void display(int temperature) {
int digit[3];
digit[0] = temperature / 100; // 百位数
digit[1] = (temperature / 10) % 10; // 十位数
digit[2] = temperature % 10; // 个位数
P0 = 0xFF; // 关闭所有段选
P2_0 = 0; // 打开第一位数码管
P2_1 = 1; // 关闭第二位数码管
P2_2 = 1; // 关闭第三位数码管
P0 = ~(0x01 << digit[0]); // 显示百位数
delay(5);
P0 = 0xFF; // 关闭所有段选
P2_0 = 1; // 关闭第一位数码管
P2_1 = 0; // 打开第二位数码管
P2_2 = 1; // 关闭第三位数码管
P0 = ~(0x01 << digit[1]); // 显示十位数
delay(5);
P0 = 0xFF; // 关闭所有段选
P2_0 = 1; // 关闭第一位数码管
P2_1 = 1; // 关闭第二位数码管
P2_2 = 0; // 打开第三位数码管
P0 = ~(0x01 << digit[2]); // 显示个位数
delay(5);
}
void main() {
int temperature = 0;
while(1) {
if(P3_6 == 1) { // 温度传感器检测到温度
temperature++; // 温度加1
if(temperature > 70) { // 温度超过70度
temperature = -20; // 重置温度为-20度
}
}
if(P1_3 == 0) { // 启动按钮按下
display(temperature); // 显示温度
}
}
}
```
请注意,上述代码是基于8051单片机的C语言代码示例。根据你的具体硬件和单片机型号,代码可能需要进行适当的修改。
阅读全文