目录

一、实验目的 

二、实验环境

三、实验内容

四、实验记录及处理

五、实验小结

六、成果文件提取链接


一、实验目的 

        熟悉和掌握A/D转换及4位数码管、摇杆、蜂鸣器的联合工作方式

二、实验环境

        Win10+ESP32实验开发板

三、实验内容

        1、用摇杆传感器改变接口电压;

        2、在4位数码管上显示变化的电压,数值显示要求保留3位小数;

        3、当电压值小于2V,有报警提示。

四、实验记录及处理

  1. 器件连接

带报警功能的数字电压表设计:

设备名称

设备管脚

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

  1. 实物连接图(拍照,控制图片大小,能看清即可)及程序运行结果描述

实物连接好的图片如下:

操作摇杆,端口数据输出显示器与数码管上显示的电压数值一致,

数码管上的数字会随摇杆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/14AjaJ6nyJAsIDe5WP5vfFQ?pwd=jiis 提取码: jiis

更多推荐