




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电容电感测量仪 拗曲2尊况 单片机技术课程设计说明书 电容电感测量仪 学 院: 学生姓名: 指导教师:职称 专 业: 班 级: 学 号: 完成时间: / 40 摘要 随着电子工业的高速发展, 电子元器件的需求增加, 电子元器件的适用范围 亦越来越广泛。在生活应用中我们常常要测定电容、电感的大小。因此,设计一 种安全、便捷的电容电感测量仪具有很大的现实必要性。 该电容电感测量仪以AT89S52单片机控制核心,通过测量频率来间接测量电 容、电感,并对测试数据和测试结果进行保存记录。该电容电感测量仪是通过 LCD1602液晶显示屏来显示当前测量值,当把待测的元件插上测试端子后,按下 按键即开始进行相
2、应测量。 本设计测量精度相对较高, 且性能稳定, 是一款操作 简单、具有记忆功能的智能化电容电感测量仪。 电容电感测量仪具有测量工作量小、快捷简便、性能稳定、测量准确、故障 检出率高等特点。 它解决了现场测量单个电容器需要拆除连接线、 测量电抗器的 电感、电容表输出电压低导致故障检出率低等问题, 为推动电子工业的发展做了 一定的贡献。 关键词:电容电感测量仪; AT89S52;LCD1602 电容电感测量仪 目录 1 绪论 1 1.1 课题的背景及意义 1 1.2 电容电感测量仪的发展现状 1 1.3 设计的主要内容 1 2 系统整体设计 3 2.1 设计思想 3 2.2 系统总体框图 3 3
3、硬件系统的设计 5 3.1 主要元器件介绍 5 3.1.1 AT89S52单片机 5 3.1.2 LCD1602液晶显示屏 9 3.1.3 LM339电压比较器 9 3.1.4 LM7805稳压块 10 3.2 硬件单元电路的设计 11 3.2.1 AT89S52单片机最小系统 11 3.2.2 测量电路 13 3.2.3 下载电路 13 3.2.4 显示电路 14 4 软件系统的设计 15 4.1 软件设计的描述 15 4.2 系统软件的程序设计 15 4.2.1 定时器/计数器模块 15 4.2.2 液晶显示模块 16 4.2.3 按键处理程序模块 16 4.2.4 电容电感计算程序模块
4、17 4.2.5 主程序流程图 17 5系统测试与结果分析 19 5.1 对电容电感的测试结果 19 5.2 误差分析 19 5.3 设计体会 20 参考文献 21 致谢 22 附录 23 附录A元件清单 23 附录B实物图 24 附录C程序清单 25 II / 40 电容电感测量仪 1 绪论 1.1 课题的背景及意义 随着电子工业的发展, 单片机技术已经在智能化测量仪表中得到越来越广泛 的应用。利用单片机的软件来代替硬件功能, 可以实现仪表测量的自动化, 并能 进行数据分析处理,以达到仪表的高可靠性、高精度和多功能。目前的电容、电 感仪器设计中存在精度不够高、 智能化程度不足等问题。 在生活
5、应用中我们常常 要测定电容、电感的大小。因此,设计一种安全、便捷的电容电感测量仪具有很 大的现实必要性。 1.2 电容电感测量仪的发展现状 当今电子测试领域,电容和电感的测量已经在测量技术和产品研发中应用的 十分广泛。电容和电感的测量发展已经很久, 而且方法众多,常用测量方法如下。 (1)传统的测量电容方法有谐振法和电桥法两种。 前者电路简单、 速度快, 但精度低;后者测量精度高,但速度慢。随着数字化测量技术的发展,在测量速 度和精度上有很大的改善,电容的数字化测量常采用恒流法和比较法。 (2)电感测量可依据交流电桥法,这种测量方法虽然能够较准确的测量电 感,但交流电桥的平衡过程复杂,而且通过
6、测量 Q值确定电感的方法误差较大, 所以电感的数字化测量常采用时间常数法和同步分离法。 纵览目前的电容电感测量仪, 硬件电路往往比较复杂, 体积比较庞大, 不便 于携带,而且价格比较昂贵。例如传统的用阻抗法、Q表、电桥平衡法等测试电 容、电感的过程中不够智能而且体积笨重,价格昂贵,需要外围环境优越,测试 操作过程中需要调很多参数,对初学者来说很不方便。当今社会,对电容、电感 的测试虽然已经很成熟了, 但是价格和操作简单特别是智能方面有待发展。 价格 便宜、操作简单和智能化的仪表开发和应用存在巨大的发展空间。 本设计正是应 社会发展的要求,研制出一种价格便宜、操作简单、体积更小、功能强大和便于
7、携带的电容电感测量仪,充分利用现代单片机技术,研究了基于单片机 AT89S52 的智能电容电感测量仪, 人机界面友好、 操作方便的智能电容电感测试仪, 具有 十分重要的意义。 1.3 设计的主要内容 本设计以AT89S52单片机控制核心,通过测量频率来间接测量电容、电感, 并对测试数据和测试结果进行保存记录。 该电容电感测量仪是通过LCD1602液晶 显示屏来显示当前测量值, 当把待测的元件插上测试端子后, 按下按键即开始进 行相应测量。本设计测量精度相对较高,且性能稳定,是一款操作简单、具有记 忆功能的智能化电容电感测量仪。 8 / 40 2系统整体设计 2.1 设计思想 为了让电容、电感的
8、测量更加方便、可靠,让性价比更高的电容电感测量仪 面向大众,根据所学的知识和自身能力对电容电感测量仪进行设计。具有以下三 点要求: (1)电容电感测量仪操作简单、能耗低。 (2)能够对所测得的电容、电感进行直观的显示。 (3)其精度控制在土 5% 2.2 系统总体框图 晶振电路 直流稳压电源 图1系统总体框图 如图1所示,图中给出了整个系统的总体框图。系统主要由六个部分组成, 单片机和晶振电路、测量电路、下载电路、显示电路、复位电路以及直流稳压电 源。 3硬件系统的设计 3.1 主要元器件介绍 3.1.1 AT89S52 单片机 电容电感测量仪的设计采用AT89S52单片机作为系统的核心。AT
9、89S52是 种低功耗、高性能CMOS啦微控制器,具有8K系统可编程Flash存储器。使 用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚 完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单 芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌 入式控制应用系统中得到广泛应用。 AT8S52单片机的引脚图如图2所示 绘图1.vsd 匚 1 40 =r% (T2 EXfPIJ C 2 刑 mADOi PI.2C 3 38 PO.I(ADI) P1.3 C 4 寸 PO,2k 3.2.3 下载电路 下载电路是下载口与单
10、片机珂/O 口线相连。 的P1.5引脚连接;第2脚为Vcc,接电源正极; 接单片机的RET第7脚为SCK接单片机的P1.7引脚;第9脚为MISO接单 其中第1脚为MOSI与单片机 第3脚为NC第5脚为RST 14 / 40 片机的P1.6引脚;第4、6、8、10脚为GND接电源地 下载电路如图 14所示。 2 V+ 下载口 图14下载电路 3.2.4 显示电路 LCD1602分为带背光和不带背光两种,基控制器大部分为HD44780带背光 的比不带背光的厚,是否带背光在应用中并无差别。 显示电路如图15所示。 图15 显示电路 4软件系统的设计 4.1 软件设计的描述 对于电容电感测量仪设计的软
11、件系统包括定时器 /计数器程序模块、液晶显 示程序模块、按键处理程序模块、控制与计算程序模块等,以及其它必须要有的 电容电感测量仪 基本模块程序。 按键处理程序模块主要通过在主程序中调用键扫函数keyscan()来执行相 应的功能。 液晶显示是通过在主程序中调用相关的液晶功能函数来执行相应功能。 通过调用处理函数: lcd_set() : LCD功能设置函数; display(uchar y, uchar x, uchar *p):显示函数; delay(ui nt cou nt):延时函数; write(uchar comma nd):写命令函数; read(uchar dataO):写数据
12、函数; jishu(void);显示缓冲; jisua n(v oid);处理函数; keyproc();键功能程序; disds();显示函数; 先在键盘上输入一个数字,然后输入一个运算符,再输入一个数字,最好通 过处理函数运算出结果并把结果显示在液晶上或者先输入一个特殊的运算符,再 输入一个数字,最后通过处理函数运算出结果并把结果显示在液晶上。 4.2 系统软件的程序设计 4.2.1 定时器/计数器模块 AT89S52单片机有两个定时器/计数器T0和T1,初始化程序将T0设置为计 数器,T1设置为定时器。T0是工作在计数状态下,对输入的信号进行计数,但 对工作在计数状态下的 T0,最大计数
13、值为FOSC/24由于FOSC=12MHz因此, T0的最大计数频率为500KHz T1工作在定时状态下,最大定时时间65ms达不 到1秒的定时,所以采用定时50ms共定时20次,即可完成1秒的定时功能。 频率计开始工作或者完成一次频率或周期的测量,程序都进行测量初始化。测量 初始化模块是用来设置1602液晶显示、工作寄存器、中断控制和定时器/计数器 工作方式的。 4.2.2 液晶显示模块 液晶接在单片机上的P0及P3部分管脚,通过液晶功能函数LCD1602()的 调用对液晶进行操作,将各类指令写入液晶模块,用来驱动液晶以实现不同的显 示功能,达到界面显示的要求。 液晶显示流程图如图16所示。
14、 图16液晶显示流程图 423 按键处理程序模块 当有按键被按 按键处理程序的主要功能就是设置测量的类型和测量的档位, 下时就执行相应的按键功能。 按键处理程序流程图如图17所示。 开始 初始化设置 执行键功能 返回 图17按键处理程序流程图 4.2.4电容电感计算程序模块 AT89S52单片机根据测得的频率计算出电容、电感值,该程序的流程图如图 18所示。 图18电容电感计算程序流程图 425 主程序流程图 系统上电初始化并且清屏,单片机初始化完成后,进入键盘扫描程序,当要进 行电容或电感测量时,选择测量按键,系统进行自动判断并进行电容或电感的测 量。当判断为电容时,系统选择电容的计算方法。
15、当判断为电感时,系统选择电感 的计算方法。计算完成后在液晶屏上显示测量结果。 当把待测的电容或电感接入时,系统自动进行判断,根据判断结果确定算法。 当判断到是电容时,系统进,入电容的计算方式,电容的计算方式采用公式(1)。 当判断为电感时,系统进入电感的计算方式,电感的计算方式采用公式(2)( 3)。 采用该系统进行电容和电感的测量,由于元器件的热稳定性和外界对电路的 干扰影响,测量的结果会有所跳动,是因为三极管的结电容随着温度的变化而变 化,从而影响测量结果,基于以上原因,在测量过程中可以采用多次测量求平均值 的方法提高测量精度。 主程序流程图如图19所示。 电容电感测量仪 图 19 主程序
16、流程图 5 系统测试与结果分析 5.1 对电容电感的测试结果 我们对于各种性质的元件(电容电感)分别找了足够量的元件;用高精度数 字万用表测量出器容值(感值)取多个相同电容的平均值作为参考量;然后用我 们自制的电容电感测量仪进行测量, 测量多个容值不同的电容,算出其误差,最 后求平均误差,电感的测量同理。 表1电容测试结果 标准值 测试值 测试相对误差 10pF 9.56pF -0.044 100pF 103.00pF 0.0300 1nF 997.05pF -0.00295 10nF 10.05nF 0.005 100nF 100.78nF 0.0078 1uF 998.78nF -0.00
17、122 10uF 9.85uF -0.015 100uF 102.95uF 0.0298 表2电感测试结果 标准值 测试值 测试相对误差 10uH 10.41uH 0.021 100uH 101.54uH 0.0154 1mH 965.35uH -0.03465 10mH 10.23mH 0.023 100mH 97.32mH -0.0268 5.2 误差分析 本测量仪的测量范围较宽,并且达到了不错的精度 电容测试结果分析:电容测试最大误差为 3% 电感测试结果分析:电感测试最大误差为 3.5%。 在实际测量中,由于测试环境、测试仪器、测试方法等都对测试值有一定的 影响,都会导致测量结果或多或
18、少地偏离被测量的真值,为了减小本设计中误差 的大小,主要利用修正的方法来减小本测试仪的测量误差。所谓修正的方法就是 在测量前或测量过程中,求取某类系统误差的修正值。在测量的数据处理过程中 选取合适的修正值很关键,修正值的获得有三种途径。第一种途径是从相关资料 中查取;第二种途径是通过理论推导求取;第三种途径是通过实验求取。本测试 修正值选取主要通过实验求取,对影响测量读数的各种影响因素, 如温度,电压 电源等变化引起的系统误差,通过对相同被侧参数的多次测量结果和不同被侧参 数的多次测量选取平均值,最后确定被侧参数公式的常数 K值,从而达到减小本 设计系统误差的目的。由于振荡电路外围器件由电容电
19、阻分立元件搭接而成,所 以由振荡电路产生的被侧参数对应的频率有一定的误差, 所以只能通过多次实验 测量,选取合适的修正值来尽可能的减小本测试系统的误差。 5.3 设计体会 课程设计是一次非常好的将理论与实际相结合的机会, 通过对电容电感测量 仪的课题设计,锻炼了我的实际动手能力,增强了我解决实际工程问题的能力, 同时也提高了我查阅文献资料、设计规范以及电脑制图等其他专业能力水平。 当然本系统还存在着许多需要改进的地方, 比如还可以继续提高测量的精度 和加大测量的范围, 因为是采用单片机实现的, 利用其可以编程的特性, 使测量 的值结合一些数据处理方式使测量更加接近真实值。 本系统亦还有许多可以
20、拓展的功能, 比如可以增加语音功能, 每次测量值稳 定的时候就通过语音报告出来; 也可以增加在线测量的功能, 这样就更能够测量 出元件工作时的正常值,而不仅仅是静态的值。 参考文献 1 李广弟单片机基础M.北京:北京航空航天大学出版社,2003.3538 2 李全利.单片机原理及应用(C51编程)M.北京:高等教育出版社,2012.12 15 3 马忠梅.单片机的C语言应用程序设计M.北京:北京航空航天大学出版社, 2003.78 82 4 李光飞.单片机C程序设计指导M.北京:北京航空航天大学出版社,2003.46 55 5 李光飞 . 单片机课程设计实例指导 M. 北京:北京航空航天大学出
21、版社, 2004. 48 51 6 焦娟丽,郭学良 . 液晶显示器在单片机控制系统中的应用 J. 现代显示, 2006 (9) : 39 42 7 居水荣. 单片机及其发展趋势 J. 微纳电子技术, 2001(2) : 1315 8 顾正华,顾亚平,陈光.基于VXI总线数字多用表模块硬件设计J.中国测试 技术,2006,32(4) : 8789,143 9 陈江华.一种实用的电容、电感和电阻自动测量仪 J. 计量与测试技术, 2002 (1) : 2122 10 王明娟. 电容电感测试仪的设计 J.2010(5): 3536 11 刘军,李智.基于单片机的高精度电容电感测量仪 J. 国外电子测
22、量技术, 2007,26(6): 4851 12 胡汉才. 单片机原理及其接口技术 M. 北京:清华大学出版社 ,1996.98 103 致谢 这次的单片机设计,让我们有机会将我们在课堂上学到的知识运用到实际当 中。通过对掌握的知识的理解以及运用, 做一些比较与分析。 既验证了自己所学 到的理论知识, 又相当于温习了一遍之前学到的内容。 做这个课程设计, 也许刚 开始会异常困难,但只要坚持下去,稳扎稳打的做好每一步,就一定会成功的。 通过这次课程设计,我进一步巩固并加深了对课本专业知识的理解,更熟悉了 AT89S52单片机的原理和各种电路的设计。当然,在这个过程中我也遇到了很多 困难,于是就翻
23、阅资料,咨询同学老师。我最后找出了自己的错误并加以改正, 这也是我的收获, 不但使我进一步提高了我的实践动手能力, 也让我在未来的学 习工作中有了更大的信心。 通过这次课程设计使我懂得了只有理论知识是远远不 够的,只有把所学的理论知识与实践相结合, 从实践中得出结论, 从而提高了自 己的实际动手能力和独立思考的能力。 让我收获最大的是我发现了自己对以前的 知识理解的不够深刻, 掌握得不够牢固, 通过这次设计, 我把以前所学的知识重 新温故,巩固了所学知识,让我受益匪浅。在此,也要感谢老师这学期的悉心教 导,同时对那些给予我帮助的同学表示由衷的感谢。我会继续努力的! 附录 23 / 40 电容电
24、感测量仪 附录A元件清单 元件名称 元件参数 数量 单片机 AT89S52 1 液晶 LCD1602 1 稳压芯片 LM7805 1 电压比较器芯片 LM339 1 晶振 11.0592MHz 1 电阻 10K 1 电阻 100K 6 开关 六角 1 LED 1 电容 100uF 1 电容 22uF 1 按键 1 电位器 50K 1 电容电感测量仪 附录 C 程序清单 #include #include #define uchar unsigned char #define uint unsigned int #define LCM_Data P0 /LCD1602 数据接口 #define
25、Busy 0 x80 / 用于检测LCM犬态字中的Busy标识 sbit LCM_RW= P2A3; / sbit LCM_RS=卩2八4; / sbit LCM_E= P2A2; / 读写控制输入端,LCD1602的第五脚 寄存器选择输入端,LCD1602的第四脚 使能信号输入端丄CD1602的第6脚 sbit int0_int= P3A2; sbit l_button=P2A0;/ 电感测量控制开关; sbit sbit sbit sbit sbit c_button=P2A1;/ f_button=P2A6;/ min_elect_c_button=P2A7;/ max_elect_c_
26、button=P3A6;/ fangdian_button=P2A5;/ 电容测量控制开关; 频率测试控制开关; 小电容测试控制开关 小电容测试控制开关 电解电容测量时放电控制脚 函数声明 * 29 / 40 void WriteDataLCM(uchar WDLCM);/LCD 模块写数据 void WriteCommandLCM (uchar WCLCM,BuysC); /LCD 模块写指令 uchar ReadStatusLCM(void);/读 LCD模块的忙标 void DisplayOneChar(uchar X,uchar Y,uchar ASCII);/在第 X+1 行的第 Y
27、+1 位置显示一个字符 void void void LCMInit(void);/LCD 初始 delayms(uint ms);/1MS DisplayListChar(uchar 基准延时程序 X,uchar Y,uchar delayms, uchar code *DData); void judge_xianshi(void);/显示处理程序 void lx_display(); void cx_display(); void fx_display(); void init_t0(); void strive_f1();/ 求取 F1 void strive_f2();/ 求取电感的
28、大小 void strive_cx();/ 求取小电容(无极性电容)的大小 void strive_fx();/ 测试外边频率 void strive_min_c();/ 小电容测试 void strive_max_c();/ 大电容测试 uchar t0_crycle=0; uchar f_crycle; uchar flag1;/ uchar display_flag; uint f1,temp,f2; long ryz; /* 主程序 * main() fangdian_button=1; LCMInit(); init_t0(); strive_f1();/ 求取 F1 Display
29、ListChar(0,0,0, F/L/C Tester); while(1) strive_f2();/ 求取 F1 strive_cx(); strive_fx(); strive_min_c(); strive_max_c(); judge_xianshi(); void judge_xianshi() lx_display(); cx_display(); fx_display(); void strive_max_c()/ 大电解电容测试 max_elect_c_button=1;/置为 1 ,准备判断小电容测量开关的状态,上电时 这个开关比较弹起 if(max_elect_c_bu
30、tton=0) f_crycle=0; fangdian_button=0; delayms(250); fangdian_button=1; TMOD=0 x10;/ 设定 T0 以工作方式 1 定时 TH1=0; TL1=0; EA=1; ET1=1;/ 允许定时器 0 中断 TR1=1; int0_int=1; while(int0_int=1); TR1=0; ryz=0; ryz= f_crycle*50000; ryz+=TH1*256+TL1; DisplayListChar(1,0,0, Cx=); DisplayOneChar(1,3, ryz/1000000%10+0 x3
31、0); DisplayOneChar(1,4, ryz/100000%10+0 x30); DisplayOneChar(1,5, ryz/10000%10+0 x30); DisplayOneChar(1,6, ryz/1000%10+0 x30); DisplayOneChar(1,7, ryz/100%10+0 x30); DisplayOneChar(1,8,.); DisplayOneChar(1,9, ryz/10%10+0 x30); DisplayOneChar(1,10,ryz%10+0 x30); DisplayListChar(1,11,0, UF ); void str
32、ive_min_c()/ 小电容测试 min_elect_c_button=1;/置为 1 ,准备判断小电容测量开关的状态,上电时 这个开关比较弹起 if(min_elect_c_button=0) f_crycle=0; fangdian_button=0; delayms(250); fangdian_button=1; TMOD=0 x10;/ 设定 T0 以工作方式 1 定时 TH1=0; TL1=0; EA=1; ET1=1;/ 允许定时器 0 中断 TR1=1; display_flag=4;/ 显示标志,为 4 为测试小电解电容 int0_int=1; while(int0_in
33、t=1); TR1=0; ryz=0; ryz+=50000*f_crycle; ryz+=TH1*256+TL1; ryz/=20; DisplayListChar(1,0,0, Cx=); DisplayOneChar(1,3, ryz/1000000%10+0 x30); DisplayOneChar(1,4, ryz/100000%10+0 x30); DisplayOneChar(1,5, ryz/10000%10+0 x30); DisplayOneChar(1,6, ryz/1000%10+0 x30); DisplayOneChar(1,7, ryz/100%10+0 x30)
34、; DisplayOneChar(1,8,.); DisplayOneChar(1,9, ryz/10%10+0 x30); DisplayOneChar(1,10,ryz%10+0 x30); DisplayListChar(1,11,0, UF ); display_flag=4;/ 显示标志,为 4 为测试小电解电容 void timer1() interrupt 3 TH1=(65536-50000)/256;/ 定时 50 毫秒 TL1=(65536-50000)%256; f_crycle+; / 求取小电容(无极性电容)的大小 void strive_fx() uchar i;
35、f_button=1;/置为 1,准备判断小电容测量开关的状态,上电时这个开关比 较弹起 if(f_button=0) if(display_flag!=3)init_t0(); display_flag=3;/ 显示标志,为 3 为测试频率 TR0=1; TR1=1; ryz=0; for(i=0;i20;i+) f_crycle=0; while(f_crycle1); f_crycle=0; ryz+=temp; TR0=0; TR1=0; void timer0() interrupt 1 TH0=(65536-50000)/256;/ 定时 50 毫秒 TL0=(65536-5000
36、0)%256; f_crycle+; t0_crycle=0; TR0=0;/ 关闭定时 0 temp=TH1*256+TL1;/ TH1=0; TL1=0; TR0=1; void fx_display() if(display_flag=3) DisplayListChar(1,0,0, Fx=); DisplayOneChar(1,3, ryz/1000000%10+0 x30); DisplayOneChar(1,4, ryz/100000%10+0 x30); DisplayOneChar(1,5, ryz/10000%10+0 x30); DisplayOneChar(1,6, r
37、yz/1000%10+0 x30); DisplayOneChar(1,7, ryz/100%10+0 x30); DisplayOneChar(1,8, ryz/10%10+0 x30); DisplayOneChar(1,9,ryz%10+0 x30); DisplayListChar(1,10,0, HZ ); void cx_display() if(display_flag=2) DisplayListChar(1,0,0, Cx=); DisplayOneChar(1,3, ryz/1000000%10+0 x30); DisplayOneChar(1,4, ryz/100000%
38、10+0 x30); DisplayOneChar(1,5, ryz/10000%10+0 x30); DisplayOneChar(1,6, ryz/1000%10+0 x30); DisplayOneChar(1,7, ryz/100%10+0 x30); DisplayOneChar(1,8, ryz/10%10+0 x30); DisplayOneChar(1,9, ryz%10+0 x30); DisplayListChar(1,10,0, pF ); void lx_display() if(display_flag=1) DisplayListChar(1,0,0, Lx=);
39、DisplayOneChar(1,3, ryz/10000000%10+0 x30); DisplayOneChar(1,4, ryz/1000000%10+0 x30); DisplayOneChar(1,5, ryz/100000%10+0 x30); DisplayOneChar(1,6, ryz/10000%10+0 x30); DisplayOneChar(1,7, ryz/1000%10+0 x30); DisplayOneChar(1,8, ryz/100%10+0 x30); 电容电感测量仪 DisplayOneChar(1,9, ryz/10%10+0 x30); Displ
40、ayOneChar(1,10,.); DisplayOneChar(1,11,ryz%10+0 x30); DisplayListChar(1,12,0, uH ); /* * void init_t0() TMOD=Ox51;设定TO以工作方式1定时50毫秒,T1为计数器,工作方式1 TH0=(65536-50000)/256; TLO=(65536-5OOOO)%256; EA=1;/ 开总中断 ETO=1;/ 允许定时器 O 中断 tO_crycle=O;/ 定时器中断次数计数单元 TH1=O; TL1=O; / 求取小电容(无极性电容)的大小 void strive_cx() c_bu
41、tton=1;/ 置为 1,准备判断小电容测量开关的状态,上电时这个开关比 较弹起 if(c_button=O) if(display_flag!=2)init_tO(); display_flag=2;/ 显示标志,为 1 为测试小电容 TRO=1; TR1=1; f_crycle=O; while(f_cryclef1)f2=f1; if(f265)f2=65; if(f2!=O) ryz=(unsigned long) f1)*(unsigned long )f1); ryz/=f2; ryz*=2OOO;/ 换算为 PF 3O / 4O 电容电感测量仪 ryz/=f2; ryz-=20
42、00; / 测电感 void strive_f2() l_button=1;/置为 1,准备判断电感测量开关的状态,上电时这个开关比较 弹起 if(l_button=0) if(display_flag!=1)init_t0(); display_flag=1;/ 显示标志,为 1 为测试电感 TR0=1; TR1=1; f_crycle=0; while(f_cryclef1)f2=f1; if(f265)f2=65; if(f2!=0) ryz=(unsigned long) f1)*(unsigned long )f1); ryz/=f2; ryz*=1000;/ 换算为 UH ryz/
43、=f2; ryz-=1000; /* / 上电的时候求取 F1 void strive_f1() uchar i; for(i=0;i5;i+) l_button=1;/ 置为 1 ,准备判断电感测量开关的状态,上电时这个开关 比较弹起 while(l_button=0); TR0=1; TR1=1; while(f_crycle=10); f_crycle=0; TR0=0; TR1=0; f1=temp; /*= 按指定位置显示一串字符 :第 X 行,第 y 列 注意:字符串不能长于 16 个字符 void DisplayListChar(uchar X,uchar Y,uchar ms, uchar code *DData) unsigned char ListLength; ListLength = 0; X 丫 /限制X不能大于15, 丫不能大于1 while (DDataListLength!=0) / 若到达字串尾则退出 if (丫 = OxF) /X坐标应小于 OxF DisplayOneChar(X, 丫, DDataListLength); /显示单个字符 Li
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿童玩具品牌网络销售授权与分销合同
- 生物制药技术许可与产业化合作协议
- 交通事故赔偿财产补偿及债务处理合同
- 排放应急响应补充协议
- 《有机化学推断及其有机化合物的系统回顾课件》
- 《心血管健康评估》课件
- 能源专业知识培训
- 《应用语文(第三版)》课件第5、6单元 社交礼仪文书;党政机关公文
- 《暗黑系童话》课件
- 《Excel基础教程》课件
- 人教版四年级上下册英语单词默写表(汉译英)
- 新生儿住院期间母乳喂养课件
- 云计算与物联网
- 爱自己-爱生命主题班会课件
- 江苏省2022年高考数学考试真题与答案解析
- 大学生如何应对担心和焦虑的情绪
- 信息技术合同和软件法律规定法律合规的经验与教训
- 中医药治疗慢性萎缩性胃炎的用药规律演示稿件
- GB/T 30163-2023高炉用高风温顶燃式热风炉节能技术规范
- 如何从伦理角度分析工程案例
- MSA-GRR数据自动生成工具(已经解密)
评论
0/150
提交评论