单片机课程设计报告——智能数字频率计汇总
基于单片机数字频率计课程设计报告

ABSTRACT
SCM is a semiconductor wafer on the integration of the central processing unit(CPU), memory (RAM/ROM), and all kinds of I/O interface, to study the typicalfunction module based on single chip microcomputer is the comprehensive use ofthe basic theory of scientific knowledge, the important link of practice, has an important influence on the learning skills of students, is to learn to in practice the important significance of excessive, the design of the. The completed design of the circuit of some typical MCU through conception, design, debug, modify theprogram.
第二章 89S51单片机扩展储存器的设计........................................................................... ......3
2.1 系统扩展结构............................................................................................................. .....3
数字频率计课程设计报告

《数字频率计》技术报告一、问题的提出在传统的电子测量仪器中,示波器在进行频率测量时测量精度较低,误差较大。
频谱仪可以准确的测量频率并显示被测信号的频谱,但测量速度较慢,无法实时快速地跟踪捕捉到被测信号频率的变化。
而频率计则能够快速准确的捕捉到被测信号频率的变化。
在传统的生产制造企业中,频率计被广泛的应用在生产测试中。
频率计能够快速的捕捉到晶体振荡器输出频率的变化,用户通过使用频率计能够迅速的发现有故障的晶振产品,确保产品质量。
在计量实验室中,频率计被用来对各种电子测量设备的本地振荡器进行校准。
在无线通讯测试中,频率计既可以被用来对无线通讯基站的主时钟进行校准,还可以被用来对无线电台的跳频信号和频率调制信号进行分析。
数字频率计是一种用数字显示的频率测量仪表,它不仅可以测量正弦信号、方波信号和尖脉冲信号的频率,而且还能对其他多种物理量的变化频率进行测量,诸如机械振动次数,物体转动速度,明暗变化的闪光次数,单位时间里经过传送带的产品数量等等,这些物理量的变化情况可以由有关传感器先转变成周期变化的信号,然后用数字频率计测量单位时间内变化次数,再用数码显示出来。
二、解决技术问题及指标要求1、技术指标被测信号:正弦波、方波或其他连续信号;采样时间:1秒(0.1秒、10秒);显示时间:1秒(2秒、3秒......);LED显示;灵敏度:100mV;测量误差:±1Hz。
数字频率计是一种专门对被测信号频率进行测量的电子测量仪器。
其最基本的工作原理为:当被测信号在特定时间段T内的周期个数为N时,则被测信号的频率f=N/T。
一般T=1s,所以应要求定时器尽量输出为1s的稳定脉冲。
2、设计要求可靠性:系统准确可靠。
稳定性:灵敏度不受环境影响。
经济性:成本低。
重复性:尽量减少电路的调试点。
低功耗:功率小,持续时间长。
三、方案可行性分析(方案结构框图)率,而且还可以测量它们的周期。
经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;可以测量电容做成数字式电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。
单片机数字频率计课程设计

单片机数字频率计课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解数字频率计的工作机制。
2. 使学生能够运用单片机编程实现数字频率计的功能,包括计时、计数和显示。
3. 让学生了解数字频率计在实际应用中的重要性,如信号处理、电子测量等领域。
技能目标:1. 培养学生运用单片机进行数字频率计设计和编程的能力。
2. 培养学生运用相关软件(如Keil、Proteus等)进行电路仿真和调试的能力。
3. 提高学生的动手实践能力,学会在实际操作中发现问题、解决问题。
情感态度价值观目标:1. 激发学生对电子技术和单片机编程的兴趣,培养其创新精神和实践能力。
2. 培养学生严谨的科学态度,注重实验数据的准确性和可靠性。
3. 增强学生的团队协作意识,学会在项目合作中相互支持、共同进步。
课程性质:本课程为实践性较强的课程,要求学生在掌握理论知识的基础上,进行实际操作和项目实践。
学生特点:学生具备一定的单片机基础知识,对编程和电路设计有一定了解,但实际操作能力有待提高。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,以项目为导向,培养学生的动手实践能力和创新能力。
通过课程学习,使学生能够独立完成单片机数字频率计的设计和编程任务,达到课程目标所要求的具体学习成果。
二、教学内容1. 理论知识:- 单片机原理和结构:介绍单片机的内部组成、工作原理及性能特点。
- 数字频率计原理:讲解频率的概念、测量原理及其在电子测量中的应用。
- 编程语言:回顾C语言基础知识,重点掌握单片机编程相关语法。
2. 实践操作:- 电路设计:学习使用Proteus软件设计数字频率计电路,包括单片机、计数器、显示模块等。
- 程序编写:运用Keil软件编写数字频率计程序,实现计数、计时和显示功能。
- 仿真调试:在Proteus环境下进行电路仿真,调试程序,确保其正常运行。
3. 教学大纲:- 第一周:回顾单片机原理和结构,学习数字频率计原理。
基于51单片机的频率计设计报告

