基于单片机电容测量仪设计_毕业设计.doc

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机的电容测试仪的设计 PAGE 22 基于单片机电容测量仪设计 基于单片机电容测量仪设计 摘 要 目前,随着电子工业的发展,电子元器件急剧增加,电子元器件的适用范围也逐渐广泛起来,在应用中我们常常要测定电容的大小。在电子产品的生产和维修中,电容测量这一环节至关重要,因此,设计可靠,安全,便捷的电容测试仪具有极大的现实必要性。本文提出了以MCS-51单片机为控制核心,结合多谐振荡器来实现电容测量的方法。并介绍了测量原理并给出了相应的电路及软件设计。 关键词:电容测试仪;单片机;测量 目录 TOC \o 1-3 \h \u #includeintrins.h//库函数 #define DATA P0 sbit RW=P2^1;//1602写数据 sbit RS=P2^0;//1602写地址 sbit EN=P2^2; //1602工作使能 sbit b_test=P3^7; //开始测量电容的按键输入 sbit _reset=P3^5; //555时基芯片工作控制信号 unsigned int T_flag,N,C,i,Dis1,Dis0; unsigned int b[7]={0X13,0X0D,0X00,0X00,0X00,0X25,0X16}; //显示C=00000UF /***********延时1MS******************/ void Delay1ms(unsigned int mm) {unsigned int i; for(mm;mm0;mm--) for(i=100;i0;i--); } /***************检查忙否*****************/ void Checkstates() { unsigned char dat; RS=0; RW=1; do{EN=1;//下降沿 _nop_();//保持一定间隔 _nop_(); dat=DATA; _nop_(); _nop_(); EN=0; }while((dat0x80)==1); } /**************LCD写命令函数*********/ void wcomd(unsigned char cmd) { Checkstates(); RS=0; RW=0; DATA=cmd; EN=1; _nop_(); _nop_(); _nop_(); _nop_(); EN=0; } /**********LCD写数据函数**************/ void wdata(unsigned char dat) { Checkstates(); RS=1; RW=0; DATA=dat; EN=1; _nop_(); _nop_(); _nop_(); _nop_(); EN=0; } /*****************初始化********************/ void LCDINIT() { Delay1ms(15); wcomd(0x38);//功能设置 Delay1ms(5); wcomd(0x38);//功能设置 Delay1ms(5); wcomd(0x01);//清屏 Delay1ms(5); wcomd(0x08);//关显示 Delay1ms(5); wcomd(0x0c);//开显示,不开光标 } /***********显示函数**************/ void Display(void) //显示函数 { unsigned char i,j; unsigned char a[12]={0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53};//显示measurements LCDINIT(); for(i=0;i12;i++)//写显示第一行 { wcomd(0x80+i); Delay1ms(1); wdata(a[i]); Delay1ms(1); } for(j=0;j7;j++)//写显示第二行 { wcomd(0xc0+j); Delay1ms(1); wdata(0x30+b[j]); Delay1ms(1); } Delay1ms(150); } void main() { IE=0x81; //打开全部的中断控制,并开启外部中断允许 TMOD=0x09;

文档评论(0)

weidameili + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档