基于51单片机的电容电感电阻RLC测量仪protues仿真

硬件设计

链接:https://pan.baidu.com/s/11PAo_kcunbeI_Op2TS6i0g
提取码:cmmt在这里插入图片描述

代码设计

#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 real_display(void)
{
            if(!R)
			 {
//			 while(!R);
			 A1=A0=0;	
	                lcd_display(0x80,table1[0]);
			lcd_display(0x80+1,table1[1]);
			lcd_display(0x80+8,table1[8]);
			lcd_display(0x80+9,table1[9]);
			  }
			else if(!C)
			{
			A0=0;A1=1;
			lcd_display(0x80,table2[0]);
			lcd_display(0x80+1,table2[1]);
			lcd_display(0x80+8,table2[8]);
			lcd_display(0x80+9,table2[9]);
			}
			else if(!L)
			{
			A0=1;A1=0;
			lcd_display(0x80,table3[0]);
			lcd_display(0x80+1,table3[1]);
			lcd_display(0x80+8,table3[8]);
			lcd_display(0x80+9,table3[9]);
			}
			if(a6)
			  lcd_display(0x80+2,0x30+a6);
			else
			lcd_display(0x80+2,' '); 


			if(a6||a5)
			lcd_display(0x80+3,0x30+a5);
			else
			 	lcd_display(0x80+3,' ');


			if(a6||a5||a4)
			lcd_display(0x80+4,0x30+a4);	
			else
		   lcd_display(0x80+4,' ');


			if(a6||a5||a4||a3)
			lcd_display(0x80+5,0x30+a3);	
			else
		    lcd_display(0x80+5,' ');


			if(a6||a5||a4||a3||a2)
			lcd_display(0x80+6,0x30+a2);
			else
			lcd_display(0x80+6,' ');

			
			lcd_display(0x80+7,0x30+a1);
		

}

.

.

  • 20
    点赞
  • 184
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值