《数字电子技术》课程设计说明书基于单片机简易的频率计 .doc

上传人:文库蛋蛋多 文档编号:4147027 上传时间:2023-04-07 格式:DOC 页数:25 大小:716KB
返回 下载 相关 举报
《数字电子技术》课程设计说明书基于单片机简易的频率计 .doc_第1页
第1页 / 共25页
《数字电子技术》课程设计说明书基于单片机简易的频率计 .doc_第2页
第2页 / 共25页
《数字电子技术》课程设计说明书基于单片机简易的频率计 .doc_第3页
第3页 / 共25页
《数字电子技术》课程设计说明书基于单片机简易的频率计 .doc_第4页
第4页 / 共25页
《数字电子技术》课程设计说明书基于单片机简易的频率计 .doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《《数字电子技术》课程设计说明书基于单片机简易的频率计 .doc》由会员分享,可在线阅读,更多相关《《数字电子技术》课程设计说明书基于单片机简易的频率计 .doc(25页珍藏版)》请在三一办公上搜索。

1、摘要11芯片介绍11.1 LM324111.2 AT89S52211.2.1 AT89S52的主要性能11.2.2 AT89S52的功能特性描述21.2.3 AT89S52的引脚功能描述31.2.4 特殊功能寄存器41.2.5存储器结构71.2.6 定时器0和定时器171.2.7 定时器271.2.8 中断81.2.9晶振特性91.2.10 Flash编程并行模式102总体方案设计112.1设计要点112.2 系统方案113模块设计与实现123.1 显示模块123.2单片机总控制单元:123.3放大整形电路4134 软件设计3145 测试结果186 总结与体会19参考文献20附录1:总体电路原

2、理图21附录2:元件清单22摘要本次设计的简易频率计,是以AT89S52单片机为控制核心,辅以放大整形电路,显示电路构成的。简易频率计能够根据题目要求能够用4位7段数码管显示待测频率,格式为0000Hz。测量频率09999Hz信号类型:正弦波、方波和三角波。测量信号幅值:0.19V。另外,采用在线编程校准大大提高了频率计的测量精度,在9999Hz的频率范围内,可以把误差控制在0.022%以下。而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。 对所设计的频率计的各项指标进行了测量和

3、记录,满足要求,且在局部某些地方有自己的创新之处,相比用中规模集成器件构成的频率计优点有成本低、原理简单、功能齐全,实现价值高,各项性能较好。关键字:数字频率计 AT89S52 可编程 高精度1芯片介绍本次课程设计主要用到的芯片有用于整形电路的集成运放LM324和主控芯片AT89S52,下面对这两块芯片作一下详细的介绍。1.1 LM3241图1 LM324的外形LM324 是四运放集成电路,它采用14 脚双列直插塑料封装,外形如图1所示。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。每一组运算放大器可用图2所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信

4、号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo 的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo 的信号与该输入端的相位相同。LM324 的引脚排列见图3。 图2 运算放大器的符号 图3 LM324的引脚排图由于LM324 四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。1.2 AT89S5221.2.1 AT89S52的主要性能l 与MCS-51单片机产品兼容l 8K字节在系统可编程Flash存储器l 1000次擦写周期l 全静态操作:0H

5、z33Hzl 三级加密程序存储器l 32个可编程I/O口线l 三个16位定时器/计数器l 八个中断源l 全双工UART串行通道l 低功耗空闲和掉电模式l 掉电后中断可唤醒l 看门狗定时器l 双数据指针l 掉电标识符1.2.2 AT89S52的功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制

6、应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其引脚结构图如图4所示。图4 AT89S52的引脚结构1.2.3 AT89S52的引脚功能描述VCC

