ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:719.59KB ,
资源ID:9447761      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9447761.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机毕业课程设计报告书波形发生器.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机毕业课程设计报告书波形发生器.docx

1、单片机毕业课程设计报告书波形发生器(此文档为word格式,下载后您可任意编辑修改!) 目录1、课程设计目的 12、课程设计题目和实现目标 13、设计方案 14、Proteus仿真原理图 15、程序流程图 16、程序代码 17、调试总结 18、设计心得体会 19、参考文献 11、课程设计目的单片机原理及应用课程设计是与单片机原理及应用课程相配套的实践教学环节。单片机原理及应用是一门实践性很强的专业基础课,通过课程设计,达到进一步理解单片机的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。培养大胆发明创造的设计理

2、念,为今后就业打下良好的基础。通过课程设计,掌握以下知识和技能:1 单片机应用系统的总体方案的设计;2 单片机应用系统的硬件设计;3 单片机应用系统的软件程序设计;4 单片机开发系统的应用和调试能力 2、课程设计题目和实现目标 本次课程设计的题目是;制作一个波形发生器,产生单极性、幅度可调、周期可调的方波、锯齿波、三角波、正弦波信号,不同波形用不同符号显示在一个LED上,用一个LCD显示幅值和频率。 本次课程设计的目标:设计一个波形发生器,带有四个按钮,分别是波形选择、增加频率、减少频率、调节幅度,并带有一个LCD和一个LED,LED用来显示波形的符号LCD用来显示频率、幅值。波形符号用1表示

3、正弦波,2表示三角波,3表示方波,4表示锯齿波。频率的调节幅度是10HZ,幅值调节幅度分别是0.2V,0.02V,0.3V,0.4V。 3、设计方案 本次设计采用AT89C51及其外围扩展系统和PCF8591,软件方面主要是应用C语言设计程序。系统以AT89C51为核心,配置相应的外设及接口电路,用Keil C及Proteus等软件开发,用C语言编程,组成一个多功能信号发生器。用户通过按键选择输出实验室中经常使用到的几种基本波形:方波、锯齿波、正弦波和三角波。方波由AT89C51单片机将最大值和最小值输出给进行转换,并由用户通过键盘选择波形周期。 可采用单片机程序产生以上4种波形,并通过一片转

4、换器输出。另外,采用一片转换器来控制前一片A转换器的参考电压,从而可以改变输出波形幅值。通过外接键盘来设定波形的类型、幅值和频率。 总体方案结构图a. 单片机的选择AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机抽取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产。兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89C51提供以

5、下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个IO口线,两个16位定时计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作方式。空闲工作方式停止CPU的工作,但允许RAM,定时器计数器串口通信及中断系统继续工作,掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。AT89C51方框图PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF

6、8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由I2C总线的最大速率决定。 PCF8591原理图 b.输入电路键盘的接口电路在单片机控制系统中,为了实现人对系统的操纵控制及向系统输入参数,都需要为系统设置按键或键盘。键盘是一组按键的集合。键盘所使用的按键一般都是具有一对常开触点的按键开关,平时不按

7、键时,触点处于断开(开路)状态,当按下按键时,触点才处于闭合(短路)状态,而当按键被松开后,触点又处于断开状态。C. 各部分组成(1)控制部分 由单片机AT89C51作为系统的主核心,包括四个按钮,按钮用来选择波形、调节频率和幅值。 (2)转换部分 由PCF8591组成,作为DA转换的芯片;(3)显示部分 由一片LCD 和一片LED组成,LCD用来显示频率和幅值,LED用来显示数字“1,2,3,4”,数字1代表着此时输出的波形是正弦波,数字2代表输出波形是三角波,数字3代表输出是方波,数字4代表输出是锯齿波。 4、Proteus仿真原理图 正弦波与仿真电路图 三角波与仿真电路图 方波与仿真电路

8、图 锯齿波与仿真电路图 5.程序流程图6、程序代码 #include0;x-) for(y=110;y0;y-);void triangle_out() 三角波输出 DAdata=triangle_tabwavecount+;DA 数据 DACconversion(PCF8591,0x40,triangle_tabwavecount+ ); DAC 数模转换 if(wavecount64) wavecount=0;void sine_out() 正弦波输出 DACconversion(PCF8591,0x40,sine_tabwavecount+); DAdata=sine_tabwaveco

