【51单片机】【protues仿真】基于51单片机电阻电容电感RLC测量仪系统

发布于:2025-09-07 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、LCD1602液晶显示测量数值
2、测量范围:电阻 100Ω-100KΩ;
电容 1000pF-1uF;
电感 1mH-1000mH;
测量精度:5%。
3、通过开关选择测量类型

二、使用步骤

基于51单片机的RLC测量仪设计涉由硬件电路、信号处理和软件算法等多个方面组成。

三、硬件资源

1、51单片机核心模块
2、按键模块
3、电阻测量模块
4、电容测量模块
5、电感测量模块
6、LCD1602显示模块

四、软件设计

#include<reg52.h>

#include<intrins.h>

#define uchar unsigned char

#define uint  unsigned int

sbit RS=P2^6;

sbit RW=P2^5;

sbit E=P2^7;

sbit R=P1^0;

sbit C=P1^1;

sbit L=P1^2;

sbit A1=P1^3;

sbit A0=P1^4;

#define LCD_data  P0

uchar   code  table1[10]={"R=      R"};

uchar   code  table2[10]={"C=      pF"};

uchar   code  table3[10]={"L=      mH"};

uchar code f_table[88]={13,14,15,16,17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100};

uchar code f_correct[88]={9,10, 11, 12, 12, 12, 13, 14, 15, 16, 17, 18, 18, 18, 19, 20, 21, 21, 22, 23, 24, 25, 25, 26, 26, 27, 28, 29, 29, 30, 30, 31, 32, 33, 33, 34, 35, 35, 36, 37, 38, 38, 39, 40, 41, 41, 42, 42, 43, 44, 45, 45, 46, 47, 48, 49, 49, 50, 51, 51, 52, 53, 54, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 62, 62, 63, 64, 64, 65, 66, 66, 67, 67, 68, 69, 70, 71, 71,};

uchar a6,a5,a4,a3,a2,a1;

uchar flag;

unsigned long cnt,cnt1;

uchar f_cnt;

/********************************/

void delay_us(); //18us

void delay_ms(uint);

void lcd_init();

void lcd_write_com(uchar com);

void lcd_write_dat(uchar dat);

void lcd_init();

void lcd_display(uchar add,uchar dat); 

/***********************************/

void delay_us()

{

uchar x;

for(x=0;x<5;x++);

}

void delay_ms(uint z)

{

uint x,y;

for(x=0;x<z;x++)

for(y=0;y<123;y++);

}

void lcd_write_com(uchar com)

{

  E=0;

  RS=0;

  RW=0;

  delay_us();

  LCD_data=com;

  E=1;    //

  delay_us();

  E=0;

}

void lcd_write_dat(uchar dat)

{

  E=0;

  RS=1;

  RW=0;

  delay_us();

  LCD_data=dat;

  E=1;    //

  delay_us();

  E=0;

}

void lcd_init()   //lcd

{

delay_ms(15);

lcd_write_com(0x38);

delay_ms(10);

lcd_write_com(0x0c);

lcd_write_com(0x06); 

lcd_write_com(0x01);

delay_ms(2);

}

void timer_init(void) 

{

TMOD=0X51;

   PT0=1;   

TH0=0x3c;

TL0=0xb0;

TH1=0;

TL1=0;

ET0=1;

ET1=1;

TR0=1;

TR1=1;

EA=1;

}

void lcd_display(uchar add,uchar dat)    //lcd

{

lcd_write_com(add); 

lcd_write_dat(dat);

delay_us();

}

void main()

{

    timer_init();

lcd_init();

while(1)

{

   if(flag==1)

   {

real_display();

flag=0;

}

}

}

五、实验现象

演示视频:


网站公告

今日签到

点亮在社区的每一天
去签到