单片机课程设计报告简易数字频率计的设计优秀.docx
《单片机课程设计报告简易数字频率计的设计优秀.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告简易数字频率计的设计优秀.docx(25页珍藏版)》请在冰豆网上搜索。
单片机课程设计报告简易数字频率计的设计优秀
信息与控制工程学院硬件课程设计说明书
简易数字频率计的设计
学生学号:
学生姓名:
专业班级:
自动0803
指导教师:
职称:
讲师
起止日期:
~
吉林化工学院
JilinInstituteofChemicalTechnology
摘要
测量频率的方法有多种,其中数字计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。
数字频率计通常又称为电子计数器,它的基本功能是测量信号的频率和周期。
本次课程设计提出了一种以AT89C51单片机为控制核心的数字式频率计设计方案,并采用常用74HC系列数字逻辑器件进行设计,电路结构简单、成本较低,能够实现对TTL/COMS电平信号的频率的测量,测频范围可达0.1HZ~40MHz。
数字式频率计电路主要由闸门电路、计数电路、AT89C51控制电路与LCD1602液晶显示等单元组成。
在论文中对数字式频率计进行了详细的阐述与说明。
设计过程中频率计的硬件电路是用Protel绘图软件绘制而成,而频率计的实现则是选用Proteus仿真软件来进行模拟和测试。
软件部分的单片机控制程序是以Keil做为开发工具用C语言编写而成。
关键词:
频率计;闸门;计数器;AT89C51
硬件课程设计任务书
一、设计题目:
简易数字频率计的设计
二、设计目的
1.熟悉KeiluVision开发软件及Protel电路设计设计软件的使用;
2.掌握频率测量的基本原理;
3.掌握MCS51系列单片机的体系结构与工作原理;
4.掌握MCS51系列单片机C语言程序设计方法。
三、设计任务及要求
1.设计模拟量输出模块的电路,并画出其Protel电路原理图;
2.完成数字频率计硬件电路的焊装与调试;
3.编写完整的单片机驱动程序;
4.进行校准与整机调试;
5.撰写设计说明书。
四、设计时间及进度安排
设计时间共三周,具体安排如下表:
周次
设计内容
设计时间
第一周
1.学习MCS51系列单片机体系结构及C51语言程序设计;
2.设计模拟量输出模块的电路,并画出其Protel电路原理图。
2021-3-7
~2021-3-11
第二周
1.完成硬件电路的焊装和硬件调试;2.编写单片机驱动程序。
2021-3-14
~2021-3-18
第三周
1.整机调试;撰写设计说明书;答辩。
2021-3-21
~2021-3-25
五、考核内容
1.出勤、学习态度以及纪律情况;2.设计完成情况及设计说明书完成质量;3.答辩。
综合以上考核内容给出硬件课程设计总评成绩。
评语:
成绩:
第1章绪论
随着无线电技术的发展与普及,“频率”已经成为广大群众所熟悉的物理量。
而单片机的出现,更是对包括测频在内的各种测量技术带来了许多重大的飞跃,然而小体积、价廉、功能强等优势也在电子领域发挥非常重要的作用,极大的提高了这些领域的技术水平和自动化程度。
51系列单片机是国内目前应用最广泛的一种8位单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用。
51系列及其衍生单片机还会在后继很长一段时间占据嵌入式系统产品的低端市场,因此,作为新世纪的大学生,在信息产业高速发展的今天,掌握单片机的基本结构、原理和使用是非常重要的。
为此,本文给出了一种以单片机为核心的频率测量系统的设计方法。
随着嵌入式系统、片上系统等概念的提出和普遍接受及应用。
51系列及其衍生单片机还会在后继很长一段时间占据嵌入式系统产品的低端市场,因此,作为新世纪的大学生,在信息产业高速发展的今天,掌握单片机的基本结构、原理和使用是非常重要的。
为此,本文给出了一种以单片机为核心的频率测量系统的设计方法。
数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
它是一种用十进制数字显示被测信号频率的数字测量仪器。
它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。
在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。
通过该项设计,可以将模拟电路和数字电路的理论知识运用于实际当中,并且熟练编程控制单片机的能力,同时提高分析问题和解决问题的能力。
1.1频率计的设计原理
1.计数法(T法)
计数法又被称为测频法,计数法是将被测信号通过一个定时闸门加到计数器进行计数的方法,如果闸门打开的时间为T,计数器得到的计数值为N,则被测频率为f=N/T。
改变时间T,则可改变频率范围。
如图1-1所示
图1-1计数法测频原理图
信号频率越高,误差越小;而信号频率越低,则测量误差越大。
因此测频法适合用于对高频信号的测量,频率越高,测量精度也越高。
2.计时法(T法)
计时法又称为测周期法,测周期法使用被测信号来控制闸门的开闭,而将标准时基脉冲通过闸门加到计数器,闸门在外信号的一个周期内打开,这样计数器得到的计数值就是标准时基脉冲外信号的周期值,然后求周期值的倒数,就得到所测频率值。
首先把被测信号通过二分频,获得一个高电平时间是一个信号周期T的方波信号;然后一直用一个周期为T1的高频方波信号作为计数脉冲,在一个信号周期T的时间内对T1信号进行计数,如图1-2所示。
被测信号频率越低,误差越小,测量精度也就越高。
图1-2计时法测频原理
3.T/M法
T/M法测量是采用两个计数器,分别对被测信号f和高频信号f1进行比较。
在确定的检测时间内,若对被测信号f的计数值为N1,而对高频信号f1的计数值为N2,但对f1信号的计数必须直到f信号在第一个计数器停止计数后的一个完整的f信号周期。
由此可得,N1个f信号周期的时间为
故每个f信号周期为
则有
。
T/M法测量的误差与信号频率成正比,与高频标准信号的频率成反比,但随f的增大,N1也在增大(在一定的检测时间内)。
4.本设计的方案选择
根据本设计要求的性能与技术指标,首先需要确定能满足这些指标的频率测量方法。
有上述频率测量原理与方法的讨论可知,T法适合于对低频信号的测量,而M法则适合于对较高频信号的测量。
但由于用T法所获得的信号周期数据还需要求倒数运算才能得到信号频率,而求倒数运算用中小规模数字集成电路较难实现,因此,T法不适合本实验要求。
M法的测量误差与信号频率成反比,信号频率越低,测量误差就越大,信号频率越高,其误差就越小。
但用M法所获得的测量数据,在闸门时间为一秒时,不需要进行任何换算,计数器所计数据就是信号频率。
因此,本实验所用的频率测量方法是测频法。
基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。
它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。
所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。
若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为
其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。
时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。
闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。
秒信号结束时闸门关闭,计数器停止计数。
由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率
1.2设计的思路与方法
本频率计的结构主要包括闸门电路、计数电路、单片机控制电路和LCD显示电路组成。
频率计的主要核心部件是采用AT89C51来产生定时和记录脉冲变化次数,运用AT89C51来构成计数器,突破了大部分运用数字电路模板来构成计数器的构思。
本设计主要采用AT89C51芯片和LCD1602液晶来实现,软件编程主要是采用以Keil做为开发工具用C语言编写而实现的。
其系统结构如下图2-1所示:
图1-3数字频率计结构框图
频率计的设计思路主要是:
对信号分频,测量一个或几个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小。
若被测量信号的周期为Tx,分频数m,分频后信号的周期为T,则:
如若实现一秒定时,则在采用12MHz的晶体振荡器的情况下,一秒的定时已超过了定时器可提供的最大定时值。
为了实现一秒的定时,采用定时和计数相结合的方法实现。
选用定时/计数器TO作定时器,工作于方式1产生50ms的定时,再用软件计数方式对它计数20次,就可得到一秒的定时。
第2章系统的硬件设计方案
2.1系统的硬件整体设计方案
本频率计的硬件电路主要由时钟信号发生器、闸门电路、计数器电路、AT89C51控制电路和LCD1602液晶显示电路组成。
频率计的主要核心部件是采用AT89C51的内部定时/计数器来产生定时和记录脉冲变化次数。
主要用到的元器件有晶振器件、电阻、74HC00、74HC393、AT89C51单片机、LCD1602等。
其硬件结构框图如图2-1所示:
图2-1系统的整体结构框图
2.2闸门电路及按键设置
1.闸门设置
由于该频率计只有两个信号输入端口,因此频率计工作时,要先根据被测频率的大概大小来判断闸门电路应该接通与哪个端口相连的电路,这样测出的频率才会比较精确。
图2-2保护电路与闸门电路连接图
2.按键设置
本设计当中需要用对信号进行调档来更方便的测量信号的频率,因此得用到键盘来对此功能进行实现。
键盘分编码键盘和非编码键盘。
键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。
而靠软件编程来识别的称为非编码键盘;在单片机组成的各种系统中,用的最多的是非编码键盘。
也有用到编码键盘的。
非编码键盘又分为:
独立键盘和行列式(又称为矩阵式)键盘。
但在本设计当中由于需要键盘实现的功能比较简单所以使用两个独立键盘,具体的连接图如下:
图2-3独立按键电路
在键盘按键时间一般都会产生抖动现象,如下图所示:
图2-4键盘消抖过程图
对于这种情况我们常采用软件消抖,基本思想是:
在第一次检测到有按键按下时,该键对应的行线为低电平,执行一段10ms的延时子程序后,确认该行线是否仍为低电平,如果是说明该行确实有按键按下。
当按键抬起时,行线低电平变为高电平,执行10ms延时,检测行线是否仍为高电平,说明按键确实抬起。
2.3计数器电路的设计
这一部分实现的是对高频信号的分频,而我们是利用74HC393进行分频的,它是个计数器,最大值为256,也就是最大分到256倍的。
74HC393内含两个独立的4位二进制异步计数器,14脚DIP封装,每个计数器有时钟输入CLK,清除控制MR和计数输出Q0~Q3。
1.74HC393引脚功能:
异步清零端(
)为高电平时,不管时钟端(
,
)状态如何,即可以完成清除功能。
当(
)为低电平时,在(
)脉冲下降沿作用下进行计数操作。
2.74HC393主要特点如下:
1)74HC393的清除是异步的,当
为高电平时,
~
为低电平。
2)当
由高到低电平跳变时,进行加计数。
3)74HC393中的两个计数器可以级联,构成÷256计数器。
4)宽的电源电压范围2~6V
5)低的输入电流1μA
6)高的负载能力10个LSTTL负载
7)高的工作速度f=50MHz
8)低的电源电流80μA
9)采用14外引线双列直插式封装。
3.芯片引脚图如图2-5所示:
图2-574HC393引脚图
4.其分频的具体时序电路如下所示:
图2-674HC393分频时序电路
5.本设计中74HC393计数器与单片机接口电路图如下:
图2-7计数器接口电路图
计数器由一块双四位二进制计数器74HC393、单片机AT89C51内部计数器T1共同构成,其中AT98C51内的计数器被设置成16位计数器。
2.4AT89C51控制电路
1.单片机最小系统的设计
本设计为了完成闸门时间设定、计数、计算并显示出测量频率,所以在本设计中采用了AT89C51最小系统电路。
图2-8AT89C51最小系统电路原理图
AT89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:
4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,5个中断源2级中断优先权的中断结构,一个全双工的串行口,片上震荡器和时钟电路。
AT89C51单片机的片内结构如图2-9所示。
图2-9AT89C51单片机的片内结构图
引脚说明:
·VCC:
电源电压
·GND:
地
·P0口:
P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。
当对0端口写入1时,可以作为高阻抗输入端使用。
当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。
在这种模式下,P0口具有内部上拉电阻。
在EPROM编程时,P0口接收指令字节,同时输出指令字节;在程序校验时需要外接上拉电阻。
·P1口:
P1口是一内部带有上拉电阻的8位双向I/O口。
P1口的输出缓冲能接受或输出4个TTL逻辑门电路。
当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。
当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。
·P2口:
P2是一带有内部上拉电阻的8位双向的I/O端口。
P2口的输出缓冲能驱动4个TTL逻辑门电路。
当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出低电流(IIL)。
P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX@DPTR)时,P2口送出高8位地址数据。
在这种情况下,P2口使用强大的内部上拉电阻功能输出1。
当利用8位地址线访问外部数据存储器时(例MOVX@R1),P2口输出特殊功能寄存器的内容。
当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。
·P3口:
P3是一内部带有上拉电阻的8位双向的I/O端口。
P3口的输出缓冲能驱动4个TTL逻辑门电路。
当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出低电流(IIL)。
单片机完成整个系统的控制功能,包括信号的处理、计数过程控制及频率测量结果的处理和显示等。
计数器在单片机的控制下主要完成计数功能,并锁存闸门时间内的计数值。
电源部分采用220V交流电经变压、滤波、稳定后得到5V电压供整个系统使用。
最后频率计测量的结果由液晶显示器1602LCD显示出来。
如果不用该显示器而用数码管来显示,则要采用数码管专用驱动芯片来做一个显示模块。
数字频率计的整机电路图见附录A。
2.AT89C51单片机在计数部分的应用
将定时器/计数器的方式寄存器TMOD,用软件赋初值51H,即01010001B。
这时定时器/计数器1采用工作方式1,方式选择位C/T设为1,即设T1为16位计数器。
定时器/计数器O采用工作方式1,C/T设为0,即设TO为16位定时器。
当定时器/计数器T1设定为计数方式时,其计数脉冲是来源T1端口的外部事件。
当T1端口上出现由“1”(高电平)到“0”(低电平)的负跳变脉冲时,计数器则加1计数。
计算机是在每个机器周期的S5P2状态时采样T1端口,当前一个机器周期采样为1且后一个机器周期采样为0时,计数器加1计数。
计算机需用两个机器周期来识别1次计数,因而最大计数速率为振荡频率的1/24。
在采用12MHz晶振的情况下,单片机最大计数速度为0.5MHz即500kHz。
另外,此处对外部事件计数脉冲的占空比(即脉冲的持续宽度)无特殊要求,但必须保证所给出的高电平在其改变之前至少被采样1次,即至少保持1个完整的机器周期。
由此可见,从T1口输入脉冲信号,T1可实现对脉冲个数的计数。
3.确定定时/计数的初值
因为在不同工作方式下计数器位数不同,因而最大计数值也不同。
现假设最大计数值为M,那么各方式下的最大值M值如下:
方式0:
方式1:
方式2:
方式3:
定时器0分成两个8位计数器,所以两个M均为256。
因为定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值X可以这样计算:
X=M-计数值
下面举例说明初值的确定方法。
例1、选择T1方式0用于定时,在P1.1输出周期为1ms方波,晶振fosc=6MHz。
解:
根据题意,只要使P1.1每隔500us取反一次即可得到1ms的方波,因而T1的定时时间为500us,因定时时间不长,取方式0即可。
则M1/M0=0;因是定时器方式,所以C/T=0;在此用软件启动T1,所以GATE=0。
T0不用,方式字可任意设置,只要不使其进入方式3即可,一般取0,故TMOD=00H。
系统复位后TMOD为0,可不对TMOD重新清0。
下面计算500us定时T1初始值:
机器周期
设初值为X,则:
因为在作13位计数器用时,TL1的高3位未用,应填写0,TH1占用高8位,所以X的实际填写应为:
结果:
,
2.5LCD1602液晶接口电路的设计
本次频率计系统的设计采用的显示器为LCD1602.图5-2为LCD1602的显示电路:
当待测信号的频率被测量出大小后需要由显示电路显示出来,这里的显示模块是LCD1602,选用LCD1602是因为其占用单片机资源极少,并且还可以显示一些辅助信息。
图2-10为LCD1602液晶接口电路。
图2-10LCD1602显示模块接口电路
1.其各引脚定义
第1脚:
VSS为地电源。
第2脚:
VDD为5V正电源。
第3脚:
V0为液晶显示器对比度调整端。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E断由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8为双向数据线。
2.基本操作时序
读状态:
输入RS=L,RW=H,E=H输出D0~D7=状态字
写指令:
输入RS=L,RW=L,D0~D7=指令码,E=高脉冲输出无
读数据:
输入RS=H,RW=H,E=H输出D0~D7=数据
写数据:
输入RS=L,RW=L,D0~D7=指令码,E=高脉冲输出无
2.6稳压电源设计电路
因为本设计中需要+5V稳压电源,而源器件中只有输出电压-9V~+9V的变压器,所以我们要设计出+5V稳压电源,为各芯片提供电源。
稳压电源的设计主要依据桥式整流电路,我们通过对9V的电压源进行全波整流,在进行滤波和稳压得出5V的电压源,这就是简单的电路的制作。
此处是把交流转换成直流,满足了各个元器件的供电要求。
图2-115V稳压电源电路原理图
第3章系统的软件设计方案
本次设计的数字频率计,以编程来实现频率计的各项功能,用的是C语言开发,编辑C语言的编辑器使用的Keil,KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
系统的程序流程图如图3-1所示。
(a)图为主函数流程图,(b)图为中断流程图。
图3-1系统程序流程图
第4章系统的调试及误差分析
1.系统调试
本频率计在实现软件控制时采用的是c语言编程,在keil软件中进行编译并且使用proteaus软件进行仿真调试。
2.误差分析
误差产生的原因主要有:
量化误差、触发误差、标准频率误差。
(1)量化误差
所谓量化误差就是指在进行频率的数字化测量时,被测量与标准单位不是正好为整数倍,再加之闸门开启和关闭的时间和被测信号不同步,因此在量化过程中有一部分时间零头没有被计算在内,使电子计数器出现±1误差。
设闸门时间为To,在时间To内,有N个时标脉冲通过计数器T1,则被测信号的频率为:
f=N/To。
这时就会产生正负1误差,所谓正负1误差就是在单位时间内多计一个或少计一个的误差!
就是开始计数的瞬间起始点不在被测脉冲的起始时刻,所以就会少计一个或者多计一个,虽然闸门开启时间都为T,但因为闸门开启时刻不一样,计数值一个为25,另一个却为24,两个计数值相差1。
如图4-1所示:
图4-1正负1误差原理图
测频率时量化误差为:
例如测量f=200Hz信号频率,分别采用闸门时间为1s和晶振频率为12MHz(时间为1μS)
测量频率时量化误差为:
(2)触发误差
所谓触发误差是指在门控脉冲受到干扰时,由于干扰信号的作用使触发提前或滞后所带来的误差。
触发误差的影响比较小。
(3)标准频率误差
在频率测量中,闸门时间是由晶振输出的频率分频得到的。
晶振输出频率不稳定引起闸门时间的不稳定,造成测频误差。
而
式中,k为产生闸门信号的分频系数。
因此
在实际应用中,要求标准频率的相对不确定度应比测量相对不确定度高一个数量级。
经过对误差的分析可以知道,对于本设计的频率计来说,主要误差是正负1误差,对测量结果影响比较大,其它的可以忽略不计。
结论
结论是理论分析和实验结果的逻辑发展,是整篇论文的归宿。
结论是在理论分析、试验结果的数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。
通过本次课程的设计,不但加深我对在课程上所学到的单片机理论知识的认识和理解,重新让自己认识到了这门学科的在应用方面的广阔前景,并且通过知识与应用于实践的结合更加丰富了自己的知识。
扩展了知识面,不但掌握了本专业的相关知识,而且对其他专业的知识也有所了解,而且较系统的掌握单片机应用系统的开发过程,因而自身的综合素质有了全面的提高。
经过这次一个较完整的产品设计和制作过程,对于认识到自己在知识方面存在的不足,明确今后的学习方向是非常有益的,为将来的的就业提前打了下坚实的基础。
在设计过程中,得到了我的指导老师的悉心指导与帮助,还有其他老师和同学的大力支持和协在此一并表示衷心的感谢。
参考文献
[2]黄正瑾编著.CPLD系统设计技术入门与应用.北京:
电子工业出版社,2002
[3]谢自美编著.电子线路设计·实验·测试.华中理工大学出版社,2002
[5]康华光主编.电子技术基础(第四版).北京:
高等教育出版社,1999
附录A
致谢
本设计是在我的毕业设计指导教师刘伟刘老师的悉心指导下完成的,他渊博的学识给我留下了深刻的印象,在设计中对我的谆谆教诲更是令我受益匪浅。
刘老师毫无保留地传授了他的专业知识和新观点,给予我无尽的启迪。
三周以来,刘老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,在此谨向刘老师致以诚挚的谢意和崇高的敬意。
另外,我还要感谢我们组的同学,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至课程设计