51单片机1602液晶显示频率计 下载本文

内容发布更新时间 : 2024/12/26 2:17:03星期一 下面是文章的全部内容请认真阅读。

② 以EEPROM电可擦除和Flash技术为主导的存储器

ATMEL公司把EEPROM和Flash技术巧妙相结合形成特殊的集成电路,从而使应用领域扩大。

③ 静态时钟方式

AT89系列单片机采用静态时钟方式,可以节省带电能。这对于降低便携类产品的功耗十分有用。

④ 可反复进行应用系统试验

采用AT89系列单片机设计的应用系统,可以反复进行系统试验。每次试验可以编制不同的程序,这样可以保证用户的系统设计达到最优。

⑤ 高标准的质量检测

ATMEL公司能够对各种集成电路进行严格且高标准的质量检测。其军品集成电路工作性能是完全符合军品标准的,在-55~125℃范围内其集成电路仍能实现正常的输出功能。因此,产品在航空航天仪器、雷达系统、导弹、智能自适应仪、机器人、各种武器电子系统、抗恶劣环境电子系统等领域都被广泛应用。

AT89S系列于AT89C系列相比,预算速度有了较大的提高,它的静态工作频率为0~33MHZ,片内集成有双数据指针DPTR、定时监视器、低功耗休闲状态及关电方式、关电方式下的中断恢复等诸多功能,极大地满足了各种不同的应用要求。AT89S52单片机是AT89S系列中增强型高档产品,它片内存储器容量是AT89S51的一倍,即片内8K的Flash程序存储器和256B的RAM。另外,它还增加了一个功能极强的、具有独特应用的16位定时/计数器2等多种功能。AT89S52系列单片机与MCS-51系列全兼容,它是在MCS-51的技术内核为主导的基础上倾注了ATMEL公司优良技术进行新的设计与开发,使之功能更强,更具特色,从而能够较快的学习和掌握,并具备广泛的开发环境,使开发应用更方便。[3]

2.2.2 AT89S52系列单片机的基本结构

AT89S52单片机是AT89S系列中增强型高档产品,它片内存储器容量是AT89S51的一倍,即片内8K的Flash程序存储器和256B的RAM。另外,它还增加了一个功能极强的、具有独特应用的16位定时/计数器2等多种功能。AT89S52系列单片机与MCS-51系列全兼容,它是在MCS-51的技术内核为主导的基础上倾注了ATMEL公司优良技术进行新的设计与开发,使之功能更强,更具特色,从而能够较快的学习和掌握,并具备广泛的开发环境,使开发应用更方便。

1) AT89S52单片机介绍及其硬件结构

- 7 -

AT89S52是一个低功耗、高性能,采用CMOS工艺制造的8位单片机,是Atmel公司AT89系列中的一款性能相当优异的高档型产品,兼容标准MCS—51指令系统及其引脚结构,与Atmel公司其它产品相比AT89S52的最大特点是:能在线编程,且编程连线极简单。AT89S52片内含8KB ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器。

AT89S52具有如下特征参数:40个引脚、8KB Flash片内程序存储器、256KB的RAM,4个可编程I/O口、5个带2级中断嵌套的中断、3个16位可编程定时计数器、1个全双工串行通讯口、看门狗(WDT)电路、片内时钟振荡器。

此外,AT89S52设计和配置了振荡频率可为0HZ并可通过软件设置省电模式。空闲掉电模式下,CPU暂停工作,而RAM、定时/计数器、串行口、外中断系统可继续工作;掉电模式下,“冻结”振荡器而保存RAM的数据,停止芯片其他功能直至外中断激活或硬件复位。

AT89S52单片机的主要功能: 8位字长CPU;

振荡器和时钟电路,全静态操作:0~33MHZ; 8KB系统内部可编程Flash存储器; 256KB内部RAM; 4个I/O共32位线; 3个16位定时/计数器; 全双工(UART)串行口通道; ISP端口;

定时监视器(看门狗); 双数据指针(DPTR); 20多个特殊功能寄存器; 电源下降标志。

2) AT89S52单片机的几种封装形式

AT89S52其有效引脚为40条,具有PDIP、TQFP、PLCC三种封装形式,以适应不同产品的需求。

3) AT89S52单片机的引脚功能说明 ① 主电源引脚

Vss(GND)(20脚):电源地电平 Vcc(40脚):电源供电电压4.0~5.0V

- 8 -

外接晶振或外部振荡器引脚

XTAL1(19脚):当外接晶振时,接外部晶振的一个引脚。 XTAL2(18脚):接外部晶振的另一个引脚 ② 多功能I/O引脚

P0口(39~32脚):8位并行I/O口

P1口(1~8脚):内接上拉电阻的8位准双向I/O口,能负担4个TTL负载。它的第二功能如下:

P1.0(1脚):定时/计数器T2的外部计数输入

P1.1(2脚):定时/计数器T2捕获/再装入触发及方向控制 P1.5(6脚):MOSI(用于系统内部编程) P1.6(7脚):MOSO(用于系统内部编程) P1.7(8脚):SCK(用于系统内部编程)

P2口(21~28脚):内接上拉电阻的8位准双向I/O口,能接4个TTL负载 P3口(10~17脚):内接上拉电阻的8位准双向I/O口,能接4个TTL负载,其第二功能为:

P3.0(10脚):RXD(串行接收端口) P3.1(11脚):TXD(串行发送端口) P3.2(12脚):INT0(外部中断0请求端) P3.3(13脚):INT1(外部中断1请求端)

