基于单片机的数字频率计的课程设计 1HZ-10MHZ_第1页
基于单片机的数字频率计的课程设计 1HZ-10MHZ_第2页
基于单片机的数字频率计的课程设计 1HZ-10MHZ_第3页
基于单片机的数字频率计的课程设计 1HZ-10MHZ_第4页
基于单片机的数字频率计的课程设计 1HZ-10MHZ_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、物理与电子信息系课程设计报告课程名称: 单片机课程设计 题 目: 基于单片机数字频率计的设计 学生姓名: 谢叮咚 学 号:11417222 系 部: 物理与电子信息系 2011级 指导教师: 余 胜 职 称: 讲 师 湖南人文科技学院物理与电子信息系制目 录1.引言. . . .1 1.1 数字频率计的发展与意义. . .1 1.2 数字频率计的分类. . .21.3 频率计国内外的发展趋势. .22. 系统总体设计. . .2 2.1系统设计要求. . . .2 2.2测频方法. . . .3 2.3系统设计思路. . .3 2.4系统设计框图. . .33. 系统设计. . . .43.1

2、单片机模块. . .43.2放大整形模块. .83.3分频模块. . . .93.4显示电路. . .104. 系统软件设计. .12 4.1开始. . . .124.2初始化模块.124.3 频率测量模块和量程自动切换模块. . .134.4显示模块. . . . . . 144.5延时模块. . . . . .144.6频率计仿真. . . . .155. 总结与体会. . . .196. 参考文献. . . .207.附录A程序源代码. . . .208.附录B仿真效果图. . . .269.附录C DXP模块原理图与PCB板. . . .2710.附录D 实物调试图. . . . .2

3、8一、引言1.1 数字频率计的发展和意义随着电子技术的飞速发展,各类分立电子元件及其所构成的相关功能单元,已逐步被功能更强大、性能更稳定、使用更方便的集成芯片所取代。由集成芯片和一些外围电路构成的各种自动控制、自动测量、自动显示电路遍及各种电子产品和设备已广泛应用于各个领域,更新换代速度可谓日新月异。与传统的测量方式相比,运用了单片机频率计有着体积更小,运算速度更快,测量范围更宽和制作成本更低的优点。由于传统的频率计中有许多功能是依靠硬件来实现的,而采用单片机测量频率之后,有许多以前需要用硬件才能实现的功能现在仅仅依靠软件编程就能实现,而且不同的软件编程代码能够实现不同的功能,从而大大降低了制

4、作成本。数字频率计主要实现方法有直接式、锁相式、直接数字式和混合式四种。直接式的优点是速度快、相位噪声低,但结构复杂、杂散多,一般只应用在地面雷达中。锁相式和直接数字式都同时具有容易实现产品系列化、小型化、模块化和工程化的特点,其中,锁相式更是以其容易实现相位同步的自动控制且低功耗的特点成为众多业内人士的首选,应用最为广泛。1.2数字频率计的分类按功能分类,电子计数器有通用和专用之分。通用型计数器是一种具有多种测量功能、多种用途的万能计数器,它可测量频率、周期、多周期平均值、时间间隔、累加计数、计时等。专用计数器指专门用来测量某种单一功能的计数器。 按频段分类有低速频率计数器、中速频率计数器、

5、高速频率计数器和微波频率计数器之分。其中低速频率计数器最高计数频率小于10MHZ;中速频率计数器最高频率计数频率为10到100MHZ;高速频率计数器最高计数频率大于100MHZ;微波频率计数器的测频范围为1到80GHZ或更高。1.3 数字频率国内外的发展形势数字电路制造工业的进步,使得系统设计人员能在更小的空间内实现更多的功能,从而提高系统可靠性和速度。现如今,数字频率计已经不仅仅是测量信号频率的装置了,还可以测量方波的脉宽。在人们的生产生活中数字频率计也发挥着越来越重要的作用,比如有数字频率计来监控生产过程,这样可以及时发现系统运行中的异常情况,以便给人们争取时间处理。 除此之外,它还可以应

