主要内容
(参数)
设计一个以单片机为核心的频率测量装置
被测频率fx<110Hz,采用测周法,显示频率×××. ×××;fx>110Hz,采用测频法,显示频率××××××。
利用键盘分段测量和自动分段测量。
完成单脉冲测量,输入脉冲宽度范围是100us~0.1s。
显示脉冲宽度要求如下。
Tx<1000us,显示脉冲宽度×××。
Tx>1000us,显示脉冲宽度××××。
任务要求
(进度)
第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。
第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。
第5-6天:软件设计,编写程序。第7-8天:调试。
第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。
目 录
1 系统概述 2
1.1研究背景 2
1.2 发展现状 2
1.3 单片机的发展 2
2 方案论证与选择 3
2.1方案初步设计 3
2.1.1基于单片机的频率计的设计 3
2.1.2基于单片机频率计设计的优缺点 4
3 系统的硬件设计 4
3.1系统硬件电路的设计 4
3.1.1 单片机的管脚 4
3.1.2 单片机的外围电路 5
3.1.3 液晶显示模块1602 6
3.1.4 硬件电路原理图 7
3.1.5元器件的选择 8
4 系统的软件设计 9
4.1 定时器/计数器工作方式的设置 9
4.2 定时器/计数器开启/关闭的设置 10
4.2.1 中断的设置 10
4.2.2 液晶显示模块1602内部的控制指令 11
4.3 系统软件设计中的主要流程图 13
4.4 系统软件设计中的主要子程序 15
4.4.1 T1计数器中断服务子程序 15
4.4.2 T0定时器中断服务子程序 16
4.4.3 数据处理子程序 16
5 程序的编译、仿真 18
5.1在Keil环境下的程序编写 18
5.2在PROTEUS环境下的仿真结果 20
6 结论 21
7 心得 22
8 参考文献 23
1 系统概述 1.1研究背景 在电子系统非常广泛的应用领域内,到处可见到处理离散信息的数字电路。数字电路制造工业的进步,使得系统设计人员能在更小的空间内实现更多的功能,从而提高了系统的可靠性和速度。集成电路的类型很多,从大的方面可以分为模拟电路和数字集成电路两大类。数字集成电路广泛用于计算机、控制与测量系统,以及其它电子设备中。一般说来,数字系统中运行的电信号,其大小往往并不改变,但在实践分布上却有着严格的要求,这是数字电路的一个特点。数字集成电路作为电子技术最重要的基础产品之一,已广泛地深入到各个应用领域。测量频率是电子测量技术中最常见的测量之一,不少物理量的测量, 如时间、速度等都涉及到或本身可转化为频率的测量。数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波、方波或其它周期性变化的信号,如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率以及产品的计件等等。 因此,数字频率计是一种应用很广泛的仪器。 1.2 发展现状数字频率计发展到现在,有基于CPLD的数字频率计的设计,基于VHDL语言的数字频率计的设计,还有基于单片机的简易数字频率计等。CPLD是一种新兴的高密度大规模可编程逻辑器件,它具有门阵列的高密度和PLD器件的灵活性和易用性,目前已成为一类主要的可编程器件;可编程器件的最大特点是可通过软件编程对其器件的结构和工作方式进行重构,能随时进行设计调整而满足产品升级,使得硬件的设计可以如软件设计一样方便快捷,从而改变了传统数字系统及用单片机构成的数字系统的设计方法、设计过程及设计概念,使电子设计的技术操作和系统构成在整体上发生了质的飞跃。VHDL诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE的一种工业标准硬件描述语言;相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(Library Based)的设计的特点。单片机技术在短短的20余年间已发展成为计算机技术中一个非常有活力的分支,它有自己的技术特征、规范、发展道路和应用环境。 1.3 单片机的发展目前计算机硬件技术向巨型化、微型化和单片化三个方向发展。自1975年美国德克萨斯仪器公司第一块单片机芯片TMS-1000问世以来,在短短的30余年间,单片机技术已发展成为计算机技术中一个非常有活力的分支,它有自己的技术特征、规范、发展道路和应用环境。按单片机的生产技术和应用对象,单片机先后经历了4位机、8位机、16位机、32位机几个有代表性的发展阶段。 单片机与通用微机相比较,在结构、指令设置上均有其独特之处,其主要特点有: 1) 单片机的存储器ROM和RAM是严格区分的,ROM称为程序存储器,只存放固定常数及数据。RAM则为数据存储器,用于工作区及存放用户数据。 - 采用面向控制的指令系统。
- 单片机的输入/输出引脚通常是多功能的。
- 单片机的外部扩展能力强。
从80年代单片机被引入我国,单片机已广泛地应用于电子设计中。单片机的应用迅速发展,其性价比高,大量的外围接口电路,使基于单片机的电子系统设计方便,周期缩短,而且不断发展。新型单片机支持高级语言,进一步延伸了其发展空间。 2 方案论证与选择 测量频率有测频法和测周法两种。 (1)测频法,利用外部电平变化引发的外部中断,测算1s内的波数,从而实现对频率的测定; (2)测周法,通过测算某两次电平变化引发的中断之间的时间,实现对频率的测定。简而言之,测频法是直接根据定义测定频率,测周法是通过测定周期间接测定频率理论上,测频法适用于较高频率的测量,测周法适用于较低频率的测量。 经过调校,在测量低频信号时,本项目中测频法精度已高于测周法,故舍弃测周法,全量程采用测频法。 2.1方案初步设计2.1.1基于单片机的频率计的设计 设计的基于单片机频率计的原理框图如图2-1所示:
图2-1基于单片机频率计的设计的原理框图(见附件)
复位电路采用上电复位方式,每次单片机上电工作时使单片机处于复位状态,即初始状态,为测量频率作好准备。 时钟电路中片内高增益反相放大器通过XTAL1、XTAL2外接作为反馈元件的晶振(呈感性)与电容组成的并联谐振回路构成一个自激振荡器向内部时钟电路提供振荡时钟,由此向单片机提供振荡脉冲。 AT89C51单片机内部具有2个16位的定时器/计数器,并可以在定时或计数溢出时产生中断。将被测信号通过P3.5口送入单片机,将T0设置为定时方式,每50ms产生一次中断,产生20次中断所用时间正好为1S,将T1设置为计数方式,T1的初值设置为0,计65535个脉冲后产生一次溢出中断,在T1中断溢出时对溢出次数进行计数(计数值为N)。1S内T1计的总的脉冲数为65535×N+TH1×256+TL1,这个数值就是被测信号的频率值。 单片机计的脉冲数值经过转换送到液晶显示模块1602,从而显示被测信号的频率,测量结果用十进制表示,很直接。
2.1.2基于单片机频率计设计的优缺点 优点:单片机在控制领域中有很多优点,如体积小、成本低、运用灵活、抗干扰能力强,可以方便地实现多机和分布式控制。并且利用单片机设计的频率计原理框图简单,所用元器件少,电路不易出错,其程序存放在内部存储器上,不需要外部存储器芯片,使用方法简单。且单片机便宜、稳定、开发简单、通用性好。 缺点:所测信号的频率范围窄,若要扩大频率范围需外加分频器。 而课程设计所需要测得频率不需要太大,因此不需要外加分频器。显示部分用液晶显示模块,以使测量结果更加直接、明确。
3 系统的硬件设计 3.1系统硬件电路的设计3.1.1 单片机的管脚 AT89C51单片机的管脚排部如图3-1所示。
主电源引脚 VCC(40脚):接+5V电源正端。 VSS(20脚):接+5V电源地端。 图3-1AT89C51单片机的管脚排布 外接晶体引脚 XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。 XTAL2(18脚):接外部石英晶体的另一端。在单片机内部,它是片内振荡器的反相放大器的输出端。 输入/输出引脚 P0口(39~32脚):P0.0~P0.7统称为P0口,在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。 P1口(1~8脚):P1.0~P1.7统称为P1口,可作为准双向输入/输出口使用。 P2口(21~28脚):P2.0~P2.7统称为P2口,一般可作为准双向输入/输出口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。 P3口(10~17脚):P3.0~P3.7统称为P3口,除作为准双向输入/输出口使用,还可以将每一位用于第二功能。 控制线 ALE/  (30脚):地址锁存有效信号输出端。  (29脚):片外程序存储器读选通信号输出端,低电平有效。 RST/VPD(9脚):RST即为RESET,VPD为备用电源。该引脚为单片机的上电复位或掉电保护端。  /VPP(31脚):EA为片外存储器选用端。该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。 3.1.2 单片机的外围电路
1)时钟电路 单片机的定时控制功能是用片内的时钟电路和定时电路来完成的,而片内的时钟产生有两种方式:内部时钟方式和外部时钟方式,实际中常应用内部时钟方式。设计的内部时钟方式图如图3-2所示:
图3-2内部时钟方式图 电容在22PF~33PF之间选择,起微调作用,在此采用30PF。晶振可采用6MHz或12MHz,但是若用6MHz的晶振,所测频率范围太窄,最高只能测到250KHz,用12MHz的晶振,最高频率可测到500KHz,故在此选用12MHz的晶振。 2)复位电路  单片机的复位电路可采用上电复位或按扭复位,实际中常应用上电复位的方式,设计的上电复位方式图如图3-3所示。 图3-3上电复位方式图
3.1.3 液晶显示模块1602  液晶显示器(LCD)具有显示信息丰富、功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD型显示器的构成原理很简单,在两片透明绝缘的有机薄膜或者玻璃之间均匀充填着液晶流体,底层透明薄膜上镀有一层导电体,而顶层透明薄膜上则按需要的形状敷有透明的导电电极,当电极通电后,就与下层导电体之间(约10μm)形成一个电场,由于这个电场的作用,其间的液晶体的透光状况就发生了变化,从而对外来光线产生了吸收作用,使人们看见了与电极形状相同的字形显示。 1602采用标准的16脚接口,从该模块的正面看,引脚排列从左向右为:1-16脚,1602的管脚排布如图3-4所示。
图3-4 1602的管脚排部
其中: 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15~16脚:空脚。 3.1.4 硬件电路原理图
设计的系统硬件电路原理图如图3-5所示。
图3-5系统硬件电路原理图
硬件电路图中,单片机的  管脚必须接高电平,因为接低电平时只选用片外程序存储器,而试验所用的是片内程序存储器。液晶显示器1602的VL管脚必须接一个电位器来调节,因为VL为液晶显示器对比度调整端,接正电源时对比度最弱,接 地电源时对比度最高,对比度过高时会产生“鬼影”,对比度过弱时,看不到屏幕上显示的数据。 3.1.5元器件的选择 硬件电路中所选用的元器件的规格/型号见表3-1 | | | | | | | | | | | | | | | | 10K/  W | | | 10K/  W | | | | |
表3-1硬件电路中所选用的元器件的规格/型号
4 系统的软件设计 4.1 定时器/计数器工作方式的设置定时器/计数器T0、T1都有四种工作方式,可通过程序对TMOD设置选择。TMOD的低四位用于定时器/计数器0,高四位用于定时器/计数器1。TMOD的位定义如图4-1所示。         

