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

下载本文档

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

文档简介

1、重 庆 科 技 学 院学生实习实训总结报告学院:电气与信息工程学院 专业班级: 测控学生姓名:学 号:设计地点单位 I506设计题目:基于单片机的波形发生器的设计完成日期: 2021 年03月17日指导教师评语:成绩五级记分制:指导教师签字:目录一、实习的任务要求与意义 01.1 设计要求 01.2 设计任务01.3 根本功能与性能指标 01.4 实习的意义0二、设计方案 02.1 硬件选择 02.2 系统总体设计1三、系统硬件设计 23.1 单片机的最小系统 23.2 按键电路设计 23.3 LCD 显示的设计 2四、系统软件设计 34.1 主程序设计34.2 LCD显示子程序设计 34.3

2、 D/A转换子程序设计 3五、调试及性能分析 45.1 调试步骤 55.2 性能分析 5参考文献 6附录1系统硬件电路图 6附录2程序代码6一、 实习的任务要求与意义1.1设计要求1 .掌握电子系统的一般设计方法2 .掌握仿真软件的应用|一3 .培养综合应用所学知识来指导实践的水平4 .根据技术指标要求及实验室条件自选方案设计出原理电路图,分析工作原理 并计算元件参数.5 .2设计任务按要求设计波形发生器并完成相关功能:(1)运用单片机限制产生多种波形,这些波形包括三角波、方波、锯齿波等.(2)信号的发生器所产生波形的频率、幅值均为连续可调.扩展功能在上位机将波形实时显示出来,用红外线遥控器实

3、现上述功能,其它功能. 1.3根本功能与性能指标根本功能:(1)可以产生正弦波、方波、三角波,频率和幅值可调.(2)按KEY1键选择输出波形.(3)按KEY2,KEY5S调节输出信号频率和电压幅值的增进和减少.(4)按KEY6®是转换调节频率或电压幅值.性能指标:(1)幅值05V可调(2)频率0100Hz可调1.4实习的意义本次实训的目的是让我们更加熟练的掌握单片机的原理与应用,通过学习的单片机 根底知识来更加熟悉的操作将软件和硬件相结合,通过限制单片机限制的程序代码与 能实现系统限制功能的电子元件来实现所需要的数据.通过对软件和硬件的了解与应用 再结合根底知识对单片机更深层次的了解

4、,到达以后能更加熟练的通过单片机去完成 更复杂的任务.二、设计方案采用AT89C51I片机和数模转换器PCF859仅现波形的产生.波形的产生方法是用 AT89C511片机执行波形程序,向PCF8591 专换器的输入端输入相应的数据,从而在 DA 转换电路输出端再通过运放电路转换得到相应的电压波形.在AT89C51的P1 口接按键限制波形的各类和波形的频率,每种波形对应一种按键方式.此方案原理简单,同时 适合操作,实现起来也相对较容易.产生的三种波形的频率可由按键限制,并通过按 键改变来转换不同的波形,也能够在示波器上显示出所要求的波形.波形的频率步进 也可以实现调节,具有线路简单、可行性高、符

5、合设计要求等优点.加上LC吸码显示管,从而能够在LCD!显示出频率值、幅度值信息.输出的波形也较稳定,精度较高, 通过滤波电路使得系统的抗干扰性增强,电路简单,性价比高.图2.1系统组成结构框图2.1 硬件选择(1)单片机:STC89C521高速/低功耗/超强抗干扰的新一代8051单片机,指令代码 完全兼容传统8051,但速度快8-12倍.内部集成MAX810专用复位电路,2路PWM,略高 速10位A/D转 换(250K/S),针对电机限制,强干扰场合.(2) PCF8591 PCF8591是一个单片集成、单独供电、低功耗、8-bit CMO数据获取器件.PCF8591ft有4个模拟输入、1个

6、模拟输出和1个串行I2C总线接口.PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个|2C总线上接入8个PCF8591 器件,而无需额外的硬件.在 PCF859停件上输入输出的地址、限制和数据信号都是通 过双线双向I2C总线以串行的方式进行传输.2.2 系统总体设计本系统是用单片机来限制波形的转换以及幅值和频率的改变的,所以该系统可以分为4个电路模块,下面是总体设计框图.图2.2系统总体设计框图三、系统硬件设计3.1 单片机的最小系统由于单片机最小系统只需要外围有时钟电路和复位电路即可,那么单片机最小系统有 着两个外围电路即可正常工作,下面是单片机的最小系统原理图.图

7、3.1STC89C52单片机最小系统3.2 按键电路设计本实现采用4个按键来进行波形的转换、幅值和频率的改变、幅值和频率的选择, P32键用来改变波P3& P16用来改变幅值或频率的大小,P17用来选择频率和幅值,下 面是按键电路图.图3.2按键电路图3.3 LCD显示的设计本硬件采用的是12864的液晶显示屏,显示屏将波形的转化显示在显示屏上,下面 是液晶显小的电路.图3.3 12864液晶显示电路四、系统软件设计4.1主程序设计主程序内进行的是波形的切换及幅值、频率的改变,用示波器和LCD显示,将主要的写进即可,其他的就写在外面,下面是主程序流程图.DA猴I器初始化4.2Chang

