毕业设计(论文)-基于NEC单片机的数字式信号发生器.doc_第1页
毕业设计(论文)-基于NEC单片机的数字式信号发生器.doc_第2页
毕业设计(论文)-基于NEC单片机的数字式信号发生器.doc_第3页
毕业设计(论文)-基于NEC单片机的数字式信号发生器.doc_第4页
毕业设计(论文)-基于NEC单片机的数字式信号发生器.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

天津职业技术师范大学Tianjin University of Technology and Education毕 业 设 计专 业: 通信工程 班级学号: 0801-31 学生姓名: 指导教师: 二一二 年 六 月天津职业技术师范大学本科生毕业设计基于NEC单片机的数字式信号发生器The digital signal generator based on NEC microcontroller 2012年06月摘 要随着数字技术的飞速发展和高精度大动态范围数字模拟转换器的广泛应用,直接数字频率合成技术异常突起。该技术是一种重要的频率合成技术,它是一种用数字控制的方法从一个标准参考频率产生多个频率信号的技术,具有分辨率高、频率变换快等优点,因而在雷达及通信等领域有着广泛的应用。基于直接数字频率合成芯片AD9850的宽频信号源,不但具有相对带宽较宽,频率转换时间短,频率分辨率高,输出相位连续等特点,而且可产生宽带正交信号及其他多种调制信号,编程灵活控制方便具有广泛的应用前景。本设计以NEC单片机78F0547为中心控制系统,由按键输入模块、稳压电源模块、液晶显示模块、波形产生模块组成。本系统由七个频率档构成的按键输入和电位器输入,输入信号经过单片机的转换、计算处理后形成两组数据,一组数据输入到液晶显示屏1602上,把频率显示出来,另一组数据为40位控制字,输入到DDS专用芯片AD9850产生正弦波、方波信号。本系统设计的输出频率范围为0.12Hz到20MHz,输出频率最小分辨率为0.12Hz 。工作温度范围为40C至+125C包括工业温度范围。该系统输出信号稳定度、精度极高,适用于当代的尖端的通信系统和精密的高精度仪器。关键词:频率合成;NEC单片机;DDS; A/D转换;高精度IIAbstractWith the rapid development of digital technology, precision large dynamic range of With the extensive application of the rapid development of digital technology and high-precision dynamic range digital to analog converter, the sudden emergence of direct digital frequency synthesis. The technology is an important frequency synthesis technique, which is a digital control method to generate multiple frequency signal from a standard reference frequency technology, with high resolution, fast frequency transform advantages, which in radar and communications the field has a wide range of applications. Direct digital frequency synthesizer chip AD9850 wideband signal source not only has a relatively wide bandwidth, frequency switching time is short, high frequency resolution, output continuous phase characteristics, and can produce broadband signal and other modulated signals, programming flexibility and control convenience has broad application prospects. The design to NEC MCU 78F0547 as the central control system by the key input module, power supply modules, LCD modules, waveform generator modules. The system consists of seven frequencies file button input and potentiometer input, the input signal after the conversion of single-chip, to form two sets of data computing, a set of data input to be displayed on the LCD display 1602, another set of data for 40 bit control word for input DDS chip AD9850 produce sine wave, square wave. The design of the system output frequency range of 0.12Hz to 20MHz, the minimum output frequency resolution of 0.12Hz. Operating temperature range is -40 C to 125 C extended industrial temperature range. The system is stability, high precision, applicable to the contemporary state-of-the-art communication systems and sophisticated precision instrument.Keywords: frequency; NEC MCU; the DDS; A/ D conversion; precision目 录1引言11.1对人类科学的影响11.2层次结构11.3应用领域11.3.1雷达21.3.2扩展频谱通信21.3.3宽频信号源22DDS基本原理及性能特点32.1DDS基本原理32.2DDS性能特点32.2.1输出频率相对带宽较宽32.2.2频率转换时间短32.2.3频率分辨率极高42.2.4相位变化连续42.2.5输出波形的灵活性42.3AD9850工作原理43总体设计53.1方案论证与比较53.1.1信号发生部分53.1.2频率控制部分53.1.3键盘输入部分53.1.4信号输出部分63.1.5显示部分63.2总体设计63.3单片机主控模板73.4按键控制模块93.5数字模拟稳压电源模块93.6信号发生模块113.7液晶显示模块133.7.11602LCD简介133.7.2引脚功能说明144软件调试154.1C语言154.2开发工具软件设置164.2.1软件设置164.2.2用TIMER定时:164.2.3INT中断174.3开发工具软件使用174.4主程序流程图194.5熟悉NEC开发环境204.5.1开发工具软件应用内容204.5.2PM Plus的操作204.5.3QB-78K0MINI仿真器的使用204.6初始化程序214.7A/D转换及液晶显示子程序224.8AD9850控制程序254.9键盘中断程序264.10主程序275系统的工作过程286总调试及误差分析29结 论30参考文献31致 谢32附录一:源程序33附录二:系统电路图45天津职业技术师范大学2012届本科生毕业设计1 引言NEC公司78K系列单片机,现有6种NEC的8位单片机,分别属于KC2、KB2及KF2系列,如果选择KF2系列的0547D则可非常简便地实现题目要求。本设计对系统运行速度要求不高,适当选择并行方式外围器件并采用复用方式可以降低对端口资源的需求,又能满足系统功能要求,另外考虑到本设计作为实用技术的案例,不能单纯追求器件的高性能。综合以上拟选择通用低档KB2系列中的78F0547单片机,该单片机与通用51单片机相比,端口引脚资源丰富,而售价只与51单片机相当,便于将来开发低成本学习。需要强调的是,为方便调试,NEC每个系列中提供一款带有片上调试功能的D尾芯片,适用于产品开发阶段或学习板,而正式产品中则应采用无调试功能的器件提高系统可靠性。本设计以NEC单片机78F0547为中心控制系统,由输入模块、液晶显示模块、波形产生模块组成。采用DDS专用芯片AD9850产生正弦波、方波波形,输入在单片机的控制下,经A/D转换后控制AD9850产生信号的频率,信号的频率在单片机的控制下由液晶显示出来。1.1 对人类科学的影响随着科技的发展,人们对频率的要求越来越高,DDS可能改变人的思维方式和传统观念。对人类科学有更多的影响。DDS有着可控性好,稳定度高的优点,目前得到了广泛的应用。1.2 层次结构基于NEC单片机78F0547的直接数字频率合成的信号发生器,它主要以微电脑控制部分、直接数字频率合成(DDS)部分、数字锁相环频率合成部分、背光液晶显示部分、功率放大部分等组成。本系统通过启动接数字频率合成(DDS)模块,把内存缓存区的数据送到数字频率合成(DDS)模块后输出相应的频率,并把数据转换为BCD码,送到液晶显示器进行显示。该系统输出稳定度、精度极高,适用于当代的尖端的通信系统和精密的高精度仪器。1.3 应用领域数字频率合成最适合在那些要求性能比较高的环境中工作,它们已在许多工业部门获得广泛应用。它们可以比人类工作得更好并且成本低廉。可产生宽带正交信号及其他多种调制信号控制灵活方便具有较高的性价比广泛应用于通信雷达等领域是目前频率合成的发展方向。以下列举了数字频率合成的一些应用,所有这些用途正逐步渗入到军事、工业和社会的各个层面。1.3.1 雷达现代雷达由于战术需求,需要从回波信号中提取目标距离、速度以及其它特征信息,这就需要雷达发射。大时宽、带宽信号线性调频信号由于其易产生、易处理,因而得到广泛应用。对于产生LFM 信号的模拟方法,无论是有源的VCO方法,还是无源的SAW 的方法,都有其固有的缺陷(如:器件对温度敏感、信号带内线性度差、相位噪声过大、信号间相干性不理想)制约雷达整机性能。而直接数字频率合成技术通过数控电路对DDS输出波形的频率、幅度、相位进行精确的控制,并对信号的幅度、相位进行校正,产生接近理想的线性调频信号,因而具有传统模拟方法无可比拟的优点,从而在军事领域得到了广泛的应用。1.3.2 扩展频谱通信扩展频谱通信(Spread Spectrum Communication)作为一种新型的通信体系,具有抗干扰能力强、截获率低、码分多址、信号隐蔽、保密、易于测距等优点,是通信领域的一个重要发展方向。扩频通信在军事上受到了极大的重视。为配合对扩频信号的码率、载波频率、伪码序列等重要参数估计的研究,迫切需要一台能够对现实环境中直接序列扩频信号进行精确模拟的信号源,而数字频率合成适应这些要求。1.3.3 宽频信号源基于NEC单片机控制的DDS方式的高速宽频信号源系统并对其中的LCD显示输出运算放大模块D/A转换模块幅度控制模块等进行了介绍该系统可以产生任意频率的正弦方波及其各种模拟和数字调制信号功能并且具有频率的精度高等优点。452 DDS基本原理及性能特点2.1 DDS基本原理DDS的基本原理是利用采样定理,通过查表法产生波形。相位累加器由N位加法器与N位累加寄存器级联构成。每来一个时钟脉冲fs,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值的转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。DDS在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号的性能。2.2 DDS性能特点2.2.1 输出频率相对带宽较宽输出频率带宽为50% fs(理论值),但考虑到低通滤波器的特性和设计难度以及对输出信号杂散的抑制,实际的输出频率带宽仍能达到40% fs。2.2.2 频率转换时间短DDS是一个开环系统,无任何反馈环节,这种结构使得DDS的频率转换时间极短。事实上,在DDS的频率控制字改变之后,需经过一个时钟周期之后按照新的相位增量累加,才能实现频率的转换。因此,频率转换的时间等于频率控制字的传输时间,也就是一个时钟周期的时间。时钟频率越高,转换时间越短。DDS的频率转换时间可达纳秒数量级,比使用其它的频率合成方法都要短数个数量级。2.2.3 频率分辨率极高若时钟的频率不变,DDS的频率分辨率就由相位累加器的位数N决定。只要增加相位累加器的位数N即可获得任意小的频率分辨率。目前,大多数DDS的分辨率在Hz数量级,许多小于mHz甚至更小。2.2.4 相位变化连续改变DDS输出频率,实际上改变的每一个时钟周期的相位增量,相位函数的曲线是连续的,只是在改变频率的瞬间其频率发生了突变,但是保持了信号相位的连续性。2.2.5 输出波形的灵活性只要在DDS内部加上相应控制如调频控制FM调相控制PM和调幅控制AM,即可以方便灵活地实现调频、调相和调幅功能,产生FSK.PSK.ASK和MSK信号。另外,只要在DDS的波形存储器存放不同波形数据,就可以实现各种波形输出。当DDS的波形存储器分别存放正弦和余弦函数表时,既可得到正交的两路输出。2.3 AD9850工作原理AD9850内含可编程DDS系统和高速比较器,能实现全数字编程控制的频率合成。可编程DDS系统的核心是相位累加器,它由一个加法器和一个N位相位寄存器组成,N一般为24-32每来一个外部参考时钟,相位寄存器使步长M递加。相位寄存器的输出与相位控制字相加后可输人到正弦查询表地址上。正弦查询表包含一个正弦波周期的数字幅度信息,每一个地址对应正弦波中00-360范围的一个相位点。查询表把输人地址的相位信息映射成正弦波幅度信号,然后驱动DAC以输出模式量。利用DDS专用芯片实现信号发生器设计,具有结构简单、成本低、频率输出范围大以及稳定度高等特点,克服了传统设计方案输出频率不稳定的缺点,有很好的应用价值。3 总体设计经过仔细分析,充分考虑各种因素,制定了整体设计方案:以NEC单片机78F0547D为核心,完成四方面的功能:采用DDS专用芯片AD9850产生正弦波、方波,可编程并口控制液晶显示,键盘并口控制输入,频率微调输入。3.1 方案论证与比较3.1.1 信号发生部分方案一:采用传统的波形振荡方式,如常见的555 MAX038等芯片采用外接阻容介质来达到频率合成的目的。虽然电路简单,但频率控制复杂,不易数字化,特别是在高频波段,如果电路设计不当,波形容易失真。方案二:采用直接数字频率合成(DDS)方式,即通过可编程技术从一个标准参考时钟产生多种频率。主要优点是信号源的相对带宽较宽,频率分辨率高。采用专用的DDS芯片,因为AD9850可以直接产生正弦波等常见波形,用单片机的控制字可以方便地进行控制输出不同的频率。综上比较,采用方法二合理。3.1.2 频率控制部分方案一:采用单片机直接频率控制方法,控制简单,电路容易制作,不分频段处理。对于此方法,由于NEC单片机78F0547D的A/D转换的字长有限,从而不能达到该动态调频范围。方案二:采用外部中断输入,分档控制。此种方法电路比较复杂,编程相对较难。但是此种方法的动态范围满足要求,采用分七档控制。所以采用此种方案。综上比较,采用方法二合理。3.1.3 键盘输入部分方案一:采用动态扫描的方法输入,电路布线较多,比较占用多的CPU,从而使得CPU的实时性大大的下降,对整个系统也会产生较大的影响。因此,此方法不理想。方案二:采用中断的方式进行键盘输入,此方法实时性能很好,电路结构简洁,编程稍微有点麻烦。综上比较,采用方法二合理。3.1.4 信号输出部分方案一:采用多路开关在正弦波、方波之间切换的方式输出。这种方式每种波都是同时产生的,因此之间容易发生相互的干扰,而且切换速度慢,使用也不方便,切换有干扰从而影响精度。方案二:采用提供精确的、可由分立管脚选择的波形方式。这种方式可以降低之间相互的干扰。系统在温度和电源电压变化时有很高的稳定性,完全可以满足本设计的要求。采用此方案。综上比较,采用方法二合理。3.1.5 显示部分方案一:采用数码管动态扫描显示方式,此种方法需要较多的I/O口,电路焊接复杂,而且数码管只能显示数字,显示字母效果不理想。方案二:LCD1602液晶显示,LCD1602液晶不但能显示字符和数字,而且显示效果较好,容易编程实现。采用此方案。综上比较,采用方法二合理。3.2 总体设计系统主要由NEC78F0547D单片机主控模块、按键控制模块、数字模拟稳压电源模块、AD9850信号发生模块、1602液晶显示模块、频率微调模块组成。本系统由七个频率档构成的按键输入和电位器输入,输入信号经过单片机的转换、计算处理后形成两组数据,一组数据输入到液晶显示屏1602上显示出来,另一组数据为40位控制字,输入到DDS专用芯片AD9850控制产生的正弦波、方波的频率。综上所述,拟选择通用低档KB2系列中的78F0547单片机。它与通用51单片机相比,除端口引脚资源丰富外,自身集成有A/D转换器,而售价与51单片机相当,便于为将来的开发低成本。其系统框图如图3-1所示。单片机78F0547D按键控制模块LED指示频率微调AD9850信号发生数字模拟稳压1602液晶显示图3-1 系统总体框3.3 单片机主控模板NEC78F0547D产品特征:指令最短执行时间可以在高速(0.1us)和低速(1.6us)之间改变;通用寄存器为8位*32个寄存器;具有片上上电清零电路和低电压检测器、片上看门狗定时器。其引脚定义为:ANI0ANI3:模拟输入 P60,P61: 端口6AVREF:模拟参考电压 P120P122:端口12AVSS:模拟地 REGC:调节器电容EVDD:端口供电电源 RESET:复位EVSS:端口地 RXD0,RXD6:接受数据EXCLK:外部时钟输入 SCK10,SCL0:串行时钟输入输出EXLVI:低电压检测器的外部点压输入 SDA0: 串行数据输入输出FLMD0:Flash编程模式 SI10:串行数据输入INTP0INTP5:外部中断输入 SO10:串行数据输出P00,P01:端口0 VDD:供电电源P10P17:端口1 VSS:地P20P23:端口2 X1,X2:晶体振荡器(主系统时钟)P30P33:端口3 NC:不连接 TI000,TI010,TI50,TI51:定时器输入OCD0A,OCD0B,OCD1A,OCD1B:片上调试输入输出。TO00,TO50,TO51,TOH0,TOH1:定时器输出。由上可见,NEC78F0547D单片机的硬件结构具有功能部件种类全I/O口丰富,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。其模块如图3-2所示。图3-2 NEC模块图3.4 按键控制模块中断的方式进行键盘输入。此方法实时性能好,电路结构简洁以及有LED指示灯配合,从而应用更加方便,模块如图3-3所示。图3-3按键控制模块图3.5 数字模拟稳压电源模块由于本系统对干扰比较敏感,尤其是对电源的性能要求相对很高,电源的波动可能导致单片机的工作不稳定和AD8950的信号发生部分失真甚至无信号输出。作为稳压器件来将较高的直流电压转变其他器件所需的工作电压。让数字电源、模拟电源、单片机电源、信号合成器电源分开连接,从而减少相互之间的干扰,利于提高控制系统的稳定性。首先才有7805降压稳压,确保系统供电的稳定以及电压不会太大以至于烧坏电路,其次在每个模块的供电都采用电容进行去耦处理,减少了模块之间电源之间的干扰。如图3-4所示。图3-4稳压电源模块3.6 信号发生模块AD9850是一款高度集成的器件,采用先进的DDS技术,内置一个高速、高性能数模转换器和比较器,共同构成完整的数字可编程频率合成器和时钟发生器。以精密时钟源作为基准时,AD9850能产生频谱纯净的频率/相位可编程、模拟输出正弦波。该正弦波可以直接用作频率源,或转换为适合可变时钟发生器应用的方波。随着数字技术的飞速发展,高精度大动态范围数字/模拟D/A转换器的出现和广泛应用,用数字控制方法从一个标准参考频率源产生多个频率信号的技术,即直接数字合成(DDS)技术异军突起。利用DDS技术特别容易产生频率快速转换、分辨率高、相位可控的信号,这在电子测量、雷达系统、调频通信、电子对抗等领域具有十分广泛的应用前景。AD9850的创新型高速DDS内核提供一个32位频率调谐字;对于25 MHz基准时钟输入,输出调谐分辨率可以达到0.12Hz。AD9850的电路架构允许产生最高达到20MHz的输出频率,而且输出频率能以最高每秒2300万新频率的速率发生数字式改变(异步)。该器件还提供五位数字控制相位调制,使其输出能够以180、90、45、22.5、11.25及其任意组合的增量发生相移。AD9850还内置一个高速比较器,它经过配置可以接受DAC的(外部)滤波输出,以产生低抖动方波输出,这样该器件便可用作可变时钟发生器。频率调谐、控制和相位调制字均以并行字节或串行加载格式载入AD9850。并行加载格式由一个8位控制字(字节)的五次迭代加载组成,第一个字节控制相位调制、省电使能和加载格式,第二至第五个字节组成32位频率调谐字。串行加载通过单个引脚上的40位串行数据流完成。AD9850完整DDS利用先进的CMOS技术提供这一突破性功能与性能,而功耗仅155mW。在并行输入方式下,通过8位总线D0-D7将外部控制字输入到寄存器,在字输入时钟一个上升沿将控制字输入寄存器,连续5个上升沿读入5个字节数据到输入寄存器后,时钟的边沿就不再起作用。然后在频率更新时钟上升沿到来时将这40位数据从输入寄存器装入到频率和相位寄存器,这时DDS输出频率和相位更新一次,同时把地址指针复位到第一个输入寄存器以等待下一次的频率和相位控制字输入。AD9850采用节省空间的28引脚SSOP表面贴装封装,工作温度范围为40C至+125C包括工业温度范围。如图3-5所示。图3-5信号发生模块3.7 液晶显示模块字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。用起来方便灵活。如图3-6所示。图3-6液晶显示模块3.7.1 1602LCD简介用1602LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。使用简单、操作方便、电路结构容易焊接。并且价格低廉。提供多功能指令:清除(Display clear)、光标归位(Return home)、显示打开/关闭(Display on/off)、光标、显示/隐藏(Cursor on/off)、显示字符闪烁(Display character blink)、光标移位(Cursor shift)、显示移位(Display shift)、反白显示(By_line reverse display)、待命模式(Standby mode)。3.7.2 引脚功能说明液晶显示器1602LCD价格低廉,操作简便,显示效果较好,因此选择了1602作为液晶显示器。1602LCD采用标准的14脚(无背光)或16脚(带背光)接口。显示容量:162个字符,芯片工作电压:4.55.5V,工作电流:2.0mA(5.0V),模块最佳工作电压:5.0V,字符尺寸:2.954.35(WH)mm。本设计中使用的液晶与单片机通信采用平行通信协议,需要运用8个数据口(DB0DB7),3个控制口(RS、R/W、E)。采用平行的通信协议的优点在于传输速度快,操作简单,但是占用系统资源较多。各引脚接口说明如表3-1所示:表3-1 LCD引脚接口说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极4 软件调试整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,就可以开始程序的编写调试了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能初步确定系统主程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。软件部分是整个系统核心部分,硬件调试成功后,加上软件部分才能使整个系统得以运行。本系统的软件部分主要包括主程序和系统初始化子程序、液晶显示子程序、中断按键子程序和AD9850控制程序等。4.1 C语言C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。其特点为:1.语言简洁、紧凑、使用方便、灵活。2.运算符丰富。3数据结构丰富,具有现代化语言的各种数据结构。4.具有现代化的控制语句(如if else语句while语句do while语句switch语句for语句)。5.语法限制不太严格,程序设计自由度大。6.C语言能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。7.生成目标代码质量高,程序执行效率高。8.程序可移植性好。4.2 开发工具软件设置4.2.1 软件设置1、当我们使用Applilet for 78K0KX2 V1.51时,首先,我们要在System的On-chip debug setting选项的Use on-chip debug mode前的选择框挑勾,也就是选择使用。选完后再根据自己的需要去设置。2、当我们编写完程序后,先进行编译,编译没错后在我们下载之前,我们要在工具栏的TOOL选项,选择第三项Linker Options 的最后三项都在他们前面的选择框上面挑勾。然后再在TOOL的Debugger Settings选项里选择片上调试(78K0 Integrated Debugger(ID78K0-QB for MINICUBE))。3、对于延时我们说使用的寄存器的地址一般使用的区域是FE20到FF1F。 4、当我们定义中断时(不管是按键中断还是脉冲中断),都应选择上拉电阻,起稳定作用。 5、当P6口在为输出口时,给它赋值后寄存器中能显示相应的值,但硬件中P67-64可以显示相应的结果,但P63-60却一直保持低电平。 6、当我们定义键盘扫描的程序时,例如我们用4X4的键盘时,我们需要定义列(行)定义为输出,行(列)定义为输入。 7、我们使用的这个型号的单片机的各个端口在某一时刻是只能作为输出或者输入使用的。也就是说如果想让某各个端口既作为输出,又作为输入的话,必须手动编写软件来改变。设置PMn寄存器。比如当用作输入时:PMn.m=1。当用作输出时:PMn.m=0。4.2.2 用TIMER定时:1、首先,我们要在Applilet里面,选择timer,在这里面选择合适的定时方式和定时时间。2、然后在main.asm中写入”CALL! TM00_Start”。3、在TIMER_User.asm写入需要延时的程序。如:RORL A,1表示左移一位就延时一段时间。4、在main.asm中写入要返回的程序,如:L1:MOV P5,A。5、当程序运行一遍时,不可以用BR main_user,而是应写成BR !L1,这样程序才能正常的运行。另外,下面介绍一下timer、watchdog timer和watch timer的区别:timer:就是我们一般理解的定时器/时间计数器。watchdog timer:“看门狗”定时器,它的其中一个作用是监视CPU是否在正常运行,如果程序“跑飞”,利用watchdog timer可以检测出来,其实这就是我们通常所说的看门狗电路。watch timer:它的比较特殊的地方就是其时钟源可以选择子时钟32.768KHz。这样的话可以产生非常精确的0.25m或0.5m的中断。对于延时时我们说使用的寄存器的地址一般使用的区域是FE20到FF1F。4.2.3 INT中断1、当我们在选择中断时,我们定义完中断后,还需要在端口定义里面将相应的端口的上拉电阻定义上,因为中断相当于是输入,如果没有上拉电阻程序有时会不能运行,即使运行起来也不稳定。2、在INT_user.asm中写入中断后所要执行的程序,同时要做好现场保护即将断点数据推入堆栈,中段完毕后再煎数据从堆栈中推出,入栈和出栈的原则是“先入后出,后入先出”。采用PUSH和POP指令来完成。3如果要在中断子程序中调用延时,我们要在子程序中写延时,不能从主函数中调用。四、NEC内部A/D转换的使用1、当我们要使用NEC本身自导的A/D转换时,我们首先要将AVss接地,AVREF接参考电压,输入的模拟电压可用P20-P27之间的口。2、和用TIMER定时一样,我们也需要在main.asm中写入CAAL AD_Start3、在AD_user.asm中写入:MOV A,ADCRH(ADCRH是A/D转换结果的寄存器)将A/D转换后的值赋给寄存器A。4.3 开发工具软件使用1.测量程序执行时间的方法(以汇编代码测量更加直观)如下:在SM+中设置Option Time On 。在欲观察代码始、终位置加断点break,同时出现事件event。Event Timer将始终事件用鼠标拖入start event和end event。初始化清零定时器,运行至断点,继续运行,运行时间即给出。2. 设置SM+的时钟频率为了在调试过程中准确测定代码运行时间,需设置正确的SM+频率:OptionCofigueationMain 输入正确频率值。3. 设置PM+生成下载文件指定PM+生成下载文件的格式:Tool Object Converter ,在Output1中选中Creat Hex Module ,并指定文件夹,否则不会生成hex下载文件。4. 使用MCU的sfr确保C语言文件最开始加入编译预处理指令 #pragma sfr,之后就可以直接使用sfr的名称了;Applilet生成的程序骨架系列文件中,上述预处理指令位于macrodriver.h 文件的开始,而且在main.c文件开始有#include macrodriver.h指令,满足上面的要求;sfr的名称必须用大写,变量指定为sfr后就可位寻址了;sfr的宏定义格式:#define D_SCLK P6.0 。sfr一定是外部变量(全局变量),要在函数外部声明。5. 使用CC78K0的库函数NOP加入预处理指令#pragma NOP后,就可以使用NOP()函数了,与之相同的还有di、ei、HALT、STOP。由于反复改动main.c文件,调用SystemInit( )时报错:Symbol_SystemInit unmatched type in file main.rel。在文件中主函数之前加入声明extern void SystemInit( )后通过。(注:main.c中已经声明#include system.h,但这个.H包含文件中只有void Clock_Init( void )声明,而没有void SystemInit( )声明)。通过系列实验由浅入深使学生逐步掌握:使用NEC Tools 中的PM plus、SM+ 78K0 以及片上调试仿真器QB-78K0MINI 等工具,针对pd78F0547D 芯片进行设计开发。预备知识:面向准备开发基于78K0 系列微处理器进行嵌入式系统开发的初学者。读者需要具备一定的C、汇编和微处理器(MCU)的基础知识。具有一定的程序编译及调试的基础。硬件:NEC 78K0 嵌入式开发板、QB-78K0MINI 仿真器、PC 机( 操作系统:windows98、windows98se、windows2000 等)。6代码效率问题因为系统对代码长度、运行速度没有要求,没有使用优化。4.4 主程序流程图系统初始化判断键值输入控制字初始化AD9850通过按键选频率档通过变阻器调频频率输出启动NY图4-1主流程图系统的主程序流程图如图4-1所示。程序一开始进行初始化,初始化定义中断,初始化液晶显示,开启中断,判断频率档,控制数字频率合成模块输出频率。此程序的功能就是要将外部输入的频率数据按照一定协议和算法变换成DDS芯片AD9850所能接受的格式,并送出相应的频率相位控制信号,从而使AD9850能产生两路相位正交、频率可控的正弦信号。4.5 熟悉NEC开发环境4.5.1 开发工具软件应用内容利用PM Plus新建一个Workspace,建立项目文件,并加入源程序。利用PM Plus 进行编译、Debug直至编译结果中没有错误出现。通过QB-78K0MINI仿真器连接NEC 78K0 嵌入式开发板进行在线仿真、调试。并在调试过程中学会设置断点,观察系统内存和变量等基本操作,为调试应用程序打下基础。至少掌握一种语言的编译、Debug、仿真等的操作过程及方法。4.5.2 PM Plus的操作点击“开始程序 NEC ToolsPM+的图标,将会弹出如下界面。如果不是第一次执行,PM+会自动加载最后一次执行的Workspace。图4-2启动PM+4.5.3 QB-78K0MINI仿真器的使用(1)硬件环境建立连接QB-78K0MINI仿真器和NEC78K0单片机,将QB-78K0MINI仿真器连接至PC,最后为NEC 78K0嵌入式开发板供电。这样实验环境建立起来了。(2)启动ID78K0-QB for MINICUBE打开ID78K0-QB for MINICUBE程序,在“Chip”一栏中选择78F0547_80。如果下拉框里面没有。78F0547_80的选项,说明该芯片的设备文件没有被正确安装,请先安装设备文件。图4-3目标芯片的选择4.6 初始化程序本系统的初始化有各个功能块的初始化子程序组成,有I/O初始化、A/D初始化、定时器初始化、中断按键初始化、液晶显示初始化、数字频率合成模块初始化组成。本设计由系统总初始化程序,A/D初始化子函数,单片机内部系统初始化子函数,中断初始化子函数,液晶显示初始化子函数,端口初始化子函数组成,除P2.6、P2.2设为A/D转换输入,其他的均暂时设为输出口且都为上拉电阻能使。void Zong_init(void)/*总初始化函数*/IMS = MEMORY_IMS_SET;/*系统设定*/IXS = MEMORY_IXS_SET;/*系统设定*/SystemInit(); /*单片机初始化函数*hdwinit(); /*/PM6=0x00;/*P6口输出*/PM1=0X00; /*P1口输出*/lcd_init(); /*液晶显示初始化函数*/AD_Init(); /*A/D初始化函数*/kb=1000000; P1=0xfe; fi=0;pj=0;4.7 A/D转换及液晶显示子程序由AD转换出来的结果经过处理

温馨提示

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

评论

0/150

提交评论