基于51单片机的频率计设计报告
在该设计报告中,我将介绍基于51单片机的频率计的设计原理、硬件设计和软件设计。
设计原理:
频率计是一种用于测量信号频率的仪器。
基于51单片机的频率计的设计原理是利用单片机的定时计数器来测量输入信号的脉冲个数,然后将脉冲个数转换为频率。
硬件设计:
硬件设计主要包括输入信号的采集电路、计数电路和显示电路。
输入信号的采集电路使用一个比较简单的电路,包括一个电阻和一个电容,用于将输入信号转换为脉冲信号。
计数电路使用单片机的定时计数器来进行计数。
在这个设计中,我们使用TIMER0和TIMER1作为计数器,分别用于测量输入信号的高电平时间和低电平时间,然后将两个时间相加得到一个完整的周期,再根据周期反推频率。
显示电路使用一个LCD模块来显示测量得到的频率。
在这个设计中,我们使用IO口将计算得到的频率发送给LCD模块,通过LCD模块来显示频率。
软件设计:
软件设计主要包括信号采集、脉冲计数和频率计算。
信号采集主要通过定时器的中断来进行。
在采集到一个脉冲之后,中
断程序会使计数器加1
脉冲计数是通过对输入信号高电平时间和低电平时间计数来完成的。
在脉冲计数的过程中,我们需要启动TIMER0和TIMER1,并设置正确的工
作模式和计数值。
频率计算是通过将高电平时间和低电平时间相加得到一个完整的周期,然后再根据周期反推频率来完成的。
最后,将计算得到的频率发送给LCD
模块进行显示。
总结:。
数字频率计课程设计报告

数字频率计课程设计报告一、课程目标知识目标:1. 让学生理解数字频率计的基本原理,掌握频率、周期等基本概念;2. 使学生掌握数字频率计的使用方法,能够正确操作仪器进行频率测量;3. 引导学生运用已学的数学知识,对测量数据进行处理,得出正确结论。
技能目标:1. 培养学生动手操作仪器的技能,提高实验操作能力;2. 培养学生运用数学知识解决实际问题的能力,提高数据分析处理技能;3. 培养学生团队协作能力,提高实验过程中的沟通与交流技巧。
情感态度价值观目标:1. 培养学生对物理实验的兴趣,激发学习热情;2. 培养学生严谨的科学态度,养成实验过程中认真观察、准确记录的好习惯;3. 引导学生认识到物理知识在实际应用中的价值,提高学以致用的意识。
课程性质:本课程为物理实验课,结合数字频率计的原理与应用,培养学生的实践操作能力和数据分析能力。
学生特点:六年级学生具备一定的物理知识和数学基础,对实验操作充满好奇,具备初步的团队合作能力。
教学要求:结合学生特点,注重理论与实践相结合,以学生为主体,引导学生主动参与实验过程,培养其动手能力和解决问题的能力。
通过课程目标的分解,使学生在实验过程中达到预期的学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 数字频率计基本原理:- 频率、周期的定义与关系;- 数字频率计的工作原理;- 数字频率计的测量方法。
2. 实验操作技能:- 数字频率计的操作步骤;- 实验过程中的注意事项;- 数据记录与处理方法。
3. 教学大纲:- 第一课时:介绍数字频率计的基本原理,让学生了解频率、周期的概念及其关系;- 第二课时:讲解数字频率计的工作原理,引导学生掌握其操作方法;- 第三课时:分组进行实验操作,让学生动手测量不同频率的信号;- 第四课时:对测量数据进行处理与分析,培养学生数据分析能力;- 第五课时:总结实验结果,讨论实验过程中遇到的问题及解决办法。
4. 教材章节:- 《物理》六年级下册:第六章《频率与波长》;- 《物理实验》六年级下册:实验八《数字频率计的使用》。
基于单片机的简单频率计课程设计报告

