毕业设计(论文)-基于单片机的液晶字符显示频率计的设计与制作.doc_第1页
毕业设计(论文)-基于单片机的液晶字符显示频率计的设计与制作.doc_第2页
毕业设计(论文)-基于单片机的液晶字符显示频率计的设计与制作.doc_第3页
毕业设计(论文)-基于单片机的液晶字符显示频率计的设计与制作.doc_第4页
毕业设计(论文)-基于单片机的液晶字符显示频率计的设计与制作.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计任务书 桂林航天工业学院论文液晶字符显示频率计的设计与制作lcd character display frequency meter design and fabrication数字频率计的设计与显示”专 业:应用电子技术学 生: 指导教师: 教授桂林航天工业学院电子工程系二零壹二年六月第- 2 -页 毕 业 设 计( 论 文 )评 语 指导教师评语 签字: 200 年 月 日评阅教师评语 签字: 2012 年 月 日 毕业设计(论文)答辩记录成绩及评语答辩提问记录 记录人: 2012年 月 日答辩委员会评语 成绩 主任签字: 2012 年 月 日第ii页毕 业 设 计 任 务 书专业:应用电子技术 年级:2009级姓名学号指导教师(签名)毕业设计题目液晶字符显示频率计的设计与制作任务下达日期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日书写报告,提交设计成果 教研室意见 签名: 年 月 日 系主任意见签名: 年 月 日桂林航天工业高等专科学校电子工程系毕 业 设 计 开 题 报 告姓名学号指导教师毕业设计题目液晶字符显示频率计的设计与制作同组设计目的意义1.掌握单片机的基本工作原理及其应用;2.掌握使用软件keilc51开发软件和proteus仿真软件在设计中的应用;3.锻炼动手与操作能力。(建议写与题目相关的目的)方案论证方法一:(定时1s测信号脉冲次数)用一个定时计数器做定时中断,定时1s,另一定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1s中断,产生1s中断后立即关闭t0和t1(起保护程序和数据的作用)取出计数器寄存器内的值就是1s内待测信号的下跳沿次数即待测信号的频率。方法二:1占空比的方波,仅用一个定时计数器做计数器,外部中断引脚作待测信号输入口,置计数器为外部中断引脚控制(外部中断引脚为“1”切trx=1计数器开始计数)。时间安排3-4月收集整理资料5月15日前进行方案论证及原理设计5月15日-6月1日进行实物制作与调试6月1日提交设计论文和实物指导教师意见 签字: 年 月 日 审核小组意见 组长签字: 年 月 日摘要摘要在电子技术中,频率是最基本的参数之一,又与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。 频率计主要是由信号输入和放大电路、单片机模块、分频模块及显示电路模块组成。at89s52单片机是频率计的控制核心,来完成它待测信号的计数,译码,显示以及对分频比的控制。利用它内部的定时/计数器完成待测信号频率的测量。在整个设计过程中,所制作的频率计采用外部分频,实现1hz9999hz的频率测量,而且可以实现量程自动切换流程。以at89c51单片机为核心,通过单片机内部定时/计数器的门控时间,方便对频率计的测量。其待测频率值使用四位共阳极数码管显示,并可以自动切换量程,单位分别由红、黄、绿3个led指示。本次采用单片机技术设计一种数字显示的频率计,具有测量准确度高,响应速度快,体积小等优点。关键词: 频率计;单片机;计数器;量程自动切换abstractin electronic 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 means, 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, 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 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 at89c51 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; single 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 复位电路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.3.2程序仿真275.4功能调试285.5系统软硬件调试29第六章 总结与展望30参考文献31致谢32附录a 程序代码33附录b36第5页第一章绪论第一章绪论频率测量是电子学测量中最为基本的测量之一。由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测频方法的研究正受到越来越多的关注。1.1 频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路组成,产品不但体积大,运行速度慢而且测量低频信号不准确。本次采用单片机技术设计一种数字显示的频率计,测量准确度高,响应速度快,体积小等优点。1.2 频率计发展与应用在我国,单片机已不是一个陌生的名词,它的出现是近代计算机技术的里程碑事件。单片机作为最为典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。单片机已成为电子系统的中最普遍的应用。单片机作为微型计算机的一个重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。其中以at89s52为内核的单片机系列目前在世界上生产量最大,派生产品最多,基本可以满足大多数用户的需要。1.3 频率计设计内容本数字频率计将采用定时、计数的方法测量频率,采用一个四位共阴极数码管显示器动态显示4位数。测量范围从1hz9999hz的 方波、 用单片机实现自动测量功能。基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。1.3.1频率测量仪的设计思路与频率的计算频率测量仪的设计思路主要是:对信号分频,测量一个或几个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小,其原理如右图1-1所示。图1.1 频率测量原理图若被测量信号的周期为,分频数m1,分频后信号的周期为t,则:t=m1tx 。由图可知: t=nto (注:to为标准信号的周期,所以t为分频后信号的周期,则可以算出被测量信号的频率f。)由于单片机系统的标准频率比较稳定,而是系统标准信号频率的误差,通常情况下很小;而系统的量化误差小于1,所以由式t=nto可知,频率测量的误差主要取决于n值的大小,n值越大,误差越小,测量的精度越高。1.3.2 基本设计原理基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔t内测得这个周期性信号的重复变化次数n,则其频率可表示为f=n/t。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数n是在1秒时间内的累计数,所以被测频率fx=nhz。1.4 单片机的应用单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面, 其调试过程一般分为软件调试、硬件测试、系统调试3个过程。如果采用单片机系统的虚拟仿真软件proteus,则不用制作具体的电路板也能够完成以上工作。在具体焊接电路以前,采用软件仿真,可以大大的增加工作效率,节约经济成本。本文利用at89c51单片机的t0、t1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过4位动态数码管显示出来。能够对09999hz的信号频率进行准确计数,计数误差不超过1hz。1.5 msc-51单片机简介 mcs-51是指由美国intel公司(对了,就是大名鼎鼎的intel)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼mcs51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。 intel公司将mcs51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89c51就是这几年在我国非常流行的单片机,它是由美国atmel公司开发生产的。 mcs51单片机的内部总体结构其基本特性如下: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,即可得到51系列的派生品种,如89c51、at89c2051等单片机。单片机各部分是通过内部的总线有机地连接起来的。第4页第二章 频率计总体设计方案第二章 频率计总体方案设计2.1方案比较方案一:(定时1s测信号脉冲次数)本方案主要以单片机为核心,利用单片机的计数定时功能来实现频率的计数并且利用单片机的动态扫描法把测出的数据送到数字显示电路显示。具体是用一个定时计数器做定时中断,定时1s,另一定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1s中断,产生1s中断后立即关闭t0和t1(起保护程序和数据的作用)取出计数器寄存器内的值就是1s内待测信号的下跳沿次数即待测信号的频率。用相关函数显示完毕后再开启t0和t1这样即可进入下一轮测量。其原理示意图如2-1所示:图2-1 方案一原理示意图方案二(测信号正半周期)对于1:1占空比的方波,仅用一个定时计数器做计数器,外部中断引脚作待测信号输入口,置计数器为外部中断引脚控制(外部中断引脚为“1”切trx=1计数器开始计数)。单片机初始化完毕后程序等待半个正半周期(以便准确打开trx)打开trx,这时只要intx(外部中断引脚)为高电平计数器即不断计数,低电平则不计数,待信号从高电平后计数器终止计数,关闭trx保护计数器寄存器的值,该值即为待测信号一个正半周期的单片机机器周期数,即可求出待测信号的周期:待测信号周期t=2*cnt/(12/fsoc) cnt为测得待测信号的一个正半周期机器周期数;fsoc为单片机的晶振。所以待测信号的频率f=1/t。其原理示意图如2-2所示:图2-2 方案二原理示意图2.2 方案论证根据方案一实验原理:待测信号的频率不应该大于计数器的最大值65535,也就是说待测信号应小于65535hz。实验的误差应当是均与的与待测信号的频率无关。利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。根据方案二实验原理:该方法只适用于1:1占空比的方波信号,要测非1:1占空比的方波信号。由于有执行f=1/(2*cnt/(12/fsoc))的浮点运算,而数据类型转换时未用lcd浮点显示,故测得的频率将会被取整,如1234.893hz理论显示为1234hz,测得结果会有一定程度的偏小。也就是说测量结果与信号频率的奇偶有一定关系。单片机计数器的寄存器取值在165535之间,用该原理时,待测信号的频率小于单片机周期的1/12时,单片机方可较标准的测得待测信号的正半周期。故用该原理测得信号的最高频率理论应为fsoc/12 如12mhz的单片机为1mhz。而最小频率为f=1/(2*65535/(12/fsoc)) 如12mhz的单片机为8hz。2.3方案选择比较以上两种方案可以知道,方案一的核心是单片机,使用的元器件少,原理电路简单,调试简单只要改变程序的设定值则可以实现不同频率范围的测试,能自动选择测试的量程;误差均衡,且可测量任意占空比的方波信号,但由于单片机的限制频率越高误差将表现更明显。与方案一相比较方案二在量程内误差比方法一稍小,占用cpu资源较小,但量程比方案一小,且不能测量非均衡占空比的频率信号,超过量程测量结果完全错误。基于上述比较,所以选择了方案一。第三章 系统硬件电路的设计第三章 系统硬件电路的设计3.1 系统硬件电路设计数字频率计是一个将被测频率显示出来的计数装置,它主要由单片机89c51控制、led显示器、电源等组成。该系统的功能是将信号输入p3.5口,通过单片机程序控制,对led显示器进行段控和位控,实现动态显示。数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。在进行有关电子技术的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。图3-1为数字频率计的系统硬件电路原理图。 图3-1 系统硬件电路原理图硬件电路图中,单片机的管脚必须接高电平,因为接低电平时只选用片外程序存储器,而试验所用的是片内程序存储器。液晶显示器1602的vl管脚必须接一个电位器来调节,因为vl为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,对比度过弱时,看不到屏幕上显示的数据。3.2数字频率计的主电路设计atc89c51可以完成isp在线编程功能,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,本设计选用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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器时,p2口送出高八位地址。在这种应用中,p2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,p2口输出p2锁存器的内容。在flash编程和校验时,p2口也接收高8位地址字节和一些控制信号。p3口:p3口是一个具有内部上拉电阻的8位双向i/o口,p2输出缓冲器能驱动4个ttl逻辑电平。对p3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。p3口亦作为at89c51特殊功能(第二功能)使用,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默认状态下,复位高电平有效。(2)外接晶体引脚:xtal1:振荡器反相放大器和内部时钟发生电路的输入端。xtal2:振荡器反相放大器的输出端。(3)控制线:ale/ (30脚):地址锁存有效信号输出端。(29脚):片外程序存储器读选通信号输出端,低电平有效。rst/vpd(9脚):rst即为reset,vpd为备用电源。该引脚为单片机的上电复位或掉电保护端。/vpp(31脚):ea为片外存储器选用端。该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。3.2.2单片机复位状态单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的rst引脚上出现24个时钟震荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使rst引脚保持10ms以上的高电平。只要保持高电平,则mcs-51单片机就循环复位;当rst从高电平变为低电平以后,mcs-51单片机从0000h地址开始执行程序。在复位有效期间,ale、 引脚输出高电平。89c51上电复位电路图3-4所示。图3-4 89c51上电复位电路图单片机复位状态表如表3-3所示。表 3-3 单片机复位状态表专用寄存器复位状态专用寄存器复位状态pc0000htmod00hacc00htcon00hb00hth000hpsw00htl000hsp07hth100hdptr0000htl100hp0p3ffhscon00hipxxx0 0000bsbufxxxx xxxxbie0xx0 0000bpcon0xxx xxxxb 注:xxx不定复位后,p0口p3口输出高电平,且使这些准双向口皆处于输入状态,并且将07h写入栈指针sp(即设定堆栈底为07h),同时,将程序计数器pc和其余的特殊功能寄存器清为0(不定的位除外)。但复位不影响单片机内部的ram状态3.3 单片机的外围电路设计3.3.1时钟电路设计单片机的定时控制功能是用片内的时钟电路和定时电路来完成的,而片内的时钟产生有两种方式:内部时钟方式和外部时钟方式,实际中常应用内部时钟方式。设计的内部时钟方式图如图3-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是六反相施密特触发器集成电路,其基本作用就是反相器,一般用于信号输入电路,用施密特触发器对输入信号进行波形整形。其功能作用如图3-7所示。图3-7 输入-输出波形图本设计为满足设计要求,被测信号是要进行波形的变换。由第一级的零偏置放大器把正弦波样的正负交替波形变换成单向脉冲,再经过7414将放大器产生的单向脉冲变换成与ttl/cmos电平相兼容的方波。这样处理以后信号变成方波信号,以便后续的电路进行计数。3.4 液晶显示模块1602液晶显示器(lcd)具有显示信息丰富、功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。1602采用标准的16脚接口,从该模块的正面看,引脚排列从左向右为:116脚,1602的引脚如图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为低电平时可以写入数据。e(第6脚)为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。d0d7(714脚)d0d7为8位双向数据线vcc(第15脚)5v正电源。vdd(第16脚)接地电源硬件电路中所选用的元器件的规格/型号见附录b。第四章 系统软件的设计第四章 系统软件的设计系统软件设计主要采用模块化设计,叙述了各个模块的程序流程图,并介绍了软件keil和proteus的使用方法和调试仿真。4.1软件模块设计系统软件设计采用模块化设计方法。整个系统由初始化模块,信号频率测量模块,自动量程转换和显示模块等模块组成。系统软件流程如图4-1所示。频率计开始工作或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(sp)、工作寄存器、中断控制和定时计数器的工作方式。定时计数器的工作首先被设置为计数器方式,即用来测量信号频率。图4-1 系统软件流程图4.1.1输入信号处理在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(sp)、工作寄存器、中断控制和定时/计数器的工作方式。定时/计数器的工作首先被设置为计数器的计数寄存器清0后,置运行控制位tr为1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。计数闸门结束时tr清0,停止计数。计数寄存器中的值通过16进制数道10进制数转换程序转换为10进制数。对10进制数的最高位进行判别,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的技术,直到满足测量数据有效位数的要求。待测信号经预处理电路分频后变成较宽的方波信号,并加至单片机的p3.4引脚,为单片机测信号频率提供有效的输入信号。单片机通过检测p3.4引脚来判断是否启动测周期程序。当该引脚为高电平时则等待,知道该引脚出现低电平时才开始测周期。首先将零赋给th0、tl0两个寄存器,将定时器t0的运行控制位tr0置位,同时也将et0置位以允许定时器t0终端,然后再判断p3.4引脚是否还为低电平,当不是低电平时则等待。一旦出现低电平则使tr0复位以终止定时器,测周期程序结束。在测周期过程中,会发生定时器t0的中断,每发生一次中断则将r0寄存器加一,因此r0实际上是周期值的高字节。测出的周期值存储在r0、th0、tl0三个寄存器中,然后将其转换成频率。得出的频率放到r1、r2、r3三个寄存器后调用转换bcd代码模块。调用显示消除多余零和显示数据存储模块,将要显示的频率值通过查表转换成相应数据8段码放到现实缓冲区以备显示。4.1.2中断的设置所谓中断是指cpu对系统中或系统外发生的某个事件的一种响应过程,即cpu暂时停止现行程序的执行,而自动转去执行预先安排好的处理该事件的服务子程序。当处理结束后,再返回到被暂停程序的断点处,继续执行原来的程序。实现这种中断功能的硬件系统和软件系统统称为中断系统。在单片机中,中断技术主要用于实时控制。所谓实时控制,就是要求计算机能及时地响应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。由于这些控制参量的请求都是随机发出的,而且要求单片机必须做出快速响应并及时处理,对此,只有靠中断技术才能实现。试验中涉及到的t0或t1的中断,中断的控制可通过中断允许寄存器ie来设置。ie的位定义如表4-1所示。表4-1 ie的位定义d7d6d5d4d3d2d1d0eaet2eset1ex1et0ex0ea:中断允许总控位。ea0,屏蔽所有的中断请求;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中断;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的中断设置为优先,通过指令setb pt1来实现。4.2 定时器/计数器及工作方式的设置4.2.1定时器/计数器(1)定时器控制寄存器(tcon)10tcon寄存器既参与中断控制又参与定时控制。现对其定时功能加以介绍。其中有关定时的控制位共有4位:f0和tf1计数溢出标志位当计数器计数溢出(计满)时,该位置“1”;使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清“0”;使用中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清“0”。r0和tr1定时器运行控制位tro(tr1)=0停止定时器/计数器工作tro(tr1)=1启动定时器/计数器工作(2)工作方式控制寄存器(tmod)11tmod寄存器是一个专用寄存器,用于设定两个定时器/计数器的工作方式。但tmod寄存器不能位寻址,只能用字节传送指令设置其内容。(3)中断允许控制寄存器(ie)12ea中断允许总控制位et0和et1定时/计数中断定时器/计数器提供给用户使用的有:8位计数器th和tl,以及有关的控制位。这些内容只能以软件方法使用。能够产生中断申请的部件被称为中断源。8051型单片机提供了五个中断源:两个外部中断源和三个内部中断源。每一个中断源都有一个中断申请标志位,但是串行口占有两个中断标志位。一共有六个中断标志位。(4)定时器/计数器对输入信号的要求定时器/计数器的两个作用是用来精确的确定某一段时间间隔13(作定时器用)或累计外部输入的脉冲个数(作计数器用)。当用作定时器时,在其输入端输入周期固定的脉冲,根据定时器/计数器中累计(或事先设置)的脉冲个数,即可计算出所定时间的长度。当89c51内部的定时器/计数器被选择为定时器工作方式时,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。因此,定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。当采用12mhz频率的晶体时,计数频率为1mhz,输入脉冲的周期间隔为1s14。由于定时的精度决定于脉冲的周期,因此,当需要高精度的定时器时,应尽量选择频率较高的晶体。4.2.2工作方式的设置定时器/计数器t0、t1都有四种工作方式,可通过程序对tmod设置选择。tmod的低四位用于定时器/计数器0,高四位用于定时器/计数器1。tmod的位定义如表4-3所示。表4-3 tmod的位定义d7d6d5d4d3d2d1d0gatec/m1m0gatec/m1m0c/t:定时或计数功能选择位,当c/t1时为计数方式;当c/t0时为定时方式。m1、m0:定时器/计数器工作方式选择位。gate:门控位,用于控制定时器/计数器的启动是否受外部中断请求信号的影响。一般情况下gate0。当m1m0=00时,定时器/计数器设定为工作方式0,构成13位定时器/计数器。计数值由下式确定:n=8192-x,式中n为计数值,x是thx、tlx的初值。计数范围为18192。定时时间由下式确定:t=n tcy =(8192-x)tcy,式中tcy为单片机的机器周期。如果振荡频率为12mhz,则tcy=1us,定时范围为18192us。当m1m0=01时,定时器/计数器设定为工作方式1,构成16位定时器/计数器。在方式1时,计数器的计数值由下式确定:n=65536-x,计数范围为165536。定时器的定时时间由下式确定:t=n tcy =(65536-x)tcy,如果振荡频率为12mhz,则tcy=1us,定时范围为165536 us。当m1m0=10时,定时器/计数器设定为工作方式2。方式2是自动重装初值的8位定时器/计数器。在方式2时,计数器的计数值由下式确定:n=256-x,计数范围为1256。定时器的定时时间由下式确定:t=n tcy =(256-x)tcy,如果振荡频率为12mhz,则tcy=1us,定时范围为1256 us.当m1m0=11时,定时器/计数器设定为工作方式3。方式3只适用于定时器/计数器t0。当t0工作在方式3时,th0和tl0被分成两个独立的8位计数器。方式3下定时器/计数器的定时、计数的范围和定时、计数值的确定同方式2。在试验中需将t0设置为定时方式,将t1设置为计数方式;定时器t0定时50ms,即50000us,需选用工作方式1,即m1m0=01,因此,在编制程序时,将tmod的高四位设为0101,低四位设为0001。 4.3 定时器/计数器开启/关闭的设置定时器/计数器的开启和关闭可通过控制寄存器tcon来设置, tcon的位定义如表4-4所示。表4-4 tcon的位定义d7d6d5d4d3d2d1d0tf1tr1tf0troie1it1ie0it0tf0(tf1):t0(t1)定时器/计数器溢出中断标志位。当t0(t1)计数溢出时,由硬件置位,并在允许中断的情况下,向cpu发出中断请求信号,cpu响应中断转向中断服务程序时,由硬件自动将该位清零。tr0(tr1):t0(t1)运行控制位。当tr0(tr1)1时启动t0(t1);tr0(tr1)0时关闭t0(t1)。该位由软件进行设置。tcon的低四位与外部中断有关。编写程序时,若需启动t0(t1),通过指令setb tr0 或setb tr1将tr0(tr1)设为1,需关闭t0(t1),通过指令clr tr0 或clr tr1将tr0(tr1)设为0。4.4应用软件介绍此设计需要在keil软件平台上完成程序的调试,在proteus软件平台上完成仿真显示。因此介绍如何使用keil和proteus进行软件的仿真。4.4.1 keil简介keil软件是目前最流行开发系列单片机的软件,keil提供了包括c编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uvision)将这些部份组合在一起。而proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机cpu的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。(1)建立工程文件点击“project-new project”菜单,出现一个对话框,要求给将要建立的工程起一个名字,你可以在编缉框中输入一个名字,点击“保存”按钮,出现第二个对话框,按要求选择目标器件片。建立新文件并增加到组。分别设置“target1”中的“target,output,debug”各项,使程序汇编后产生hex文件。(2)汇编,调试系统程序keil 单片机模拟调试软件内集成了一个文本编辑器,用该文本编辑器可以编辑源程序。在集成开发环境中选择菜单“f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论