8、=1输LCD方源程序设十图 4.1 Chang=0出正弦波LWChang=2 输 出三角波液晶显示的程序在本程序中比拟的简单,就是为了I实时的显示出当前的波形是什么,用按键切换之后液晶显示也跟着变.液晶显示程序需首先初始化,再进行数据的 传输,并进行字符的显示,所以写出相应的几个程序即可进行LCD的显示.图4.2 LCD 显示流程图4.3D/A转换子程序设计本程序采用PCD8592HD/A转换器,需要将A1、A1、A2接地,单片机上的P37 和P36接PCF8591上的SCL和SDA® 口,AOU被示波器,供显示D/A转换要满足12C协 议才能进行数据的传输.void write_a

9、dd(uchar date)(.start();write_byte(0x90);respons();write_byte(0x40);respons();write_byte(date);respons();stop();图4.3 PCF8591电路图五、调试及性能分析5.1调试步骤硬件调试:检查线路连接有无错误, SDAffi SCL®单片机的P36和P37 口,VCO 电源,CN骇地,AOU被示波器,在下载数据到单片机之后数据在传输的时候PCF8591上的一个蓝色的灯会不停的闪,说明有数据在传输,否那么无数据传输.软件调试:首先看i2c协议是否正确,否那么不能传输数据,再看按键

10、的逻辑关系是 否正确,还有就是LCD的显示是否正确.调节电源,使其输出5V电压,调整好示波器.给电路供电,观察示波器,记录各频 段对应波形的情况,峰峰值.调试结果说明,该电路在要求频率范围内的大局部频率 范围根本上不失真,除了在最图频率的最低频率有少许失真,其中,当频率接近10KHz时,方波上下电压跃变时出现毛刺,审过零比拟器的频率特性所致,另外,在最高频 和最低频段,三角波出现少许弯斜,可选用频率特性更为宽的电容进行校正.示波器显示之后的幅值频率的调试结果如下列图所示:调试之后的正弦波 调试之后的方波 调试之后的三角波 5.2性能分析经过一段时间运行后,可以对系统的性能进行测试.对于本波形发

11、生器来说,用示 波器可以测试其性能指标,按前面所述设计的波形发生器,能产生正弦波、三角涉及 方波信号,其幅值可以0 5V内变化,频率也可以调整.六、心得体会经过两周的实训I,很快就结束了.虽然时间短暂,但是其中我们在完成任务的时 候还是面临了很多的问题,正是由于遇到了难题,我们小组在一起探讨,经过屡次改 正最后还是圆满的完成了任务.虽然平时上课我们做过实验,但是现在给我们一个任 务让我们去完成的时候才发现并不是那么容易就能做出来的,不仅需要扎实的根底知 识还要去查询相关的书籍了解一些我们不懂的.经过本次实训I,我们不仅增强了知识,也学到了很多技巧,对单片机的理解与运 用更加熟练了.此次单片机的

12、设计硬件电路较为简单,而程序的设计在当中占据很重 要的局部.这次课程设计是用 STC12C5AI6S隼片机与PCF8592D/A专换器来实现的波形 产生与显示,所以要对这两个模块非常的熟悉.对于PCF8591需要深入的熟悉|2C协议的内容才能正确的传输数据.而对于单片机而需要对各个接口非常熟悉,才能保证数 据的正常传输.此外还要熟练的使用示波器,对产生的波形进行调整,来得到更好的 效果.它考验我们灵活的运用所学知识,培养了我们在遇到问题善于触屏的良好学习 态度.以书本知识为根底灵活的扩展,学习前人的验,向高层次迈进.当然还是存在不 足的地方,例如当频率过小的时候矩形波会有些失真,转换器转换可以

13、加一个锁存 器,放大电路设计上还有待进一步改良,使其具有更强的输出水平等./、-4y .、. _p 卜参考文献1 .胡文金.单片机系统实训教程.重庆:重庆大学出版社,20052 .梁森.自动检测技术及应用.北京:机械工业出版社,20213 .程德福.智能仪器.机械工业出版社.2021.94 .朱定华,戴汝平等.单片危机原理与应用.清华大学出版社.5 .彭楚武.微机原理与接口技术.湖南大灯出版社.6 .李朝清.单片机原理与接口技术.北京航空航天大学出版社.7 .张李勇,陈郎,张飞舟.基于8051的双通道波形发生器的设计与现实.计算机工程与 应用8 .许庆山等编.电路、信号与系统.北京:航空工业出

14、版社.附录1系统硬件电路图附录2程序代码#include<reg52.h>#include<intrins.h>#include<math.h>#define uchar unsigned char#define uint unsigned intsbit SDA=P3A6;sbit SCL=P3A7;unsigned int a=0;unsigned int b=0;unsigned int c=0;unsigned int bx_chang=0;unsigned int n=40;unsigned char TH;unsigned char TL;uns

15、igned int mode=0;unsigned int fd=6;unsigned int x;unsigned int u;*sbit RS =P2A4;sbit RW=P2A5;sbit E=P2A6;sbit PSB=P1A4;/*sbit p20=P3A2;sbit p21=P3A3;sbit p22=P1A6;sbit p32=P1A7;/sin波形数组uchar code tosin256=0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0xAE,0xB1,0xB4,0xB7,

16、0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD6,0xD8,0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,

17、0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,0xDD,0xDA,0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7,0xB4,0xB1,0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x86,0x83,0x80,0x80,0x7C,0x79,0x76,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,

18、0x5D,0x5A,0x57,0x55,0x51,0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2E,0x2B,0x29,0x27,0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0x0E,0x0D,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,

19、0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x25,0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38,0x3A,0x3D,0x40,0x43,0x45,0x48,0x4C,0x4E,0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x72,0x76,0x79,0x7C,0x80 );*void delay(u

20、nsigned int z) unsigned int x,y;for(x=z;x>0;x-)for(y=125;y>0;y-);)*void SendByte(unsigned char Dbyte)unsigned char i;RS=1;for(i=0;i<8;i+) E = 0;if(Dbyte<<i)&0x80)RW=1;elseRW=0;E = 1;E= 0;)RS=0;)void Lcd_WriteCmd(unsigned char Cbyte )delay(10);SendByte(0xf8);SendByte(0xf0&Cbyte

21、);SendByte(0xf0&(Cbyte<<4);void Lcd_WriteData(unsigned char Dbyte )delay(10);SendByte(0xfa);SendByte(0xf0&Dbyte);SendByte(0xf0&(Dbyte<<4);void InitLCD()Lcd_WriteCmd(0x30);Lcd_WriteCmd(0x06);Lcd_WriteCmd(0x0c);Lcd_WriteCmd(0x04);Lcd_WriteCmd(0x01);Lcd_WriteCmd(0x02);Lcd_WriteC

22、md(0x80);void xianshi(unsigned char x,unsigned char y,unsigned char *stri) if(x=1) Lcd_WriteCmd(0x80+y-1);else if(x=2) Lcd_WriteCmd(0x90+y-1);else if(x=3) Lcd_WriteCmd(0x88+y-1);else if(x=4) Lcd_WriteCmd(0x98+y-1);while(*stri>0)/LCD数据传送地址Lcd_WriteData(*stri); stri+;/*void delayp();void delay_1ms(

23、uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-)/延迟函数*I2Cvoid start()SDA=1;delayp();SCL=1;delayp();SDA=0;delayp();协议)void stop()(SDA=0;delayp();SCL=1;delayp();SDA=1;delayp();)void respons()(uchar i;SCL=1;delayp();while(SDA=1)&&(i<250) i+;SCL=0;delayp();)void init()(SDA=1;delayp();SC

24、L=1;delayp();)void write_byte(uchar date)( 一uchar i,temp;temp=date;for(i=0;i<8;i+)(temp=temp<<1;SCL=0;delayp();SDA=CY;delayp();SCL=1;delayp();)SCL=0;delayp();SDA=1;delayp();)void write_add(uchar date)( 一start();write_byte(0x90);respons();write_byte(0x40);respons();write_byte(date);respons()

25、;stop();/*int main()/*TMOD = 0x01;TH0 = (65536-99000/n)/256;TL0 = (65536-99000/n)%256;TH1 = (65536-5000)/256;TL1 = (65536-5000)%256;EA = 1;ET0 = 1;ET1 = 1;TR0 = 1;TR1 = 1;init();while(1)主函数PSB=0;InitLCD();/* for(u=0;u<9;u+)显示模块) )xianshi(1,1,"xianshi(2,1," if(bx_chang=0) if(bx_chang=1)

26、if(bx_chang=2)xianshi(3,1,"信号发生器");波形:");xianshi(2,4,"sin");xianshi(2,4,"Square");xianshi(2,4,"Triangle");幅度:");Lcd_WriteData(0x30+(fd*5/10);xianshi(3,5,".");Lcd_WriteData(0x30+(fd*5%10);xianshi(3,6,"V");xianshi(4,1," 频率:&quo

27、t;);Lcd_WriteData(0x30+(n/2/100);Lcd_WriteData(0x30+(n/2/10);Lcd_WriteData(0x30+(n/2%10);xianshi(4,6,"Hz");*8void refresh_f( void ) interrupt 1 /if(n>=0&&n<40)x=14;TH0 = (65536-92900/n)/256;TL0 = (65536-92900/n)%256;定时器中断)else if (n>=40&&n<80)x=15;TH0 = (65536-97920/n)/256;TL0 = (65536-97920/n)%256;)/*a=a+x;if(a<256&&bx_chang=0) write_add(tosina*0.1*fd);)if(a>=256)a=0;)/*正弦波

温馨提示

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

评论

0/150

提交评论