9、unt+; if(wavecount256) wavecount=0;void square_out() 方波输出 judge=judge; if(judge=1) DACconversion(PCF8591,0x40,0xff); else DACconversion(PCF8591,0x40,0x00);void san_out() DACconversion(PCF8591,0x40,san_tabwavecount+); DAdata=sine_tabwavecount+; if(wavecount32) wavecount=0;*1602液晶的相关函数*#define lcd_por

10、ts P1sbit rs=P22;sbit rw=P23;sbit lcden=P24;void write_com(uchar com) rs=0; 置零,表示写指令 lcden=0; lcd_ports=com; delay(5); lcden=1; delay(5); lcden=0; void write_date(uchar date) rs=1; 置1,表示写数据(在指令所指的地方写数据) lcden=0; lcd_ports=date; delay(5); lcden=1; delay(5); lcden=0; void disp_lcd(uchar addr,uchar *te

11、mp1) uchar num; write_com(addr); delay(1); 延时一会儿? for(num=0;num3) waveform=0; break; case 0xd0: 频率按规定单位依次增加 wavefreqwaveform+; if(wavefreqwaveform10) wavefreqwaveform=1; *这边要用“10”,因为它比“=11”可靠 break; 性更高,使加数有个上限,不会一直加下去* case 0xb0: 频率按规定单位依次衰减 wavefreqwaveform-; if(wavefreqwaveform1) wavefreqwaveform

12、=10; 这边要用“1”,因为它比“=0”可靠 性 吒 break; case 0x70: 调节输出波形幅度 PO口数据 k=k+p; 调节输出幅度 break; THtemp=waveTHwaveform*10+(wavefreqwaveform-1); 方括号中选取第几个数后,并把该值赋给T_temp TLtemp=waveTLwaveform*10+(wavefreqwaveform-1); total_freq= wavefreqwaveform * freq_unitwaveform; 求输出频率(个数*单位) lcd_hang25=total_freq%10+0x30; 在液晶中显

13、示个位,(0x30 在液晶显示中表示数字0) total_freq=10; lcd_hang24=total_freq%10+0x30; 在液晶中显示时十位 total_freq=10; lcd_hang23=total_freq%10+0x30; 在液晶中显示时百位 total_freq=10; lcd_hang22=total_freq%10+0x30; 在液晶中显示时千位 ISendByte(PCF8591,0x41); ADdata=IRcvByte(PCF8591)*2; ADC0 模数转换1 volt=20*k; volt=10;lcd_hang212=volt%10+0x30;

14、volt=10;lcd_hang211=volt%10+0x30; volt=10;lcd_hang29=volt%10+0x30; disp_lcd(0x80,lcd_hang1); 在第一行显示 disp_lcd(0xc0,lcd_hang2); 在第二行显示 wavecount=0; 抽点计数清零 while(!key); EA=1; TR0=1; 开启总中断与定时器7、调试总结 一个单片机应用系统经过方案论证、硬件设计、软件的编制,通常不可能一次成功,不可避免地要出现一些错误,这就要靠调试来解决。调试的次序一般是先易后难,后面的调试应尽可能采用以前已调好的电路,各单元电路都调好以后,再

15、进行系统总调。对于本波形发生器,其硬件电路的调试可以按如下步骤进行1)硬件电路的总体检查2)单元电路调试3)波形输出电路调试(1)在DA转换中,为了改变每个输出波形的幅值,需要通过一个可调滑动变阻器来改变初值,进而通过PCF8591转换成相应的模拟量输出。 (2)最后,利用PROTUES和KEIL软件对所编写的主程序进行联调仿真,通过PROTUES中的模拟示波器观察到仿真结果。首先,通过按按键1,看是否有出现所需要的4种波,通过示波器观察;其次,通过按按键2和3,观察是否有相应的增加和减少频率,结果通过LCD来显示;最后通过按按键4来调节幅值。8、设计心得体会 课程设计是培养学生综合运用所学知

16、识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 在实训过程中遇到相当多的难题 。一开始大家都是一头雾水,不知道从哪里下手,而且知识严重匮乏,大家只好分工合作,纷纷查找各种资料,并且成立了一个讨论小组,共同来研究这次的课设。经过两周的努力和合作终于把这次的课设完成了。可谓苦尽甘来。 通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们坚持不懈和合作精神,让我们不断超越自己。课堂上没有见过真正的单片机 ,只是从理论上去理解 ,枯燥乏味,这次的实训 ,让我大开眼界,提高了单片机知识的理解和运用水平 ,从选题到定稿,从理论到实践,在整整两星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。 我认为这个收获应该说是相当大的。一开始我们从参考书上找来了课题,但是毕竟是参

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1