电阻电容测试仪程序_第1页
电阻电容测试仪程序_第2页
电阻电容测试仪程序_第3页
电阻电容测试仪程序_第4页
电阻电容测试仪程序_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序1:直流稳压电源的显示/数显直流稳压电源程序/头文件#include <reg52.h>#include <intrins.h>/宏定义#define uint unsigned int#define uchar unsigned char/定义变量uchar table6="00.00V" /液晶显示字符串uchar num,temp;uint voltage; /被测电压的100倍赋给voltage/TLC549、液晶位声明sbit ad_clk=P33; /TLC549时钟sbit ad_out=P34; /TLC549数据输出sbit a

2、d_cs=P35; /TLC549片选sbit lcden=P24; /液晶使能端sbit lcdrs=P25; /液晶数据命令选择端/子函数声明void delayms(uint xms); /延时函数void write_com(uchar com); /液晶写命令函数void write_data(uchar date); /液晶写数据函数void led_init(); /液晶初始化函数void tlc549_ad(); /TLC549获取数据及显示数据函数/主函数void main()led_init();tlc549_ad();/液晶初始化函数void led_init()lcde

3、n=0;write_com(0x38); /设置16×2显示,5×7点阵,8位数据接口write_com(0x0c); write_com(0x06); write_com(0x01); /TLC549获取数据及液晶显示数据函数 void tlc549_ad() ad_cs=1; ad_clk=0;ad_cs=0; 高位_nop_(); _nop_();for(num=0;num<8;num+) / temp<<=1; temp|=ad_out; ad_clk=1; _nop_(); ad_clk=0; ad_cs=1;for(num=17;num>

4、0;num-)_nop_();voltage=(uint)(5.0/256*temp*400); 赋给voltage temp=0;table0=voltage/1000+48; table1=voltage%1000/100+48; table3=voltage%1000%100/10+48;table4=voltage%1000%100%10+48;write_com(0x80); for(num=0;num<6;num+) /设置开显示,不显示光标 /写一个字符后地址指针加1/显示清0,数据指针清0/ad_cs置高,片选无效/ad_cs置低,片选有效,同时ad_out输出最/延时至

5、少1.4s /串行数据移位输出/ad_cs置高,片选无效 /延时约17s/串行数据转化为十进制输入电压,乘以400/串行数据清0 /整数部分装入字符串 /小数部分装入字符串/设置数据地址指针 /显示字符串table6write_data(tablenum); 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);lcde

6、n=1;delayms(5);lcden=0;/液晶写数据函数void write_data(uchar date) lcdrs=1;P0=date;delayms(5);lcden=1;delayms(5);lcden=0;/数据显示2s程序2:电容和电感测量值的显示/简易电容、电感测量仪程序/初始化#include <reg52.h>#define uint unsigned int#define uchar unsigned char#define ulong unsigned long#define PI 3.1415926uchar code table18="

7、Welcome!"uchar table216="f(Hz)="uchar table316="C(pF)="uchar table416="L(uH)="uchar num,a=0,th0,tl0;uint C,L;ulong f;sbit lcden=P24; /液晶使能端sbit lcdrs=P25; /液晶数据命令选择端sbit key_C=P14; /测量电容按键sbit key_L=P15; /测量电感按键sbit C_out=P12 /测量电容信号输入sbit L_out=P13; /测量电感信号输入/声明子函

8、数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_C(uint C); /电容显示函数void display_L(uint L); /电感显示函数/主函数void main()l

9、ed_init();t_init();keyscan();write_com(0x01);while(1)display_f(f);switch(a)case 1:C=(int)(100000000.0/153/0.6931472/f+0.5);display_C(C);break; case 2:L=(int)(1000000000000.0/0.1/PI/PI/f/f+0.5);display_L(L);break; /中断函数void T0_count() interrupt 1switch(a)case 1:while(C_out);while(!C_out);TH0=0;TL0=0;

10、while(C_out);while(!C_out);th0=TH0;tl0=TL0;TR0=0;break;case 2: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(uch

11、ar 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;/液晶初始化函数 void led_init()lcden=0;write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num<8;num+) write_d

12、ata(table1num); delayms(5); /设置16×2显示,5×7点阵,8位数据接口/设置开显示,不显示光标 /写一个字符后地址指针加1 /显示清0,数据指针清0 /显示欢迎界面/定时器0初始化函数void t_init()TMOD=0x01; /设置定时器0工作方式1(M1M0=0x0001)TH0=0; /装初值TL0=0;EA=1; /开总中断ET0=1; /开定时器0中断TR0=1; /启动定时器0/键盘检测函数(确定被测元件为电阻、电容或电感)void keyscan()if(key_C=0)delayms(10);if(key_C=0)a=1;e

13、lseif(key_L=0)delayms(10);if(key_L=0)a=2;elsewhile(key_C&&key_L); /按键按下时退出死循环/频率显示函数void display_f(ulong f)uchar count=0;ulong f0;f0=f;while(f)f=f/10;count+;for(num=5+count;num>5;num-) table2num=f0%10+48; f0=f0/10;write_com(0x80);for(num=0;num<6+count;num+) write_data(table2num); delayms(5);/电容显示函数void display_C(uint C) uchar count=0;uint C0;C0=C;while(C)C=C/10;count+;for(num=5+count;num>5;num-) table4num=C0%10+48; C0=C0/10;write_com(0x80+0x40);for(num=0;num<6+count;num+) write_data(table4num); delayms(5);/电感显示函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论