6、用于工业控制等其它领域。在传统的电子测量仪器中,示波器在进行频率测量时测量精度较低,误差较大。频谱仪可以准确的测量频率并显示被测信号的频谱,但测量速度较慢,无法实时快速地跟踪捕捉到被测信号的频率变化。正是由于频率计能够快速准确地捕捉到被测信号频率的变化,因此频率计拥有非常广泛的应用范围。目前,市场上的频率计厂家可分为三类:中国大陆厂家、中国台湾厂家、欧美厂家。其中,欧美频率计厂家所占有的市场份额最大。欧美频率计厂家主要有:Pendulum Instruments 和 Agilent科技。 现如今,对于频率计的设计目前也有专用芯片可以实现,如利用MAXIM公司的ICM7240来设计频率计,但由于

7、这种芯片的计数频率比较低,远不能达到在一些场合而要测量很高的频率要求,而且测量精度也受到芯片本身的限制,因此提出用AT89C52单片机设计频率计来解决这些问题,从而实现高精度,宽范围测量的频率计的设计。二、系统总体设计2.1 系统设计要求本课题设计技术要求: 1、用十进制数字显示被测信号的频率,能测量正弦信号、方波信号、尖脉冲信号以及其他各种单位时间内变化的物理量。2、能测量周期性正弦方波信号.测量范围100Hz100kHz。测量正弦信号、方波信号,测量范围100Hz100kHz。 3、应用单片机为主控芯片,完成算术运算和控制功能,并采用LED数码管显示所测频率。2.2 测频方法本次课程设计采

8、用脉冲定时测频法和脉冲分频测频法测周法:在频率、速度等脉冲类测量过程中,采集指定的脉冲个数,与过程时间比较来测定频率、速度。这样的采样方式就是定数采样或定脉冲采样。这种方法其实是测量单个脉冲的周期或指定个数脉冲的总周期。测频法:在频率、速度等脉冲类测量过程中,在指定的时间内,计量脉冲个数,让脉冲个数与指定的时间比较来测定频率、速度。这样的采样方式就是定时采样。这种方法其实是测量单位时间的脉冲个数。2.3 系统设计思路以单片机AT89C52单片机为核心,设计一种数字频率计,它由放大整形电路、分频电路、多路选择器、单片机、显示电路等组成,应用单片机中的定时/计数器和中断系统等完成频率的测量。在整个

9、设计过程中,放大整形电路是把非矩形波转化成矩形波,这样单片机才能识别;分频电路是为了测量更高频率的信号,多路数据选择器是用来选择输入信号的;单片机用来测量频率和切换量程等;显示电路用来显示频率值。所制作的频率计采用外部十分频,实现1Hz10MHz的频率测量,而且可以实现量程自动切换,通过四位数码管显示频率值,再用不同的LED发光二极管显示频率值的单位。2.4 系统设计框图本课题设计以单片机为核心,设计一种数字频率计,应用单片机中的定时器/计数器和中断系统等完成频率的测量。其中包括放大整形模块、分频模块、单片机模块、显示模块等。图1 频率计总体设计框图三、系统硬件设计根据系统设计的要求,频率计实

10、际需要设计的硬件系统主要包括以下几个部分:单片机模块、放大整形模块、分频模块及显示模块,下面将分别给予介绍。3.1 单片机模块以AT89C52单片机为控制核心,来完成对待测信号的计数、译码和显示以及对分频比的控制,利用其内部的定时计数器完成待测信号频率的测量。单片机AT89C52内部具有3个16位定时计数器,定时计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。3.1.1 AT89C52介绍AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL

11、公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。图2 PDIP封装的AT89C52引脚图3.1.2 单片机引脚分配根据系统设计及各模块的分析得出,单片机的引脚分配如下表所示。表1 单片机端口分配表模 块端口功能显示模块P1.0-P1.3、P0.0-P0.7数码管频率值显示P2.4-P2.6LED单位显示分频模块P3.4、P3.5通道选择P2.3清零复位模块RST、EA复位3.1.3 复位电路有时系统在运行过程中出现程序跑飞的情况,因此在程序开发过程中需要复位。本次设计采用手动复位,通

12、过复位可以再次测量信号或测量新的信号。复位电路通常分为两种:上电复位(图3)和手动复位(图4)。 图3 上电复位 图4 手动复位3.1.4 定时/计数器方式寄存器TMOD:特殊功能寄存器TMOD为T0、T1的工作方式寄存器,其格式如下: D7 D6 D5 D4 D3 D2 D1 D0GATEC/TM1M0GATEC/TM1M0 T1方式字段 T0方式字段TMOD的低4位为T0的方式字段,高4位为T1的方式字段,它们的含义是完全相同的。1.工作方式选择位M1,M0M1,M0两位确定计数器的结构方式,其对应关系如下表:M1 M0工作方式 功 能 说 明0 1 方式0 13位计数器0 1 方式1 1

