《毕业设计(论文)单片机式数字式万用表.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)单片机式数字式万用表.doc(45页珍藏版)》请在三一办公上搜索。
1、封面目录1.前言11.1信号测量与分析的意义11.2万用表简介11.2.1指针式万用表11.2.2数字式万用表21.3本论文所做的工作32.系统设计52.1数字式万用表的设计构思52.1.1设计原理52.1.2设计要求52.1.3设计思路52.2数字式万用表的结构设计62.3单片机及显示电路72.3.1 STC89C52单片机简介72.3.2数码管显示器的结构及其工作原理82.3.3 74HC573锁存器102.3.4 显示电路设计112.4 A/D转换电路的设计152.5直流电压测量电路172.5.1直流电压测量原理172.5.2直流电压测量电路设计182.6直流电流测量电路192.6.1集
2、成运算放大器OP07192.6.2直流电流测量原理202.6.3直流电流测量电路设计212.7电阻测量电路212.8单片机程序设计222.8.1 Keil C51开发系统232.8.2程序主要结构233电路的搭建及调试273.1电路的搭建273.2电路的调试283.3测试结果分析30总结37致谢39参考文献41附 录1 前 言1.1信号测量与分析的意义测量是人们认识客观事物,并用数量概念描述客观事物,进而达到掌握事物本质和揭示自然规律的一种手段。在自然界中对任何被研究的客观事物,若要进行定量的评价,均必须通过测量来实现。著名俄国科学家门捷列夫说过:“没有测量,就没有科学”,英国科学家库克也认为
3、:“测量是技术生命的神经系统”,这足以说明了测量对发展现代科学技术所起到的作用是非常重要的。所谓测量,就是被测量和同类标准量进行比较的一个实验过程,而这个参考量可以是直接的,也可以是间接的。列如,天平秤重量,电位差计测电压等都属于直接测量,而电流表测电流,压力表测压力则属于间接测量。 在电子产品的生产设计中,万用表是一种最常见的工具。万用表是采用电路实现对电压,电阻,电流的测量以及显示的测量装置,广泛用于电子产品设计生产过程中,已成为一种不可少的工具。随着数字技术的发展,万用表的数字化给人们生产学习带来了极大的便利,首先,由于采用集成式数字芯片,使得数字万用表的精度大为提高;其次,数字化显示可
4、以给人更直观的信息,缩短了生产时间,提高了生产效率。因此,研究数字式万用表扩大其应用,有着非常现实的意义。1.2万用表简介万用表是电子测试领域最基本的工具,也是一种使用广泛的测试仪器。万用表又叫多用表、三用表(A,V,也即电流,电压,电阻三用)、复用表、万能表,万用表分为指针式万用表和数字万用表,一般万用表可测量直流电流、直流电压、交流电压、电阻等量,有的还可以测交流电流、电容量、电感量,温度及半导体的一些参数。 1.2.1指针式万用表指针式万用表的特点:一般指针表可支持最高测量2500V交直流电压,比数字式万用表的量程要高很多。指针表有一个很大优点,就是没有电池照样可以使用(但电阻档无法使用
5、,因为指针表内部的电池主要就是给电阻档来使用的),指针式表在精度上不如数字表高,而且读取数据繁琐,误差较大。指针式万用表的构成分为三部分:(1)表头指针式万用表的表头是一只高灵敏度的磁电式直流电流表,万用表的主要性能指标基本上取决于表头的性能。表头的灵敏度是指表头指针满刻度偏转时流过表头的直流电流值,这个值越小,表头的灵敏度愈高。测电压时的内阻越大,其性能就越好。(2)测量线路测量线路是用来把各种被测量转换到适合表头测量的微小直流电流的电路,它由电阻、半导体元件及电池组成。 它能将各种不同的被测量(如电流、电压、电阻等)、不同的量程,经过一系列的处理(如整流、分流、分压等)统一变成一定量限的微
6、小直流电流信号送入表头进行测量。(3)转换开关 转换开关的作用是用来选择各种不同的测量线路,以满足不同种类和不同量程的测量要求。转换开关一般有多个,分别标有不同的档位和量程。1.2.2数字式万用表数字式万用表的特点:数字式万用表显示直观,测量速度比指针表快,误差也比指针表小,保护电路设计也比指针表要更好,但无法测量快速变化的信号,工作时必须要使用电池。数字式万用表的构成也分为三部分:(1)表头数字式万用表的表头与指针式万用表的表头不同,数字式万用表的表头由A/D转换器,译码设备,以及显示器组成,其性能指标主要取决于A/D转换器的位数,A/D转换器的位数越高,测量的精度就越高。(2)测量线路数字
7、式万用表的测量线路与指针式万用表的测量电路功能相同,都是用来将被测量转换为符合测量原件条件的测量量,它也由电阻、半导体元件及电池组成。 数字式与指针式唯一的不同是数字式万用表表头输入要求是电压信号,而指针式万用表的表头要求的是电流信号。(3)转换开关数字式万用表与指针式万用表的转换开关结构功能是一样的。1.3本论文所做的工作本文设计了一个含有分段测量电路,AD转换,单片机运算并控制锁存显示的数字测量系统,最后搭接电路并实现了对电压、电流、电阻的测量及显示。本设计所做的工作主要包括以下几个方面:(1)查阅相关资料,学习并分析万用表设计方法及原理,并复习“protel” 软件的使用及PCB版图的设
8、计方法,组建系统的结构图。 (2)根据系统的硬件电路设计框图,按各部分电路的功能设计电路。(3)根据所设计的电路,购买元器件。(4)按照硬件电路设计框图依次搭建电路并逐个进行调试。(5)依次分析处理实验过程中所遇到的问题。 (6)绘制系统电路原理图和PCB版图2 系统设计2.1数字式万用表的设计构思2.1.1设计原理数字万用表测量方式简单方便,测量结果直观,受到了广泛的欢迎。本设计是一种基于单片机为基础的简易数字测量仪的设计。其硬件电路设计由4个部分组成: A/D转换电路、STC89C52单片机、LED显示系统以及测量输入电路。A/D转换主要由芯片ADC0804来完成,它负责把采集到的模拟量转
9、换为相应的数字量在传送到数据处理模块。数据处理则由芯片STC89C52来完成,其负责把ADC0804传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着ADC0804芯片工作。测量输入电路由基本电子元件构成,可以将不符合测量标准的信号转换为符合测量条件的电压信号。测量时,被测量经过测量电路,被转换为0-5V的电压信号,然后送入逐次渐进型A/D转换器ADC0804,经过A/D转换器转换为二进制数字信号,再由51单片机进行译码计算,并控制数码管显示器显示译码结果,测量者可以直接从数码管显示器上读取测量值。2.1.2设计要求(1)以MCS-51系列单片机为核心器件
10、(2)采用多路模拟量输入 (3)电压显示用六位LED数码管显示,至少能够显示一位小数。 (4)尽量使用较少的元器件。(5)数字电压表可以测量0-5V、0-10V、0-25V三路直流电压,(6)数字电流表可以测量0-2.55MA、0-10MA两路直流电流,(7)电阻测量表可以测量10-100K电阻2.1.3设计思路(1)根据设计要求,选择STC89C52RS单片机为核心控制器件;(2)A/D转换器采用ADC0804,与单片机的接口为P1口和P3.6、P3.7口;(3)显示采用六位并联的LED数码管;(4)LED数码的段码输入,由并行端口P0产生;位码输入,由P2口的P2.5、 P2.6 、P2.
11、7产生;(5)电压测量电路由分压电阻实现分级;(6)电流测量电路先由分流电阻分流,再由运算放大器转换为0-5V电压信号;(7)电阻测量电路由电流测量电路改装而成;2.2数字式万用表的结构设计数字式万用表进行测量时要根据不同的测量量来选择不同的测量电路,并进行量程分级,因而在设计时,需要单独设计每个测量电路,然后再根据不同量程进行分级。由于测量时输入的信号类型不同,A/D转换器要求的必须是0-5V电压,因而测量电路的构成也是完全不同的。每个单独的测量电路分别接入A/D转换器,A/D转换器输出端接入单片机I/O接口,由单片机控制显示部分。其主体设计如图2-1:图2-1 数字式万用表的结构框图信号处
12、理过程:被测量量连接到测量电路,经过测量电路转换为05V的电压信号,再送入A/D转换器转换为数字信号,最后由单片机进行运算并控制数码管显示器显示出十进制数据。2.3单片机及显示电路随着电子技术的迅速发展,单片机技术的出现给现代工业测控领域带来了一次新的技术革命。目前,单片机以其高可靠性、高性能价格比,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走入家庭,洗衣机、空调等,到处都可见到单片机的踪影。在单片机家族的众多成员中,MCS51系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比而成为国内单片机应用领域中的主流。、在本设计中将采用STC8
13、9C52RS单片机,2.3.1STC89C52单片机简介STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。 它具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 接口,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。图2-2 STC89C52RS引脚图STC89C52RS各引脚功能:VCC(40引脚):电源
14、电压 VSS(20引脚):接地P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O口。在对Flash ROM编程和程序校验时,P1接收低8位地址。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见表2-1:表2-1引脚号功能特性P1.0T2(定时器/计数器2外部计数输入),时钟输出P1.1T2EX(定时器
15、/计数器2捕获/重装触发和方向控制)P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。 在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉电阻的8位双向I/O端口。在对Flash ROM编程或程序校验时,P3还接收一些控制信号。P3口除作为一般I/O口外,还有其他一些复用功能,见表2-2:表2-2引脚号复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1
16、的外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)2.3.2数码管显示器的结构及其工作原理(1)数码管结构数码管的外形结构如图2-3所示图2-3 数码管显示器原理图(2) LED数码管分类按其内部结构可分为共阴型和共阳型;导通时正向压降一般为1.52V,额定电流为10mA,最大电流为40mA。 (3)数码管工作原理共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能
17、吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。数码管显示数字见图2-4图2-4 数码管显示数字对照图2.3.3 74HC573锁存器74HC573锁存器是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步
18、问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。管脚功能:VCC:电源电压 VSS:接地 D0-D7:输入端Q0-Q7:输出端 LE/OE:控制端图2-5 74HC573管脚图74HC573功能见表2-3表2-32.3.4 显示电路设计如图2-6所示, 译码数据经两个74HC573锁存器锁存,然后实现动态显示数据,这样设计只占用单片机的P0口,由P2.5 P2.6控制段码和位码显示。这种显示方式中,每个数码管显示是逐次的,在每点亮一个数码管后,必须持续通电一段时间,使之发光稳定,然后再点亮下一个数码管,如此巡回扫描所有显示器。虽然在同一时刻只有一个显示器通电,但
19、人的视觉为每个显示器都在稳定地显示。74HC573的高电平输出可以提供6MA的拉电流,所以可以不使用排阻。 图2-6 显示电路原理单片机接口及数码管、锁存器管脚见图2-7、2-8:单片机系统: 图2-7 单片机基本系统数码管显示器及锁存器管脚图: 图2-8数码管显示器及锁存器管脚图2.4 A/D转换电路的设计ADC0804转换器简介:ADC0804的管脚图如图2-9所示:图2-9 ADC0804架构图主要电气特性:l 工作电压:5V,即VCC5V。l 模拟输入电压范围:05V,即0Vin5V。l 分辨率:8位,即分辨率为1/28=1/256,转换值介于0255之间。l 转换时间:100us(f
20、CK640KHz时)。l 转换误差:1LSB。l 参考电压:2.5V,即Vref2.5V。lADC0804是属于连续渐进式的A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。对8位ADC0804而言,它的输出准位共有28256种,即它的分辨率是1/256,假设输入信号Vin为05V电压范围,则它最小输出电压是5V/2560.01953V,这代表ADC0804所能转换的最小电压值。ADC0804连接系统如图2-10:图2-10 ADC0804连接系统图2.5直流电压测量电路 直流电压测量是数字式万用表的最基本功能,
21、A/D转换器可以直接识别电压信号,在测量时直流电压可以直接通过A/D转换器转换为数字信号,由单片机控制数码管显示出来。2.5.1直流电压测量原理直流电压表的测量原理是,被测模拟直流电压经输入放大后,经A/D转换器为数字量,通过单片机的I/O口传到单片机进行数据处理,将测量结果显示在数码管上。由于A/D转换器的输入电压限制为5V,故无论多大的测量电压都必须转换为5V以内的电压信号,这里采用串联电阻分压的方式。直流电压测量原理如图2-11:图2-11 直流电压测量原理图由欧姆定律可知U2/U1=R2/(R1+R2), 即U1=(R1+R2)U2/R2 令(R1+R2)/R2=K U2端电压即为A/
22、D转换器的输入电压,有0VU25V,因而最大量程可以定义为UMAX=K5(V)分级电路流出的0-5V电压信号经过A/D0804转换为00000000-11111111 的数字信号,在十进制数中,00000000可转换为0,而11111111可转换为255。输入电压最大为5V,由于8位A/D转换器的精度限制,最小单位量为5/255=0.0196,故在测量0到5V直流电压时,最小量化电压为0.0196V0.02V。在测量0到10V时,最小量化电压为2X0.01960.04V。在测量0到25V电压时,最小量化电压为4X0.01960.08V在程序设计中,为了便于计算,直接采用了整数运算,0-5V的最
23、小量化电压定为0.02V,0-10V的最小量化电压定为0.04V,0-25的最小量化电压则定为0.08V。因而实际测量结果与真实值会存在很大偏差。为了缩小这种偏差,在实际中采用了可调电阻,通过调节可调电阻将这些偏差可以转移到分级电阻上,同时找来标准数据使显示示数相对应,即可极大地提高测量准确度。对于0-5V的测量,可以将待测量直接连接到A/D转换器上。对于0-10V的测量,可以对10V电压进行1/2分压。对于0-25V的测量,可以对其进行1/5分压。经校验后的设计电路图如图2-12:图2-12 0-10V,0-25V分压电路设计中采用18K电阻是因为单片机程序设计成了整数运算,最小量化电压的偏
24、差会累积,到一定程度就会造成成了数据的偏差。用18K电阻是经过实际校准后得出的结论,可以有效地减小最小量化电压带来的偏差。0-10V用了接近1/2分压的方式;0-25V用了接近1/5分压的方式。2.6直流电流测量电路数字式万用表采用了A/D转换芯片,因而限制了其只能识别电压信号,测量电流时必须先将电流信号转换电压信号,才可以进行测量。在直流电流测量电路的设计中,通过使用运算放大器可以实现了电流到电压信号的转换。这里采用的是OP07。2.6.1集成运算放大器OP07OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。由于OP07具有非常低的输入失调电压,所以OP07在很多应用场合不需
25、要额外的调零措施。OP07同时具有输入偏置电流低和开环增益高的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放 大传感器的微弱信号等方面。 OP07芯片引脚见图2-13。OP07芯片引脚功能说明: 1和8为偏置平衡(调零端),2为反向输入端,3为正向输入端,4接地,5空脚 6为输出,7接电源+ 图2-13 OP07管脚图2.6.2直流电流测量原理图2-14直流电流测量原理图U1及R1可以等效为强度为i1的电流源。该电路为电压并联负反馈放大电路。在深度负反馈条件下运算放大器的“-”端视作虚断,因而有i1i2又由于理想运算放大器的电压放大倍数趋向于无穷大,引入负反馈后使
26、运放反相输入端的电位近似等于同相输入端的电位。同时因运放同相输入端接地,而运放反相输入端的电位也近似等于零。因此可得:i1U1/R1,i2-U2/R2又因为i1i2,故而i1-U2/R2电压并联负反馈放大电路的闭环互阻增益为A1=U2/i1闭环电压放大倍数为A2=U2/U12.6.3直流电流测量电路设计根据上述原理,可以将输入量改为电流输入,i1 为输入电压,在深度负反馈条件下i1i2 ,经过R2后转换为电压信号U。 图2-15直流电流测量电路由于最小量化电压为的关系,经实际校准,当R2阻值为450时,可以测量0-10MA的直流电流;当R2阻值为1.82K时,可以测量0-2.55MA的直流电流
27、2.7电阻测量电路电阻测量电路是在电流测量电路的原理上改进而来的,根据运算放大器原理,i1U1/R1,i2-U2/R2i1i2, i1-U2/R2U1/R1=-U2/R2 令U1=5V,R1为定值,则U2=-(U1/R1)R2,U2 与R2成正比关系,设R2为待测电阻,可以得到相应的电压信号,然后输送给A/D转换器 图2-16电阻测量电路原理由于最小量化电压为的关系,经实际校准,R1 为103K时,可以测量10K-100K的未知电阻。2.8单片机程序设计Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编语言相比,C语言在功能上、结构性、可读性
28、、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。2.8.1 Keil C51开发系统(1) 系统概述 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。Keil C51生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。(
29、2)Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境,可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中
30、。2.8.2程序主要结构本设计中将采用C语言来编写程序。整个程序包括了一个主程序和6个子程序,其中直流电压测量电路分为3个子程序,直流电流测量电路分为2个子程序,电阻测量电路分为1个子程序。主程序采用if语句通过判断P2.0-P2.4以及P3.0的电压来选择不同的子程序。STC89C52单片机I/O口在正常工作状态下每个管脚都默认为高电平,数字信号判断为1,此时将其中固定的某个接口接地则可以构成判断电路,利用判断电路来选择不同的子程序。端口定义及其对应的子程序:P0 数码管显示器 P1 A/D转换器 P2.0 y5() P2.1 y10()P2.2 y25() P2.3 yi1()P2.4 y
31、i2() P3.0 yr()P3.7 AD读取 P3.6 AD写入 P2.5 P2.6 锁存器段控制P2.7 锁存器位控制程序结构如图图2-17 主程序流程图(详细程序请见附录1)图2-18 0-5V电压测量程序流程图在程序设计中,为了便于计算,直接采用了整数运算,5V以内的最小量化电压定为0.02V,0-10V的最小量化电压定为0.04V,0-25的最小量化电压则定为0.08V。因而实际测量结果与真实值会存在很大偏差。为了缩小这种偏差,在实际中采用了可调电阻,通过调节可调电阻将这些偏差可以转移到分级电阻上,同时找来标准数据使显示示数相对应,即可极大地提高测量准确度。程序#include#in
32、clude #define uint unsigned int#define uchar unsigned char/IO口定义sbit adrd=P37; sbit adwr=P36;sbit diola=P25;sbit dula=P26;sbit wela=P27;sbit t5=P20;sbit t10=P21;sbit t25=P22;sbit ti1=P23;sbit ti2=P24;sbit tr=P30;/延时程序unsigned char j,k,adval;void delay(unsigned char i) for(j=i;j0;j-) for(k=125;k0;k-)
33、;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/子程序一void display5(uchar bai_c,uchar sh_c,uchar g_c) P0=tablebai_c+0x80;/显示百位 dula=1; dula=0; P0=0xf7; wela=1; wela=0; delay(5); dula=0; P0=tablesh_c;/显示十位 dula=1; dula=0; wela=0; P0=0xef; wela=1; wela=
34、0; delay(5); P0=tableg_c;/显示个位 dula=1; dula=0; P0=0xdf; wela=1; wela=0; delay(5);void y5() uchar a,A1,A2,A2t,A3; while(1) wela=1; P0=0; /选通ADCS adwr=0;/启动AD转换 _nop_(); adwr=1; P0=0xff; /关闭ADCS delay(10); wela=0; /关闭有AD片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化 for(a=20;a0;a-) /显示部分 display5(A1,A2,A3); /送去显示各位。
35、 wela=1; /重新打开有AD片选信号锁存器的锁存端 P1=0xff; /读取P1口之前先给其写全1 P0=0; /选通ADCS adrd=0; /AD读使能 adval=P1;/AD数据读取赋给P1口 adrd=1; P0=0xff; /关闭ADCS adwr=0; P1=adval; /同时把AD的值送八个发光二极显示 A1=adval/50;/分出百,十,和个位 switch(int)(adval/250) case 1: A3=0;A2=0; break; default: A2t=adval%50; A2t=2*A2t; A2=A2t/10; A3=A2t%10; ;/子程序二v
36、oid display10(uchar qian_c,uchar bai_c,uchar sh_c,uchar g_c)/显示程序 P0=tableqian_c;/显示千位 dula=1; dula=0; wela=0; P0=0xfb; wela=1; wela=0; delay(5); P0=tablebai_c+0x80;/显示百位 dula=1; dula=0; P0=0xf7; wela=1; wela=0; delay(5); dula=0; P0=tablesh_c;/显示十位 dula=1; dula=0; wela=0; P0=0xef; wela=1; wela=0; delay(5); P0=tableg_c;/显示个位 dula=1; dula=0; P0=0xdf; wela=1; wela=0; delay(5);void y10() uchar a,A1,A2,A3,At,A4; while(1) wela=1; P0=0; /选通ADCS adwr=0;/AD写入(随便写个什么都行,主要是为了启动AD转换) _nop_(); adwr=1; P0=0xff;