【嵌入式原理设计】实验三:带报警功能的数字电压表设计
目录
一、实验目的
二、实验环境
三、实验内容
四、实验记录及处理
五、实验小结
六、成果文件提取链接
一、实验目的
熟悉和掌握A/D转换及4位数码管、摇杆、蜂鸣器的联合工作方式
二、实验环境
Win10+ESP32实验开发板
三、实验内容
1、用摇杆传感器改变接口电压;
2、在4位数码管上显示变化的电压,数值显示要求保留3位小数;
3、当电压值小于2V,有报警提示。
四、实验记录及处理
- 器件连接
带报警功能的数字电压表设计:
设备名称 | 设备管脚 | ESP32管脚 |
四位数码管 | SCLK=16; RCLK=4; DIO=0; | SCLK=16; RCLK=4; DIO=0; |
摇杆 | #define RSx 25 | #define RSx 25 |
LED小灯 | #define LEDD 27 | #define LEDD 27 |
- 实物连接图(拍照,控制图片大小,能看清即可)及程序运行结果描述
实物连接好的图片如下:
操作摇杆,端口数据输出显示器与数码管上显示的电压数值一致,
数码管上的数字会随摇杆x轴的移动而变化:x值增大,电压值也会相应增大;x值减小,电压值也会相应减小
其中当数码管上电压值小于2V时,有报警提示,连接的小灯会亮起。
3、程序控制代码
//部分代码如下,完整代码请查看附件
void LED4_Display(void){unsigned char *led_table;unsigned char i;//第一位led_table=LED_0F1+LED[0];i=*led_table;LED_OUT(i);LED_OUT(0x08);digitalWrite(RCLK,LOW);digitalWrite(RCLK,HIGH);delay(5);//第二位led_table=LED_0F+LED[1];i=*led_table;LED_OUT(i);LED_OUT(0x04);digitalWrite(RCLK,LOW);digitalWrite(RCLK,HIGH);delay(5);//第三位led_table=LED_0F+LED[2];i=*led_table;LED_OUT(i);LED_OUT(0x02);digitalWrite(RCLK,LOW);digitalWrite(RCLK,HIGH);delay(5);//第四位led_table=LED_0F+LED[3];i=*led_table;LED_OUT(i);LED_OUT(0x01);digitalWrite(RCLK,LOW);digitalWrite(RCLK,HIGH);delay(5);}void LED_OUT(unsigned char X) {unsigned char i;for (i = 8; i >= 1; i--) {if (X & 0x80) { // 取出最高位digitalWrite(DIO, HIGH);} else {digitalWrite(DIO, LOW);}X <<= 1; // 左移一位,让次高位来到最高位digitalWrite(SCLK, LOW); // SCK是上升沿的时候要把数据写入digitalWrite(SCLK, HIGH);}
}
五、实验小结
掌握了四位数码管的连接方式,学会了如何通过编程控制数码管显示数字,并实现了保留三位小数的电压值显示。定义一个带小数点的数字字模数组,第一位需要小数表示,显示第1位数+小数点led_table = LED_0F1 + LED[0]
六、成果文件提取链接
链接:https://pan.baidu.com/s/1MyEzwT20xN4kDZvbtYzbZg?pwd=n01n
提取码:n01n