13、6位计数器1 0 方式2 初值自动重新装入的8位计数器1 1 方式3仅适用于T0,分为两个8位计数器,T1在方式3停止计数表2 计数器结构方式功能表2. 定时器方式和外部事件计数方式选择位C/TC/T=0为定时方式。在定时方式中,以振荡器输出时钟脉冲的十二分频信号作为计数信号,也就是每一个机器周期定时器加“1”。若晶振为12MHZ,则定时器计数频率为1MHZ,计数的脉冲周期为1us。定时器从初值开始加“1”计数直至定时器溢出所需的时间是固定的,所以称为定时方式。C/T=1为外部事件计数方式,这种方式采用外部引脚(T0为P3.4,T1为P3.5)上的输入脉冲作为计数脉冲。内部硬件在每个机器周期采

14、样外部引脚的状态,当一个机器周期采样到高电平,接着的下一个机器周期采样到低电平时计数器为1,也就是说在外部输入电平发生负跳变时为1。外部事件计数时最高计数频率为晶振频率的二十四分之一,外部输入脉冲高电平和低电平时间必须在一个机器周期以上。对外部输入脉冲计数的目的通常是为了测试脉冲的周期、频率或对输入的脉冲数进行累加。3. 门控位GATEGATE为1时,定时器的计数受外部引脚输入电平的控制( INT0控制T0的计数, INT1控制T1的计数);GATE为0时定时器计数不受外部引脚输入电平的控制。T2CON(T2的控制寄存器),字节地址0C8H:位地址 0CFH  0CEH&#

15、160; 0CDH  0CCH  0CBH  0CAH  0C9H  0C8H符 号  TF2  EXF2  RCLK  TCLK  EXEN2 TR2  C/T2  CP/RT2各位的定义如下:TF2: 定时/计数器2溢出标志,T2溢出时置位,并申请中断。只能用软件清除,但T2作为波特率发生器使用的时候,(即RCLK=1或TCLK=1)

16、,T2溢出时不对TF2置位。EXF2:当EXEN2=1时,且T2EX引脚(P1.0)出现负跳变而造成T2的捕获或重装的时候,EXF2置位并申请中断。EXF2也是只能通过软件来清除的。RCLK:串行接收时钟标志,只能通过软件的置位或清除;用来选择T1(RCLK=0)还是T2(RCLK=1)来作为串行接收的波特率产生器TCLK:串行发送时钟标志,只能通过软件的置位或清除;用来选择T1(TCLK=0)还是T2(TCLK=1)来作为串行发送的波特率产生器EXEN2:T2的外部允许标志,只能通过软件的置位或清除;EXEN2=0:禁止外部时钟触发T2;EXEN2=1:当T2未用作串行波特率发生器时,允许外

17、部时钟触发T2,当T2EX引脚输入一个负跳变的时候,将引起T2的捕获或重装,并置位EXF2,申请中断。TR2:T2的启动控制标志;TR2=0:停止T2;TR2=1:启动T2C/T2:T2的定时方式或计数方式选择位。只能通过软件的置位或清除;C/T2=0:选择T2为定时器方式;C/T2=1:选择T2为计数器方式,下降沿触发。CP/RT2:捕获/重装载标志,只能通过软件的置位或清除。CP/RT2=0时,选择重 装载方式,这时若T2溢出(EXEN2=0时)或者T2EX引脚(P1.0)出现负跳变(EXEN2=1时),将会引起T2重装载;CP/RT2=1时,选择捕获方式,这时若T2EX引脚(P1.0)出

18、现负跳变(EXEN2=1时),将会引起T2捕获操作。但是如果RCLK=1或TCLK=1时,CP/RT2控制位不起作用的,被强制工作于定时器溢出自动重装载模式。T2MOD(方式寄存器),字节地址0C9H: D7   D6   D5   D4   D3     D2   D1    D0-   -   -   -