《单片机原理与接口技术》课程设计报告频率计目录1功能分析与设计目标 (1)2 频率计的硬件电路设计 (3)2.1 控制、计数电路 (3)2.2 译码显示电路 (5)3 频率计的软件设计与调试 (6)3.1 软件设计介绍 (6)3.2 程序框图 (8)3.3 功能实现具体过程 (8)3.4 测试数据处理,图表及现象描述 (10)4 讨论 (11)5 心得与建议 (12)6 附录(程序及注释) (13)1功能分析与设计目标背景:在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。
为了实现智能化的计数测频,实现一个宽领域、高精度的频率计,一种有效的方法是将单片机用于频率计的设计当中。
用单片机来做控制电路的数字频率计测量频率精度高,测量频率的范围得到很大的提高。
题目要求:用两种方法检测(Δm ,ΔT )要求显示单位时间的脉冲数或一个脉冲的周期。
设计分析:电子计数式的测频方法主要有以下几种:脉冲数定时测频法(M法),脉冲周期测频法(T法),脉冲数倍频测频法(AM法),脉冲数分频测频法(AT法),脉冲平均周期测频法(M/T法),多周期同步测频法。
下面是几种方案的具体方法介绍。
脉冲数定时测频法(M法):此法是记录在确定时间Tc内待测信号的脉冲个数Mx,则待测频率为:Fx=Mx/ Tc 脉冲周期测频法(T法):此法是在待测信号的一个周期Tx内,记录标准频率信号变化次数Mo。
这种方法测出的频率是:Fx=Mo/Tx脉冲数倍频测频法(AM法):此法是为克服M法在低频测量时精度不高的缺陷发展起来的。
通过A倍频,把待测信号频率放大A倍,以提高测量精度。
其待测频率为:Fx=Mx/ATo脉冲数分频测频法(AT法):此法是为了提高T法高频测量时的精度形成的。
由于T法测量时要求待测信号的周期不能太短,所以可通过A分频使待测信号的周期扩大A倍,所测频率为:Fx=AMo/Tx脉冲平均周期测频法(M/T法):此法是在闸门时间Tc内,同时用两个计数器分别记录待测信号的脉冲数Mx和标准信号的脉冲数Mo。
频率计——单片机课程设计

频率计摘要数字频率计是直接用十进制数字显示被测信号频率的一种测量装置。
设计中应用单片机的数学运算和控制功能,通过AT89C52内部存储程序进行软件计数,对输出进行控制。
在单片机应用系统中利用C语言编程具有一定的优点,本次课程设计介绍了C语言实现数字频率计的软件设计以及硬件电路。
全部软件编程不是采用常规的汇编语言,而是利用C语言强大的浮点运算能力,实现频率计的软件设计,因此提高了频率计的测量精度,具有一定的实用价值。
本次课程设计通过在Keil环境中用C语言编程,并在Protues中设计电路进行仿真测试,实现了频率计在信号1Hz~500kHz频率段的测试,误差较小,与输入信号源的频率相近。
最后通过LCD显示模块显示出信号频率。
同时还利用AD0808进行对源信号模数转换,得到信号的最大值。
关键词:频率测量单片机C语言频率计目录摘要 (1)关键词:频率测量单片机C语言频率计 (1)绪论(或前言) (3)1、课程设计的主要内容 (4)2、单片机的种类、用途、发展历史、基本工作原理、常规用法、组成最小系统的硬件设计方法 (5)2.1.1主流单片机简介 (5)2.1.2单片机的用途 (6)2.1.3 单片机的历史 (6)2.1.4单片机基本工作原理 (7)2.1.5单片机组成最小系统的硬件设计方法 (7)2.2接口电路的特点、分类及设计方法 (7)2.3课题的设计思路、实施方法 (8)2.4硬件设计:系统电路图、关键元器件的性能、参数及外形封装等 (9)2.5软件设计:包括程序流程框图、源代码(汇编或C语言),典型程序要求加注释 (11)2.5.1程序流程图: (11)2.5.2C程序源代码: (11)见附件 (11)2.6设计测试结果: (11)3、总结 (12)附件: (14)绪论(或前言)数字频率计在电子、通讯的领域中的实验、研究开发、生产用途非常广泛,它可以由逻辑电路组成,也可以用单片机控制。
由逻辑电路组成的频率计,结构复杂,组装、调试比较麻烦;传统的频率计通常采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。
单片机课程设计-数字频率计