P3.4(14脚):T0(定时/计数器0外部计数输入端) P3.5(15脚):T1(定时/计数器1外部计数输入端) P3.6(16脚):WR(外部数据写选通) P3.7(17脚):RD(外部数据读选通) ③ 控制、选通和复位引脚 RST(9脚):复位信号输入端

ALE/PROG(30脚):ALE地址锁存使能端,PROG为Flash编程时输入编程脉冲 PSEN(29脚):访问外部程序存储器读选通信号

EA/Vpp(31脚):EA为访问内部或外部程序存储器选择信号,Vpp为Flash编程电压。

- 9 -

3 频率计总体方案设计

3.1 频率计设计原理

频率的测量实际上就是在1s时间内对信号进行计数,计数值就是信号频率。用单片机设计频率计通常采用两种办法,第一种方法是使用单片机自带的计数器对输入脉冲进行计数;第二种方法是单片机外部使用计数器对脉冲信号进行计数,计数值再由单片机读取。第一种方法的好处是设计出的频率计系统结构和程序编写简单,成本低廉,不需要外部计数器,直接利用所给的单片机最小系统就可以实现。这种方法的缺陷是受限于单片机计数的晶振频率,输入的时钟频率通常是单片机晶振频率的几分之一甚至是几十分之一,在本次设计使用的AT89S52单片机,由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期测出“1”,后一个周期测出“0”。故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一。第二种方法的好处是输入的时钟信号频率可以不受单片机晶振频率的限制,可以对相对较高频率进行测量,但缺点是成本比第一种方法高,设计出来的系统结构和程序也比较复杂。由于成本有限,本次设计中采用第一种方法,因此输入的时钟信号最高频率不得高于12MHz/24=500KHz。对外部脉冲的占空比无特殊要求。 3.1.1 频率检测实现方法

1) 计数法测频率

使用计数方法实现频率测量时,外部的待测信号为单片机定时/计数器0的计数源,利用定时/计数器1定时实现计数闸门。频率计的工作过程为:定时/计数器0的计数寄存器清0,运行控制位TR置1,启动定时/计数器工作;同时运行定时/计数器1定时1s,定时/计数器0对外部的待测信号进行计数,定时/计数器1定时1s时间到TR清0,停止计数。从计数寄存器0读出测量数据,测量数据在完成数据处理后,由显示电路显示量结果。单片机外接晶振为12MHz,单片机指令周期为1μs,当被测频率信号过高时单片机不能测量。

2) 定时法测频率

使用定时方法实现频率测量时,外部的待测信号通过频率计的分频器二分频变成宽度等于待测信号周期的方波,该方波加至定时/计数器1的输入脚,及外部中断INT1口,由INT1口高电平和软件置位TR1,同时控制启动定时/计数器1对单片机的机器周期的计数,并检测方波高电平是否结束;当判定高电平结束时TR1清0,停止计数,然后从

- 10 -

计数寄存器读出测量数据。这时读出的数据反映的是待测信号的周期,通过数据处理把周期值变换成频率值,由显示电路显示测量结果。 3.1.2 频率计测频原理

频率计开始工作或者完成一次频率测量,系统软件都进行测量初始化。首先定时/计数器的计数寄存器清0,运行控制位TR置1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值(即测量频率的高量程)开始测量,计数闸门结束时TR清0,停止计数。计数寄存器中的数值经过数制转换程序从十六进制数转换为十进制数。判断该数的最高位,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。

当上述测量判断过程直到计数闸门宽度达到1s(对应的频率测量范围为100~999Hz)时测量结果仍不具有3位有效数字,频率计则使用定时方法测量待测信号的周期。定时/计数器的工作被设置为定时器方式,定时/计数器的计数寄存器清0,在判断待测信号的上跳沿到来后,运行控制位TR置为1,以单片机工作周期为单位进行计数,直至信号的下跳沿到来,运行控制位TR清0,停止计数。16位定时/计数器的最高计数值为65 535,当待测信号的频率较低时,定时/计数器将发生溢出。产生溢出时,程序进入定时器中断服务程序,对溢出次数进行计数。待测信号的周期由3个字节组成:定时/计数器溢出次数、定时/计数器的高8位和低8位。信号的频率f与信号的周期T之间的关系为:f=1/T。

完成信号的周期测量后,需要做一次倒数运算才能获得信号的频率。为提高运算精度,采用浮点数算术运算。浮点数由3个字节组成:第1字节最高位为数符,其余7位为阶码;第2字节为尾数的高字节;第3字节为尾数的低字节。待测信号周期的3个字节定点数通过截取高16位、设置数符和计算阶码转换为上述格式的浮点数。然后浮点数算术运算对其进行处理,获得用浮点数格式表达的信号频率值。再通过浮点数到ASCII码转换模块把用浮点数格式表达的信号频率值变换成本频率计的显示格式,送到显示模块显示待测信号的频率值。完成显示后,频率计都开始下一次信号的频率测量。

3.2 设计思路及方法

本频率计的结构主要包括时钟信号发生电路、分频电路、单片机控制电路和LCD显示电路组成。频率计的主要核心部件是采用AT89S52来产生定时和记录脉冲变化次数,运用AT89S52来构成计数器,突破了大部分运用数字电路模板来构成计数器。本设计主要采用AT89S52芯片和LCD数码管来实现,软件编程主要是采用C51语言来编程。

- 11 -