基于51单片机的万用表proteus仿真

仿真图:
链接:https://pan.baidu.com/s/1LjlSrIBPfDyFDCfryePhlQ
提取码:1234

在这里插入图片描述
部分源程序:

#include <reg52.h>
#include "LCD.h"
#include "Delay.h"
#include "AD.h"
#include <measure_define.h>
#include <KEY_FUNCTION_DEFINE.H>
#include <Cap_define.h>
void ININT_int1(void);

extern unsigned char key_number;
extern unsigned char disp_value[5];
void main(void)
{ 	
		unsigned char num=0;
		s1=0;					  
		s2=0;
		s3=0;
		key_number=1;			   //初始化按键的值为0
	
		LcdInit();		    		//LCD1602有初始化  

		WriteCom(0x80+0x46);		//1602第二行显示 value=00000v
		for(num=0;num<5;num++)			    
		{
			WriteData(disp_value[num]);
			Delay(10);	
		} 	
	ININT_int1();					    //外部中断1的初始化
	Tmie0_init();						//定时器0的初始化
 		
while(1)
	{
			if(key_number==1)		  //按键值为1
			{
				DC_VOL_measure();	  //直流电压的测量
			}

			if(key_number==2)		  //按键值为2
			{
				AC_VOL_measure();     //交流电压的测量
			}

			if(key_number==3)		  //按键值为3
			{
				Circuit_measure();	  //电流的测量
			}	 		
			
			if(key_number==4)		   //按键值为4
			{
				Res_measure();		   //电阻的测量
			}	 		
			
			if(key_number==5)		   //按键值为5
			{
				WriteCom(0x01);		   //清屏
				Cap_disp_init();	   //电容显示初始化
			 	Cap_measure();		   //电容的测量
			}	/**/
			

	}	 
}		 

#include <reg52.h>
#include "AD.h"


 sbit OE=P3^0;	      //AD0809输出允许控制端
 sbit EOC=P3^1;				//AD0809转换结束信号输出端
 sbit Start=P3^4;			//AD0809启动控制输入端
//AD采样
unsigned char ADSample(unsigned char AD_ADDER)				//AD采样函数
{
	unsigned char Data; 
	P2=P2&0X1F;			     //P2口高三位清零
	P2=P2|AD_ADDER;			//选择对应的通道
  Start=0;					//启动AD0809
  Start=1;
  Start=0;																	
	while(EOC==0);		//AD0809是否转换结束
	OE=1;				//开输出控制端
	Data=P1;			//读数据
	OE=0;
   return Data;
}

float ValueConver(unsigned char AD)		//数据转换函数,将采样得到的值转换为电压值
{     float Temp;

   Temp=2*AD;
   Temp=Temp/255;
   return(Temp);

} 
  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值