7、: 电源GND: 地P0: P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(I

8、IL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表1所示。在flash编程和校验时,P1口接收低8位地址字节。表1 P1 口部分引脚的第二功能P2:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这

9、种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如表2所示。在flash编程和校验时,P3口也接收一些控制信号。表2 P3 口引脚的第二功能RST:

10、复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE

11、操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP

12、电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。1.2.4 特殊功能寄存器特殊功能寄存器(SFR)的地址空间映象如表3所示。并不是所有的地址都被定义了。片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数写入的数据将会无效。用户不应该给这些未定义的地址写入数据“1”。由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。表3 AT89S52 特殊寄存器映象及复位值定时器2 寄存器:寄存器T2CON 和T2MOD 包含定时器2 的控制位和状态位(如表4和表5所示),寄存器对RCAP2H和RCAP2L是定时器2的捕捉/自动重

13、载寄存器。中断寄存器:各中断允许位在IE寄存器中,六个中断源的两个优先级也可在IE中设置。双数据指针寄存器:为了更有利于访问内部和外部数据存储器,系统提供了两路16位数据指针寄存器:位于SFR中82H83H的DP0和位于84H85。特殊寄存器AUXR1中DPS0 选择DP0;DPS=1 选择DP1。用户应该在访问数据指针寄存器前先初始化DPS至合理的值。表4 T2CON:定时器/计数器2控制寄存器表5 AUXR:辅助寄存器1.2.5存储器结构MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于

14、89S52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:AT89S52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。例如,下面的直接寻址指令访问0A0H(P2口)存储单元MOV 0A0H , #data使用间接寻址方式访问高128 字节RAM。例如,下面的间接寻址方

15、式中,R0 内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV R0 , #data堆栈操作也是简介寻址方式。因此,高128字节数据RAM也可用于堆栈空间。1.2.6 定时器0和定时器1在AT89S52 中,定时器0 和定时器1 的操作与AT89C51 和AT89C52 一样。为了获得更深入的关于UART 的信息,可参考ATMEL网()。从这个主页,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择“ProductOverview”即可。1.2.7 定时器2定时器2是一个16位定时/计数

16、器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。定时器2有三种工作模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。如表4 所示,工作模式由T2CON中的相关位选择。定时器2有2个8位寄存器:TH2和TL2。在定时工作方式中,每个机器周期,TL2 寄存器都会加1。由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12。在计数工作方式下,寄存器在相关外部输入角T2发生1至0的下降沿时增加1。表6 定时器2工作模式在这11种方式下,每个机器周期的S5P2期间采样外部输入。一个机器周期采样到高电平,而下一个周期采

17、样到低电平,计数器将加1。在检测到跳变的这个周期的S3P1 期间,新的计数值出现在寄存器中。因为识别10的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保持不变。1.2.8 中断AT89S52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断。这些中断如图5所示每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。如表7所示,IE.6位是

18、不可用的。对于AT89S52,IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2 或EXF2激活中断,标志位也必须由软件清0。定时器0和定时器1标志位TF0 和TF1在计数溢出的那个周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2 的标志位TF2 在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。图5 中断源表7 中断允许控制寄存器(IE)1.2.9晶振特性如图10所示,

19、AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2 可以不接,而从XTAL1 接入,如图7 所示。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。 图6 内部振荡电路连接图石英晶振 图7 外部振荡电路连接图C1,C2=30PF10PF陶瓷谐振器 C1,C2=40PF10PF1.2.10 Flash编程并行模式AT89S52 带有用作编程的片上

20、Flash 存储器阵列。编程接口需要一个高电压(12V)编程使能信号,并且兼容常规的第三方*(原文:third-party,不知道对不对)Flash或EPROM编程器。AT89S52程序存储阵列采用字节式编程。编程方法:对AT89S52编程之前,需根据Flash编程模式表和图13、图14对地址、数据和控制信号设置。可采用下列步骤对AT89S52编程:1)在地址线上输入编程单元地址信号2)在数据线上输入正确的数据3)激活相应的控制信号4)把EA/Vpp升至12V5)每给Flash写入一个字节或程序加密位时,都要给ALE/PROG一次脉冲。字节写周期时自身定制的,典型值仅仅50us。改变地址、数据

21、重复第1步到第5步,知道全部文件结束。2总体方案设计2.1 设计要点本次课程设计有以下要点: 设计一个频率计。要求用4位7段数码管显示待测频率,格式为0000Hz。测量频率范围:109999Hz。测量信号类型:正弦波、方波和三角波。测量信号幅值:0.55V。设计的脉冲信号发生器,以此产生闸门信号,闸门信号宽度为1S。确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。2.2 系统方案简易数字频率计可以用中规模集成芯片构建而成,但与用51单片机实现相比,其电路复杂程度要大得多,而且远远不及用单片机实现灵活,其精度也不及用单片机实现的高。所以

22、我采用用AT89S52单片机去实现。我采用单片机89S52作为控制核心,用数码管显示所输入信号的频率,具体的系统框图如图8所示:图8 简易频率计的系统总体框图其中,信号通过整形放大后,输入单片机中的计数器,运用单片机中的定时器设置每隔一秒钟将计数器中死亡数据输出,通过数码管显示。单片机作为控制中心,随时检测和计录输入信号的频率,并控制输出显示和输入是否超载。而显示电路用一个四位一体的数码管实现。为简化硬件电路,用动态显示的方式,依次点亮个数码管,这样不仅仅是简化了电路,而且每一时刻四位数码管只相当于一位数码管的功耗,大大减少了功耗。 3模块设计与实现3.1 显示模块本次课程设计采用一个四位一体

23、数码管,替显输入信号的平率。因为频率是一个实时变化量,我用一个的数码管来显示,每隔一秒更换一次数据。电路原理图如图9所示。各数码管的显示采用动态扫描的方式,这样,两个数码管共八位的功耗只相当于一位数码管显示的功耗。与液晶显示相比,既可以实现所要求的功能节省了硬件成本,又大大减小了功耗。 图9显示模块3.2单片机总控制单元:图10 单片机系统原理图我们用AT89S52作为整个电路的控制中心和数据计算处理中心,其中P0口对应两个数码管的数据位,P1口为LED动态点亮位。P3.4脚用于信号输入。具体系统原理图如图10所示3.3放大整形电路4考虑到所输入的信号有正弦波和三角波,而单片机所能读入的信号只

