1、 目录第一章 任务书1第二章 系统总体方案设计3第三章 频率计的硬件设计53.1单片机主电路设计53.1.1 89C51芯片介绍53.1.2单片机最小系统73.2放大整形电路93.2.1放大整形电路的必要性93.2.2放大整形电路的原理93.2.3 放大整形电路的设计93.3人机界面123.3.1驱动芯片74LS245123.3.2 显示模块123.3.3 开关按钮153.3.4完整硬件图15第四章 频率计软件设计164.1 流程图164.1.1 主程序164.1.2 定时器/计数器子程序174.2 程序代码18第五章 频率计的系统调试225.1系统调试225.2结论22第六章 总结23参考文
2、献23第23页 课程设计用纸第一章 任务书微机原理与接口技术课程设计任务书(八)题目:数字频率计的设计一、课程设计任务频率计又称为频率计数器,是一种专门对被测信号频率进行测量的电子测量仪器。本课题要求应用以51单片机为核心设计一频率计,对输入的信号进行频率计数,计数的频率结果通过数码管显示出来。二、课程设计目的通过本次课程设计使学生掌握:1)掌握以单片机为核心的系统的分析和设计的基本方法;2)程序的设计及实现方法;3)提高学生对单片机实时系统的设计和调试能力。三、课程设计要求要求(1)当按下开始键时,能够对0250kHz的信号频率进行准确计数,计数误差不超过Hz;(2)要求所设计的频率计能够测
3、量各种波形,如正弦波、方波、三角波等(在设计时需对被测信号进行放大和整形处理)。四、课程设计内容1、人机对话“界面”的设计;2、内存端口及外设的设置;3、硬件电路原理图、软件清单。五、课程设计报告要求报告中提供如下内容:1、目录2、正文(1)课程设计任务书;(2)总体设计方案(3)针对人机对话“界面”要有操作使用说明,以便用户能够正确使用本产品;(4)硬件原理图,以便厂家生成产(可手画也可用protel软件);(5)程序流程图及清单(子程序不提供清单,但应列表反映每一个子程序的名称及其功能);(6)调试、运行及其结果;3、收获、体会4、参考文献六、课程设计进度安排周次工作日工作内容第一周1布置
4、课程设计任务,查找相关资料2熟悉单片机硬件资源的使用3完成总体设计方案4画出硬件原理图及程序流程图5完成硬件接线,编写程序并调试第二周1编写程序并调试2编写程序并调试3编写程序并调试及准备课程设计报告4完成课程设计报告并于下午两点之前上交5答辩本课题共需两周时间七、课程设计考核办法本课程设计满分为100分,从课程设计平时表现、课程设计报告及课程设计答辩三个方面进行评分,其所占比例分别为20%、40%、40%。第二章 系统总体方案设计频率计是我们经常会用到的实验仪器之一,频率的测量实际上就是在单位时间内对信号进行计数,计数值就是信号频率。本文介绍了一种基于单片机AT89C51 制作的频率计的设计
5、方法,测量频率值时采用单片机对脉冲信号直接计数。该频率计实现1HZ250kHZ的频率测量,八位共阳极动态显示测量结果,可以测量正弦波、三角波及方波等各种波形的频率值。根据上述分析,频率计系统设计共包括五大模块:单片机控制模块、电源模块、放大整形模块及显示模块。各模块作用如下:1、单片机控制模块:以AT89C51单片机为控制核心,来完成它待测信号的计数,译码,和显示。利用其内部的定时计数器完成待测信号周期频率的测量。单片机AT89C51内部具有2个16位定时计数器,定时计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。2、电源模块:为整个系统提供合适又稳定的电源,主要为单片机
6、、信号调理电路提供电源,电压要求稳定、噪声小及性价高的电源。3、放大整形模块:放大电路是对待测信号的放大,降低对待测信号幅度的要求。整形电路是对一些不是方波的待测信号转化成方波信号,便于测量。5、显示模块:显示电路采用八位共阳极数码管动态显示,为了加大数码管的亮度,使用74LS245芯片进行驱动,便于观测。综合以上频率计系统设计有单片机控制模块、电源模块、放大整形模块及显示模块等组成,频率计的总体设计框图如图2.1所示。单 片 机AT89C51八位数 码 管 显 示段选P0.0-P0.7位选P2.0-P2.7控制键脉冲输入放大整形电路P1.2P3.5 图2.1 频率计的总体设计框图第三章 频率
7、计的硬件设计 3.1单片机主电路设计3.1.1 89C51芯片介绍许多由关硬件设计中都使用到单片机89C51,其功能比以往的单片机强大的多。AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储
8、器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。89C51引脚图如图3.1所示。 图3.1 AT89C51芯片管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口:P1口是一个内部提供上拉
9、电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地
10、址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(计时器0外部输入)P3.5T1(计时器1外部输入)P3.
11、6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。3.1.2单片机最小系统图3.2是单片机的最小系统,主要由晶振和复位组成,用于单片机的复位。 图3.2单片机的最小系统一.单片机晶振 图3.3 89C51晶振接法图单片机最小系统的晶振接法图如图3.3所示,其中:XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。选用6MHz频率的晶体,允许输入的脉冲频率为250kHz。电容的大小范围为20pF40pF,本设计选
12、用20pF电容。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。二单片机复位状态复位分为上电复位和手动复位电路,本次采用上电复位。89C51的复位电路如图3.4所示。单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟震荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使RST引脚保持10ms以上的高电平。只要保持高电平,则MCS-51单片机就循环复位;当RST从高电平变为低电平以后,MCS-51单片机从0000H地址开
13、始执行程序。在复位有效期间,ALE引脚输出高电平。 图3.4 89C51复位电路图复位后,P0口P3口输出高电平,且使这些准双向口皆处于输入状态,并且将07H写入栈指针SP(即设定堆栈底为07H),同时,将程序计数器PC和其余的特殊功能寄存器清为0(不定的位除外)。但复位不影响单片机内部的RAM状态3.2放大整形电路3.2.1放大整形电路的必要性因为在单片机计数中只能对脉冲波进行计数,而实际中需要测量频率的信号是多种多样的,有脉冲波、还有可能有正弦波、三角波等,所以需要一个电路。把待测信号转化为可以进行计数的脉冲波。3.2.2放大整形电路的原理矩形脉冲波的整形电路有两种:施密特触发器、单稳态触
14、发器。而这两种电路都可以有门电路或是555定时器构成。由于本次设计的基于单片机的数字频率计的放大整形电路部分需求比较简单,所以我们选择由555定时器构成的施密特触发器来作为信号波形整形电路。一、特点1、电平触发:触发信号可以是变化缓慢的模拟信号,达某一电平值时,输出电压突变。为脉冲信号。2、电压滞后传输:输入信号从低电平上升过程中,电路状态转换时对应的输入电平,与从高电平下降过程中电路状态转换时对应的输入电平不同。利用上述两个特点,施密特触发器不仅能将边沿缓慢变化的信号波形整形为边沿陡峭的矩形波,还可以将叠加在矩形脉冲高、低电平上的噪声有效地清除3.2.3 放大整形电路的设计本设计中使用555
15、定时器构成施密特触发器555定时器介绍:555定时器是一种模拟和数字功能相结合的中规模集成器件。一般用双极性工艺制作的称为555,用 CMOS工艺制作的称为7555,除单定时器外,还有对应的双定时器556/7556。555定时器的电源电压范围宽,可在 4.5V16V工作,7555可在 318V工作,输出驱动电流约为 200mA,因而其输出可与TTL、CMOS或者模拟电路电平兼容。555定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。555定时器的外引脚
16、排列图如图3.5所示。它内部包括两个电压比较器,三个等值串联电阻,一个RS触发器,一个放电管T及功率输出级。它提供两个基准电压VCC/3和 2VCC/3 图3.5 555定时器的外部引脚图555定时器的功能主要由两个比较器决定。两个比较器的输出电压控制 RS 触发器和放电管的状态。在电源与地之间加上电压,当5脚悬空时,则电压比较器C1的同相输入端的电压为2VCC/3,C2的反相输入端的电压为VCC/3。若触发输入端TR的电压小于VCC/3,则比较器C2的输出为0,可使 RS 触发器置1,使输出端OUT=1。如果阈值输入端TH的电压大于2VCC/3,同时TR端的电压大于VCC/3,则C1的输出为
17、0,C2的输出为1,可将RS触发器置0,使输出为0电平。它的各个引脚功能如下:1脚:外接电源负端VSS或接地,一般情况下接地。8脚:外接电源VCC,双极型时基电路VCC的范围是4.516V,CMOS型时基电路VCC的范围为3 18V。一般用5V。3脚:输出端Vo2脚:低触发端6脚:TH高触发端4脚:是直接清零端。当此端接低电平,则时基电路不工作,此时不论TR、TH处于何电平,时基电路输出为“0”,该端不用时应接高电平。5脚:VC为控制电压端。若此端外接电压,则可改变内部两个比较器的基准电压,当该端不用时,应将该端串入一只0.01F电容接地,以防引入干扰。7脚:放电端。该端与放电管集电极相连,用
18、做定时器时电容的放电。 在1脚接地,5脚未外接电压,两个比较器A1、A2基准电压分别为的情况下,555时基电路的功能表如表3.6所示。用555定时器构成的施密特触发器:当Vi=0时,由于V11=V12=Vi=0,电压比较器C1输出高电平,C2输出低电平;基本RS触发器被置“1”态;则Vi=1,当Vi继续上升,但在未达到2/3Vcc以前,VO=1不会变。当Vi升高到2/3Vcc时,电压比较器C1输出低电平,C2输出高电平;基本RS触发器被置“0”态;则VO=0,此后,Vi继续上升到Vcc,然后再降低,但在降低未达到1/3Vcc以前,VO=0的状态同样也不会改变。当Vi下降到1/3Vcc时,电压比
19、较器C1输出高电平,C2输出低电平;基本RS触发器被置“1”态;则VO=1,此后,vi继续下降到0,然后再上升,但在未达到2/3Vcc以前,VO=1的状态不会改变。 图3.6 由555定时器构成的施密特触发器3.3人机界面3.3.1驱动芯片74LS24574LS245是我们常用的芯片, 用来驱动 led 或者其他的设备,他是8路同相三态双向总线收发器,可双向传输数据。 74LS245还具有双向三态功能,既可以输出,也可以输入数据。 当8051单片机的 P0口总线负载达到或超过 P0最大负载能力时,必须接入74LS245等总线 驱动器。74LS245的引脚如图3.9所示,当片选端/CE 低电平有
20、效时,DIR=“0”,信号由 B 向 A 传输; (接收) *DIR=“1”,信号由 A 向 B 传输; (发送)当/CE 为高电平时,A、B 均为高阻态。 图3.9 74LS245引脚图3.3.2 显示模块显示模块由频率值显示电路组成。频率值显示电路采用八位共阳极数码管动态显示频率计被测数值,使用74LS245进行驱动,使数码管亮度变亮,便于观察测量。一 .数码管介绍常见的数码管由七个条状和一个点状发光二极管管芯制成,叫七段数码管,根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。根据管脚资料,可以判断使用的是何种接口类型14.两种数码管内部原理如图3.7所示。图3.7 两种数码管内部
21、原理图LED数码管中各段发光二极管的伏安特性和普通二极管类似,只是正向压降较大,正向电阻也较大。在一定范围内,其正向电流与发光亮度成正比。由于常规的数码管起辉电流只有12 mA,最大极限电流也只有1030 mA,所以它的输入端在5 V电源或高于TTL高电平(3.5 V)的电路信号相接时,一定要串加限流电阻,以免损坏器件。二数码管显示原理LED显示块中的发光二极管共有两种连接方法:(1)共阳极接法发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5V,这样,阴极端输入低电平的段的发光二极管被点亮,相应的段被显示;而输入高电平的段则不点亮。(2)共阴极接法发光二极管的阴极连在一起构成公共阴极。
22、使用时公共阴极接地,这样,阳极端输入高电平的段的发光二极管被点亮,相应的段被显示;而输入低电平的段则不点亮。 图3.8 数码管引脚图数码管引脚如图3.8,共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段dP、g、f、e、d、c、b、a对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极dP、g、f、e、d、c、b、a各段为0111011时,显示器显示P字符,即对于共阴极LED
23、显示器,“P”字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。表3-20 LED十六进制的数字代码表 字形共阳极代码字形共阳极代码003H549H19fH641H225H71FH3ODH801H499H909H3.3.3 开关按钮 图3.10 开关按钮如图3.10所示,当Sw1导通时P1.2为低电平;sw1关断时为高电平。3.3.4完整硬件图 由上述单片机模块,放大整形电路和显示模块组成的硬件图如图3.11所示。图3.11 数字频率计的硬件图第四章 频率计软件设计4.1 流程图4.1.1 主程序开始时,进行系统初始化,计数
24、器和定时器开始工作。如果没达到1s,则定时器继续计时;当定时器达到1s时,关断计数器和定时器。这时统计计数器所计的数就是所要测的波形的频率。具体流程图如图4.1所示。 开始初始化,开总中断开定时器0中断开计数器1中断计时达到1秒将外部中断次数n赋给m,n清零YN显示表达频率的变量mN图4.1 总体流程图4.1.2 定时器/计数器子程序 定时器可以通过单片机的震荡周期进行定时,在此程序中,将定时器T0定为50ms,这样每50ms定时中断1次k就加一,中断20次就是1s。定时器也可以当做计数器用,T1中断一次n就可以加一次。测频时,计数器T1工作在模式2,每当外部有中断信号时计数器T1自动加一,当
25、加满256时会自动计一周期,1秒计的脉冲信号就是频率。定时器的流程图如图4.2所示,计数器的流程图如图4.3所示。由TMOD来确定是定时器还是计数器,同时确定它的工作方式。 K=k+1开始定时50msK=20?初始化K=0对定时器数器初始化,计算mNY显示m图4.2 定时器的流程图开始初始化外部中断N=n+1图4.3 计数器的流程图4.2 程序代码#include sbit P12=P12;unsigned char code disp_tab = 0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09; /段码控制 09unsigned char
26、code disp_bit8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80; /位选控制 查表的方法控制unsigned char ge,shi,bai,qian,wan,shiwan; /数码管各位定义unsigned long int m=0,n=0,k=0; / 定义变量void delay(int ms) /延时子程序int i;for(;ms0;ms-)for(i=50;i0;i-)void main() while(P12=0) TMOD|=0x61; /选择定时器0方式一 ,计数器1方式二 TL0 = -50000%256; /定时器初值 50m
27、sTH0 = -50000/256;TR0 = TR1=1; /开定时器,计数器ET0 = ET1=1; /定时器中断允许 TH1=TL1=0; EA=1; while(1)shiwan=m/100000; wan=m%100000/10000;qian=m%10000/1000;bai=m%1000/100;shi=m%100/10; ge=m%10; P2=disp_bit7; P0=0x25; delay(3); P2=disp_bit6; P0=0x91; delay(3); P2=disp_bit5;P0=disp_tabge;delay(3);P2=disp_bit4;P0=dis
28、p_tabshi;delay(3); P2=disp_bit3;P0=disp_tabbai;delay(3); P2=disp_bit2;P0=disp_tabqian;delay(3);P2=disp_bit1;P0=disp_tabwan;delay(3);P2=disp_bit0;P0=disp_tabshiwan;delay(3); void time0(void) interrupt 1/定时器中断子程序 TL0 = -50000%256; /定时器初值 50msTH0 = -50000/256;k+;if(k=20) /定时1s后赋值k=0; EA=0;m=n*256+TH1*2
29、56+TL1; n=0;TH1=TL1=0; EA=1; void time1(void) interrupt 3 /中断子程序 n+; TH1=TL1=0; 第五章 频率计的系统调试5.1系统调试经过一次次的调试修改,最终完成了数字频率计的设计。由单片机内部定时器计数器构成基本测量电路,可以测出1HZ-250kHZ量程范围的波。但由于单片机只能检测脉冲信号,所以在外部电路中又加了放大整形电路来对非脉冲信号进行转变,加完放大整形电路后可以检测正弦波和三角波等波形的频率值。但在频率较大时数码管显示会闪烁,不过数值是稳定的。5.2结论通过对数字频率计软硬件设计基本上实现预定的对在一定频率范围内的正
30、弦波、锯齿波、三角波等波形的频率值测量并将测量值送到LED显示器显示。 硬件方面,实现了对正弦波和三角波等波形的放大整形转变为脉冲波。软件方面,通过单片机编程实现对待测信号的频率测量、测量结果显示等。但在实际设计工程中,由于自己知识有限,经验不足等原因,还是有很多需要改进的地方。如设计时往往仅用自己熟悉的芯片实现各功能块,使电路的设计受到限制,思路简单,并且实现时误差较大。要将设计用于实际系统,还需要进行进一步的设计。第六章 总结通过这次设计,我受益匪浅。单片机设计是一次综合性的实践,它将各种知识结合到一起综合运用到实践上来扩展、弥补、串联所学的知识。通过本次设计我得到了很多收获。首先,了解了
31、单片机的基本知识和在控制领域的作用和地位。其次掌握了C语言的编写程序,学会了使用PROTUTES和KEIL的仿真来实现,同时掌握了如何收集、查阅、应用文献资料,如何根据实际需要有选择的阅读书籍和正确确定系统所要使用的元器件的类型。再次,在精神方面锻炼了思想、磨练了意志。面对存在的困难首先分析问题根据目的要求确定可实现的部分,定出那不准的方面找同学和老师讨论研究,再完善、再修改、再发现问题、再解决培养了自己的耐心、恒心及遇事不乱的精神。总之,我明白了理论和实践之间存在的距离只有靠不断的思考不断的动手才能将所学的知识真正运用到实践上来。在设计中我的很多方面的能力都得到了提高,尤其在单片机软件编程方
32、面让我感触颇深。我个人认为软件设计是个即灵活又细腻的工作,它要求耐心和细心去不断完善,同时还需要有良好的逻辑思维能力。通过这次实训设计,我分析问题和解决问题的能力有所提高,也巩固了所学的知识,加深了对理论知识的理解,更重要的是锻炼自己的独立性,为我今后的工作和学习打下坚实的基础。参考文献1陈敬远.数字频率计的VHDL设计J.浙江传媒学院学报; 2002,01: 36-38.2何均 ,杨明.适合于单片机实现的极值搜索算法J.单片机与嵌入式系统应用,2004,24.3杜玉远.基于top-down方法的数字频率计的设计与实现J.电子世界, 2004,5: 30-32.4钱进.基于AT89C2051的高度精度数字频率计的设计J.机电产品开发与创新,2007,20(1):86-87.5冯雷星,杨伟,芦燕龙.基于单片机高性价比频率计的设计与实现B.微计算机信息,2007,20.6赫建国,刘立新,党剑华.基于单片机的频率计设计J.西安邮电学院学报,2003,03:34-37+75.