单片机函数信号发生器_第1页
单片机函数信号发生器_第2页
单片机函数信号发生器_第3页
单片机函数信号发生器_第4页
单片机函数信号发生器_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

河南城建学院本科毕业设计(论文)摘要.3106171.81061792220344.3523781.85237894222354.3930221.89302296224364.4325261.93252698226374.4708661.970866100228384.5080192.008019102230394.5439622.043962104232404.5786742.078674106234414.6121342.112134107235424.6443212.144321109237434.6752182.175218110238444.7048032.204803112240454.7330612.233061113241464.7599732.259973115243474.7855242.285524116244484.8096992.309699117245494.8324822.332482119247504.8538602.353860120248514.8738202.373820121249524.8923512.392351122250534.9094402.409440122250544.9250782.425078123251554.9392552.439255124252564.9519632.451963125253574.9631942.463194125253584.9729412.472941126254594.9811992.481199126254604.9879622.487962126254614.9932262.493226127255624.9969892.496989127255634.9992472.499247127255645.0000002.500000127255正弦波发生程序如下:if(fun==1){DA0832=tosin[b]/4*A;//正弦波b++;}三角波发生程序设计由于三角波的函数值比较容易计算,所以不必要像正弦波那样还需用表格。可直接通过如下程序段实现。elseif(fun==2)//三角波{if(c<128)DA0832=c*2/4*A;elseDA0832=(255-c)*2/4*A;c++;}方波发生程序设计方波可直接由DAC0832产生,其发生程序如下:elseif(fun==3)//方波{d++;if(d<=128)DA0832=0x00;elseDA0832=0xff/4*A;}锯齿波发生程序设计锯齿波中的斜线用一个个小台阶来逼近,在一个周期内从最小值开始逐步递增,当达到最大值后又回到最小值,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同周期的锯齿波。锯齿波发生原理与方波类似,只是高低两个延时的常数不同其发生程序如下:elseif(fun==4)//锯齿波{e++;DA0832=e/4*A;}河南城建学院本科毕业设计(论文)仿真结果与分析仿真结果与分析仿真和编译工具Proteus仿真软件有了protel、Multisim、proteus、psice等一系列的软件的存在,就此便可以以虚代实、以软代硬,独立建立一个完善的虚拟实验室。代替了在实验室和教室里的以实物进行实践的方式,可以在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。因此这一系列的软件受到广大电子设计爱好者的青睐,是他们工作、学习上难得的工具软件,也因此它们在全球得到了广泛应用。其中,Proteus软件提供多达30多个元件库,元件涉及到数字和模拟、交流和直流等,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IC器件,编译方面支持Keil和MPLAB等编译器。它的功能强大,集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计与分析,还能够对微处理器进行设计和仿真,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。它还提供多种现实存在的虚拟仪器,这些仪表有极高的输入阻抗、极低的输出阻抗,可以尽可能减少仪器对测量结果的影响。此外,Proteus软件还有图形显示功能,可以将线路上变化的信号以图形的方式实时地显示出来。对于单片机硬件电路和软件的调试,Proteus提供了两种方法:系统总体执行效果和对软件的分步调试。它还提供了比较丰富的测试信号用于电路的测试,这些测试信号包括模拟信号和数字信号。在用Proteus进行仿真和程序调试时,可以从工程的角度直接看程序运行和电路工作的过程和结果。它还提供SchematicDrawing、SPICE仿真与PCB设计功能,同时可以仿真PIC、AVR、51系列等常用的MCU,并提供周边设备的仿真,例如示波器、373、led等。KEIL编译软件KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会事半功倍。KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势,与汇编相比,C语言有明显的优势,用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,是一个非常实用的编译软件。仿真结果打开PROTEUS软件,选择所需器件连接导线,连接成功后的电路图如图4-1所示:图4-1总体电路图打开KEIL软件,调出程序进行编译,生成HEX文件,编译窗口如图4-2所示:图4-2编译窗口编译后没有错误就可以生成hex文件用于单片机仿真,采用PROTEUS进行单片机仿真,可以大大缩短单片机的开发周期。它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。以下为四种波形的仿真结果示例。正弦波仿真:频率分别为31HZ和260HZ。仿真结果分别如图4-3、4-4所示。图4-3正弦波仿真输出(31HZ)图4-4正弦波仿真输出(257HZ)三角波仿真:频率60HZ,仿真结果如图4-5所示。图4-5三角波仿真输出方波仿真:频率86HZ,仿真结果如图4-6所示。图4-6方波仿真输出锯齿波仿真:频率130HZ,仿真结果如图4-7所示。图4-7锯齿波仿真输出仿真分析本系统仿真结果,满足设计需求。实际操作灵活,使用方便。通过按键来控制输出不同的波形,在仿真输出图中可以看到,字母a、b、c、d分别对应着正弦波、三角波、方波、锯齿波,并可以利用频率增大键和减小键来控制频率的大小,同时可以通过调节电位器来控制波形的幅度。通过上述结果可以看到对应不同频率的不同波形。但是在仿真中由于DAC0832量化电平的缘故无法让该波形发生器的频率做的很高,同时频率步进的最小值为一,使得信号波形发生器的精确度有所下降,这也是本次设计中的不足之处,但总体的设计基本满足了设计的要求,顺利完成了设计主要内容。河南城建学院本科毕业设计(论文)参考文献参考文献[1]周明德.微型计算机系统原理及应用[M].北京:清华大学出版社,2002[2]刘乐善.微型计算机接口技术及应用[M].北京:航空航天大学出版社,2001[3]谢自美.电子线路设计·实验·测试(第三版)[M].武汉:华中科技大学出版社,2006[4]朱清慧.张凤蕊.Proteus教程--电子线路设计制版与仿真[M].北京:清华大学出版社[5]康华光.模拟电子技术基础(第五版)[M].北京:高等教育出版社,2006[6]杨翠娥.高频电子线路实验与课程设计[M].哈尔滨:哈尔滨工程大学出版社,2001[7]张秀国.单片机C语言程序设计[M].北京:北京大学出版社,2008[8]钟富昭.8051单片机典型模块设计与应用[M].北京:人民邮电出版社,2007[9]赵负图.传感器集成电路手册(第一版)[M].化学工业出版社,2004[10]丁新民.微机原理与应用[M].高等教育出版社,2008[11]张洪润,易涛编著.单片机应用技术教程(第二版)[M].北京:清华大学出版,2003[12]刘坤等编著.51单片机C语言应用开发技术大全[M].人民邮电出版社,2008[13]潘新民,王燕芳编著.微型计算机控制技术[M].北京:电子工业出版社,2004[14]全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编[M].北京:北京理工大学出版社,2003[15]杨宁编著.单片机与控制技术[M].北京:北京航空航天大学出版社,2005[16]Tyler,B.Digital.voltmeters[J].Students’QuarterlyJournal,1964,(138)[17]Bakken,Christopher.Proteus[J].ParisReview,2000,(157)[18]Krause,P.H..ThePROTEUSProject[J].TechnologicalForecastingandSocialChange,2002,(5)河南城建学院本毕业设计(论文)致谢致谢通过本次毕业设计,我感到自己应用基础知识及专业知识解决问题的能力有了很大的提高。并且这次毕业设计的选题,是一个实际应用工程。开始的时候由于没有经验,不知如何下手,所以就去图书馆找了一些书看,尽管有许多的设计方案,可是总感觉自己还是有许多的东西弄不太清楚,于是就向老师和同学请教。经过他们的解释分析各方案之后,我决定用查表的方法来做,这样可以降低一些硬件设计的难度,初次设计应切合自己的水平。用8031需要扩展ROM,这样还要进行存储器扩展。而且现在8031实际中已经基本上不再使用,实际用的AT89S51芯片有ROM,这样把经过采样得到的数值制成表,利用查表来做就简单了。我认为程序应该不大,片内ROM应该够用的。用LED显示频率和幅值,现有集成的接口驱动芯片,波形可通过示波器进行显示,单片机接上D/A转换芯片即可,这样硬件很快就搭好了。首先,我要感谢的是我的指导老师陈英老师。陈老师在我做毕业设计的每个阶段,都给予我耐心的指导和帮助。可以说,没有陈老师的耐心指导和帮助,我是不可能顺利完成我的毕业设计的。另外,陈老师严谨的治学态度以及对待学生极端负责的精神,给我留下很深的印象,并将积极影响我今后的学习和工作。其次,我要感谢我的父母。父母为了我的成长,一直在背后默默的付出和辛勤的工作,他们的养育之恩,我将用自己的一生去回报。再次,感谢电信1班的兄弟姐妹们,是他们陪伴我度过愉快的大学四年生活!总之,感谢每一位关心过我,爱护过我的人。滴水之恩,当涌泉相报。最后,再次感谢我的指导老师陈英老师。河南城建学院本科毕业设计(论文)附录A附录A:源程序#include<reg52.h>#include<absacc.h>#defineucharunsignedchar#defineDA0832XBYTE[0xffff]ucharcodetab[14]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e};ucharcodenum[768]={2,5,7,2,5,6,2,5,5,2,5,4,2,5,3,2,5,2,2,5,1,2,5,0,2,4,9,2,4,8,2,4,7,2,4,6,2,4,5,2,4,4,2,4,3,2,4,2,2,4,1,2,4,0,2,3,9,2,3,8,2,3,7,2,3,6,2,3,5,2,3,4,2,3,3,2,3,2,2,3,1,2,3,0,2,2,9,2,2,8,2,2,7,2,2,6,2,2,5,2,2,4,2,2,3,2,2,2,2,2,1,2,2,0,2,1,9,2,1,8,2,1,7,2,1,6,2,1,5,2,1,4,2,1,3,2,1,2,2,1,0,2,0,9,2,0,8,2,0,7,2,0,6,2,0,5,2,0,4,2,0,3,2,0,2,2,0,1,2,0,0,1,9,9,1,9,8,1,9,7,1,9,6,1,9,5,1,9,4,1,9,3,1,9,2,1,9,1,1,9,0,1,8,9,1,8,8,1,8,7,1,8,6,1,8,5,1,8,4,1,8,3,1,8,2,1,8,1,1,8,0,1,7,9,1,7,8,1,7,7,1,7,6,1,7,5,1,7,4,1,7,3,1,7,2,1,7,1,1,7,0,1,6,9,1,6,8,1,6,7,1,6,6,1,6,5,1,6,4,1,6,3,1,6,2,1,6,1,1,6,0,1,5,9,1,5,8,1,5,7,1,5,6,1,5,5,1,5,4,1,5,3,1,5,2,1,5,1,1,5,0,1,4,9,1,4,8,1,4,7,1,4,6,1,4,5,1,4,4,1,4,3,1,4,2,1,4,1,1,4,0,1,3,9,1,3,8,1,3,7,1,3,6,1,3,5,1,3,4,1,3,3,1,3,2,1,3,1,1,3,0,1,2,9,1,2,8,1,2,7,1,2,6,1,2,5,1,2,4,1,2,3,1,2,2,1,2,1,1,2,0,1,1,9,1,1,8,1,1,7,1,1,6,1,1,5,1,1,4,1,1,3,1,1,2,1,1,1,1,1,0,1,0,9,1,0,8,1,0,7,1,0,6,1,0,5,1,0,4,1,0,3,1,0,2,1,0,1,1,0,0,0,9,9,0,9,8,0,9,7,0,9,6,0,9,5,0,9,4,0,9,3,0,9,2,0,9,1,0,9,0,0,8,9,0,8,8,0,8,7,0,8,6,0,8,5,0,8,4,0,8,3,0,8,2,0,8,1,0,8,0,0,7,9,0,7,8,0,7,7,0,7,6,0,7,5,0,7,4,0,7,3,0,7,2,0,7,1,0,7,0,0,6,9,0,6,8,0,6,7,0,6,6,0,6,5,0,6,4,0,6,3,0,6,2,0,6,1,0,6,0,0,5,9,0,5,8,0,5,7,0,5,6,0,5,5,0,5,4,0,5,3,0,5,2,0,5,1,0,5,0,0,4,9,0,4,8,0,4,7,0,4,6,0,4,5,0,4,4,0,4,3,0,4,2,0,4,1,0,4,0,0,3,9,0,3,8,0,3,7,0,3,6,0,3,5,0,3,4,0,3,3,0,3,2,0,3,1,0,3,0,0,2,9,0,2,8,0,2,7,0,2,6,0,2,5,0,2,4,0,2,3,0,2,2,0,2,1,0,2,0,0,1,9,0,1,8,0,1,7,0,1,6,0,1,5,0,1,4,0,1,3,0,1,2,0,1,1,0,1,0,0,0,9,0,0,8,0,0,7,0,0,6,0,0,5,0,0,4,0,0,3,0,0,2,0,0,1};ucharcodetosin[256]={0x7F,0x82,0x85,0x88,0x8B,0x8F,0x92,0x95,0x98,0x9B,0x9E,0xA1,0xA4,0xA7,0xAA,0xAD,0xB0,0xB3,0xB6,0xB8,0xBB,0xBE,0xC1,0xC3,0xC6,0xC8,0xCB,0xCD,0xD0,0xD2,0xD5,0xD7,0xD9,0xDB,0xDD,0xE0,0xE2,0xE4,0xE5,0xE7,0xE9,0xEB,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFB,0xFC,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFD,0xFD,0xFC,0xFB,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEB,0xE9,0xE7,0xE5,0xE4,0xE2,0xE0,0xDD,0xDB,0xD9,0xD7,0xD5,0xD2,0xD0,0xCD,0xCB,0xC8,0xC6,0xC3,0xC1,0xBE,0xBB,0xB8,0xB6,0xB3,0xB0,0xAD,0xAA,0xA7,0xA4,0xA1,0x9E,0x9B,0x98,0x95,0x92,0x8F,0x8B,0x88,0x85,0x82,0x7F,0x7C,0x79,0x76,0x73,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x54,0x51,0x4E,0x4B,0x48,0x46,0x43,0x40,0x3D,0x3B,0x38,0x36,0x33,0x31,0x2E,0x2C,0x29,0x27,0x25,0x23,0x21,0x1E,0x1C,0x1A,0x19,0x17,0x15,0x13,0x12,0x10,0x0F,0x0D,0x0C,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0C,0x0D,0x0F,0x10,0x12,0x13,0x15,0x17,0x19,0x1A,0x1C,0x1E,0x21,0x23,0x25,0x27,0x29,0x2C,0x2E,0x31,0x33,0x36,0x38,0x3B,0x3D,0x40,0x43,0x46,0x48,0x4B,0x4E,0x51,0x54,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x73,0x76,0x79,0x7C};ucharfun=1,b=0,c=0,d=0,e=0,tl,th,flag=0;sbitP3_0=P3^0;sbitP3_1=P3^1;sbitP3_2=P3^2;sbitP2_7=P2^7;ucharde1,de2;ucharA=4;voidkey1(void);voidkey2(void);voidkey3(void);voidkey4(void);voiddelay(uchark);voidmain(void){TMOD=0X01;th=0xff;tl=0xe8;TH0=th;TL0=tl;ET0=1;EA=1;EX1=1;PX1=1;IT1=1;TR0=1;while(1){P3_0=0;P3_1=1;P3_2=0;if(num[flag*3]!=0){P1=tab[num[flag*3]];delay(1);}P1=0;P3_0=1;P3_1=0;P3_2=0;P1=tab[num[flag*3+1]];delay(1);P1=0;P3_0=0;P3_1=0;P3_2=0;P1=tab[num[flag*3+2]];delay(1);P1=0;P3_0=1;P3_1=1;P3_2=0;P1=tab[fun+9];delay(1);P1=0;}}voiddelay(uchark){for(de1=0;de1<10;de1++)for(de2=0;de2<k;de2++){;}}voidkey1(void)//1键选择发波类型,1为正弦波,2为三角波,3为方波,4锯齿波{fun++;if(fun==5) fun=0x01; }voidkey2(void)//2键加大频率{ tl+=0x1; if

温馨提示

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

评论

0/150

提交评论