19、   -    -   T2OE   DCENT2OE:T2输出允许位,当T2OE=1的时候,允许时钟输出到P1.0。(仅对80C54/80C58有效)DCEN:向下计数允许位。DCEN=1是允许T2向下计数,否则向上计数。T2的数据寄存器TH2、TL2和T0、T1的用法一样,而捕获寄存器RCAP2H、RCAP2L只是在捕获方式下,产生捕获操作时自动保存TH2、TL2的值。3.2 放大整形模块由于输入的信号可以是正弦波、三角波、矩形波等,而后面的闸门或计数电路要求被

20、测信号为矩形波,所以需要设计一个整形电路则在测量的时候,首先通过整形电路将正弦波或者三角波转化成矩形波。在整形之前由于不清楚被测信号的强弱的情况。所以在通过整形之前通过放大衰减处理。本文采用单管共射极放大电路对信号进行放大和再由非门74LS00构成施密特触发器对输出的信号进行整形成矩形波后再次输出。3.2.1 与非门74LS0074LS00 为四组2 输入端与非门(正逻辑),共有 54/7400、54/74H00、54/74S00、54/74LS00Y=(AB)非 InputInputOutputABYLLHLHHHLHHHL3.2.2 放大整形模块原理图此模块原理图:图5 放大整形电路原理图

21、3.3 分频模块本文采用12MHZ的时钟,最大计数速率为500 kHz,因此需要外部分频。分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。为了测量提高精度,当被测信号频率值较低时,直接使用单片机计数器计数测得频率值;当被测信号频率值较高时采用外部十分频后再计数测得频率值。这两种情况使用T1(P3.5)和TO(P3.4,程序定义为十分频接入口)计数选择,由单片机先简单测得被测信号是高频信号还是低频信号,然后根据信号频率值的高低进行通道的相应选择,继而测得相应频率值。因此此模块主要包括分频器74LS161、与非门74LS0

22、0。3.3.1 分频器74LS161芯片74LS161是常用的四位二进制可预置的同步加法计数器。 表4 74161的功能表从表中可以知道,当清零端RD=“0”,计数器输出Q3、Q2、Q1、Q0立即为全“0”,这个时候为异步复位功能。当RD=“1”且LD=“0”时,在CP信号上升沿作用后,74LS161输出端Q3、Q2、Q1、Q0的状态分别与并行数据输入端D3,D2,D1,D0的状态一样,为同步置数功能。而只有当RD=LD=EP=ET=“1”、CP脉冲上升沿作用后,计数器加1。74LS161还有一个进位输出端CO,其逻辑关系是CO= Q0·Q1·Q2·Q3·

23、;CET。合理应用计数器的异步清零功能和同步计数功能,一片74LS161可以组成16进制以下的任意进制分频器。本文组成了十进制的分频器。图6上图为分频电路3.4 显示电路显示模块由频率值显示电路和量程转换指示电路组成。频率值显示电路采用四位共阳极数码管动态显示频率计被测数值,量程转换指示电路由红、黄、绿三个LED分别指示Hz、KHz及MHz频率单位,使读数简单可观。数码管是一种半导体发光器件,其基本单元是发光二极管。常见的数码管由七个条状和一个点状发光二极管管芯制成,叫七段数码管,根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。根据管脚资料,可以判断使用的是何种接口类型。图7 两种数码

24、管内部原理图因为这里用的是共阳极数码管,它的公共端为高电平,因此要让其中各段(DP,A,B,C,D,E,F,G)的发光二极管发光,只要使它另一端置为低电平,即置0。3.4.1 频率数值显示电路 图8共阳极数码管显示电路图3.4.2 频率数值单位显示电路图9 LED档位指示电路四、系统软件设计本文中系统软件设计采用模块化设计,整个系统分为初始化模块、频率测量模块、量程自动切换模块和显示模块等。整个系统软件设计的程序由C语言编写,通俗易懂。系统软件设计模块框图:图10系统软件设计模块框图4.1 开始程序预处理,先声明头文件,定义一些变量。程序入口,main()函数框图:图11 主函数框图4.2 初

