《毕业设计(论文)基于单片机的液晶字符显示频率计的设计与制作.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的液晶字符显示频率计的设计与制作.doc(44页珍藏版)》请在三一办公上搜索。
1、 桂林航天工业学院论文液晶字符显示频率计的设计与制作LCD character display frequency meter design and fabrication数字频率计的设计与显示”专 业:应用电子技术学 生: 指导教师: 教授桂林航天工业学院电子工程系二零壹二年六月 毕 业 设 计( 论 文 )评 语 指导教师评语 签字: 200 年 月 日评阅教师评语 签字: 2012 年 月 日 毕业设计(论文)答辩记录成绩及评语答辩提问记录 记录人: 2012年 月 日答辩委员会评语 成绩 主任签字: 2012 年 月 日毕 业 设 计 任 务 书专业:应用电子技术 年级:2009级姓名
2、学号指导教师(签名)毕业设计题目液晶字符显示频率计的设计与制作任务下达日期2011年11月25日设计提交期限2012年6月10日设计主要内容对输入信号的频率进行测量,并实现数码显示主要技术参数指标显示时间间隔为0.5秒数码管显示,精确到1Hz成果提交形式设计论文、实物设计进度安排1月10日2月10日收集资料2月10日3月10日方案设计论证3月10日4月10日硬件设计与制作4月10日5月10日编写程序及调试5月10日6月10日书写报告,提交设计成果 教研室意见 签名: 年 月 日 系主任意见签名: 年 月 日桂林航天工业高等专科学校电子工程系毕 业 设 计 开 题 报 告姓名学号指导教师毕业设计
3、题目液晶字符显示频率计的设计与制作同组设计目的意义1.掌握单片机的基本工作原理及其应用;2.掌握使用软件KeilC51开发软件和Proteus仿真软件在设计中的应用;3.锻炼动手与操作能力。(建议写与题目相关的目的)方案论证方法一:(定时1s测信号脉冲次数)用一个定时计数器做定时中断,定时1s,另一定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1s中断,产生1s中断后立即关闭T0和T1(起保护程序和数据的作用)取出计数器寄存器内的值就是1s内待测信号的下跳沿次数即待测信号的频率。方法二:1占空比的方波,仅用一个定时计数器做计数器,外部中断引脚作待测信号输入口,置计数器为
4、外部中断引脚控制(外部中断引脚为“1”切TRx=1计数器开始计数)。时间安排3-4月收集整理资料5月15日前进行方案论证及原理设计5月15日-6月1日进行实物制作与调试6月1日提交设计论文和实物指导教师意见 签字: 年 月 日 审核小组意见 组长签字: 年 月 日摘要在电子技术中,频率是最基本的参数之一,又与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。 频率计主要是由信号输入和放大电路、单片机模块、分频模块及显示电路模块组成
5、。AT89S52单片机是频率计的控制核心,来完成它待测信号的计数,译码,显示以及对分频比的控制。利用它内部的定时/计数器完成待测信号频率的测量。在整个设计过程中,所制作的频率计采用外部分频,实现1Hz9999Hz的频率测量,而且可以实现量程自动切换流程。以AT89C51单片机为核心,通过单片机内部定时/计数器的门控时间,方便对频率计的测量。其待测频率值使用四位共阳极数码管显示,并可以自动切换量程,单位分别由红、黄、绿3个LED指示。本次采用单片机技术设计一种数字显示的频率计,具有测量准确度高,响应速度快,体积小等优点。关键词: 频率计;单片机;计数器;量程自动切换ABSTRACTIn elec
6、tronic technology, the frequency is one of the most basic parameters, but also with a number of electrical parameters of the measurement program, the measurement results have a very close relationship between the frequency of measurement, therefore it is even more important.Measuring frequency of me
7、ans, including electronic counter measure frequency with high precision, easy to use, rapid measurement, and measurement is easy to realize the advantages of process automation, is an important means of frequency measurement.A simple frequency meter mainly by the signal input and amplifying circuit,
8、 microcontroller module, sub-frequency circuit module and display module. AT89S52 MCU is the control core frequency of dollars to complete its count of the signal under test, decoding, display and control of the frequency division ratio. Using its internal timer or counter to complete the signal of
9、the under test cycle / frequency of measurement.Throughout the design process, periodic measurement of the frequency meter application and the corresponding mathematical treatment to achieve 10Hz 2MHz frequency measurements, and can automatically switch the flow to achieve scale. To the core of AT89
10、C51 microcontroller, with the MCU internal timer / counter gate time, it can be easier for frequency measurement. The use of microcomputer technology to design a digital display of frequency meter, have a measurement of high accuracy, fast response, small size and so on.Keywords: Frequency meter; si
11、ngle chip; counter; range automatically switch目 录第一章绪论11.1 频率计概述11.2 频率计发展与应用11.3 频率计设计内容11.3.1频率测量仪的设计思路与频率的计算21.3.2 基本设计原理21.4 单片机的应用31.5 MSC-51单片机简介3第二章 频率计总体方案设计42.1方案比较42.2 方案论证52.3方案选择5第三章 系统硬件电路的设计63.1 系统硬件电路设计63.2数字频率计的主电路设计73.2.1 89C51芯片介绍73.2.2单片机复位状态103.3 单片机的外围电路设计113.3.1时钟电路设计113.3.2 复位
12、电路123.3.3信号输入电路123.4 液晶显示模块160213第四章 系统软件的设计154.1软件模块设计154.1.1输入信号处理164.1.2中断的设置164.2 定时器/计数器及工作方式的设置184.2.1定时器/计数器184.2.2工作方式的设置194.3 定时器/计数器开启/关闭的设置204.4应用软件介绍204.4.1 Keil简介204.4.2 protues简介22第五章 程序的编译、仿真235.1单片机开发环境的介绍235.2在Keil环境下的程序编写235.2.1建立一个新工程235.2.2建立一个新的文件245.3 Pouteus软件调试255.3.1 程序编译255
13、.3.2程序仿真275.4功能调试285.5系统软硬件调试29第六章 总结与展望30参考文献31致谢32附录A 程序代码33附录B36第一章绪论频率测量是电子学测量中最为基本的测量之一。由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测频方法的研究正受到越来越多的关注。1.1 频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调
14、试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路组成,产品不但体积大,运行速度慢而且测量低频信号不准确。本次采用单片机技术设计一种数字显示的频率计,测量准确度高,响应速度快,体积小等优点。1.2 频率计发展与应用在我国,单片机已不是一个陌生的名词,它的出现是近代计算机技术的里程碑事件。单片机作为最为典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。单片机已成为电子系统的中最普遍的应用。单片机作为微型计算机的一个重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网
15、络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。其中以AT89S52为内核的单片机系列目前在世界上生产量最大,派生产品最多,基本可以满足大多数用户的需要。1.3 频率计设计内容本数字频率计将采用定时、计数的方法测量频率,采用一个四位共阴极数码管显示器动态显示4位数。测量范围从1Hz9999Hz的 方波、 用单片机实现自动测量功能。基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。1.3.1频率测量仪的设计思路与频率的计算频率测量仪的设计思路主要是:对信号分频,测量一个或几
16、个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小,其原理如右图1-1所示。图1.1 频率测量原理图若被测量信号的周期为,分频数m1,分频后信号的周期为T,则:T=m1Tx 。由图可知: T=NTo (注:To为标准信号的周期,所以T为分频后信号的周期,则可以算出被测量信号的频率f。)由于单片机系统的标准频率比较稳定,而是系统标准信号频率的误差,通常情况下很小;而系统的量化误差小于1,所以由式T=NTo可知,频率测量的误差主要取决于N值的大小,N值越大,误差越小,测量的精度越高。1.3.2 基本设计原理基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量
17、周期的方法对正弦波、方波、三角波的频率进行自动的测量。所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。1.4 单片
18、机的应用单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面, 其调试过程一般分为软件调试、硬件测试、系统调试3个过程。如果采用单片机系统的虚拟仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作。在具体焊接电路以前,采用软件仿真,可以大大的增加工作效率,节约经济成本。本文利用AT89C51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过4位动态数码管显示出来。能够对09999HZ的信号频率进行准确计数,计数误差不超过1HZ。1.5 MSC-51单片机简介 MCS-51是指由美国INTEL公司(对了,就是大名鼎鼎
19、的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。 INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。 MC
20、S51单片机的内部总体结构其基本特性如下:8位CPU、片内振荡器、4k字节ROM、128字节RAM、21个特殊功能寄存器、32根I/O线、可寻址的64k字节外部数据、程序存贮空间、2个16位定时器、计数器中断结构:具有二个优先级、五个中断源一个全双口串行口位寻址(即可寻找某位的内容)功能,适于按位进行逻辑运算的位处理器。除128字节RAM、4k字节ROM和中断、串行口及定时器模块外,还有4组I/O口P0P3,余下的就是CPU的全部组成。把4kROM换为EPROM就是8751的结构,如去掉ROM/EPROM部分即为8031,如果将ROM置换为Flash存贮器或EEPROM,或再省去某些I/O,即
21、可得到51系列的派生品种,如89C51、AT89C2051等单片机。单片机各部分是通过内部的总线有机地连接起来的。第二章 频率计总体方案设计2.1方案比较方案一:(定时1s测信号脉冲次数)本方案主要以单片机为核心,利用单片机的计数定时功能来实现频率的计数并且利用单片机的动态扫描法把测出的数据送到数字显示电路显示。具体是用一个定时计数器做定时中断,定时1s,另一定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1s中断,产生1s中断后立即关闭T0和T1(起保护程序和数据的作用)取出计数器寄存器内的值就是1s内待测信号的下跳沿次数即待测信号的频率。用相关函数显示完毕后再开启T0
22、和T1这样即可进入下一轮测量。其原理示意图如2-1所示:图2-1 方案一原理示意图方案二(测信号正半周期)对于1:1占空比的方波,仅用一个定时计数器做计数器,外部中断引脚作待测信号输入口,置计数器为外部中断引脚控制(外部中断引脚为“1”切TRx=1计数器开始计数)。单片机初始化完毕后程序等待半个正半周期(以便准确打开TRx)打开TRx,这时只要INTx(外部中断引脚)为高电平计数器即不断计数,低电平则不计数,待信号从高电平后计数器终止计数,关闭TRx保护计数器寄存器的值,该值即为待测信号一个正半周期的单片机机器周期数,即可求出待测信号的周期:待测信号周期T=2*cnt/(12/fsoc) cn
23、t为测得待测信号的一个正半周期机器周期数;fsoc为单片机的晶振。所以待测信号的频率f=1/T。其原理示意图如2-2所示:图2-2 方案二原理示意图2.2 方案论证根据方案一实验原理:待测信号的频率不应该大于计数器的最大值65535,也就是说待测信号应小于65535Hz。实验的误差应当是均与的与待测信号的频率无关。利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。根据方案二实验原理:该方法只适用于1:1占空比的方波信号,要测非1:1占空比的方波信号。由于有执行f=1/(2*cnt/(12/fsoc))的浮点运算
24、,而数据类型转换时未用LCD浮点显示,故测得的频率将会被取整,如1234.893Hz理论显示为1234Hz,测得结果会有一定程度的偏小。也就是说测量结果与信号频率的奇偶有一定关系。单片机计数器的寄存器取值在165535之间,用该原理时,待测信号的频率小于单片机周期的1/12时,单片机方可较标准的测得待测信号的正半周期。故用该原理测得信号的最高频率理论应为fsoc/12 如12MHZ的单片机为1MHz。而最小频率为f=1/(2*65535/(12/fsoc)) 如12MHZ的单片机为8Hz。2.3方案选择比较以上两种方案可以知道,方案一的核心是单片机,使用的元器件少,原理电路简单,调试简单只要改
25、变程序的设定值则可以实现不同频率范围的测试,能自动选择测试的量程;误差均衡,且可测量任意占空比的方波信号,但由于单片机的限制频率越高误差将表现更明显。与方案一相比较方案二在量程内误差比方法一稍小,占用CPU资源较小,但量程比方案一小,且不能测量非均衡占空比的频率信号,超过量程测量结果完全错误。基于上述比较,所以选择了方案一。第三章 系统硬件电路的设计3.1 系统硬件电路设计数字频率计是一个将被测频率显示出来的计数装置,它主要由单片机89C51控制、LED显示器、电源等组成。该系统的功能是将信号输入P3.5口,通过单片机程序控制,对LED显示器进行段控和位控,实现动态显示。数字频率计是计算机、通
26、讯设备、音频视频等科研生产领域不可缺少的测量仪器。在进行有关电子技术的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。图3-1为数字频率计的系统硬件电路原理图。 图3-1 系统硬件电路原理图硬件电路图中,单片机的管脚必须接高电平,因为接低电平时只选用片外程序存储器,而试验所用的是片内程序存储器。液晶显示器1602的VL管脚必须接一个电位器来调节,因为VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,对比度过弱时,看不到屏幕上显示的数据。3.2数字频率计的主电路设计ATC89C51可以完成ISP在线
27、编程功能,ATC89C51内部有EEPROM,可以在程序中修改,断电不丢失。还增加了两级中断优先级,STC推出的系列51单片机芯片是全面兼容其它51单片机的,而且51单片机是主流大军。3.2.1 89C51芯片介绍许多硬件设计中都使用到单片机89C51,其功能比以往的单片机强大的多。89C51引脚图如图3-2所示。图3-2 89C51引脚图(1)芯片引脚功能:主电源引脚Vcc和VssVcc(40脚):接5V电压;Vss(20脚):接地。89C51晶振接法如图3-3。 图3-3 89C51晶振接法图选用6MHz频率的晶体,允许输入的脉冲频率为250kHz。电容的大小范围为20pF40pF,本设计
28、选用30pF电容。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻7。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1 输出缓冲器能驱动4个TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外
29、,P1.0和P1.2分别作定时器/计数器2的外部计数输入和定时器/计数器2的触发输入,P1口功能具体如表3-1所示。在flash编程和校验时,P1口接收低8位地址字节。表3-1 P1口的第二种功能说明表引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4 个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使
30、用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口亦作为AT89C51特殊功能(第二功能)
31、使用,P3口功能如表3-2所示。在flash编程和校验时,P3口也接收一些控制信号。表3-2 P3口的第二种功能说明表引脚号第二功能P3.0RXD(串行输入)P3.1TXD (串行输出)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器写选通)RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。(
32、2)外接晶体引脚:XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。(3)控制线:ALE/ (30脚):地址锁存有效信号输出端。(29脚):片外程序存储器读选通信号输出端,低电平有效。RST/VPD(9脚):RST即为RESET,VPD为备用电源。该引脚为单片机的上电复位或掉电保护端。/VPP(31脚):EA为片外存储器选用端。该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。3.2.2单片机复位状态单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟震荡脉冲(2个机器周期
33、)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使RST引脚保持10ms以上的高电平。只要保持高电平,则MCS-51单片机就循环复位;当RST从高电平变为低电平以后,MCS-51单片机从0000H地址开始执行程序。在复位有效期间,ALE、 引脚输出高电平。89C51上电复位电路图3-4所示。图3-4 89C51上电复位电路图单片机复位状态表如表3-3所示。表 3-3 单片机复位状态表专用寄存器复位状态专用寄存器复位状态PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR00
34、00HTL100HP0P3FFHSCON00HIPXXX0 0000BSBUFXXXX XXXXBIE0XX0 0000BPCON0XXX XXXXB 注:XXX不定复位后,P0口P3口输出高电平,且使这些准双向口皆处于输入状态,并且将07H写入栈指针SP(即设定堆栈底为07H),同时,将程序计数器PC和其余的特殊功能寄存器清为0(不定的位除外)。但复位不影响单片机内部的RAM状态3.3 单片机的外围电路设计3.3.1时钟电路设计单片机的定时控制功能是用片内的时钟电路和定时电路来完成的,而片内的时钟产生有两种方式:内部时钟方式和外部时钟方式,实际中常应用内部时钟方式。设计的内部时钟方式图如图3
35、-5所示。XTAL1单 片 机C1C230PF30PFXTAL2图3-5 设计的内部时钟方式图电容在22PF33PF之间选择,起微调作用,在此采用30PF。晶振可采用6MHz或12MHz,但是若用6MHz的晶振,所测频率范围太窄,最高只能测到250KHz,用12MHz的晶振,最高频率可测到500KHz,故在此选用12MHz的晶振。3.3.2 复位电路单片机的复位电路可采用上电复位或按扭复位,实际中常应用上电复位的方式,设计的上电复位方式图如图3-6所示。图3-6上电复位方式图3.3.3信号输入电路7414是六反相施密特触发器集成电路,其基本作用就是反相器,一般用于信号输入电路,用施密特触发器对
36、输入信号进行波形整形。其功能作用如图3-7所示。图3-7 输入-输出波形图本设计为满足设计要求,被测信号是要进行波形的变换。由第一级的零偏置放大器把正弦波样的正负交替波形变换成单向脉冲,再经过7414将放大器产生的单向脉冲变换成与TTL/CMOS电平相兼容的方波。这样处理以后信号变成方波信号,以便后续的电路进行计数。3.4 液晶显示模块1602液晶显示器(LCD)具有显示信息丰富、功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。1602采用标准的16脚接口,从该模块的正面看,引脚排列从左向右为:116脚,1602的引脚
37、如图3-7所示。图3-7 1602的引脚1602模块的引脚功能如表3-4所示。表3-4 1062的引脚功能引脚功能VSS(第1脚)接地电源VCC(第2脚)接5V正电源VEE(第3脚)为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS(第4脚)为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW(第5脚)为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数
38、据。E(第6脚)为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0D7(714脚)D0D7为8位双向数据线VCC(第15脚)5V正电源。VDD(第16脚)接地电源硬件电路中所选用的元器件的规格/型号见附录B。第四章 系统软件的设计系统软件设计主要采用模块化设计,叙述了各个模块的程序流程图,并介绍了软件Keil和Proteus的使用方法和调试仿真。4.1软件模块设计系统软件设计采用模块化设计方法。整个系统由初始化模块,信号频率测量模块,自动量程转换和显示模块等模块组成。系统软件流程如图4-1所示。频率计开始工作或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针
39、(SP)、工作寄存器、中断控制和定时计数器的工作方式。定时计数器的工作首先被设置为计数器方式,即用来测量信号频率。图4-1 系统软件流程图4.1.1输入信号处理在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(SP)、工作寄存器、中断控制和定时/计数器的工作方式。定时/计数器的工作首先被设置为计数器的计数寄存器清0后,置运行控制位TR为1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。计数闸门结束时TR清0,停止计数。计数寄存器中的值通过16进制数道10进制数转换程序转换为10进制数。对10进
40、制数的最高位进行判别,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的技术,直到满足测量数据有效位数的要求。待测信号经预处理电路分频后变成较宽的方波信号,并加至单片机的P3.4引脚,为单片机测信号频率提供有效的输入信号。单片机通过检测P3.4引脚来判断是否启动测周期程序。当该引脚为高电平时则等待,知道该引脚出现低电平时才开始测周期。首先将零赋给TH0、TL0两个寄存器,将定时器T0的运行控制位TR0置位,同时也将ET0置位以允许定时器T0终端,然后再判断P3.4引脚是否还为低电平,当不是低电平时则等待。一旦出现
41、低电平则使TR0复位以终止定时器,测周期程序结束。在测周期过程中,会发生定时器T0的中断,每发生一次中断则将R0寄存器加一,因此R0实际上是周期值的高字节。测出的周期值存储在R0、TH0、TL0三个寄存器中,然后将其转换成频率。得出的频率放到R1、R2、R3三个寄存器后调用转换BCD代码模块。调用显示消除多余零和显示数据存储模块,将要显示的频率值通过查表转换成相应数据8段码放到现实缓冲区以备显示。4.1.2中断的设置所谓中断是指CPU对系统中或系统外发生的某个事件的一种响应过程,即CPU暂时停止现行程序的执行,而自动转去执行预先安排好的处理该事件的服务子程序。当处理结束后,再返回到被暂停程序的
42、断点处,继续执行原来的程序。实现这种中断功能的硬件系统和软件系统统称为中断系统。在单片机中,中断技术主要用于实时控制。所谓实时控制,就是要求计算机能及时地响应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。由于这些控制参量的请求都是随机发出的,而且要求单片机必须做出快速响应并及时处理,对此,只有靠中断技术才能实现。试验中涉及到的T0或T1的中断,中断的控制可通过中断允许寄存器IE来设置。IE的位定义如表4-1所示。表4-1 IE的位定义D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0EA:中断允许总控位。EA0,屏蔽所有的中断请求
43、;EA=1,开放中断。EA的作用是使中断允许形成两级控制。即各中断源首先受EA位的控制;其次还要受各中断源自己的中断允许总控位控制。ET2:定时器/计数器T2的溢出中断允许位,只用于52子系列。ES: 串行口中断允许位。ES0,禁止串行口中断;ES1允许串行口中断。ET1:定时器/计数器T1的溢出中断允许位。ET10,禁止T1中断;ET11,允许T1中断。EX1:外部中断1的中断允许位。EX10,禁止外部中断1中断;EX11,允许外部中断1中断。ET0:定时器/计数器T0的溢出中断允许位。ET00,禁止T0中断;ET01,允许T0中断。EX0:外部中断0的中断允许位。EX00,禁止外部中断0中
44、断;ET01,允许外部中断0中断。试验中需开中断允许总控位,需允许定时器T0和T1中断,因此在编程时使EA=1,使ET01且ET11。中断源有多种, 每个中断源的优先级可通过中断优先级寄存器IP进行设置并管理。IP的位定义如表4-2所示。表4-2 IP的位定义D7D6D5D4D3D2D1D0PT2PSPT1PX1PT0PX0PT2: 定时器/计数器T2的中断优先级控制位。PS: 串行口的中断优先级控制位。PT1:定时器/计数器T1的中断优先级控制位。PX1:外部中断INT1的中断优先级控制位。PT0:定时器/计数器T0的中断优先级控制位PX0:外部中断INT0的中断优先级控制位。试验中为提高测量结果的准确度,需要将T1的中断设置为优先,通过指令SE