毕业设计-基于51单片机的函数信号发生器设计.doc_第1页
毕业设计-基于51单片机的函数信号发生器设计.doc_第2页
毕业设计-基于51单片机的函数信号发生器设计.doc_第3页
毕业设计-基于51单片机的函数信号发生器设计.doc_第4页
毕业设计-基于51单片机的函数信号发生器设计.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

基于at89c51单片机的函数信号发生器设计摘 要信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。所以本设计使用的是at89c51单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。在单片机上加外围器件距阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了lcd显示频率大小。在单片机的输出端口接dac0832进行d/a转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。在介绍dac0832芯片特性的基础上,论述了采用dac0832芯片设计数字函数信号发生器的原理以及整机的结构设计。对其振荡频率控制、信号输出幅度控制以及频率和幅度数显的实现作了较详细的论述。该函数信号发生器可输出三角波,方波和正弦波。关键词: 信号发生器 单片机 波形调整abstract signal-generator is a kind of signal source in common use, broadly applied at the electronics electric circuit, auto control system and teaching experiment etc. currently used mostly function signal generator signal generator, waveform generator and a special price of expensive . so the dissertation is usage of the at89s51 single-chip microcomputer constitute of wave-form generator, which can generate triangle wave, square wave, sine wave etc variety wave-form, the period of wave can be controlled by procedure, at outer circle spare part of the machine, plus independence type keyboard , which can control wave increase or decrease of form-frequency and the choice of wave-form, at the same time led display frequency size. the output of the machine connect dac0832 to carry on a da conversion,again pass operation amplifier to put an end exportation wave-form. this design has advantage of simple circuit, tightly packed structure, cheap price, superior function etc. based on the introduction of max038 , we discussed the principle and the whole frame of the digital function signal generator. we described the control of the oscillatory frequent , amplitude and the digital display in detail. thegenerator can output three kinds of waves : sine wave , square wave , triangle wave. keywords: signal generator mcu wave-form adjustment36河南城建学院本科毕业设计论文 目录目 录1绪论1.1:课程背景目的及意义11.2:设计任务和要求22方案的研究2.1:方案的提出和整论32.2:模块的结构划分43各部分功能模块3.1:单片机模块53.2:电源模块63.3:d/a转换模块73.4:键盘输入模块103.5:显示模块123.6:i/v转化模块133.7: 基准电压调节模块144电路软件设计4.1:系统总框图184.1:显示子程序框图194.2:按键子程序框图20总结参考文献附录a:系统总程序 附录b:系统总电路图河南城建学院本科毕业设计论文 绪论第1章 绪 论1.1课题背景、目的及意义 随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展,促使信号发生器种类增多,性能提高。尤其随着70年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。现在,许多信号发生器带有微处理器,因而具备了自校、自检、自动故障诊断和自动波形形成和修正等功能,可以和控制计算机及其他测量仪器一起方便的构成自动测试系统。当前信号发生器总的趋势是向着宽频率覆盖、低功耗、高频率精度、多功能、自动化和智能化方向发展。 在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域,常常需要用到低频信号发生器。而在我们日常生活中,以及一些科学研究中,锯齿波和正弦波、矩形波信号是常用的基本测试信号。譬如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。信号发生器作为一种通用的电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。 但市面上能看到的仪器在频率精度、带宽、波形种类及程控方面都已不能满足许多方面实际应用的需求。加之各类功能的半导体集成芯片的快速生产,都使我们研制一种低功耗、宽频带,能产生多种波形并具有程控等低频的信号发生器成为可能。 便携式和智能化越来越成为仪器的基本要求,对传统仪器的数字化,智能化,集成化也就明显得尤为重要。平时常用信号源产生正弦波,方波,三角波等常见波形作为待测系统的输入,测试系统的性能。单在某些场合,我们需要特殊波形对系统进行测试,这是传统的模拟信号发生器和数字信号发生器很难胜任的。利用单片机的强大功能,设计合适的人机交互界面,使用户能够通过手动的设定,设置所需波形。 1.2设计任务和要求 设计一个多功能信号发生器,可以产生正弦波、三角波、方波、锯齿波等多种波形。波形的频率、幅值均为连续可调。实现多功能信号发生器波形种类、波形的频率、幅值的状态及数据的显示。自选器件,实现多功能信号发生器的硬件设计。可自行扩展功能,使之更加完善。 河南城建学院本科毕业设计论文 方案的研究第二章 方案的研究2.1方案的提出和整论 常用的函数信号发生器的实现方法有如下几种 1. 采用分立元件实现信号的输出,主要是通过模拟电路实现正弦信号的输出,在通过各种积分微分电路实现各种不同波形的输出。但是这种方法频率和幅值的调整比较困难,而且模拟电路受外部因素的影响较大,输出的波形难以控制。 2采用集成信号发生芯片max038输出各种波形,并通过外接电阻值改变实现对幅值和频率的调整。图2-1-1.基于max038的信号发生器原理图这种方法实现起来比较容易,但是频率和幅值的调节比较困难。 3. 采用dac0832通过查表得方式输出需要的波形,通过单片机定时向dac转化器发送转换数据,实现不同的幅值和频率的输出。这种方法能够实现各种需要的波形的输出,成本也不高,只是在扩展外设的时候浪费了大量的接口,以后的系统扩展可能会有影响。 4. 采用dds频率合成器,能输出各种波形,而且能够轻松调节幅值和频率。dds同dsp(数字信号处理)一样,是一项关键的数字化技术。dds是直接数字式频率合成器(direct digital synthesizer)的英文缩写。与传统的频率合成器相比,dds具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。 图2-1-2.dds的原理框图一块dds芯片中主要包括频率控制寄存器、高速相位累加器和正弦计算器三个部分。频率控制寄存器可以串行或并行的方式装载并寄存用户输入的频率控制码;而相位累加器根据dds频率控制码在每个时钟周期内进行相位累加,得到一个相位值;正弦计算器则对该相位值计算数字化正弦波幅度(芯片一般通过查表得到)。dds芯片输出的一般是数字化的正弦波,因此还需经过高速d/a转换器和低通滤波器才能得到一个可用的模拟频率信号。2.2模块的结构划分单片机键盘双极性转化电路d/a转换显示图2-2.本次设计的模块图本次我选用的是单片机通过查表获得某一时刻对用的波形幅值,经过dac转化器,转化为对应的模拟信号,幅值的调节主要是通过调节dac的基准电压实现,频率的调节则是河南城建学院本科毕业设计论文 各部分功能模块第3章 各部分功能模块3.1单片机模块 本次设计选用的单片机芯片是at89c51单片机。at89c51是美国atmel公司生产的低电压,高性能cmos 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(perom)和128 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器(cpu)和flash存储单元。 at89c51中有一个用于构成内部振荡器的高增益反相放大器,引脚xtal1和xtal2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶休或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷诺振器)及电容c1, c2接在放大器的反馈回路中构成并联振荡电路。对外接电容c1, c2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,这里选择使用石英晶休,我们的电容使用30pf。如使用陶瓷谐振器的话,应选择40pf士10pf的容值的电容。也可以采用外部时钟。采用外部时钟的电路的情况时,外部时钟脉冲接到xtal1端,即内部时钟发生器的输入端,xtal2则悬空。 图3-1:单片机最小系统1、主电源引脚(2根) vcc(pin40):电源输入,接5v电源gnd(pin20):接地线2、外接晶振引脚(2根)xtal1(pin19):片内振荡电路的输入端xtal2(pin20):片内振荡电路的输出端3、控制引脚(4根)rst/vpp(pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ale/prog(pin30):地址锁存允许信号psen(pin29):外部存储器读选通信号ea/vpp(pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。4、可编程输入/输出引脚(32根)at89s51单片机有4组8位的可编程i/o口,分别位p0、p1、p2、p3口,每个口有8位(8根引脚),共32 根。每一根引脚都可以编程。 po口(pin39pin32):8位双向i/o口线,名称为p0.0p0.7p1口(pin1pin8):8位准双向i/o口线,名称为p1.0p1.7 p2口(pin21pin28):8位准双向i/o口线,名称为p2.0p2.7 p3口(pin10pin17):8位准双向i/o口线,名称为p3.0p3.73.2电源模块图3-2-1:单片机的电源模块 函数信号发生器的电源包括两部分,包括单片机和外部电路用的电压+5v和运算放大器的电压+-12v,所以电源模块选择了常用的三端稳压器7805,7912和7812,由市电220v经变压器输出24v电压,通过7812和7912输出正负12v的电压用于运算放大器的供电,7812的输出端接7805将输出的12v电压转为5v用于单片机和其他外设电路的供电使用。图3-2-2:7805的原理图 通过差分对管和负反馈电路,使得输出的电压稳定在+5v。3.3 d/a转换模块 本次试验选择的d/a转化器是dac0832,是一款8分辨率的d/a转换集成芯片。与微处理器完全兼容。这个da芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。d/a转换器由8位输入锁存器、8位dac寄存器、8位d/a转换电路及转换控制电路构成。图3-3-1:dac0832内部结构图 dac0832内部有输入寄存器和dac寄存器,所以无需外部连接专门的锁存器。图3-3-2:daca0832引脚图各引脚的功能如下:d0d7:8位数据输入线,ttl电平,有效时间应大于90ns(否则锁存器的数据会出错);ile:数据锁存允许控制信号输入线,高电平有效;cs:片选信号输入线(选通数据锁存器),低电平有效;wr1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ile、cs、wr1的逻辑组合产生le1,当le1为高电平时,数据锁存器状态随输入数据线变换,le1的负跳变时将输入数据锁存;xfer:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;wr2:dac寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由wr1、xfer的逻辑组合产生le2,当le2为高电平时,dac寄存器的输出随寄存器的输入而变化,le2的负跳变时将数据锁存器的内容打入dac寄存器并开始d/a转换。iout1:电流输出端1,其值随dac寄存器的内容线性变化;iout2:电流输出端2,其值与iout1值之和为一常数;rfb:反馈信号输入线,改变rfb端外接电阻值可调整转换满量程精度;vcc:电源输入端,vcc的范围为+5v+15v;vref:基准电压输入线,vref的范围为-10v+10v;agnd:模拟信号地dgnd:数字信号地dac0832主要性能参数1. 分辨率为8位;2. 电流稳定时间1us;3. 可单缓冲、双缓冲或直接数字输入;4. 只需在满量程下调整其线性度;5. 单一电源供电(+5v+15v);6. 低功耗,200mw。 通常dac0832有三种不同的工作方式,主要依据对数据锁存器和dac锁存器的控制方式划分:直通方式,单缓冲方式和双缓冲方式。其中直通方式cs,xfer,wr1和wr2直接接低电平,dac0832随时转换输入的数据,这种方式比较简单,占用的i/o口也比较少,但是当需要i/o口做扩展的时候容易受到干扰。 单缓冲方式者把数据锁存器和dac锁存器的使能端接在一起,只需要一组信号就能同时控制两个寄存器的。 双缓冲方式是将数据锁存器和dac锁存器分开单独控制,这种做法容易占用大量的i/0口。 综上所诉,本次设计采用了单缓冲控制方式图3-3-3.dac0832的单缓冲方式连线图 3.4键盘输入模块 通常单片机外部扩展键盘的方式有独立式键盘,矩阵键盘以及专门的键盘电路。独立式键盘就是一个i/o口扩展一个开关,这种方式程序编写比较容易,只需要检测单片机i/o某一时刻是否为低电平就能检测出其的按键输入情况,而且按键和i/o口一一对应,所以能够轻松识别按键的值,缺点是由于一个i/o口只能连接一个按键,当按键数量比较多的时候,势必占用了大量的i/o口,对系统的扩展造成巨大的困难。图3-4-1.独立键盘输入矩阵键盘相比独立式键盘其扩充的量大大增加,例如常见的4*4矩阵键盘占用的i/o口为4+4=8个,当需要扩充为20键输入时只需要4+5=9个i/o口,而采用独立式键盘的时候要分别用掉16个i/o口和20个i/o口,由于单片机的i/o口数量有限,很难将大量的i/o口用于,显然矩阵键盘能够大大的减少系统i/o口的使用,矩阵键盘的缺点是编写程序比较麻烦,需要上拉电阻系统的连线和元器件都增加。当采用行扫描方式读取键值时,需要4个上拉电阻,提供需要的高电平,当采用线反转法式需要采用8个上拉电阻,显然整个电路的接线都将变得更加复杂。 图3-4-2.矩阵键盘连线图 专用的键盘电路能够实现键盘的输入,而且读取数据也比较简单,例如周立功公司的数码管键盘扩展电路7289,能同时控制8位7段共阴极数码管和64个按键输入,内部自带消抖设置,当检测按键输入时能够给单片机发送中断信号,并直接将对应的值发送给单片机,而不需要单片机另外程序对其进行识别,数码管显示部分能够通过单片机设置各位的显示段码,并设置其导通与否和偏移方向。但是采用专门的键盘电路芯片会加大设计的成本。 由于本次设计使用的按键数量并不要求很多,要求的只有模式,频率+-和幅值+-,所以采用独立键盘能够减少系统电路的复杂程度,也大大简化了对编程的要求。图3-4-3.7289的扩展电路3.5 显示模块 本次设计要求对输出波形的频率,幅值和波形进行输出,所以要扩展显示模块,常用的显示模块lcd有7端数码管,lcd1602和12864等液晶显示屏。为了降低设计的成本和扩展的难度,本次设计选择使用7段数码管。图3-5-1.数码管原理图常用的数码管包括共阴极和共阳极两种。其中共阴极数码管的编码方式如下0 x3f , 0 x06 , 0 x5b , 0 x4f , 0 x66 , 0 x6d ,0 1 2 3 4 50 x7d , 0 x07 , 0 x7f , 0 x6f , 0 x77 , 0 x7c ,6 7 8 9 a b0 x39 , 0 x5e , 0 x79 , 0 x71 , 0 x00c d e f 无显示 led显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用cpu时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。图3-5-2.7段数码管动态显示电路图3.6 i/v转化模块由于da转化器输出的是电流信号,所以还需要将其转化为电压信号,为了各种波形的双极性输出还需要连接双极性转化电路。图3-6.双极性转化电路 如图为常用的双极性转化电路,第一个运算放大器将电流信号转变为电压信号,第二个运算放大器和电阻r1,r2共同组成方向加法器,由于电流输出接的是第一个运算放大器的反相输出端,所以当满足2*r2=r1且r2=r3的时候输出电压为vout=vi-(vref/2)当要实现双极性输出的时候幅值的二进制码要转为偏移二进制码,即将二进制码对应的零值偏移到80h,在偏移之后,只有幅值二进制码大于128的输出才为正,后则为负。通常要得到偏移二进制码,可以通过求原有二进制的补码,再加上80h,并舍弃其进位,使得其成为偏移二进制码。3.7幅值调节模块 图3-7-1.x9511的常用接线图数字电位器是可用数字信号控制电位器滑动端位置的新型器件,一般分按钮控制和串行信号控制两种,x9511就是xicor公司生产的理想按键式数字电位器,它内含31个串联电阻阵列和32个轴头。轴头位置由两个按键控制,并且可以被存储在一个e2prom存储器中,以供下一次通电时重新调用,并自动恢复轴头位置,x9511有1k和10k的x9511z和x9511w两种规格。x9511内部由计数器、存储器、译码器、模拟开关和电阻阵列等电路组成,其中计数器是5位可逆计数器,可用于对控制信号pu(或pd)进行加(或减)计数,计数器的计数值可以在ase的控制下存储非易失性存储器中。计数器的数值经过32选1译码器译码后可用于控制模拟开关,32个模拟开关相当于电位器的32个轴头,电阻阵列由采用集成电路工艺制作的31个串联一起的电阻构成,电阻两端分别连接模拟开关的一端,而模拟开关的另一端连接在一起构成数字电位器的滑动端(vw),译码器的输出端可控制模拟开关的通断,从而实现滑动轴头位置的变化。x9511的计数器电路具有以下特点:1.输入端具有内部上拉电阻和消除开关抖动的抗扰电路,当输入脉冲宽度小于40ms时,计数器将其视为干扰信号而不进行计数;2.pu和pd引脚可直接连接一个按钮开关到地,当按钮按下时,在pu或pd端产生一个负脉冲,使计数器进行加1(按pu键)或减1(按pd键)计数;3.能将计数值存储在非易失性存储器e2prom中长期保存;4. 能在上电时自动将e2prom中的数据恢复到计数器中;5. 当计数器计数到最大值“31”时,pu按键失效,而计数到最小值“0”时,pd按键失效,从而避免循环计数,保证电位器调到最大位置时不会跳到零位,或从零位跳到最大位置。6. 具有慢速和快速计数选择,当输入负脉冲宽度小于250ms时为慢速计数方式,此时按一下按键计数器将执行加1(或减1)操作,当脉冲宽度大于250ms时,计数器为快速(连续)计数方式,此时1秒钟以内,电路将以250ms的速率连续计数,若按键按下的时间大于1秒,计数器将以5ms的速率递增或递减,直到滑动端滑到最高或最低轴头位置,当按键一释放后,计数器立即停止计数,电路返回到等待状态。图3-7-2.x9511内部结构图x9511的引脚配置:/pu管脚:/pu输入用来增大滑动端的位置。片内有上拉电阻,使/pu悬空保持高电平,如果/pu接地或则逻辑低电平的时候,在经过一个去抖时间后,将把滑动端移动到下一个邻接的较高的抽头位置。/pd管脚:/pd输入用来减小滑动端的位置,同/pu一个片内的上拉电阻使/pd脚悬空的时候保持高电平,如果/pd接地或则逻辑低电平,在经过一个去抖时间之后,将把滑动端下移到下一个邻接的位置。vh:高电压端和低vl电压段等效一个机械电位器的固定端最小电压是-5v,最大电压时+5v,但必须注意vl和vh这个专业术语之规定了有/pd和/pu输入端现则的关于滑动端方向的相对位置,而不是端点上的电压。vss:芯片的接地端。vw:滑动端,相当于机械电位器的可移动端。滑动端在电阻阵列中的位置由控制输入端决定。滑动端的串联电阻值典型的为40欧姆。/ase:自动存储使此控制端接vl时,autostore被使能,接vdd时被禁止,用户可动过将其置低电平,存储当前的电阻值,在下次复位的时候直接使用当前的阻值。vcc:电源管脚。河南城建学院本科毕业设计论文 电路软件设计第四章 电路软件设计4.1系统总框图图4-1.系统总的框图4.2显示子程序显示部分采用动态输出的方式,通过控制两个锁存器来控制实现单个i/o分时控制输出输出数码管的段选(字形的选择)和位选(位权的选择)。如图3-5-2显示电路图中p0用于输出数据,而p20和p21用来控制寄存器的通断来控制是输出字段信息还是位权信息。中断入口定时器重转初值打开锁存器,送段选信号,然后关闭打开锁存器送位选信号,然后关闭位选标志位左移一位返回图4-2:显示流程图通常的数码管动态显示程序都要进行延时,然后靠人眼的余光实现数据的输出,当延时时间太小的时候会出现数码闪烁甚至乱码,当延时时间设定的太大的时候,有可能出现输出断续的可能,通常需延时5ms,6位数据显示就是30ms,而按键的消抖时间不过10ms,所以时间片轮法的话会大大影响电路的正常工作,甚至不能检测出按键输入,或则按键输入的时候出现显示断续的情况,所以本才设计采用了中断显示的方法,利用定时器进行延时,设定好定时器的初值,在固定的延时时间上溢出,然后调用显示子程序显示当前的输出情况,由于定时器中断程序 执行一次只能显示一位数据,所以要设定一个全局变量的显示缓冲区和全局变量的位选标志。4.3按键子程序本次设计由于要求对幅值和频率进行控制,所以要求用相关的按键输入,前面已经介绍了各种按键的优缺点,最后选择了独立式键盘,分别为+-频率,+-幅值,模式选择5位,共占用5个ip口,选择p2口的高5位作为按键输入。 图4-3:按键子程序框图mode:模式选择位,用于选择输出的波形。ampl+:幅值+位,步进为0.5,系统的基准电压为+-2.5v。ampl-:幅值-位。freq+:频率+位,用于调整中断时间。freq-:频率-位。程序中的模式选择是通过mode位输入,通过设定一个模式标志位,当执行一次模式位按键程序,标志位自动+1,并指向其所指定的波形。幅值选择通过按键ampl+和ampl-输入,当执行了幅值子程序的时候,系统通过改变x9511抽头的位置,改变其vw的输出电压,通过vref改变输出电压的幅值。频率的选择则是通过freq+和freq-进行选择的,当执行频率调节子程序的时候,通过改变定时的初值实现的,当使用12m晶振时候,正弦表位256位时,理想中最大的频率可以达到4khz,当频率为10hz的时候,计数初值为390。由于系统采用的最低的初值时间为100,所以最高只能产生20hz的频率。河南城建学院本科毕业设计论文 总结 总结 本次毕业设计我所涉及的题目是多功能函数信号发生器,由于是基于单片机的波形发生器,所以我才用了查表输出的方法,经过d/a转化输出需要的波形,并通过低通滤波是其输出的波形能比较的平滑。 通过两个月的毕业设计,进一步的加深了我对专业课的理解和认识,毕业设计是我在大学四年的最后一堂课,也是对我大学四年所学的知识的一个最好的评估。开始设计方案,总感觉自己还是有许多的东西弄不太清楚,于是就请教同学。有一些开始的时候由于没有经验,不知如何下手,所以就去图书管找了一些书看,尽管有许多的设经验。经过自己分析各方案之后,决定用查表的方法来做。这样可以降低一些硬件设计的难度,初次设计应切合自己的水平。 我以为这些做好了,构思也有了,写程序应该是相对容易的。谁知道,写起程序来,才发现各部分分开写很简单,但是和在一起的时候,各种全局变量和函数的调用并不想理想中的那样,经常发生冲突,在老师和同学的帮助下,我总算攻克了一个又一个难关。 于是在自己的努力下,程序很快就写好了。这次是我的第一个设计器件,尽管经历了不少的艰辛,但给我积累了一点设计的经验,最后也有点小小的成就感。后面的路还很长,我还会努力! 参考文献1 贾金玲.微型计算机原理与接口技术课程设计指导.重庆:重庆大学出版,2002.22 贾金玲.微型计算机原理与接口技术.重庆:重庆大学出版社,2001.12 3 周明德.微型计算机系统原理及应用(第四版).北京:清华大学出版社, 2002 4 周 林 殷狭.数据采集与分析技术.西安:西安电子科技大学出版社, 2005.7 5 李相伟.微机系统原理与接口技术.北京:国防工业出版社,2005 6 杨天怡 黄勤.微型计算机控制技术.重庆:重庆大学出版社,1996 7 刘迎春 叶湘槟.传感器原理设计与应用(第四版).长沙:国防科技大学出版社,2002 8 贾金玲 姚娅川.单片机原理及应用.成都:电子科技大学出版社,2004 9 李群芬 肖看.单片机原理、接口及应用-嵌入式系统技术基础.武汉:清华大学出版社,200510 沈兰荪.数据采集技术.合肥:中国科技大学出版社,199111stephen prata.c primer plus.america:sams,200512newnes.programming 16-bit microcrotrallers in c.america:ended,200313robotics. a beginners guide to robotics projects using the picmicro english:oxford,1997河南城建学院本科毕业设计论文 附录a:系统程序附录a:系统程序#include#define uchar unsigned char#define uint unsigned intsbit du=p20;sbit we=p21;sbit pu=p32;sbit pd=p33;sbit cs=p30;sbit wr=p31;uchar fun;/定义模式位和幅值位uint chuzhi;/定义了计数初值unsigned long freq;uchar amplflag;uchar code tab10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;uchar code tosin256=0 x80,0 x83,0 x86,0 x89,0 x8d,0 x90,0 x93,0 x96,0 x99,0 x9c,0 x9f,0 xa2,0 xa5,0 xa8,0 xab,0 xae,0 xb1,0 xb4,0 xb7,0 xba,0 xbc,0 xbf,0 xc2,0 xc5 ,0 xc7,0 xca,0 xcc,0 xcf,0 xd1,0 xd4,0 xd6,0 xd8,0 xda,0 xdd,0 xdf,0 xe1,0 xe3,0 xe5,0 xe7,0 xe9,0 xea,0 xec,0 xee,0 xef,0 xf1,0 xf2,0 xf4,0 xf5 ,0 xf6,0 xf7,0 xf8,0 xf9,0 xfa,0 xfb,0 xfc,0 xfd,0 xfd,0 xfe,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xfe,0 xfd ,0 xfd,0 xfc,0 xfb,0 xfa,0 xf9,0 xf8,0 xf7,0 xf6,0 xf5,0 xf4,0 xf2,0 xf1,0 xef,0 xee,0 xec,0 xea,0 xe9,0 xe7,0 xe5,0 xe3,0 xe1,0 xde,0 xdd,0 xda ,0 xd8,0 xd6,0 xd4,0 xd1,0 xcf,0 xcc,0 xca,0 xc7,0 xc5,0 xc2,0 xbf,0 xbc,0 xba,0 xb7,0 xb4,0 xb1,0 xae,0 xab,0 xa8,0 xa5,0 xa2,0 x9f,0 x9c,0 x99 ,0 x96,0 x93,0 x90,0 x8d,0 x89,0 x86,0 x83,0 x80,0 x80,0 x7c,0 x79,0 x76,0 x72,0 x6f,0 x6c,0 x69,0 x66,0 x63,0 x60,0 x5d,0 x5a,0 x57,0 x55,0 x51 ,0 x4e,0 x4c,0 x48,0 x45,0 x43,0 x40,0 x3d,0 x3a,0 x38,0 x35,0 x33,0 x30,0 x2e,0 x2b,0 x29,0 x27,0 x25,0 x22,0 x20,0 x1e,0 x1c,0 x1a,0 x18,0 x16 ,0 x15,0 x13,0 x11,0 x10,0 x0e,0 x0d,0 x0b,0 x0a,0 x09,0 x08,0 x07,0 x06,0 x05,0 x04,0 x03,0 x02,0 x02,0 x01,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00 ,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x01,0 x02 ,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08,0 x09,0 x0a,0 x0b,0 x0d,0 x0e,0 x10,0 x11,0 x13,0 x15 ,0 x16,0 x18,0 x1a,0 x1c,0 x1e,0 x20,0 x22,0 x25,0 x27,0 x29,0 x2b,0 x2e,0 x30,0 x33,0 x35,0 x38,0 x3a,0 x3d,0 x40,0 x43,0 x45,0 x48,0 x4c,0 x4e ,0 x51,0 x55,0 x57,0 x5a,0 x5d,0 x60,0 x63,0 x66 ,0 x69,0 x6c,0 x6f,0 x72,0 x76,0 x79,0 x7c,0 x80 ; void delay(uint a)uint y;while(a-)for(y=110;y0;y-); void dac0832(uchar date)wr=0;cs=0;p0=date;wr=1;cs=1;void key1()/模式按键操作fun+;if(fun=4)fun=0;void key2()/幅值+位操作uchar z;if (amplflag=9))amplflag=9;;else amplflag+;for(z=0;z3;z+)pu=0;delay(1);pu=1;;void key3()/幅值-位操作 uchar z;if((amplflag=1))amplflag=1;;else amplflag-; for(z=0;z3;z+)pd=0;delay(1);pd=1;void key4()/频率+位操作if(chuzhi=3900)chuzhi=3900;else chuzhi+=50;void key5()/频率-位操作if(chuzhi=200)chuzhi=200;else chuzhi-=50;void keyscan()/按键扫描程序uchar temp;p2=0 xf8;temp=p2;while(temp!=0 xf8)delay();/机械消抖p2=0 xf8;temp=p2;while(temp!=0 xf8)switch(temp)case 0 xf0:key1();break;/判断按键的值case 0 xe8:key2();break;case 0 xd8:key3();break;case 0 xb8:key4();break;case 0 x78:key5();break;while(temp!0 xf8)/松手检测p2=0 xf8;temp=p2; void gengxin()/缓冲区更新程序 freq=1000000/(256*delay);/delay为输出函数表的间隔时间updata0=mode;/模式位updata1=ampl;/幅值位updata2=(uchar)(freq/1000);updata3=(uchar)(freq/100)%10);updata4=(uchar)(freq/10)%10);updata5=(uchar)(freq%10);void main()tmod=0 x11;th0=(65536-chuzhi)/256;tl0=(65536-chuzhi)%256;th1=(65536-5000)/256;tl1=(65536-5000)%256;et1=1;et0=1;ea=1;tr0=1;tr1=1;while(1)keyscan();void boxing() interrupt 1th0=(65536-chuzhi)/256;tl0=(65536-chuzhi)%256;uchar temp;if(fun=0)/输出正弦波dac0832(tosini);else if(fun=1)/输出矩形波if(i128)dac0832(0 x00);else dac0832(0 xff);else if(fun=2)/输出矩形波dac0832(i);else if(fun=3)/输出三角波if(i128)temp=2*i;dac0832(temp); elsetemp=(256-i)*2;dac0832(temp);void xianshi() interrupt 3tr1=0 ;th0=(65536-5000)/256;tl0=(65536-5000)%256; we=1;p0=tabupdatax;we=0;du=1;p0=y;du=0;x+;y=1;if(x=6)x=0;y=0 x01;tr1=1;g an employment tribunal claiemployment tribunals sort out disagreements between employers and employees.you may need to make a claim to an employment tribunal if: you dont agree with the disciplinary action your employer has taken against you your employer dismisses you and you think that you have been dismissed unfairly.for more information about dismissal and unfair dismissal, seedismissal.you can make a claim to an employment tribunal, even if you haventappealedagainst the disciplinary action your employer has taken against you. however, if you win your case, the tribunal may reduce any compensation awarded to you as a result of your failure to appeal.remember that in most cases you must make an application to an employment tribunal within three months of the date when the event you are complaining about happened. if your application is received after this time limit, the tribunal will not usually accept i.if you are worried about how the time limits apply to you, take advice from one of the organisations listed underfurther help.employment tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.most people find making a claim to an employment tribunal challenging. if you are thinking about making a claim to an employment tribunal, you should get help straight away from one of the organisations listed underfurther help.if you are being represented by a solicitor at the tribunal, they may ask you to sign an agreement where you pay their fee out of your compensation if you win the case. this is known as adamages-based agreement. in england and wales, your solicitor cant charge you more than 35% of your compensation if you win the case.if you are thinking about signing up for a damages-based agreement, you should make sure youre clear about the terms of the agreement. it might be best to get advice from an experienced adviser, for example, at a citizens advice bureau. to find your nearest cab, including those that give advice by e-mail, click onnearest cab.for more information about making a claim to an employment tribunal, seeemployment tribunals.the (lack of) air up there watch mcayman islands-based webb, the head of fifas anti-racism taskforce, is in london for the football associations 150th anniversary celebrations and will attend citys premier league match at chelsea on sunday.i am going to be at the match tomorrow and i have asked to meet yaya toure, he told bbc sport.for me its about how he felt and i would like to speak to him first to find out what his experience was.uefa hasopened disciplinary proceedings against cskafor the racist behaviour of their fans duringcitys 2-1 win.michel platini, president of european footballs governing body, has also ordered an immediate investigation into the referees actions.cska said they were surprised and disappointed by toures complaint. in a statement the russian side added: we found no racist insults from fans of cska.age has reached the end of the beginning of a word. may be guilty in his seems to passing a

温馨提示

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

评论

0/150

提交评论