简易电阻、电容和电感测试仪设计_毕业设计论文 联系客服

发布时间 : 星期六 文章简易电阻、电容和电感测试仪设计_毕业设计论文更新完毕开始阅读

write_com(0x80); for(num=0;num<6;num++) { write_data(table[num]); delayms(5); }

delayms(2000); }

//延时函数

void delayms(uint xms) {

uint i,j;

for(i=xms;i>0;i--) for(j=110;j>0;j--); }

//液晶写命令函数

void write_com(uchar com) {

lcdrs=0; P0=com; delayms(5); lcden=1; delayms(5); lcden=0; }

//液晶写数据函数

void write_data(uchar date) {

lcdrs=1; P0=date; delayms(5); lcden=1; delayms(5); lcden=0; }

//设置数据地址指针 //显示字符串table[6]

//数据显示2s

程序2:电阻、电容和电感测量值的显示 //简易电阻、电容、电感测量仪程序

//初始化

#include

#define uint unsigned int #define uchar unsigned char #define ulong unsigned long #define PI 3.1415926

uchar code table1[8]=%uchar table2[16]=%uchar table3[16]=%uchar table4[16]=%uchar table5[16]=\

uchar num,a=0,th0,tl0; uint C,L; ulong f,R;

sbit lcden=P2^4; //液晶使能端 sbit lcdrs=P2^5; //液晶数据命令选择端

sbit key_R=P1^5; //测量电阻按键 sbit key_C=P1^6; //测量电容按键 sbit key_L=P1^7; //测量电感按键

sbit R_out=P1^2; //测量电阻信号输入 sbit C_out=P1^3; //测量电容信号输入 sbit L_out=P1^4; //测量电感信号输入

//声明子函数

void delayms(uint xms); //延时函数 void write_com(uchar com); //液晶写命令函数 void write_data(uchar date); //液晶写数据函数 void led_init(); //液晶初始化函数 void t_init(); //定时器0初始化函数 void keyscan(); //键盘检测函数(确定被测元件为电阻、电容或电感) void display_f(ulong f); //频率显示函数 void display_R(ulong R); //电阻显示函数 void display_C(uint C); //电容显示函数 void display_L(uint L); //电感显示函数

//主函数

void main() {

led_init(); t_init(); keyscan();

write_com(0x01); while(1) { display_f(f); switch(a) { case 1:R=(ulong)(5000000.0/0.6931472/f-150+0.5);display_R(R);break; case 2:C=(int)(100000000.0/153/0.6931472/f+0.5);display_C(C);break; case 3:L=(int)(1000000000000.0/0.1/PI/PI/f/f+0.5);display_L(L);break; } } }

//中断函数

void T0_count() interrupt 1 {

switch(a) {

case 1:while(R_out); while(!R_out); TH0=0; TL0=0; while(R_out); while(!R_out); th0=TH0; tl0=TL0; TR0=0; break;

case 2:while(C_out); while(!C_out); TH0=0; TL0=0; while(C_out); while(!C_out); th0=TH0; tl0=TL0; TR0=0; break; case 3:while(L_out);

while(!L_out); TH0=0; TL0=0; while(L_out); while(!L_out); th0=TH0; tl0=TL0; TR0=0; break; }

f=1000000.0/1.085069/(th0*256+tl0)+0.5; }

//延时函数

void delayms(uint xms) {

uint i,j;

for(i=xms;i>0;i--) for(j=110;j>0;j--); }

//液晶写命令函数

void write_com(uchar com) {

lcdrs=0; P0=com; delayms(5); lcden=1; delayms(5); lcden=0; }

//液晶写数据函数

void write_data(uchar date) {

lcdrs=1; P0=date; delayms(5); lcden=1; delayms(5); lcden=0; }

//液晶初始化函数