图4-1TMOD的位定义 C/T:定时或计数功能选择位,当C/T=1时为计数方式;当C/T=0时为定时方式。 M1、M0:定时器/计数器工作方式选择位。 GATE:门控位,用于控制定时器/计数器的启动是否受外部中断请求信号的影响。一般情况下GATE=0。 当M1M0=00时,定时器/计数器设定为工作方式0,构成13位定时器/计数器。计数值由下式确定:N=8192-X,式中N为计数值,X是THX、TLX的初值。计数范围为1~8192。 定时时间由下式确定:T=N ×Tcy =(8192-X)Tcy,式中Tcy为单片机的机器周期。如果振荡频率为12MHZ,则Tcy=1us,定时范围为1~8192us。 当M1M0=01时,定时器/计数器设定为工作方式1,构成16位定时器/计数器。在方式1时,计数器的计数值由下式确定:N=65536-X,计数范围为1~65536。 定时器的定时时间由下式确定:T=N × Tcy =(65536-X)Tcy,如果振荡频率为12MHZ,则Tcy=1us,定时范围为1~65536 us。 当M1M0=10时,定时器/计数器设定为工作方式2。方式2是自动重装初值的8位定时器/计数器。在方式2时,计数器的计数值由下式确定:N=256-X,计数范围为1~256。 定时器的定时时间由下式确定:T=N × Tcy =(256-X)Tcy,如果振荡频率为12MHZ,则Tcy=1us,定时范围为1~256 us. 当M1M0=11时,定时器/计数器设定为工作方式3。方式3只适用于定时器/计数器T0。当T0工作在方式3时,TH0和TL0被分成两个独立的8位计数器。方式3下定时器/计数器的定时、计数的范围和定时、计数值的确定同方式2。 在试验中需将T0设置为定时方式,将T1设置为计数方式;定时器T0定时50ms,即50000us,需选用工作方式1,即M1M0=01,因此,在编制程序时,将TMOD的高四位设为0101,低四位设为0001。 4.2 定时器/计数器开启/关闭的设置定时器/计数器的开启和关闭可通过控制寄存器TCON来设置, TCON的位定义如图4-2所示。         