25、始化模块初始化模块初始化分频器、量程档位、LED显示、工作寄存器、中断控制和定时计数器的工作方式等。4.3 频率测量模块和量程自动切换模块经过初始化计数器1,每一次下降沿触发一次计数器1中断,每次中断执行中断处理程序则fCnt加1,因此fCnt为信号下降沿次数;经过初始化定时器0,每50ms触发一次定时器0中断,每次中断执行中断处理程序则对数据下降沿次数fCnt进行处理,通过对数据的大小判断实现量程自动切换等,从而计算出信号的频率,然后调用显示模块把频率值显示出来。其中,16位定时计数器的最高计数值为65535,因此,还需要先由硬件十分频后,再有定时计数器对被测信号计数,加大测量的精度和范围。

26、计数器0(或者1)和定时器2的中断处理框图: 图12 计数器0(或者1)中断处理 图13定时器2中断处理量程自动切换模块框图:图14 量程自动切换程序总流程图4.4 显示模块显示程序将频率值和量程档位在数码管和LED管显示出来。由于所有4位数码管的8 根段选线由单片机的P0口控制,因此,在每一瞬间4位数码管会显示相同的字符,要想每位显示不同的字符就必须采用扫描方法轮流点亮各位数码管,即在每一瞬间只点亮某一位显示字符,由P1.0-P1.3逐位轮流点亮各个数码管,在此瞬间,段选控制口P0输出相应字符。P2.4-P2.6控制三个发光二极管,通过光颜色的不同表示量程档位的不同。P1.0-P1.3对应共

27、阳极数码管的1,2,3,4;P0.0-P0.7对应共阳极数码管的A,B,C,D,E,F,G,DP;P2.4-P2.6对应发光二极管的颜色:绿色(MHZ档),黄色(KHZ),红色(HZ)。发光二极管全亮表示所测信号频率超出测量范围。显示模块框图:图15 显示子程序流程图4.5 延时模块延时模块框图: 图16 延时程序流程图4.6 频率计仿真4.6.1 用KEIL软件先创建工程,后导入bs.c文件,其中bs.c文件就是软件设计中的源代码:图17 keil软件应用图设置一些软件目标选项:由此打开选项:图18软件设置选项图点击后,弹出对话框并设置相关属性。点击按钮后,编译连接,若代码无问题,之后会生成

28、bs.hex文件,如下图:图19 (.hex)文件图4.6.2 使用软件Proteus仿真频率计信号的放大整形模块、分频模块和显示模块都要与单片机模块相连才能达到所需的要求,因此,这三个模块就一起仿真,用Proteus软件仿真如下图:图20 频率计仿真图其中需要注意是一些设置:单片机设置:图21 单片机属性设置图其中是需要导入由KEIL软件生成的"*.hex"文件,再是时钟频率为12MHZ。电源的设置: 图22 电源大小设置图设置电源为5V。4.6.3 频率计仿真运行调试设置如下:1. 给定1HZ的矩形信号波图23 频率计测量10HZ信号运行图其中红色LED亮,是表示数码管

29、显示的频率值是HZ档,也就是频率的单位是HZ,也就表明运行结果读数是1HZ。2.给定46.3kH的正弦波点击确定后,点击运行按钮,之后看频率计仿真运行情况: 图24 频率计测量46.3KHZ信号运行图3.0 给定9.643MHZ的矩形信号波后信号运行图图25 频率计测量9.643MHZ信号运行图其中绿色LED亮,是表示数码管显示的频率值是MHZ档,也就是频率的单位是MHZ,也就表明运行结果读数是9.643MHZ。4.0 给定超过量程信号波后,信号运行图如下其中三个LED灯都会点亮,数码管全部都显示为0五、总结与体会 通过此次设计,我受益匪浅。数字频率计是计算机、通讯设备、音频视频等科研生产领域

30、不可缺少的测量仪器。它是一种用十进制数字,显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号以及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精度高,显示直观,所以经常要用到数字频率计。通过此次设计,我熟练掌握了C语言的编写,仿真软件Proteus、编程软件KEIL和制版软件DXP 2004的应用,了解了相关元件的基本知识,同时还熟练掌握了对文献资料等的收集、查阅、应用。在设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的程序运行和仿真调试环节,本身就是在践行“过而能改,善莫大焉”的知行观,同时

