2015年电赛频率计设计报告
- 格式:doc
- 大小:227.63 KB
- 文档页数:18
2015年全国大学生电子设计竞赛数字频率计(F题)【本科组】时间:2015年8月15日摘要本作品以FPGA和STM32F103ZET6设计了一台闸门时间为1s的数字频率计,作品主要由主控模块、放大器模块、FPGA模块、电源模块及TFT显示模块构成。
为了满足测频对小信号的要求,系统采用电压反馈放大器OPA847搭建二级放大电路对小信号进行放大处理;通过FPGA模块对高频信号进行计数,达到了测频率、测周期等功能。
由STM32F103ZET6接受FPGA传来的信号,再进行数据处理,控制TFT模块显示相关测量数据。
最后,通过对作品进行实测,得到的实验数据表明,本设计达到了预期在功能和精度方面的要求。
关键字:FPGA,STM32,小信号放大,频率计。
AbstractIn this work, a digital frequency meter is designed by FPGA and STM32F103ZET6, which is composed of main control module, amplifier module, FPGA module, power module and TFT display module. And gate time is 1s. In order to meet the requirements of small signal frequency measurement, the system uses the voltage feedback amplifier OPA847 to set up the two stage amplifier circuit to amplify the small signal. Through the FPGA module, the high frequency signal is counted, and the function of the frequency and cycle is reached. The signal that is received by FPGA is processed by STM32F103ZET6, and the data processing is controlled by TFT module. Finally, the experimental results show that the design can meet the requirements of the function and precision.Keywords: FPGA, STM32, small signal amplification, frequency meter.一、方案选择与论证1、主控模块方案选择方案一:利用STM32单片机作为主控芯片直接进行数据采集和处理,其优点是硬件电路比较简单。
工学08-I《电子技术课程设计》报告数字频率计的设计专业:工学08—Ⅰ班级:15级工学(7)班姓名:李明利学号:20154070702指导教师:富爽中国·大庆2016 年12 月信息技术学院课程设计任务书信息技术学院工学08-I专业 2015 级,学号 20154070702 姓名李明利一、课程设计课题:数字频率计的设计二、课程设计工作日自 2016 年 11 月 28 日至 2016 年 12 月 9 日三、课程设计进行地点:黑龙江八一农垦大学图书馆四、课程设计任务要求:1.课题来源:教师指定2.目的意义:针对电子线路课程要求,对学生进行实用型电子线路设计、安装、调试等各环节的综合性训练,培养学生运用课程中所学的理论与实践紧密结合,独立地解决实际问题的能力,提高自身创新能力。
3.基本要求:(1)测量信号:方波。
(2)测量频率范围:1Hz~9999Hz ; 10KHz~10KHz。
(3)显示方式:4位十进制数显示。
(4)时基电路由555 定时器及分频器组成, 555 振荡器产生脉冲信号,经分频器分频产生的时基信号,其脉冲宽度分别为: 1s, 0.1s。
(5)当被测信号的频率超出测量范围时,报警。
课程设计评审表目录1设计任务要求 (6)2方案比较 (6)3单元电路设计 (7)4元件选择 (11)5整体电路 (12)6说明电路工作原理 (12)7困难问题及解决措施 (15)8设计总结首先感谢老师给我们创造这次机会进行课程设计,让我们在为期一周的电子课程设计中懂得了更多,学到了更多。
电子设计是我们必需要学会的技能,而熟练的使用protel等电路设计软件是我们应该具备的基本技能,这次实习恰恰给我们提供了一个应用自己所学知识的机会。
在设计的过程中发现了本学期学过的数字电路的知识掌握的不牢。
同时在设计的过程中,遇到了一些以前没有见到过的元件,但是通过查找资料来学习这些元件的功能和使用。
设计过程是一个考验人耐心的过程,尤其是在使用protel画原理图时,更需要我们细心的去做每一步,而555定时器,74151,74153等引脚比较多,而且要根据原理使用,只有耐心做好每一步,才能顺利的完成课程设计。
数字显示脉冲参数测试仪(A 题)摘要:本文设计的是一个数字显示脉冲信号参数测试仪,实现对脉冲信号的参数测量。
根据需要完成的功能,分为:前端信号处理模块、峰值检波模块、窗口比较器模块、AD/DA模块、电源模块等。
本设计中,信号经峰值检波器后,信号被AD提取,MCU根据AD的结果切换到合适的档位获取脉冲幅值信息。
MCU同时输出适当的电压给窗口比较器,使比较器输出含频率、上升沿、下降沿、正脉宽等信息的脉冲,FPGA对信息脉冲精准处理,并将处理结果传给MCU,MCU将结果数字显示,从而实现各种参数的测量与显示。
本设计中的信号处理部分,利用FPGA的强大处理能力,完成数字信号的处理,将处理后的信号送至单片机进行显示,综合应用了电容去耦、滤波以及同轴电缆等抗干扰措施,减少的电路中的干扰。
经验证,本方案完成了全部基本功能和大部分扩展功能。
关键词:峰值检波窗口比较器脉冲参数测试等精度测频目录一、系统设计与方案论证 (2)1.1 前端信号处理部分 (2)1.2 信号幅值测量部分。
(2)1.3 频率测量部分 (2)1.4 时间沿、占空比测量部分 (3)二、硬件电路设计 (4)2.1系统框图 (4)2.2前端信号处理电路设计 (4)2.3峰值检波器电路设计 (5)2.4比较器部分电路设计 (5)2.5电源部分 (6)三、软件设计 (7)四、测试结果 (10)参考文献 (15)一、系统设计与方案论证1.1 前端信号处理部分由于信号幅度跨度大(20mv-5V),所以对于不同幅值的信号需要进行适当的处理后才能让后继电路精准的测出幅值。
方案一:采用高速AD直接方案,由于在上升沿极短时,需要对AD的速度有较高要求才能采到足够多的信号点进行处理,但高速AD在考虑到成本时位数比较低,精度较差。
且对信号处理的平台要求较高,性价比低。
方案二:采用继电器进行档位切换,对小信号放大,中等幅值信号跟随,大幅值信号衰减以便后继电路进行处理。
年电赛频率计设计报告————————————————————————————————作者:————————————————————————————————日期:此处贴密封纸,然后掀起并折向报告背面,最后用胶水在后面粘牢。
2015年全国大学生电子设计竞赛数字频率计(F题)2015年8月15日摘要数字频率计可以直接计数单位时间内被测信号的脉冲数,并以数字形式显示频率值。
主要由四个部分构成:输入电路、时基(T)电路、计数显示电路以及控制电路。
首先通过OP37G把输入信号进行放大,由施密特触发器CD40106整形,由于其对正向和负向增长的信号有不同的阀值电压,使得高低电平具有迟滞性,得到更稳定的方波。
接着通过74LS160对过高频率的信号进行分频;而后通过AT89S52控制闸门电路来控制计数器计数的标准时间,再由计数器对通过的高电平进行计数,用数码管显示计数后的高电平数,即得到被测信号的频率。
关键词:AT89S52、放大整形电路、施密特触发器、分频、时基电路、数码管目录1引言: 02系统理论分析与设计 02.1放大电路的选择: 02.2整形电路: 02.3分频电路 (1)2.4计数模块 (1)2.5显示模块 (1)3电路与程序设计 (1)3.1电路的设计 (1)3.1.1系统总体框图 (1)3.1.2 电路原理图 (2)3.1.3电源 (3)3.2程序的设计 (3)3.2.1程序功能描述与设计思路 (3)3.2.2程序流程图 (3)4测试方案与测试结果 (5)4.1测试方案 (5)4.2 测试条件与仪器 (6)4.3 测试结果及分析 (6)4.3.1测试结果(数据) (7)4.3.2测试分析与结论 (7)附录1:电路原理图 (8)附录2:源程序 (9)数字频率计(F题)1引言:数字计数式频率计能直接计数单位时间内被测信号的脉冲数,然后以数字形式显示频率值。
数字计数器主要由四个部分构成:输入电路、时基(T)电路、计数显示电路以及控制电路。
…………………①……………….……第一装订折叠线……………….…①……………….第一装订折叠线…………………………①………………………2015年全国大学生电子设计竞赛(题)2015年9月6日…………………①……………….……第一装订折叠线……………….…①……………….第一装订折叠线…………………………①………………………摘要*********************************************************************** *************************************************************************** *************************************************************************** *************************************************************************** *******************************************************************(300字以内,宋体小四)。
关键词:#####,####,####,####(最多5个)…………………①……………….……第一装订折叠线……………….…①……………….第一装订折叠线…………………………①………………………目录目录自动生成!目录最多显示三级标题,字体宋体,字号自定…………………①……………….……第一装订折叠线……………….…①……………….第一装订折叠线…………………………①………………………报告正文长度限A4纸8页以内,一级标题三号黑体字,二级标题小三号黑体字,三级标题四号宋体字,其他标题均为小四号宋体字,正文采用小四号宋体字。
每页右下端注明页码。
2015年全国大学生电子设计竞赛风力摆控制系统(B题)2015年8月14日摘要当今的闭环自动控制技术都是基于反馈的概念以减少不确定性。
反馈理论的要素包括三个部分:测量、比较和执行。
测量关心的是被控变量的实际值,与期望值相比较,用这个偏差来纠正系统的响应,执行调节控制。
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。
本课题要设计的是风力摆控制系统,通过轴流风机使摆杆摆动,通过主控K60控制轴流风机的各风机风力,使风力摆按照一定规律运动,下端的激光笔在地面上画出要求的轨迹。
关键词:风力摆;轴流风机;PID;K60;目录一、系统方案 (1)1、XXXX的论证与选择 (1)2、XXXX的论证与选择 (1)3、控制系统的论证与选择 (1)二、系统理论分析与计算 (1)1、XXXX的分析 (1)(1)XXX (1)(2)XXX (1)(3)XXX (1)2、XXXX的计算 (2)(1)XXX (2)(2)XXX (2)(3)XXX (2)3、XXXX的计算 (2)(1)XXX (2)(2)XXX (2)(3)XXX (2)三、电路与程序设计 (2)1、电路的设计 (2)(1)系统总体框图 (2)(2)XXXX子系统框图与电路原理图 (2)(3)XXXX子系统框图与电路原理图 (2)(4)电源 (3)2、程序的设计 (3)(1)程序功能描述与设计思路 (3)(2)程序流程图 (3)四、测试方案与测试结果 (3)1、测试方案 (3)2、测试条件与仪器 (4)3、测试结果及分析 (4)(1)测试结果(数据) (4)(2)测试分析与结论 (4)五、结论与心得 (4)六、参考文献 (4)附录1:电路原理图 (5)附录2:源程序 (6)XXXXXXXX(X题)【本科组】一、系统方案本系统主要由XXX模块、XXX模块、XXX模块、电源模块组成,下面分别论证这几个模块的选择。
数字显示脉冲参数测试仪(A 题)摘要:本文设计的是一个数字显示脉冲信号参数测试仪,实现对脉冲信号的参数测量。
根据需要完成的功能,分为:前端信号处理模块、峰值检波模块、窗口比较器模块、AD/DA模块、电源模块等。
本设计中,信号经峰值检波器后,信号被AD提取,MCU根据AD的结果切换到合适的档位获取脉冲幅值信息。
MCU同时输出适当的电压给窗口比较器,使比较器输出含频率、上升沿、下降沿、正脉宽等信息的脉冲,FPGA对信息脉冲精准处理,并将处理结果传给MCU,MCU将结果数字显示,从而实现各种参数的测量与显示。
本设计中的信号处理部分,利用FPGA的强大处理能力,完成数字信号的处理,将处理后的信号送至单片机进行显示,综合应用了电容去耦、滤波以及同轴电缆等抗干扰措施,减少的电路中的干扰。
经验证,本方案完成了全部基本功能和大部分扩展功能。
关键词:峰值检波窗口比较器脉冲参数测试等精度测频目录一、系统设计与方案论证 (2)1.1 前端信号处理部分 (2)1.2 信号幅值测量部分。
(2)1.3 频率测量部分 (2)1.4 时间沿、占空比测量部分 (3)二、硬件电路设计 (4)2.1系统框图 (4)2.2前端信号处理电路设计 (4)2.3峰值检波器电路设计 (5)2.4比较器部分电路设计 (5)2.5电源部分 (6)三、软件设计 (7)四、测试结果 (10)参考文献 (15)一、系统设计与方案论证1.1 前端信号处理部分由于信号幅度跨度大(20mv-5V),所以对于不同幅值的信号需要进行适当的处理后才能让后继电路精准的测出幅值。
方案一:采用高速AD直接方案,由于在上升沿极短时,需要对AD的速度有较高要求才能采到足够多的信号点进行处理,但高速AD在考虑到成本时位数比较低,精度较差。
且对信号处理的平台要求较高,性价比低。
方案二:采用继电器进行档位切换,对小信号放大,中等幅值信号跟随,大幅值信号衰减以便后继电路进行处理。
此处贴密封纸,然后掀起并折向报告背面,最后用胶水在后面粘牢。
2015年全国大学生电子设计竞赛数字频率计(F题)2015年8月15日摘要数字频率计可以直接计数单位时间内被测信号的脉冲数,并以数字形式显示频率值。
主要由四个部分构成:输入电路、时基(T)电路、计数显示电路以及控制电路。
首先通过OP37G把输入信号进行放大,由施密特触发器CD40106整形,由于其对正向和负向增长的信号有不同的阀值电压,使得高低电平具有迟滞性,得到更稳定的方波。
接着通过74LS160对过高频率的信号进行分频;而后通过AT89S52控制闸门电路来控制计数器计数的标准时间,再由计数器对通过的高电平进行计数,用数码管显示计数后的高电平数,即得到被测信号的频率。
关键词:AT89S52、放大整形电路、施密特触发器、分频、时基电路、数码管目录1引言: (1)2系统理论分析与设计 (1)2.1放大电路的选择: (1)2.2整形电路: (1)2.3分频电路 (2)2.4计数模块 (2)2.5显示模块 (2)3电路与程序设计 (2)3.1电路的设计 (2)3.1.1系统总体框图 (2)3.1.2 电路原理图 (3)3.1.3电源 (4)3.2程序的设计 (4)3.2.1程序功能描述与设计思路 (4)3.2.2程序流程图 (4)4测试方案与测试结果 (6)4.1测试方案 (6)4.2 测试条件与仪器 (7)4.3 测试结果及分析 (7)4.3.1测试结果(数据) (8)4.3.2测试分析与结论 (8)附录1:电路原理图 (9)附录2:源程序 (10)数字频率计(F题)1引言:数字计数式频率计能直接计数单位时间内被测信号的脉冲数,然后以数字形式显示频率值。
数字计数器主要由四个部分构成:输入电路、时基(T)电路、计数显示电路以及控制电路。
首先通过宽带前置放大电路把输入信号进行放大,由CD40106整形得到能被计数器识别的脉冲波;接着通过74LS160对过高频率的信号进行分频;而后通过AT89S52控制闸门电路来控制计数器计数的标准时间,再由计数器对通过的脉冲信号进行计数,用LCD1602显示计数后的脉冲数,即得到被测信号的频率。
本系统主要由放大整形模块、分频模块、计数模块、显示模块、电源模块构成,整体流程框图如下:2系统理论分析与设计2.1放大电路的选择:因为输入的被测信号幅值不确定,在本设计中要求测量的幅值在50MV-1V之间,所以必须在对脉冲技术前必须对信号进行处理,使其转化为能被计数器识别的高电平。
方案一:三极管放大优势:放大的可调性更高,缺点:三极管的放大特性在高频时不稳定,只适用于中低频的放大。
且单个三极管的放大倍数有限,对于幅值极低的信号无法满足。
方案二:运算放大器放大优势:电路简单,集成度高,比较稳定缺点:运算放大器就是由多个三极管集成,单其参数固定,放大倍数足够。
且运算放大器的工作范围较大,对于较高频率的信号同样适用。
综合考虑本设计的需求,我们决定采用运算放大器进行信号的放大,因为本次设计的要求是达到10MHZ以上,采用三极管无法处理这么高的频率。
因此采用运算放大器。
2.2整形电路:由于输入的信号可以是正弦波,三角波。
而后面的闸门或计数电路要求被测信号为矩形波,所以需要设计一个整形电路则在测量的时候,首先通过整形电路将正弦波或者三角波转化成矩形波。
方案1:使用电压比较器优点:电路简单,使用方便,容易受到噪声干扰。
缺点:输出的方波不够平稳,在输入的波形不稳定的情况下,电压比较器不能在同样的地方开启,使得输出的方波占空比不稳定。
且当电流不够大时,波形边沿不够陡峭。
方案2:使用施密特触发器优点:因为对正向和负向增长的输入信号具有不同的阀值电压,从而使传输特性具有迟滞特性。
使得输出的波形保持在两种状态之间,较为稳定。
可避免噪声误触发电路。
缺点:对于以0V及以上为低电平的信号,施密特触发器处理效果不好。
综合考虑这两种整形电路,因为本设计只需要多方波和正弦波进行处理,所以决定采用施密特触发器,因其处理的波形更稳定,且能有效避免杂波的干扰。
2.3分频电路因为AT89S52单片机对于1MHZ以上的信号处理比较吃力,所以在对经过放大整形后的脉冲进行计数时,要先对高频的部分进行分频,使其降低到单片机可计数的频段,而后在显示时输出计数的数值乘以相应的分频倍数。
可以选用74LS160计数器对其进行分频,74LS160可以实现任意倍数的分频,比较方便。
我们将输入信号的频率范围分为三个频段:1HZ到100kHZ为低频段,此频段可直接输入单片机进行计数;100kHZ到1MHZ为中频段,放大整形后进行10分频,输入单片机计数;而1MHZ到10MHZ为高频段,放大整形后进行100分频再输入单片机计数。
最后的显示模块即由计数器得到的脉冲数再乘以相应的放大倍数输出显示,即为输入信号的频率。
2.4计数模块计数模块由T89S52单片机进行计数2.5显示模块显示模块由AT89S52单片机进行控制,我们考虑到了数码管显示和LCD1602显示这两种显示方式。
方案一:数码管显示优点:简单明了,数据一目了然缺点:只能显示数字,不能显示其他的提示。
方案二:LCD1602显示优点:可以显示其他提示,使得显示的内容更加全面缺点:成本稍高。
3电路与程序设计3.1电路的设计3.1.1系统总体框图系统总体框图如图1所示\图1 系统总体框图 3.1.2 电路原理图1、宽带放大模块系统框图图2 放大子系统框图2、整形、分频子系统电路图3 整形、放大子系统电路宽带放大、整形分频,脉冲信号 信号源AT89C532单片机 数码管显示3、显示电路图4、显示电路3.1.3电源电源由变压部分、滤波部分、稳压部分组成。
为整个系统提供5V电压,确保电路的正常稳定工作。
这部分电路比较简单,都采用三端稳压管实现,故不作详述。
3.2程序的设计3.2.1程序功能描述与设计思路1、程序功能描述根据题目要求软件部分主要实现自动分档和显示。
1)键盘实现功能:设置频率值、频段、电压值以及设置输出信号类型。
2)显示部分:显示频率、周期、档位。
2、程序设计思路3.2.2程序流程图1、主程序流程图2、显示模块子程序流程图4测试方案与测试结果4.1测试方案1、放大整流模块电路测试:图5 宽带放大电路如图是对放大模块的测试,当输入信号频率在200KHZ以下,波形显示正常,函数信号发生器发出的信号源经过OP37放大过之后,通过示波器观察输出的是频率与信号源相同,幅值为4V到5V的脉冲信号。
施密特触发器CD40106,得出的是频率与信号源相同,幅值为5V的方波,符合计数器的幅值要求。
但输入频率超过200KHZ,OP37输出波形严重失真,并逐渐归零,无法计数。
2、软件仿真测试采用Multisim仿真软件,用软件画好仿真电路,写入编号的程序,查看现象。
图6 输入信号波形图7 输出信号波形图8 软件仿真数码管示数3、硬件软件联调当输入信号频率在200KHZ以下,数码管显示正常与函数信号发生器输出波形的频率一致,误差极小。
当输入频率超过200KHZ,数码管显示数值不再与信号源一致,并逐渐归零。
4.2 测试条件与仪器测试条件:检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。
测试仪器:函数信号发生器、模拟示波器、数字万用表、数字频率计、5V直流电源、Multisim仿真软件4.3 测试结果及分析Multisim软件仿真结果与实际电路测试结果不同,推测应该是OP37的最大工作频率在200KHZ以下,所以在高频阶段OP37无法正常,故频率计无法正常显示。
而在我们实验室现有的器材中,OP37可以达到的工作频率已经是最高,故受器材限制,频率计无法更进一步,测量更高的信号频率。
4.3.1测试结果(数据)4.3.2测试分析与结论根据上述测试结果,当输入信号超过200KHZ时,频率计的误差就开始增大,当频率越来越大时,频率计示数越来越不稳定,当信号到达3MHZ是示数完全归零由此可以得出以下结论:1、当输入信号在200 KHZ以下时,数字频率计的示数很精确,误差极小,可以正常使用。
2、当输入信号超过200KHZ,数字频率计的示数开始不稳定,一直到2MHZ左右,越来越不稳定,当输入信号超过3MHZ,频率计示数完全归零。
3、频率计只可以在低于200KHZ的频率时能够实现信号频率的精准测量,即只能测量中低频的信号。
综上所述,本设计未达到设计要求。
附录1:电路原理图附录2:源程序#include <reg52.h>#define value P0#define place P1unsigned char d[4];unsigned char Num[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; sbit clear=P2^3;sbit ledG=P2^4;sbit ledY=P2^5;sbit ledR=P2^6;unsigned char count=0;unsigned char gears;unsigned int tN;unsigned int fCnta;unsigned long regCnta;unsigned int fCntb;unsigned long regCntb;unsigned long pCnt;void Delay(unsigned int DelayTime){while(DelayTime--);}void display(){if(gears==1){d[3]=0;d[2]=pCnt/100;d[1]=(pCnt%100)/10;d[0]=pCnt%10;place=0x01;value=Num[d[3]];Delay(200);place=0x02;value=Num[d[2]];Delay(200);place=0x04;value=Num[d[1]];Delay(200);place=0x08;value=Num[d[0]];Delay(200);ledY=1;ledR=0;}if(gears==2){d[3]=pCnt/1000;d[2]=(pCnt%1000)/100;d[1]=(pCnt%100)/10;d[0]=pCnt%10;place=0x01;value=Num[d[3]];Delay(300);place=0x02;value=Num[d[2]];Delay(300);place=0x04;value=Num[d[1]]+0x80;Delay(300);place=0x08;value=Num[d[0]];Delay(300);ledG=1;ledY=0;ledR=1;}if(gears==3){d[3]=pCnt/1000;d[2]=(pCnt%1000)/100;d[1]=(pCnt%100)/10;d[0]=pCnt%10;place=0x01;value=Num[d[3]]+0x80;Delay(50);place=0x02;value=Num[d[2]];Delay(50);place=0x04;value=Num[d[1]];Delay(50);place=0x08;value=Num[d[0]];Delay(50);ledG=0;ledY=1;ledR=1;}if(gears==4){d[2]=0;d[1]=0;d[0]=0;place=0x01;value=Num[d[3]];Delay(100);place=0x02;value=Num[d[2]];Delay(100);place=0x04;value=Num[d[1]];Delay(100);place=0x08;value=Num[d[0]];Delay(100);ledG=0;ledY=0;ledR=0;}}void intialize(){clear=1;ledG=1;ledY=1;ledR=0;TMOD=0x66;gears=1;RCAP2H=(65536-62500)/256;RCAP2L=(65536-62500)%256;TH2=RCAP2H;TL2=RCAP2L;tN=16;ET2=1;TR2=1;ET0=1;TR0=1;ET1=1;TR1=1;TH0=0;TL0=0;TH1=0;TL1=0;EA=1;void main(){intialize();while(1){display();}}void timer2() interrupt 5{count++;TF2=0;if(count==tN){EA=0;regCnta=(long)fCnta*256+TL1;regCntb=(long)fCntb*256+TL0;TL1=0;TH1=0;TL0=0;TH0=0;fCnta=0;fCntb=0;count=0;clear=0;clear=1;if(gears==1){if(regCnta<1000){pCnt=regCnta;}else{gears=2;}else if(gears==2){regCntb=regCntb*10/100;if(regCntb>=10&®Cntb<10000){pCnt=regCntb;}else if(regCntb>=10000){gears=3;}}else if(gears==3){regCntb=regCntb*10/1000;if(regCntb<10000){pCnt=regCntb;}else if (regCntb>=10000){gears=4;}}else if(gears==4){if(regCntb<2500)gears=1;}EA=1;}}void tally1() interrupt 3{fCnta++;}void tally0() interrupt 1{fCntb++;。