




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子系统设计报告 液晶数字频率计摘 要在我们现在所处的信息化数字化的时代,频率计作为一件很普通的电子器件,广泛应用于科研机构、学校、实验室、企业生产车间等场所。研究数字频率计的设计和开发,有助于频率计功能的不断完善、性价比的提高和实用性的加强。数字频率计的发展趋势是由模拟器件设计数字频率计逐步转变为数字芯片设计数字频率计。这样的转变使得频率计的设计更趋于自动化、智能化。 本设计采用两种方案设计频率计:方案一系统采用可编程逻辑器件(pld)作为信号处理及系统控制核心,完成包括计数、门控、显示等一系列工作。方案二采用电子计数法测量频率。利用at89c51单片机的定时器/计数器0定时(定时时间为1s
2、),同时用定时器/计数器1计数外部输入方波信号,两者同时启动,定时器0结束时,计数器1计数值即为方波信号的频率,从而实现20hz-10khz信号频率的实时测量。方案三采用多周期同步测频原理,实现20hz-10khz信号频率的等精度频率测量。用一块复杂可编程逻辑器件cpld(complex programmable logic device)芯片epm7128slc8415完成各种时序逻辑控制、计数功能,实现频率测量,在maxplusii平台上完成cpld的软件设计、编译、调试、仿真和下载。用at89c51单片机作为系统的主控部件,实现整个电路的测试信号控制、数据运算处理、键盘扫描和液晶显示。本
3、系统采用屏液晶显示,型号为mfc-g12864 。关键词:频率计, cpld,单片机 ,键盘控制,lcd液晶显示目 录一、 引言二、 设计任务及具体要求三、 总体方案设计(原理)四、 具体设计过程五、 系统整体功能和操作过程说明六、 电路图和pld图七、 系统调试、误差分析、测量参数确定八、 实验小结 附:源程序一、引言 科学技术发展到今天,数字化产品以其独特的优越性而越来越受到广大消费者的认可。频率计作为一件很普通的电子器件,广泛应用于科研机构、学校、实验室、企业生产车间等场所,因此它的重要性和普遍性勿庸质疑。研究数字频率计的设计和开发,有助于频率计功能的不断完善、性价比的提高和实用性的加强
4、。数字频率计的发展趋势是由模拟器件设计数字频率计逐步转变为数字芯片设计数字频率计。这样的转变使得频率计的设计更趋于自动化、智能化。现在,单片机技术发展非常迅速,采用单片机来实现数字频率计的开发设计,实现频率的测量,不但测量准确,精度高,而且误差也很小。在这里,我们将介绍一种简单、实用的基于单片机at89c52的数字频率计的设计和制作。二、设计任务及具体要求 1、实验目的与任务(1)通过查阅相关资料,深入了液晶数字频率计的工作原理;(2)学习可编程器件(主要功能在该器件中完成)的应用及硬件语言;(3)学习点阵液晶显示器的工作原理及使用方法;(4)复习“mcs-51单片机原理及c语言程序设计”,掌
5、握其接口扩展包括:显示、键盘等;(5)设计液晶数字频率计的原理图,构建硬件平台; (6)采用汇编或c语言编写应用程序并调试通过; (7)制作出样机并测试达到功能和技术指标要求。 2、具体要求(1)技术要求:、频率测量范围20hz-10khz; 、液晶显示频率值及其单位; 、可根据按键操作改变显示字符大小;、布局合理大方;、五个功能按键。 (2)工作要求:、组建基于可编程器件的液晶数字频率计总体结构框图;、根据题目要求,选择元器件,通过理论分析和计算选择电路参数;、根据操作功能要求,确定键盘控制功能;、按设计要求确定显示合理安排格式及内容;、编写应用程序并调试通过;、对系统进行测试和结果分析;
6、、撰写设计报告和答辩ppt。三、 总体方案设计系统设计主要包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、确定元器件封装规格、绘制线路图及pcb板图,以达到设计要求。 软件设计部分,首先在总体设计中完成系统的流程图,选择合适的编程语言和工具,进行代码设计等;最后是对软件进行调试、测试,达到所需功能要求。按照设计任务的要求,本液晶数字频率计主要可分为三个模块:频率测量、键盘控制和液晶显示。其中核心是频率测量,下面我们对频率测量模块进行分析,其他两模块在具体的方案设计中再作详细分析。1、频率测量方法和原理频率计的基本原理是
7、用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。 目前频率测量的方法是比较多的,有模拟法、数字法、直读法、比较法、 电容充放电式 、电子计数、电桥法、谐振法、差频法、示波法、拍频法、李沙育图形法、测周期法等等。作为数字电路设计,我们重点从电子计数法中选择测频方法。电子计数法是根据频率定义进行测量的一种方法,它是用电子计数器显示单位时间内通过被测信号的
8、周期个数来实现频率的测量。利用电子计数式测量频率具有精度高、测量范围宽、显示醒目直观、测量迅速,以及便于实现测量过程自动化等一系列优点,总体上其又可分为三种:直接计数测频法、测周法和等精度测评法。直接测频法:此法是记录在确定时间t内待测信号的脉冲个数nx ,则待测频率fx为: fx=nx/t (2-1)显然,时间t为准确值,测量的精度主要取决于计数的误差。其特点在于:测量方法简单;测量精度与待测信号频率和门控时间有关,当待测信号频率较低时,误差较大。 测周期法:此法是在待测信号的一个周期tx内,记录标准频率信号变化次数ns。这种方法测出的频率是:tx=ns*ts;fx=1/tx;(2-2) 此
9、法的特点是低频检测时精度高,但当高频检测时误差较大。等精度测频法:前两种测频方法的计数值会不可避免的产生+/-1个字的误差,并且测试精度与计数器中记录的数值nx或ns有关。为了保证测试精度,一般对于低频信号采用测周期法;对于高频信号采用测频法,因此测试时很不方便,于是提出等精度测频法。等精度测频方法是在前两种方法上发展来的,它的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此消除了对被测信号计数所产生的+/-1个字误差,并且达到了在整个测试频段的等精度测量。 从以上三种方法的原理对比可知等精度测频法最为优越,下面对等精度测法作详细介绍(1)等精度测频原理波形图 图3-1等
10、精度测频原理波形图 在测量的过程中,有两个计数器分别对标准信号和被测信号同时计数。首先给出闸门开启信号(与之闸门上升沿),此时计数器并不开始计数,而是要等到被测信号的上升沿到来时,计数器才真正开始计数。然后与之闸门关闭信号(下降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成一次的测量过程。可以看出,实际闸门时间t与预置门时间t1并不严格相等,但差值不超过被测信号的一个周期,最关键的是此差值不影响最终的频率测量结果。 设在一次闸门时间t中计数器对被测信号的计数值为nx,对标准信号的计数值为ns,标准信号的频率为fs,则被测信号的频率为 由上式可知若忽略标频fs的
11、误差,则等精度测频可能产生的相对误差为 由上式可以看出,测量信号的相对误差与被测信号频率大小无关仅于闸门时间和标准信号频率有关,即实现了向整个测试频段的等精度测量。闸门时间越长,标准频率越高,测频的相对误差就越小。标准频率可由稳定度好。精度高的高频率晶体振荡器产生,在保证测量精度不变的前提下,提高标准信号频率,可使闸门时间缩短,即提高测试速度。 2、试验方案的选择结合实验原理我们提出以下的两种实验方案:方案一:频率计主要功能由单片机来实现,pld芯片只作辅助用。直接测频法和测周法均可以,两者各有利弊。本实验采用直接测频法,利用at89c51单片机的定时器/计数器1定时(定时时间为1s),同时用
12、定时器/计数器0计数外部输入方波信号,两者同时启动,定时器1结束时,计数器0计数值即为方波信号的频率,从而实现20hz-10khz信号频率的实时测量。系统采用单片机at89c51作为控制核心,门控信号由at89c51内部的计数/定时器产生。at89c51则完成运算、控制功能。由于使用了单片机,使整个系统具有极为灵活的可编程性,能方便地对系统进行功能扩展与改进。系统原理框图如图2-4所示。被测信号时间闸门计数器显示晶体振荡分频器(时基)单片机图3-2 方案一的原理框图液晶显示被测信号键盘输入电源单片机pld芯片图3-3 方案一的硬件实现电路框图方案二:采用单片机与cpld结合使用等精度法测量频率
13、。用一块复杂可编程逻辑器件cpld(complex programmable logic device)芯片epm7128slc8415完成各种时序逻辑控制、计数功能,实现测频模块。在maxplusii平台上,用vhdl语言编程完成cpld的软件设计、编译、调试、仿真和下载。用at89c51单片机作为系统的主控部件,实现整个电路的测试信号控制、数据运算处理、键盘扫描,显示等功能。系统将单片机at89c51的控制灵活性及cpld芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小,可靠性高,测频范围宽、精度高等优点。具体的测频方法采用等精度法测量频率。 系统原理
14、图如下: 图3-4方案二的原理框图 图3-5方案二硬件连接框图四、具体设计过程如前所述,本系统设计主要分为三个模块:频率测量、功能按键、lcd显示输出。因为本实验需要测量的只是标准方波信号,故不需要进行信号的前端处理。只需将标准被测信号(幅值等均满足要求的方波)输入频率测量系统即可。方案一、二的区别仅在于频率测量模块。1、方案一测频模块的具体设计本方案以at89c51单片机为核心,利用他内部的两个16位定时器计数器及五个中断源完成待测信号频率的测量。单片机内部的专用寄存器tmod中,有一个控制位(c/t),分别用于控制定时器/计数器0和1是工作在定时器方式还是计数器方式。本方案频率测量中t1工
15、作在定时方式,选择操作模式1构成16位定时器,用来产生一秒的时间间隔。t0工作在计数方式选择操作模式1构成16位计数器,用来对外部输入脉冲个数的测量。t1开始定时的同时t0开始计数,当1秒时间间隔到时在t1中断函数中停止t0的计数,此时t0的计数值就是所测的外部信号频率。 综上所述,在程序中t0、t1初始化时tmod=0x15; th1=(65536-10000)%256; tl1=(65536-10000)/256,每次定时10ms,进入t1中断函数,当t1中断累计100次(1秒定时)时,停止t0计数,并将此时t0的计数值进行简单运算即可得到被测频率。当输入信号产生由1至0的跳变时,计数寄存
16、器(th0、tl0)的值增加1。每个机器周期的s5p2期间,对外部输入进行采样。如在第一个周期中采得的值为1,而在下一个周期中采得的值为0,则在紧跟着的再下一个周期的s3p1期间,计数值就增加1。由于确认一次下跳变需要2个机器周期,即24个振荡器周期,因此外部输入的计数脉冲的最高频率为振荡器频率的1/24,本实验单片机采用12mhz的晶振,故最高测量频率不能超过500khz,否则单片机将不能准确的判断信号的上下跳变,导致测频产生较大误差。程序中t0不再设置中断函数,因16位计数器,最高可记到65536,故实际上本方案最高测频为65536hz,满足实验要求。原理和硬件框图见方案设计。详细测频程序
17、如下:/初始化函数void init_tm1int(void) tmod=0x15; ea=1; et1=1; et0=1;th1=0xf7;tl1=0x00;/每次定时2.5ms th0=0x00; tl0=0x00; tr0=1;/开始定时 tr1=1;/开始计数/中断函数void time1(void)interrupt 3 th1=0xf7;tl1=0x00;/每次定时2.5ms,定时400次,总的定时时间为1s if(+count_1s400)count_1s=0;timecount=256*th0+tl0;fre=timeout;th0=0x00;tl0=0x00; 2、方案2测频
18、模块的具体设计方案2采用单片机与cpld结合使用等精度法测量输入频率。故主要测频逻辑均在pld中。对比与方案一的软件实现,方案二基本上是由硬件来实现频率的测量,单片机只起到整体的控制和数据运算。等精度测量方法由硬件实现时可简化为下图: 图4-1 等精度测量原理简图cnt1和cnt2是两个可控计数器,标准频率fs信号从cnt1的时钟输入端clk输入;被测信号fx从cnt2的时钟输入端clk输入。每个计数器中的cen输入端为时钟时能断控制时钟输入。当预置门信号为高电平(预置时间开始)时,被测信号的上升沿通过d触发器的输出端,同时启动两个计数器计数;同样,当预置门信号为低电平(预置时间结束)时,被测
19、信号的上升沿通过d触发器的输出端,同时关闭计数器的计数,实现等精度测量。 标频信号的要求是高频和稳定,试验中我们直接采用cpld外接的50mhz晶振的输入信号。预置门时间有单片机来控制可设置为1秒或0.1秒。被测信号的范围是20hz-10khz,而标频是50mhz,故cnt1设计为32位计数器,cnt2为16为计数器,即可满足要求。 方案二对pld的设计借助maxplus ii开发平台可实现完全可视化设计。大多数数字芯片里面均有封装,然后借助已有的芯片进行多次封装可设计出一个结构经凑逻辑清晰的等精度数字频率计2、液晶显示模块的设计(1)液晶显示基本知识液晶显示模块是一种将液晶显示器件、连接件、
20、集成电路、pcb线路板、背光源、结构件装配在一起的组建,也成lcd。具有显示质量高、数字式接口、体积小,重量轻和功率消耗小的优点。根据显示方式和内容的不同,液晶模块可以分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块三种,本实验采用点阵图形液晶模块mfc-g12864。mfc- g12864液晶显示模块为全屏幕图形点阵式液晶显示组件,由控制器、驱动器和全点阵液晶显示器组成,可完成数字、符号、字母、汉字以及图形的显示。点阵图形液晶模块的点阵像素连续排列,行和列在排布中均没有空格,不仅可以显示字符,而且可以显示连续、完整的图形。mfc-g12864拥有64*128点阵,显示4行16*16汉字,
21、每行8个汉字,mfc-g12864由2片ks0108控制驱动器驱动,所以在显示字符时应进行片选。mfc-g12864结构如下图所示所示:common driver icks0107blcd panel128 5 64 dotsvovddvssdb0 db7led back lightblablkcom64segmentdriver icks0108bks0108bsegmentdriver icks0108bseg64seg64rs, r/w, erstbcs2cs1vout538 图4-2.64*128图形点阵模块逻辑图(2)ks0108的时序mcu与ks0108的并行读写时序分别如下图4-
22、3(a)和4-3(b)所示。在进行读写操作时,应特别注意各个控制引脚的电平信号和持续时间,以及各电平信号的先后顺序,以确保正确地进行读写。 图4-3(a)mcu写资料到模块图4-3(b)mcu读资料到模块(3)lcd的接口电路如下:ad0ad7为数据总线与单片机的p0口相连。图4-4 lcd的接口电路原理图 (4)液晶显示模块程序设计结合上述64*128图形点阵模块逻辑图、mcu读写时序图,可以设计出相应的液晶控制程序。mfc-12864总共有20个引脚,结合老师给的电路板图,程序需要控制的引脚共有5个:rs、r/w、e、cs1、cs2。rs位高位输入数据信号,低位输入指令信号,r/w高位mf
23、c-g12864写数据,低位读数据,e位使能端,高位有效,cs1高位选中左半屏,cs2高位选中右半屏。不管是方案一还是方案二,控制信号的传输均需要cpld内的时序电路的连接。本系统设计中,pld的五个输出端口已在电路板上和该五个控制位接在一起,pld内部将这五个输出口和单片及的地址线a8、a9、p16、p15通过一些逻辑门相接,实现单片机对mfc-g12864的控制。plc设计图如下:a8高位时选中mfc-g12864数据寄存器,低位选中mfc-g12864指令寄存器,a9需一直保持为高才能使使能端e有效。此外,另无关的地址线为高位,得出数据寄存器的地址为0xffff, 指令寄存器的地址为0x
24、feff。同时,pld的8个io口与单片机的数据总线相接,但实际上pld并不需要从数据总线上读值,故这8个io口并不使用,查资料可知pld闲置的这8个io口会钳制数据总线的高低位,因此在pld内部需将这8个口设为输出口,接在无用的io上,pld电路图如下: 故主要控制程序设计如下:#define lcdcom xbyte0xfeff/lcd指令寄存器#define lcddat xbyte0xffff/lcd数据寄存器/lcd显示口sbit cs1=p15; sbit cs2=p15; /lowsbit rw=p16;void sendcom(unsigned char cmd ,int i)
25、/向lcd写指令if(i=1) cs1=1; delay(1); lcdcom=cmd;else cs2=0; delay(1); lcdcom=cmd;void senddat(unsigned char dat,int i)/向lcd写数据 if(i=1) cs1=1; delay(1); lcddat=dat; else cs2=0; delay(1); lcddat=dat;(5)液晶模块显示汉字方法:本系统设计使用图形液晶模块以点阵形式来显示汉字。每8个点组成1个字节,每个点用一个2进制位表示,存1的点显示时在屏上显示1个亮点;存0的点则在屏上不显示。在单片机系统中对字模的存储,是将
26、提取的汉字字模数据作为常量数组存放在程序存储区内,单片机再将已提取的汉字的字模输入液晶控制器,即可按设定在液晶模块显示屏上显示需要的汉字。故写数据函数设计如下:/写汉字函数void lcdhanzi(unsigned char page,unsigned char lie,unsigned char code *word, int cs)/汉字显示 int i,j;for(i=0;i2;i+) delay(1); sendcom(0xb8+page+i,cs);/x每加1,液晶上加8横行 delay(1); sendcom(0x40+lie,cs); for(j=0;j16;j+) delay
27、(1); senddat(wordi*16+j,cs);/数组每个元素的8位,写在竖着的一列8个点(dot),写完一个元素,y(列)自动加1 /写数字函数void lcdshuzi(unsigned char page,unsigned char lie,unsigned char code *word, int cs)/数字显示 unsigned char i,j;for(i=0;i2;i+) delay(1); sendcom(0xbb+page+i,cs); sendcom(0x40+lie,cs); for(j=0;j8;j+) senddat(wordi*8+j,cs);/数组每个元
28、素的8位,写在竖着的一列8个点(dot),写完一个元素,y(列)自动加1 3、键盘控制模块的设计在键盘控制模块中,键入信号的软件处理方法是影响系统操作性能的重要因素。键盘的接口及软件的任务主要包括以下几个方面:首先,检测并判断是否有键按下;其次,对按键开关进行时延的消抖;再次,计算并确定按键的键值;最后,程序根据计算出的键值进行一系列的动作处理和执行。在实际系统中,当需要输入参数较多,功能复杂时,需要采用行列的键盘对单片机进行输入。本实验需要的键盘比较简单,如下图所示,键盘接上拉电阻后与电源的高电平相连。图4-5 控制键常用的键盘识别方法有:行扫描法、线反转法和利用8279键盘接口的中断法。键
29、盘识别的流程如下图。键盘识别是否有键按下?去抖动确定按键位置结束noyes图4-6 键盘识别流程图(1)本实验按键比较简单,故程序设计时,将五个功能键接口定义为五个标志位。然后再程序中设置按键函数,里面嵌套while循环,一直读取五个功能键接口的状态,如果各口均为高电平,则无键按下;若有低电平状态,则有键按下。按键本身是机械开关,在闭合或断开的瞬间会出现电压抖动的现象,必须去除抖动的影响,才能正确识别被按下的键。为简单起见,使用软件方法消抖,延时10ms,再次读取各状态,若两次状态相同,说明信号稳定,可以继续进入相应的键处理子程序中。软件主要实现三个功能:键盘按键的消抖、查询按下的键所在的位置
30、、相应的处理子程序,键盘接口程序如下:/按键查询口定义sbit key0=p10;sbit key1=p11;sbit key2=p12;sbit key3=p13;sbit key4=p14;/按键处理函数void judge_key() while(1) if(key0=0) delay(10); if(key0=0) init_lcd(); clear_lcd(); / key0功能函数 if(key1=0) delay(10); if(key1=0) init_lcd(); clear_lcd();/ key1功能函数 if(key2=0) delay(10); if(key2=0)
31、init_lcd(); clear_lcd(); / key2功能函数 if(key3=0) delay(10); if(key3=0) init_lcd(); clear_lcd();/ key3功能函数 if(key4=0) delay(10); if(key4=0) init_lcd(); clear_lcd();/ key4功能函数 (2)本系统的设计中,功能按键模块放在设计最后,主要目的是考虑到可以通过该模块,将测頻模块和显示模块联系在一起。而且整个系统的功能最终都是要通过按键注意选择来显示出来的。系统功能设计:1.key0:按键显示频率值及其单位; 2. key1:按键操作改变显示
32、字符大小;3 .key2:按键切换到测脉宽状态;4.key3:按键复位,重新进行初始化5.key4:按键退出测频和测脉宽系统初始化完毕后会自动进入按键查询,标致状态为屏幕中央的“请按键”key0处理子程序: working=1;-工作状态标志位,由此来控制循环的进行及部分液晶显示内容displaywork();-液晶显示子函数,会在第一行滚屏显示“working”manage1616();-频率值显示子函数,会在屏幕中央显示被测的频率值及单位key1处理子程序:working=1;-工作状态标志位,由此来控制循环的进行及部分液晶显示内容displaywork();-液晶显示子函数,会在第一行滚
33、屏显示“working”manage2424();-大字符显示子函数,会在屏幕中央显示放大的被测频率值及单位key2处理子程序:working=1;-工作状态标志位,由此来控制循环的进行及部分液晶显示内容displaywork();-液晶显示子函数,会在第一行滚屏显示“working”maikuan();-脉宽值显示子函数,会在屏幕中央显示被测的脉宽值及单位key3处理子程序:displayfuwei();-液晶显示子函数,在屏幕中央显示“正在复位”fuwei=1;-复位状态标致位,由该状态来决定外循环是否执行goto语句,从而跳到程序开头重新进行初始化break;-跳出内循环,迫使程序在外循
34、环中进行“fuwei”状态位判断key4处理子程序:working=0;- 工作状态标志位,由此来控制循环的进行及部分液晶显示内容displayend();-液晶显示子函数,在屏幕中央显示“谢谢使用”break;- -跳出内循环,在此执行外循环 说明按键需要的时间五、系统整体功能和操作过程说明1、整体功能说明主要功能由按键实现,已在上一部分中进行了说明。系统程序采取标准的结构化设计,在main函数中实现对各个子函数的调用。在定时器和pld初始化后,随着计时的开始将直接由计数器和pld进行测频,1秒时间间隔到,则测频结束,程序自动算出频率之后保存在定义好的变量中,供显示频率的函数调用。也就是说当
35、进入按键功能选择时测頻过程已经完成。key0、key1、key2只是调用函数显示不同的内容而已。key3按下后程序由break语句跳出按键扫描程序而重新进行定时器和pld初始化,即重新开始频率测量。key4按下后将由goto语句直接跳到main函数刚进去的地方,完全从头重新执行程序。程序段先进行变量定义,然后是液晶显示数据段,接下来是各种函数以及函数的相互组合调用,最后进入main函数实现整个系统的逻辑功能 系统整体运行逻辑框图如下:开始 液晶显示初始化清屏显示标题,清屏显示初始化面频率 脉宽等精度法测頻初始化pld;初始化定时器计数器开始测量 t1定时t0计数直接计数法测频按键扫描显示频率k
36、ey0? y n放大字符key1? y n显示脉宽key2? y nkey3? y nkey4? n fuwei=1 yfuwei=1 ? y n清屏、初始化面 图5-1 系统整体运行逻辑框图2、系统操作过程说明 上电之后液晶屏刷新一次,然后显示初始化面,保持2、3秒后,屏幕中央显示“请按键”提示,表示系统初始化、测頻已完成,程序已进入按键扫描函数,此时按键有效。注意按键有防抖动功能,故按键不能太快,当按键后看到有清屏现象时表示按键有效。key0、key1、key2各键按下时,屏幕第一行均有滚动显示的“working”状态提示。信号测量范围20hz-9999hz,当算出频率大于此范围时,key
37、0、key1按下均会显示“超出范围”提示,当小于此范围时,key0、key1按下均会显示“no signal!”提示.key3按下时,頻幕显示“正在复位”提示,然后系统从头开始。key4按下时,頻幕显示“谢谢使用”提示,然后系统重新初始化。具体流程见图5-1 系统整体运行逻辑框图六、电路图和pld图七、实验调试、误差分析、参数确定1、系统调试方案的具体设计是分成三个模块的,故调试也是分成三个独立模块,这样的好处是,每次调试的时候程序都比较短,没有很复杂的逻辑在里面容易调试通过和查处错误。调试顺序:频率测试模块、液晶显示模块、功能键模块,最后进行系统整体功能完整调试。(1)频率测试模块:直接计数
38、测频的调试:程序用printf语句作为输出,直接将方波信号接到t0引脚上,程序为循环测试,进入debug状态后,调节信号发生器的输出频率,观察不断刷新的窗口显示,通过输入输出对比,检查频率测量的正常与否。 等精度测频调试:由于电路板发下的时间较迟,故该模块的调试可在学习机上完成,。(2) 液晶显示模块调试: 该模块是在电路板焊好后子环节在自己的电路板上调试的,因为接线较多(20个引脚)在学习机上调试不太方便。在电路板上调试,不仅不用接线,还可以检查自己电路板的焊接是否存在问题。液晶显示模块原理比较陌生和难以理解,故可显示最简单的字符来检查整个模块的控制以及自己的程序设计是否有问题。等液晶显示模
39、块可以正常显示了,再添加内容,比如汉字显示,字符大小调整、显示位置的调整等进行调试验证,以完善程序和加深理解、整个模块的调试还包括对自摸提取软件的熟悉使用。(3)功能键模块调试: 该模块的调试有两个作用:按键功能的程序实现、通过功能键将前两个程序模块连接在一起。按键功能调试时不需要有太复杂的子函数,可简单的添加不同的printf语句。等上述调试完成后,开始逐个添加功能键子程序进行调试。然后对信号经过pld传输到单片机的接口电路进行调试。最后整机进行调试,基本功能实现后可逐步修改显示及按键是整个系统功能完善,显示合理美观。2、误差分析(1)方案一的误差分析在测量中,误差分析计算是不可少的。理论上
40、讲不管对什么物理量的测量,不管用什么样的测量方法,只要进行测量,就可能存在误差。误差分析的目的就是要找出引起误差的主要愿意,从而有针对地采取有效措施,减小测量误差,提高测量的精确度。在实际调试过程中,方案一测的频率总是误差很大,经过检查,将单片机晶振当作12mhz会产生时间闸门的扩大,从而导致测频数据变大。经过调整将1秒的时间闸门换算成11.0592mhz下,从而th1=(65536-10000*11.0592/12)/256=(65536-9216)/256;th0=(65536-9216)%256;经调整后误差明显下降,但还是存在稳定的接近1%的误差。方案一的固有误差分析如下:方案一的误差
41、由计数器计数脉冲相对误差和标准时间相对误差两部分组成。因此,对这两种相对误差可以分别加以讨论,然后相加得到总的频率测量相对误差。a.量化误差-误差在测频时,主门的开启时间与计数脉冲之间的时间关系是不相关的,即它们在时间轴上的相对位置是随机的。这样,即使是在相同的主门开启时间t(先假定标准时间相对误差为零)内,计数器所计得的数却不一定相同。第一种情况进入8个脉冲,而第二种情况却只进入7个脉冲7个脉冲,即引起可能多一个或少一个的误差,这是频率量化时带来的误差,故称量化误差。图14 误差示意图b.闸门时间误差(标准时间误差)如果闸门时间不准,造成主门启闭时间或长或短,显然要产生测频误差。闸门信号是由
42、晶振信号所得。设晶振频率为(周期为)分频系数为m,所以有由误差合成定理对上式微分得: 即为:闸门时间的相对误差在数值上等于晶振频率的相对误差。通常对标准频率准确度的要求是根据所要求的测频准确度提出来的。方案一中的晶振频率为单片机的晶振频率。综上所述计数器直接测频的误差主要有两项,即误差和标准频率误差。一般总误差可采用分项误差绝对值合成,即由此式可知,在一定时,闸门时间t选得越长,测量准确度越高。而当t选定后,越小,标准频率误差将对测量结果产生影响,并以为极限。测量低频时,由于误差产生的测频误差大得惊人。例如,时,则由误差引起的测频误差可达10%,所以低频时不宜采用直接测频方法。 另一方面,虽然
43、闸门时间t越长,则测量准确度越高,但事实上为了保证测频的实时性,我们不可能将闸门时间取得太长,所以一般通过闸门时间来调整测频精度范围不大。(2)方案二的误差分析:设在一次预置门时间t中对被测信号计数值为,对标准信号的计数值为则下式成立:推得: 相对误差公式为: 从误差公式中可以看出,其测量频率精度和与标准频率精确度有关,而与被测频率无关。显然,决定于预置门时间和标准频率信号的频率,其关系如下如果采用频率为50mhz的晶体振荡器,忽略标准高频的误差,则有:若预置门时间为t=0.1s,则:=0.150000000=5000000, 可见,在整个测量范围内,要达到题目所要求的精度是完全可行的。3、系
44、统参数确定(1)测频范围:2hz-60khz(2)测频精度:(3)测频数据表:八、实验小结(问题处理、包括展望与不足与感想) 1、实验遇到的问题及处理(1)刚开始的时候,只是在编程序然后编译通过就行,忽略了调试,到后面开始调试的时候才发现程序根本运行不下去,最让人难受的是再三检查感觉逻辑没问题,可结果不出来。调试程序花的时间都差不多比编第一个测频程序的时间长,最后没办法只能从头重写,一步步的在实验室编译调试。尽管老师当时强调了程序不要一次编写太长,但最开始的时候还是没注意到这个问题,直到自己遇到了才会发现问题的严重性。(2)参考文献1 王建校 杨建国 宁改娣 危建国 51系列单片机及c51程序
45、设计 北京:科学出版社 2002.12王建校 张虹 金印彬 电子系统设计与实践实验指导书 西安交通大学电气工程学院电工电子教学实验中心附:源程序#include#include #include #include /内部函数(_nop_)#include/绝对寻址(xbyte)#define lcdcom xbyte0xfeff/lcd指令寄存器#define lcddat xbyte0xffff/lcd数据寄存器#define maxdat0 xbyte0x1fff/ns0-7#define maxdat1 xbyte0x3fff/ns8-15#define maxdat2 xbyte0x5
46、ff/ ns16-23#define maxdat3 xbyte0x7fff/ns 24-31#define maxdat4 xbyte0x9fff/nx 0-7#define maxdat5 xbyte0xbfff/nx 8-15bit fuwei;/lcd显示口sbit cs1=p15; sbit cs2=p15; /lowsbit rw=p16;sbit cr=p17;sbit gate=p33;/按键查询口sbit key0=p10;sbit key1=p11;sbit key2=p12;sbit key3=p13;sbit key4=p14;unsigned char working;unsigned int timecount=0;unsigned int count_1s=1;unsigned int ws;unsigned char nsdat0,nsdat1,nsdat2,nsdat3,nxdat0,nxdat1;unsigned long nx,ns,fx,pxwide,t; /* 数据段*/unsigned char code number0=/*- 源文件 / 文字 : 0 宽高(像素): 816 字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旋律与节奏关系解读试题及答案
- 广西评标专家试题及答案
- 新能源汽车的切换技术研究试题及答案
- 智能投顾平台2025年风险控制与合规操作策略研究报告
- 新能源汽车行业技术考试发展战略题及答案
- 2025教育学面试题库及答案
- 金融衍生品市场2025年创新产品与风险识别报告
- 天然气水合物(可燃冰)开采技术对全球能源安全的影响研究报告
- 应用写作试题及答案a卷
- 家具行业设计中的用户导向与人性化设计原则分析试题及答案
- 感悟考古智慧树知到期末考试答案章节答案2024年北京大学
- 2025陕西省高二学业水平考试数学模拟试卷试题(含答案详解)
- DL-T5142-2012火力发电厂除灰设计技术规程
- 2024年全国青少年航天创新大赛航天知识竞赛试题
- DB11∕2075-2022 建筑工程减隔震技术规程
- 铅锌矿的冶炼技术进展与设备改进
- 煤矿劳动组织管理培训课件
- 仓储绩效考核实施细则仓库人员绩效考核内容与评分标准
- 混凝土拌合物凝结时间自动计算记录
- 2022睡眠医学中心建设指南
- 地磅允许误差
评论
0/150
提交评论