24、能是数字信号的方波,所以正弦波和三角波在输入单片机之前必须通过整形电路整成方波。我设计的整形电路是用集成运放搭建而成,运用集成运放的增益非常大,而又受限于运放的电源电压的特点,可以实现将一定幅值的电压信号整成标准的数字信号。有因为所设计的频率计测量的频率信号的幅值能够达到越小越好,信号在进入整形电路之前设计了一个放大电路将信号放大。放大电路也用集成运放构建而成,因集成运放的稳定性较好。所设计的放大整形电路如图11所示: 图11 放大整形电路4 软件设计3本系统以AT89S52单片机为核心,用C语言编程6,可实现题目要求的各种功能,其程序流程图如图12所示。图12 程序流程图简易频率计的C语言程

25、序:#pragma db code#include #define uchar unsigned char#define uint unsigned intsbit LED_0=P10;sbit LED_1=P11;sbit LED_2=P12;sbit LED_3=P13;/*=0-9=A-G=*/uchar a16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0x86,0x8e,0x82;uchar b4=0x8e,0xc1,0xc7,0xc7;uchar one,two,three,four;uint

26、t=8000,j;/时间tuint m=0,n=0,k=0;/次数uint s3=0,s4;/dt前后次数time1()interrupt 3 /delay(20); t=t+0.05*100;/每到0.05s,定时器1产生中断 TH1=0x3e; TL1=0xff; if(t%100=0) m=TH0*256+TL0;TH0=0x00;TL0=0x00;/*s3=n;m=(s3-s4);s4=s3;*/ void delay(uint x);void display(void);void led_analyze(uint l);void led_add();void main()uint a

27、; IT1=1; /外部中断0下跳沿 EX1=1; TMOD=0x15;/T1定时方式1,T0计数1 TH1=0x3e; TL1=0xff;/定时50ms TR1=1;/T1 ET1=1; TH0=0x00; TL0=0x00;/定时50ms TR0=1;/T0 ET1=1; EA=1; while(1) if(m=9999) led_analyze(m); for(a=0;a100;a+) display(); else P0=b0; LED_0=0; delay(300); LED_0=1; P0=b1; LED_1=0; delay(300); LED_1=1;P0=b2; LED_2=

28、0; delay(3); LED_2=1;P0=b3; LED_3=0; delay(300); LED_3=1; void delay(uint x)uint i;for(i=0;ix;i+); void display(void)P0=aone; LED_0=0; delay(3); LED_0=1; P0=atwo; LED_1=0; delay(3); LED_1=1; P0=athree; LED_2=0; delay(3); LED_2=1; P0=afour; LED_3=0; delay(3); LED_3=1; void led_analyze(uint l) l=l%100

29、00; one=l/1000; two=(l/100)%10; three=(l%100)/10; four=(l%100)%10;本程序是结合理论联系实际设计而成,因为晶振的频率不是百分百的准确,根据单片机的机器周期设计一秒钟的时间也有差异,所以在线编程,一标准的频率对频率计进行校准,这样大大提高了频率计的精确度。5 测试结果 在硬件和软件都做好好,为检测频率计的可行性,用各种波形的标准频率信号对频率计进行了测试,测试结果如表8所示。表8频率计的测试结果正弦波幅值(V)实际值(Hz)显示值(Hz)误差(%)5.01000100005.0500050010.025.0900090020.022

30、方波0.21000100000.2500050010.020.2900090020.0220.1900090020.022三角波0.11000100000.1500050010.020.1900090020.0229.0900090020.022从所测试的结果可以看出,此次课程设计所涉及出来的简易频率计的进度是相当高的。如果对所输入的信号进行分频或增加数码管的位数,可以进一步提高所测频率值的范围。但误差无法消除,有一部分原因是单片机工作时间的长短,直接影响机器周期的长短。6 总结与体会本文对所设计的简易频率计做了整体和各模块的介绍,及硬件软件设计原理和实现方法的说明。频率计AT89S52单片机

31、为控制核心,辅以整形电路,显示电路等外围器件,构成了一个单片机系统。频率计能够根据题目要求能够用4位7段数码管显示待测频率,格式为0000Hz。测量频率09999Hz信号类型:正弦波、方波和三角波。测量信号幅值:0.19V。在9999Hz的频率范围内,可以把误差控制在0.022%以下。在没有做课程设计以前觉得课程设计只是对数电所学知识的单纯总结,但是通过这次做课程设计过程中所遇到困难,发现自己的看法有点太片面。数电课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西

32、都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。参考文献1吴钟珍最新实用电子电工技术手册徐氏基金会出版社2003年5月2深圳市中源单片机发展有限公司 AT89C52 Datasheets3张友德 单片微型机原理、应用和实验 复旦大学出版社_4陈大钦 电子技术基础(第二版)高等教育出版社 20005曾建唐电工电子基础实践设计机械工业出版社2003年7月 6马淑华单片机原理与接口技术北京邮电大学出版社 2005年10月附录1:总体电路原理图 图13总体电路原理图附录2:元件清单名称数量名称数量AT89S52110K电位器1排针若干晶振1按键130P电容210UF电容1四位一体共阳数码管1200欧电阻88550410K电阻5导线若干LED1排插若干

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号