31、在老师的指导下,终于完成了此次设计。此次设计也让我明白了思路即出路,有不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。参考文献1李学海著.标准80C51单片机基础教程.北京航空航天大学出版社,20062 戴仙金主编.51单片机及其C语言程序开发实例.清华大学出版社,20083 李诚人.高宏洋等.嵌入式系统及单片机应用,清华大学出版社,20054 龚运新编著.单片机C语言开发技术.清华大学出版社,20065 张天凡等编著.51单片机C语言开发详解.电子工业出版社,20086 张义和.王敏男等.例说51单片机(C语言版).人民邮电出版社,200

32、87 张洪润、刘秀英、张亚凡等.单片机应用设计200例 .北京航空航天大学出版社,20068 彭为、黄科、雷道仲等.单片机典型系统设计实例精讲.电子工业出版社, 20069 李学海著.标准80C51单片机基础教程.北京航空航天大学出版社,200610 李朝青单片机原理及接口技术M北京航天航空大学出版社,199811 余发山,王福忠.单片机原理应用技术M徐州:中国矿业大学出版社,200312V.Yu.Teplov,A.V. Anisimov.Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Mod

33、ules Based on the Peltier EffectJ ,2002 13 Yeager Brent.How to troubleshoot your electronic scaleJ. Powder and Bulk Engineering. 1995 14WeiXiaoRu,JuJianZhi.Design of a CCD's driving circuit based on ATmega16.Microcomputer&Its Applications,2010,(16).15HeLianYun,The Traffic Signal Lamp System

34、Controlled with Single Chip Microcomputer.Computer Study,2008,(01).附录A程序源代码:#include <reg52.h>/声明所需数据库头文件#definevalue P0/数码管显示,段选#define place P1 /位选unsigned char d4; /对应共阳极数码管的各位unsigned char Num10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/显示0-9数字,共阳/unsigned char Num10=0x3f,0x06,0x5

35、b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;显示0-9数字,共阴sbit clear=P23;sbit ledG=P24; /led显示频率量程单位和档位sbit ledY=P25;sbit ledR=P26;unsigned char count=0; /定时器2计数unsigned char gears; /档位unsigned int tN; /不同档位计时值unsigned int fCnta; /脉冲下降沿次数,T1unsigned long regCnta; /脉冲次数暂存unsigned int fCntb; /脉冲下降沿次数,T0unsigned

36、long regCntb; /脉冲次数暂存unsigned long pCnt; /频率显示void Delay(unsignedintDelayTime)while(DelayTime-);void display()if(gears=1) /HZ档d3=0;d2=pCnt/100;d1=(pCnt%100)/10;d0=pCnt%10;place=0x01;value=Numd3;Delay(200);place=0x02;value=Numd2;Delay(200);place=0x04;value=Numd1;Delay(200);place=0x08;value=Numd0;Dela

37、y(200);ledG=1;/显示HZ档,红色发光二极管点亮ledY=1;ledR=0; if(gears=2) /KHZ档 d3=pCnt/1000;d2=(pCnt%1000)/100;d1=(pCnt%100)/10;d0=pCnt%10;place=0x01;value=Numd3;Delay(300);place=0x02;value=Numd2;Delay(300);place=0x04;value=Numd1+0x80;Delay(300); place=0x08;value=Numd0;Delay(300); ledG=1; /显示KHz档,黄色发光二极管点亮ledY=0;le

38、dR=1; if(gears=3) /MHZ档 d3=pCnt/1000;d2=(pCnt%1000)/100;d1=(pCnt%100)/10;d0=pCnt%10;place=0x01;value=Numd3+0x80;Delay(50);/带小数点place=0x02;value=Numd2;Delay(50);place=0x04;value=Numd1;Delay(50);place=0x08;value=Numd0;Delay(50); ledG=0; /显示MHZ档,绿色发光二极管点亮ledY=1;ledR=1; if(gears=4) /超出范围 d3=0;d2=0;d1=0;

39、d0=0;place=0x01;value=Numd3;Delay(100);place=0x02;value=Numd2;Delay(100);place=0x04;value=Numd1;Delay(100);place=0x08;value=Numd0;Delay(100); ledG=0; /超出范围,红、黄、绿发光二极管都点亮 ledY=0;ledR=0;void intialize() /初始化clear=1; /分频器初始化 ledG=1; /LED显示Hz档ledY=1;ledR=0;TMOD=0x66; /计数器0,工作方式2(8位自动重装);计数器1,工作 方式2(8位自动重装

温馨提示

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

评论

0/150

提交评论