图4-2TCON的位定义 TF0(TF1):T0(T1)定时器/计数器溢出中断标志位。当T0(T1)计数溢出时,由硬件置位,并在允许中断的情况下,向CPU发出中断请求信号,CPU响应中断转向中断服务程序时,由硬件自动将该位清零。 TR0(TR1):T0(T1)运行控制位。当TR0(TR1)=1时启动T0(T1);TR0(TR1)=0时关闭T0(T1)。该位由软件进行设置。 TCON的低四位与外部中断有关。 编写程序时,若需启动T0(T1),通过指令SETB TR0 或SETB TR1将TR0(TR1)设为1,需关闭T0(T1),通过指令CLR TR0 或CLR TR1将TR0(TR1)设为0。 4.2.1 中断的设置 所谓中断是指CPU对系统中或系统外发生的某个事件的一种响应过程,即CPU暂时停止现行程序的执行,而自动转去执行预先安排好的处理该事件的服务子程序。当处理结束后,再返回到被暂停程序的断点处,继续执行原来的程序。实现这种中断功能的硬件系统和软件系统统称为中断系统。 试验中涉及到的T0或T1的中断,中断的控制可通过中断允许寄存器IE来设置。IE的位定义如图4-3所示。
图4-3IE的位定义 EA:中断允许总控位。EA=0,屏蔽所有的中断请求;EA=1,开放中断。EA的作用是使中断允许形成两级控制。即各中断源首先受EA位的控制;其次还要受各中断源自己的中断允许总控位控制。 ET2:定时器/计数器T2的溢出中断允许位,只用于52子系列。 ES: 串行口中断允许位。ES=0,禁止串行口中断;ES=1允许串行口中断。 ET1:定时器/计数器T1的溢出中断允许位。ET1=0,禁止T1中断;ET1=1,允许T1中断。 EX1:外部中断1的中断允许位。EX1=0,禁止外部中断1中断;EX1=1,允许外部中断1中断。 ET0:定时器/计数器T0的溢出中断允许位。ET0=0,禁止T0中断;ET0=1,允许T0中断。 EX0:外部中断0的中断允许位。EX0=0,禁止外部中断0中断;ET0=1,允许外部中断0中断。 试验中需开中断允许总控位,需允许定时器T0和T1中断,因此在编程时使EA=1,使ET0=1且ET1=1。 中断源有多种, 每个中断源的优先级可通过中断优先级寄存器IP进行设置并管理。IP的位定义如图4-4所示。
图4-4IP的位定义 PT2: 定时器/计数器T2的中断优先级控制位。 PS: 串行口的中断优先级控制位。 PT1:定时器/计数器T1的中断优先级控制位。 PX1:外部中断INT1的中断优先级控制位。 PT0:定时器/计数器T0的中断优先级控制位 PX0:外部中断INT0的中断优先级控制位。 试验中为提高测量结果的准确度,需要将T1的中断设置为优先,通过指令SETB PT1来实现。 4.2.2 液晶显示模块1602内部的控制指令 1602液晶模块内部的控制器共有11条指令,控制指令表如表4-1所示:
表4-1控制指令表 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平) 指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 。 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 指令7:字符发生器RAM地址设置 。 指令8:DDRAM地址设置 。 指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据 。指令11:读数据 。 在对液晶显示模块1602写入指令或写入数据前,需要进行初始化,如清屏幕,光标返回到00H位置,开显示,将液晶模块设置为双行显示等。编程时,要根据表3.1来编制程序,通过对RS、RW、D0-D7设置不同的高低电平来实现不同的功能。 4.3 系统软件设计中的主要流程图设计的主程序和T0中断服务子程序的流程图如图4-5所示。 设计的数据处理子程序和T1中断子程序的流程图如图4-6所示。
5 程序的编译、仿真 5.1在Keil环境下的程序编写1)建立一个新工程 单击 Project 菜单,在弹出的下拉菜单中选中 New Project选项,然后选择你要保存的路径,输入工程文件的名字,保存新工程的界面图如图5-1所示。 图5-1新建工程
然后选择单片机型号89c51 2)建立一个新的文件 单击“File”菜单,再在下拉菜单中单击“New”选项,此时光标在编辑窗口里闪烁,这时可以键入应用程序了,但应首先保存空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名为(.asm),然后单击“保存”按扭。回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上击右键,添加文件的界面图如图5-2所示。 图5-2 添加文件 然后单击“Add File to Group ‘Source Group 1’”, 选中要添加的文件,然后单击“Add ” 3)输入源程序,进行编译、仿真 输入源程序后,单击“project”按钮下的“Build project, translate”按钮,程序无错误时界面图5-3如图: 
图5-3无错误界面 4)单击“Project”菜单,再在下拉菜单中单击"options for target'target1',出现选择晶振频率的界面图如图5-4所示。频率改为12MHz 图5-4 设置频率界面 单击图中的“Create HEX File” 选项,使程序编译后产生 HEX 代码。程序即编写好。 
5.2在PROTEUS环境下的仿真结果
图5-5输入频率为1Hz时的仿真结果 
图5-6输入频率为555Hz时仿真结果 6 结论 基于AT89C51单片机的液晶显示频率计包括单片机控制模块和液晶显示模块,调试后的频率计可测量方波、正弦波、脉冲信号等波形,测量最高频率为500KHz,误差为2Hz。本设计的创新点是:显示部分采用液晶显示模块1602,显示结果直接且能显示多行多位,功耗小,使用寿命长。本设计的不足之处是:测量频率范围窄,需要进一步扩展。
7 心得 通过这次单片机课程设计,让我感到了做好一件事是不容易的,对于单片机这门课,本来脑子里呈现出来就是一个‘难’字,果然,由于自己落下了一些内容后,没有好好预习,导致全盘落下,最后搞得好多都不懂,自己也明白到后面的课程设计不好做,会更加难过。 老师布置任务后,都很迷茫,然后呢看着那些课程设计题目,自己选了一个,基于51单片机的数字频率计的设计,这时才明白该好好做些事情了,自己开始查了好多资料,能用的微乎其微,当自己画好电路图后,又对程序开始发愁,又问了好多同学、学长还有网上的资料,终于,程序有了,然后运行的时候却不行了,一直愁困了我好多天,终于在网上找到了答案,至此,课程设计基本完成,然后写报告。真的,好久没有这么认真做作业了,还有一年多时间,多学点东西才对。
4.4 系统软件设计中的主要子程序
4.4.1 T1计数器中断服务子程序
根据图3.11中的T1中断服务子程序流程图设计的T1计数器中断服务子程序如下。
TIMER1:
INC 2AH
RETI
4.4.2 T0定时器中断服务子程序
根据图3.10中的T0中断服务子程序流程图设计的T0定时器中断服务子程序如下。
TIMER_INT:
CLR TR0
MOV TL0, TIMER_L
MOV TH0, TIMER_H
INC TIMCOUNT
MOV A , TIMCOUNT
CPL P1.4
CJNE A, #20H,T_END
CLR TR1
MOV TIMCOUNT ,#00H;
MOV INT_L, TL1
MOV INT_H, TH1
MOV INT_G, 2AH
MOV TH1, #00H
MOV TL1, #00H
MOV 2AH, #00H
SETB TR1
SETB TR0
RETI
4.4.3 数据处理子程序
根据图中的数据处理子程序流程图设计的数据处理子程序如下。
SBIN_SBCD:
CLR A
MOV T_G, A
MOV T_H, A
MOV T_M, A
MOV T_S, A
MOV R5, INT_G
MOV R7, INT_L
MOV R6, INT_H
MOV R2, #24
CLR C
SBIN_SBCD1:
MOV A, R7
RLC A
MOV R7, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R5
RLC A
MOV R5, A
MOV A, T_S
ADDC A, T_S
DA A
MOV T_S, A
MOV A, T_M
ADDC A, T_M
DA A
MOV T_M, A
MOV A, T_H
ADDC A, T_H
DA A
MOV T_H, A
MOV A, T_H
ADDDC A, T_H
DA A
MOV T_G, A
MOV A, T_G
DA A
MOV T_G, A
DJNZ R2, SBIN_SBCD1
POP PSW
RET
完整的Word格式文档51黑下载地址:
201423030309 钟明超.doc
(802 KB, 下载次数: 155)
|