《单片机技术》课程设计说明书数字频率计院、部:电信学院学生姓名:贺音杰指导教师:肖冬瑞职称助教专业:电气工程及其自动化班级:1205 班学号:11301040243完成时间:2015年6月数字频率计具有体积小、携带方便;功能完善、测量精度高等优点,因此在以后的时间里,必将有着更加广阔的发展空间和应用价值。
研究数字频率计的设计和开发,有助于频率计功能的不断完善、性价比的提高和实用性的加强。
本课程设计是一个基于单片机技术的数字频率计。
本文从频率计的原理出发,介绍了基于单片机的数字频率计的设计方案,选择了实现系统得各种电路元器件。
利用单片机的计数器和定时器的功能对被测信号进行计数。
编写相应的程序使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。
本设计以89C51单片机为核心,应用单片机的算术运算和控制功能并采用LED数码显示管将所测频率显示出来。
系统简单可靠、操作简易,能基本满足一般情况下的需要。
既保证了系统的测频精度,又使系统具有较好的实时性。
该设计经过反反复复仿真、调试发现问题所在,将其问题解决。
该设计功能具有测量信号频率、周期、脉宽、占空比。
测量速度快,准确度高。
关键字:数字频率计;单片机;计数器;定时器;LED数码显示管I1 频率计概述 (1)1.1数字频率计简介 (1)1.2数字频率计的基本原理 (1)1.3设计课题总体方案介绍及工作原理说明 (2)2硬件系统的设计 (4)2.1硬件系统各模块功能简要介绍 (4)2.2硬件电路主要部分的介绍 (5)2.2.1 AT89S52 芯片 (5)2.2.2数码管电路 (6)2.2.3独立键盘电路 (7)2.2.4复位电路 (7)2.2.5晶振电路 (8)2.2.6 电源电路 (9)2.2.7下载口电路 (9)3软件系统的设计 (10)3.1使用单片机资源的情况 (10)3.2软件系统各模块功能简要介绍 (10)3.3设计原理简介 (10)3.4软件系统程序流程框图 (11)4设计误差分析及总结 (14)4.1误差分析 (14)4.2频率计的使用说明 (14)4.3实物的运行分析 (14)4.4设计总结 (15)参考文献 (16)致谢 (17)附录A (18)附录B (21)1频率计概述1.1数字频率计简介数字频率计又称为数字频率计数器,是一种专门对被测信号频率进行测量的电子测量仪器,是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理课程设计报告题目:智能数字频率计设计专业:信息工程班级:信息111学号:***姓名:***指导教师:***北京工商大学计算机与信息工程学院1、设计目的(1)了解和掌握一个完整的电子线路设计方法和概念;(2)通过电子线路设计、仿真、安装和调试,了解和掌握电子系统研发产品的一个基本流程。
(3)了解和掌握一些常见的单元电路设计方法和在电子系统中的应用:包括放大器、滤波器、比较器、计数和显示电路等。
(4)通过编写设计文档与报告,进一步提高学生撰写科技文档的能力。
2、设计要求(1)基本要求设计指标:1.频率测量:0~250KHz;2.周期测量:4mS~10S;3.闸门时间:0.1S,1S;4.测量分辨率:5位/0.1S,6位/1S;5.用图形液晶显示状态、单位等。
充分利用单片机软、硬件资源,在其控制和管理下,完成数据的采集、处理和显示等工作,实现频率、周期的等精度测量方案。
在方案设计中,要充分估计各种误差的影响,以获得较高的测量精度。
(2)扩展要求用语音装置来实现频率、周期报数。
(3)误差测试调试无误后,可用数字示波器与其进行比对,记录测量结果,进行误差分析。
(4)实际完成的要求及效果1.测量范围:0.1Hz~4MHz,周期、频率测量可调;2.闸门时间:0.05s~10s可调;3.测量分辨率:5位/0.01S,6位/0.1S;4.用图形液晶显示状态、单位(Hz/KHz/MHz)等。
3、硬件电路设计(1)总体设计思路本次设计的智能数字频率计可测量矩形波、锯齿波、三角波、方波等信号的频率。
系统共设计包括五大模块: 主芯片控制模块、整形模块、分频模块、档位选择模块、和显示模块。
设计的总的思想是以AT89S52单片机为核心,将被测信号送到以LM324N为核心的过零比较器,被测信号转化为方波信号,然后方波经过由74LS161构成的分频模块进行分频,再由74LS153构成的四选一选择电路控制档位,各部分的控制信号以及频率的测量主要由单片机计数及控制,最终将测得的信号频率经LCD1602显示。
各模块作用如下:1.主芯片控制模块: 单片机AT89S52 内部具有2个16位定时/计数器T0、T1,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。
利用单片机的计数器和定时器的功能对被测信号进行计数。
以AT89S52 单片机为控制核心,来完成对各种被测信号的精确计数、显示以及对分频比的控制。
利用其内部的定时/计数器完成待测信号周期/频率的测量。
2.整形模块:整形电路是将一些不是方波的待测信号转化成方波信号,便于测量。
本设计使用运放器LM324连接成过零比较器作为整形电路。
3.分频模块: 考虑单片机利用晶振计数,使用11.0592MHz 时钟时,最大计数速率将近500 kHz,因此需要外部分频。
分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。
本设计使用的分频芯片是74LS161实现4分频及16分频。
4.档位选择模块:控制74LS161不分频、4分频或者 16分频,控制芯片是74LS153。
5.显示模块:编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示,本设计选用LCD1602。
(2)测频基本设计原理所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。
若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T(右图3-1所示)。
其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等。
利用单片机的定时/计数T0、T1的定时、计数于被测频率fx功能产生周期为1s的时间脉冲信号,则门控电路的输出信号持图3-1续时间亦准确地等于1s。
闸门电路由标准的秒脉冲信号进行控制,当秒脉冲信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。
秒脉冲信号结束时闸门关闭,计数器停止计数。
由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。
(2)系统框图本智能数字频率计系统框图如图3-2所示图3-2智能数字频率计系统框图(3)单片机部分P0口经上拉后做LCD数据接口P2.1~P2.3作为LCD控制端口P2.4~P2.5作为分频选择端口P3.5作为被测信号输入端口P3.2~P3.4作为开关控制端口(对应电路图中K1,K2,SET)图3-3 89D52单片机部分电路(4)分频部分74HC161与74ls161功能兼容,是常用的四位二进制可预置的同步加法计数器,他可以灵活的运用在各种数字电路,以及单片机系统中实现分频器等很多重要的功能。
其管脚图如图3-4所示:图3-4 74HC161 图3-5 74HC153管脚图74HC153是一个双4选1数据选择器,其管脚图如图3-5所示:74LS161对整形后的防波信号进行分频,Q1为四分频输出,Q3为16分频输出。
未经分频、经过四分频和经过16分频的三路信号作为74LS153的一个4选1数据选择器低三位输入,由单片机控制选择分频数,然后再送单片机内部计数器T1(如图3-6)。
图3-6 分频、选择分频档位电路图(5)LCD显示部分LCD显示,1602的八位数据I/O口与单片机的P0口相连,读写控制端接P2.0-P2.2口。
三个按键中,设置键接P3.2单片机按外部中断0接口,当按键按下后,置P3.2口低电平,单片机中断。
S1、S2为频率/周期、闸门时间加/减选择按键(如图3-7)。
图3-7 LCD显示部分电路图4、软件设计(1)主程序流程图设计本次程序设计采用的是C语言程序设计,其设计流程图4-1所示:图4-1主程序流程图(2)子程序流程图设计<1>显示程序:LCD显示程序设计流程如图4-2所示:图4-2显示程序流程图<2>频率测量程序框图:频率测量程序的整体架构如图4-3所示:图4-3频率测量框架图(3)中断服务流程图INT0中断流程图如图4-4所示:图4-4INT0中断流程图(4)程序代码#include <AT89x52.h>#include <stdio.h>#include <math.h>#include <intrins.h>float f; //频率float p; //周期float sj; //闸门时间char idata buff[20];char flag=0; //频率、周期选择标志位char xs=0; //设置闸门时间结束后是否显示结果的标志位unsigned char m=0,n=0,yichu=0,fenpin; //m定时中断次数n计数中断次数yichu判断是定时//器还是计数器溢出#define Key_Set P3#define K1 0xf7 //11110111 P33#define K2 0xef //11101111 P34#define NO_Set 0xff#define Freq 0#define Peri 1sbit B153=P2^4;sbit A153=P2^3;sbit P17=P3^4;sbit P16=P3^3;sbit P35=P3^5;sbit Set=P3^2;unsigned char LCD_Wait(void);void LCD_Write(bit style, unsigned char input);void LCD_SetDisplay(unsigned char DisplayMode);void LCD_SetInput(unsigned char InputMode);void LCD_Initial();void GotoXY(unsigned char x, unsigned char y);void Print(unsigned char *str);void C52_Initial();void Delay(unsigned int t);void display(float f);void cepin();void panduan();void timedisplay(float sj);void Time_Set1();void Time_Set2();void t0();void t1();/*****模块名称LCD1602显示程序******//***********************端口定义***********************************/sbit LcdRs= P2^0;sbit LcdRw= P2^1;sbit LcdEn= P2^2;sfr DBPort= 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口/************************内部等待函数********************************/unsigned char LCD_Wait(void){LcdRs=0; //寄存器选择输入端1:数据0:指令LcdRw=1; _nop_(); //RW:为0:写状态;为1:读状态;LcdEn=1; _nop_(); //使能输入端,读状态,高电平有效;写状态,下降沿有效LcdEn=0;return DBPort;}/**********************向LCD写入命令或数据***************************/#define LCD_COMMAND 0 // Command#define LCD_DATA 1 // Data#define LCD_CLEAR_SCREEN 0x01 // 清屏#define LCD_HOMING 0x02 // 光标返回原点void LCD_Write(bit style, unsigned char input){ LcdEn=0;LcdRs=style;LcdRw=0; _nop_();DBPort=input; _nop_();//注意顺序LcdEn=1; _nop_();//注意顺序LcdEn=0; _nop_();LCD_Wait();}/********************设置显示模式*********************************/#define LCD_SHOW 0x04 //显示开#define LCD_HIDE 0x00 //显示关#define LCD_CURSOR 0x02 //显示光标#define LCD_NO_CURSOR 0x00 //无光标#define LCD_FLASH 0x01 //光标闪动#define LCD_NO_FLASH 0x00 //光标不闪动void LCD_SetDisplay(unsigned char DisplayMode){LCD_Write(LCD_COMMAND, 0x08|DisplayMode);}/*********************设置输入模式***********************************/#define LCD_AC_UP 0x02#define LCD_AC_DOWN 0x00 // default#define LCD_MOVE 0x01 // 画面可平移#define LCD_NO_MOVE 0x00 //defaultvoid LCD_SetInput(unsigned char InputMode){LCD_Write(LCD_COMMAND, 0x04|InputMode);}/******************初始化LCD**************************************/void LCD_Initial(){LcdEn=0;LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵LCD_Write(LCD_COMMAND,0x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动}/************************************************************************/void GotoXY(unsigned char x, unsigned char y){if(y==0)LCD_Write(LCD_COMMAND,0x80|x);if(y==1)LCD_Write(LCD_COMMAND,0x80|(x-0x40));}void Print(unsigned char *str){while(*str!='\0'){LCD_Write(LCD_DATA,*str);str++;}}/*************************************************************************** * 模块名称:频率测量程序* * 测量范围:0.1Hz~4MHz,闸门时间:0.05s~10s可调。