目录摘要..............................................错误!未定义书签。关键词............................................................3正文..............................................................41概述............................................................42总体设计方案....................................................52.1软件......................................................52.2设计思路..................................................53系统软件设计....................................................53.1主板说明..................................................53.2芯片主要性能..............................错误!未定义书签。3.3功能特性描述..............................................63.4引脚描述..................................................64系统软件设计....................................................94.1初始定义..................................................94.2子程序设计................................................94.3主要源程序...............................................105系统调试.......................................................136课程设计体会...................................................157参考文献.......................................................15附录.............................................................16摘要:数字频率计是现代科研生产中不可或缺的测量仪器,它以十进制数显示被测频率,基本功能是测量正弦信号,方波信号,及其它各种单位时间内变化的物理量。本系统采用AT89S52单片机智能控制,结合外围电子电路,设计的频率计性能稳定。在软件设计上采用了单片机的C语言设计,通过单片机内部定时/计数器同时动作,在测量频率时将测频率和测周期相结合,提高了频率计的测量准确性。测量结果在四位七段式数码管上输出显示,结果精确到整数位。频率计的软件设计,系统软件设计简单明了,适用于测量频率从1~9999Hz的脉冲信号,超频自动报警,安全可靠。关键词:数字频率计;AT89S52单片机;信号;AT89S52最小系统板;LG5011BSR正文1.概述单片机是20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在线系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。本项目以AT89S52为基本控制元件,能够对1~9999Hz频段内的正弦信号,方波信号,及其它各种单位时间内变化的物理量进行初略测量,可应用于教学实验,学生自主实验等对频率精确度要求不高的场合,也可应用于家用情况下频率的初步获取。在科技高度发达的今天,作为一名工科的大学生,一款简易的频率测量仪器,人手必备。2.总体设计方案2.1软件:采用KeiluVision3做为开发工具,进行编程设计,通过progisp2.0将程序下载到开发板芯片中。2.2设计思路:利用AT89S52内部的定时/计数器0,和定时/计数器1结合完成,在初化AT89S5时,把定时/计数器0设置为计数方式,计数的信号来源于单片机的引脚P3^5,定时/计数器1设置为定时方式.上电后按下按键kye1(P2^0),去抖启动,同时开始T1的定时过程和T0的计数过程,T1定时20ms,设置定时中断,当T1第20次进入中断定时结束时,停止T0的计数过程。之后通过读取T0的计数值N,就可以知道在1s内输入信号的频率为val。若T1定时不到1s,T0计数到65536溢出,则进入计数中断,蜂鸣器报警。图一程序控制方框图输出频率计频率按下按键计数溢出蜂鸣器报警3.系统硬件设计3.1主板【简要说明】3.1.1尺寸:长128mm宽87mm高18mm3.1.2支持芯片:AT89S51/S52/S53支持STC89C51/C52/C53(加转换板可使用ATMEGA8/48、ATMEGA16/32)3.1.3工作电压:直流4.5~5.5伏3.1.4单片机标准十针下载接口。(可使用并口下载线和USB下载线下载)3.1.5特点:(1)具有电源指示。(2)所以I/O口以引出并有LED灯指示。(3)四位数码管显示、四位按键输入、32位LED发光二极管显示。(4)标准的11.0592M晶振。(晶振可以插拔更换)(5)具有上电复位和手动复位。(6)四种供电接口(USB供电、端子引入供电、排针引入供电、电源头接口供电)(7)串口通信使用MAX232接口,同时可以下载STC单片机程序。3.2芯片主要性能:MCS-51单片机产品兼容8K字节在线系统可编程Flash存储器1000次擦写周期4.0V-5.5V工作电压0Hz~33Hz256*8字节的内部数据存储器32个可编程I/O口线16位定时器/计数器UART串行通道图二芯片管脚示意图ISP编程(字节和模式)-免费)工作包操作3.3功能特性描述:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在线系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。3.4引脚描述:VCC:电源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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.2MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)表1P1口第二功能说明P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在flash编程和校验时,P3口也接收一些控制信号。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。PortPinAlternateFunctionsP3.0RXD(serialinputport)P3.1TXD(serialoutputport)P3.2INT0(externalinterrupt0)P3.3INT1(externalinterrupt1)P3.4T0(timer0externalinput)P3.5T1(timer1externalinput)P3.6WR(externaldatamemorywritestrobe)P3.7RD(externaldatamemoryreadstrobe)表2P3口第二功能说明RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。在访问外部数据存储器时,PSEN将不被激活。定时器0和定时器1:在AT89S52中,定时器0和定时器1的操作与AT89C51和AT89C52一样。图三频率计系统组成图4.系统软件设计4.1初始定义4.2子程序设计a.画流程图b.编译数码显示延时,按键去抖延时c.数码管扫描d.记时20ms中断(再次赋初值)e.计数溢出中断f.对记时,计数,中断初始化图四流程图开始按下key1判别成功与否T0计数T1计时T1中断T0中断显示4.3主要源程序#includereg52.h//库文件#defineucharunsignedchar//宏定义无符号字符型#defineuintunsignedint//宏定义无符号整型/**************************初始定义********************************/Codeuncharseg7code[10