单片机波形发生器课程设计报告.doc_第1页
单片机波形发生器课程设计报告.doc_第2页
单片机波形发生器课程设计报告.doc_第3页
单片机波形发生器课程设计报告.doc_第4页
单片机波形发生器课程设计报告.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程设计题 目:波形发生器方波学 院:电气工程学院专业班级:09自动化1班姓 名:徐少伟学 号:p091813196指导教师:王晓燕同 组 人:陶瑞、陈子建引言单片机的出现是近代计算机技术发展史上的重要里程碑。单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。近年来随着电子技术和微型计算机技术的迅速发展,单片机的档次不断提高,其应用领域也在不断扩大,在工业测控、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人通信终端及通信产品中得到了广泛应用,已成为现代电子系统中最重要的智能化核心部件。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中三角波发生器就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本课程设计是在学习了单片机的基本原理的基础上进行的,综合利用所学单片机知识完成一个单片机应用系统设计并仿真实现,从而加深对单片机软硬知识的理解,获得初步的应用经验;进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤。目录1 设计概述31.1 设计目标和要求31.2 设计思路32 系统方案及硬件设计42.1 设计方案42.2 方案的硬件总体方框图42.3定时/计数器t0输出方波的原理42.4 硬件设计52.4.1时钟振荡电路52.4.2加1及输出直线电路62.4.3显示电路62.4.4波形输出电路73 软件设计83.1系统分析83.2 各子程序93.2.1 p0口显示程序93.2.2 p2口显示程序93.2.3改变计数初值th0、tl0程序103.2.4按键改变频率的程序114 proteus软件仿真114.1 系统仿真设计114.2仿真结果分析125 系统原理图126 心得体会137 源程序.151 设计概述1.1 设计目标和要求1.设计一款能输出方波的波形发生器;2.设计波形输出按钮:当按下按钮的时候,输出方波,再按下输出直线;3.led显示输出波形周期;4.可利用键盘改变输出波形周期;5.其他功能;1.2 设计思路首先确定我们所设计的是一个波形发生器,可以利用中断,使单片机p1.2引脚输出方波根据所要实现的功能,先在proteus软件上仿真。根据所选用的硬件可以将整个软件设计分为若干子程序,有初始化、查询时间、发送指令、读取数据、显示频率等构成,可将以上子程序分别设计,实现各自的功能,再在子程序中调用,就可以实现预期的目标。在proteus软件里画出相应的电路图,将编写好的程序的编译后的文件下载到proteus电路图的单片机里,进行仿真,设置不同的参数,看是否达到了我们设计所要求的目标,如果不符合要求,需要检查程序算法和硬件连接是否有误。2 系统方案及硬件设计2.1 设计方案利用查询程序,是at89c51的p1.2引脚输出方波。采用中断t0,并利用查表,改变th0,tl0的初始值,就可以得到不同频率的方波。利用加1、减1键,改变输出波形的频率。2.2 方案的硬件总体方框图at89c51复位晶振键盘改变频率led显示频率波形输出采用加1减1按键改变波形频率,利用两个七段数码管显示输出波形的频率,利用一个数码管显示频率的改变。2.3 定时/计数器t0输出方波的原理采用定时/计数器t0的方式2,在p1.2引脚上输出方波。(1) t0工作在定时的方式2时,控制字tmod配置:m1m0=02,gate=0,c/t=0,方式控制字为02h(2)计算计数初值x:由于晶振为12mhz,所以机器周期为1us。f/hz2.02.53.35.0101113141720253350t/us5004003002001009080706050403020t/us250200150100504540353025201510计数长n250200150100504540353025201510初值x65610615620621121622122623123624124616进制06h38h6ah9chcehd3hd8hddhe2he7hechf1hf6h2.4 硬件设计2.4.1 时钟振荡电路采用的是1mhz的晶振频率,它与单片机的硬件连接电路如图1所示图1 晶振电路2.4.2加1及输出直线电路按下dsw1的任意键就可以输出直线;通过inc1键可以改变波形的频率,电路如图2所示图2 加1及输出直线电路2.4.3显示电路显示电路采用两个七段数码管,为共阳极结构,通过设置不同的段码可以显示频率。电路连接如图3所示。图3显示电路七段数码管引脚图,如图4所示。图4 数码管引脚2.4.4 波形输出电路图5 波形输出电路3 软件设计3.1系统分析开始从p1口读取数据设置定时/计数方式并并给2,采用中断输出方波显示频率图6主程序流程图3.2 各子程序3.2.1 p0口显示程序 定义显示表led_p0,利用查表程序mov a,a+dptr搜寻相应的16进制数,送p0口显示。利用p0口显示频率的十位上的数值。程序:mov r0,a mov dptr,#led_p0 movc a,a+dptr mov p0,amov a,r0 显示表led_p0:led_p0:db 24h,24h,30h,12h,0f9h,0f9h,0f9h,0f9h,0f9h,0a4h,0a4h,0b0h,92h3.2.2 p2口显示程序定义显示表led_p2,利用查表程序mov a,a+dptr搜寻相应的16进制数,送p2口显示。利用p2口显示频率的个位上的数值。程序:mov r1,a mov dptr,#led_p2 movc a,a+dptr mov p2,a mov a,r1显示表led_p2:led_p2:db 0c0h,92h,0b0h,0c0h,0c0h,0f9h,0b0h,92h,0f8h,0c0h,0b0h,92h3.2.3 改变计数初值th0、tl0程序利用查表程序,可以改变定时/计数器t0方式2的计数初值th0、tl0的值,并利用p3口连接数码管以显示频率的改变。程序:mov r2,a mov dptr,#key_in movc a,a+dptr mov th0,a mov tl0,a mov p3,a mov tmod,#02h setb tr0 jnb tr0,$ clr tr0 cpl p1.2 mov a,r2表key_in:key_in:db 06h,38h,6ah,9ch,0ceh,0d3h,0d8h,0ddh,0e2h,0e7h,0ech,0f1h,0f6h3.2.4 按键改变频率的程序 在p1.0口连接按键,通过改变p1.0口的状态,实现对寄存器a加1或减1功能。start:mov a,#0setb p1.0setb p1.1loop:jnb p1.0,incr jnb p1.1,decr jmp loopincr:jnb p1.0,incr add a,#1 jmp loopdecr:jnb p1.1,decr add a,#99 cjne a,#0,decr jmp loop4 proteus软件仿真 4.1 系统仿真设计本设计是在proteus环境下进行仿真的,仿真所用到的器件有:单片机at89c51,七段数码管7seg,按键dipsw8一些电阻,电容等。4.2仿真结果分析本设计在仿真的条件下可以正确的显示频率。仿真时频率显示如图7所示 图7 5 系统原理图 通过proteus进行元器件的查找与连接仿真得到下图 图86 心得体会在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是bcd码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。 通过这次对波形发生器的设计与制作,让我了解了设计电路的程序,也让我了解了关于波形发生的原理与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线的。但是最后的成品却不一定与仿真时完全一样,因为,再实际接线中有着各种各样的条件制约着。而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。 通过这次学习,让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。 从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。7 源程序:org 0000h ljmp start org 0100hstart:mov a,#0setb p1.0setb p1.1loop: mov r0,a mov dptr,#led_p0 movc a,a+dptr mov p0,a mov a,r0 mov r1,a mov dptr,#led_p2 movc a,a+dptr mov p2,a mov a,r1 mov r2,a mov dptr,#key_in movc a,a+dptr mov th0,a mov tl0,a mov p3,a mov tmod,#02h setb tr0 jnb tr0,$ clr tr0 cpl p1.2 mov a,r2 jnb p1.0,incr jnb p1.1,decr jmp loopincr:jnb p1.0,incr add a,#1 jmp loopdecr:jnb p1.1,decr add a,#99 cjne a,#0,decr

温馨提示

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

评论

0/150

提交评论