




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 17 页 共 17 页 硬件综合课程设计硬 件 综 合 课 程 设 计课 目:波 形 发 生 器 设 计 班 级:通信二班 小组成员:林木文 指导教师:张大敏 二零一一年五月摘要波形发生器即简易函数信号发生器,是一种能够产生多种波形,如三角波、锯齿波、方波、正弦波等波形的电路。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。通过对函数波形发生器的原理以及构成分析,可设计一个能变换出三角波、正弦波、方波、锯齿波的函数波形发生器。在工业生产和科研中利用函数信号发生器输出的信号,可以对元器件的性能及参数进行测量,还可以对电工和电子产品进行指数验证、参数调整及性能鉴定。常用的信号发生器绝大部分是由模拟电路构成的,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵,因此,高精度,宽调幅,低价格将成为数字量信号发生器的发展趋势。本设计核心任务是:以AT89C52为核心,结合D/A转换器DAC0832等器件,用仿真软件设计硬件电路,用C语言编写驱动程序,以实现程序控制产生正弦波、三角波、方波、锯齿波四种常用低频信号。可以通过键盘选择波型和输入任意频率值。关键词:函数信号发生器;AT89C52;Keil C目 录1 主要工作42 系统硬件设计62.1 单片机介绍2.2 设计系统图3 系统软件设计83.1信号频率数据采集3.2正弦波产生3.3 方波产生3.4三角波产生3.5锯齿波产生4 波形发生器的调试与测试135 总结与提高136 参考文献147 附录:源程序151主要工作本设计采用AT89C52及其外围扩展系统,软件方面主要是应用C语言设计程序。系统以89C52单片机为核心,配置相应的外设及接口电路,用C语言开发,组成一个多功能信号发生系统。该系统的软件可运行于Windows XP环境下,使用Keil C及Proteus等软件开发,硬件电路设计具有典型性。同时,本系统中任何一部分电路模块均可移植与实用开发系统的设计中,电路设计具有实用性。本设计讲完成以下几个方面的工作:a.选芯片,尽量满足一般工业控制要求、以增强其实用性。b.原理图设计在保证正确的前提下,尽量采用典型的电路设计。c.掌握单片机仿真软件Keil C与Proteus的使用。2 系统硬件设计2.1 单片机介绍89C52单片机有44个引脚PLCC和TQFP方形封装形式,40个引脚直插式封装形式,常见如图2.2 设计系统图本系统含有DAC0832与单片机的连接模块,液晶显示与单片机的连接模块以及按键控制模块等主要部分。液晶使用的是LM016L,他们都是数字式的,和单片机系统的接口更加可靠,操作更加方便。体积小,质量轻,功耗低。DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要。所以这个芯片的应用很广泛。3 系统软件设计3.1 信号频率数据采集本程序通过外部中断,接收减频或加频按键,单片机内部对接受的值经过运算得出波形的输出延时,从而产生频率的改变。电路较为简单,成本较低。3.2 正弦波产生输入正弦波的采样点,计算出256个(一个周期内)正弦波信号值。然后通过输出的两点间的延时来实现调频。依次循环输出,可得出正弦波。采点值放在table2中,程序如下:void sin()/正弦波unsigned int i;for(i=0;i256;i+)DAC0832=table2i;delay(pinlv/256);输出波形如下:3.3 三角波产生设个自变量i让它不断地自加1,直到加到255时,t=i,对t进行不断地自减1直到减到t=0,然后再不断地重复上述过程产生三角波。程序如下:void tran()/三角波unsigned char i;for(i=0;i0;i-)DAC0832=i;delay(pinlv/64);输出波形如下:3.4 方波产生设个自变量i=0使之延时一段时间,再另i=255时在延时与i=0相同的时间,然后再重复上述过程。程序如下:void fang()/方波DAC0832=0;delay(pinlv/2);DAC0832=0xff;delay(pinlv/2);输出波形如下:3.5 锯齿波产生锯齿波中的斜线用一个个小台阶来逼近,在一个周期内从最小值开始逐步递增,当达到最大值后又回到最小值,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同的周期锯齿波。锯齿波发生原理与方波类似,只是高低两个时延的常数不同,所以用延时法,来产生锯齿波,设个自变量i让它不断地自加1,直到叫到255,DAC0832可以又自动归0,然后再不断地重复上述过程。程序如下:void jvchi()/锯齿波unsigned char i;for(i=0;i255;i+)DAC0832=i;delay(pinlv/256);输出波形如下:4 波形发生器的调试与测试本系统是在protues下仿真,使用Keil C编程。从而实现其设计及仿真。在测试本系统是采用的是将设置的数值与示波器所测值进行对比,进而可以知道本系统的性能。频率测试数据: 设定频率(HZ)示波器测试频率(HZ) 相对误差%3.93.961.57.87.931.2815.6316.133.195 总结与提高本组设计的课题为:硬件综合课程设计波形发生器设计,由于以前做过类似简易的、单一的波形发生器,当时使用汇编语言编写源程序。对于本次课程设计总体认知不是非常的难。后来导师提出了设计相关要求,我们根据导师的要求,查阅资料,明确分工,为了提高编程能力和开拓创新,我们最终决定使用C语言编写源程序,使用Keil C和Protues作为设计开发和仿真软件。6 参考文献1 张以和,王敏男.例说51单片机(C语言版).北京:人民邮电出版社,2009.2 王让定,朱莹.汇编语言与接口技术(第二版).北京:清华大学出版社,2007. 3 李朝青.单片机原理及接口技术(第三版).北京:北京航空航天大学出版社,2009.7 附录:源程序#include#include#define DAC0832 XBYTE0x0fff /DAC0832端口int pinlv=256; /改变频率的时延自变量sbit p20=P20;sbit p21=P21;sbit p22=P22;sbit p23=P23;sbit RS = P30;sbit RW= P31; /液晶显示的端口sbit E = P34;int j=0;unsigned char code TAB =0123456789msTIME: ;unsigned char code TAB1 =zhengxuanbofangbo sanjiaobo juchibo ;unsigned char table4;float code table2= / 正弦波信号采点值 0x80,0x83,0x85,0x88,0x8A,0x8D,0x8F,0x92, 0x94,0x97,0x99,0x9B,0x9E,0xA0,0xA3,0xA5, 0xA7,0xAA,0xAC,0xAE,0xB1,0xB3,0xB5,0xB7, 0xB9,0xBB,0xBD,0xBF,0xC1,0xC3,0xC5,0xC7, 0xC9,0xCB,0xCC,0xCE,0xD0,0xD1,0xD3,0xD4, 0xD6,0xD7,0xD8,0xDA,0xDB,0xDC,0xDD,0xDE, 0xDF,0xE0,0xE1,0xE2,0xE3,0xE3,0xE4,0xE4, 0xE5,0xE5,0xE6,0xE6,0xE7,0xE7,0xE7,0xE7, 0xE7,0xE7,0xE7,0xE7,0xE6,0xE6,0xE5,0xE5, 0xE4,0xE4,0xE3,0xE3,0xE2,0xE1,0xE0,0xDF, 0xDE,0xDD,0xDC,0xDB,0xDA,0xD8,0xD7,0xD6, 0xD4,0xD3,0xD1,0xD0,0xCE,0xCC,0xCB,0xC9, 0xC7,0xC5,0xC3,0xC1,0xBF,0xBD,0xBB,0xB9, 0xB7,0xB5,0xB3,0xB1,0xAE,0xAC,0xAA,0xA7, 0xA5,0xA3,0xA0,0x9E,0x9B,0x99,0x97,0x94, 0x92,0x8F,0x8D,0x8A,0x88,0x85,0x83,0x80, 0x7D,0x7B,0x78,0x76,0x73,0x71,0x6E,0x6C, 0x69,0x67,0x65,0x62,0x60,0x5D,0x5B,0x59, 0x56,0x54,0x52,0x4F,0x4D,0x4B,0x49,0x47, 0x45,0x43,0x41,0x3F,0x3D,0x3B,0x39,0x37, 0x35,0x34,0x32,0x30,0x2F,0x2D,0x2C,0x2A, 0x29,0x28,0x26,0x25,0x24,0x23,0x22,0x21, 0x20,0x1F,0x1E,0x1D,0x1D,0x1C,0x1C,0x1B, 0x1B,0x1A,0x1A,0x1A,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x1A,0x1A,0x1A,0x1B, 0x1B,0x1C,0x1C,0x1D,0x1D,0x1E,0x1F,0x20, 0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29, 0x2A,0x2C,0x2D,0x2F,0x30,0x32,0x34,0x35, 0x37,0x39,0x3B,0x3D,0x3F,0x41,0x43,0x45, 0x47,0x49,0x4B,0x4D,0x4F,0x52,0x54,0x56, 0x59,0x5B,0x5D,0x60,0x62,0x65,0x67,0x69, 0x6C,0x6E,0x71,0x73,0x76,0x78,0x7B,0x7D;void delay(unsigned char ms);/延时函数void write_com(unsigned char com); /液晶写指令void write_data(unsigned char dat); / 液晶写数据void LCD1602_init(void) /液晶初始化delay(15); write_com(0x38); delay(5); write_com(0x38);delay(5); write_com(0x38); write_com(0x38); write_com(0x08);write_com(0x01); write_com(0x06); write_com(0x0c); void write_com(unsigned char com)E = 0; /复位初始为高电平 RS = 0;RW = 0;P1 = com;delay(1);E = 1;delay(1);E = 0;void write_data(unsigned char dat)E = 0; /复位初始为高电平 RS = 1;RW = 0;P1 = dat;delay(1);E = 1;delay(1);E = 0; void delay(unsigned char ms) / 晶振12MHzunsigned char i;while(ms-)for(i=0;i120;i+);void fang()/方波DAC0832=0;delay(pinlv/2);DAC0832=0xff;delay(pinlv/2);void jvchi()/锯齿波unsigned char i;for(i=0;i255;i+)DAC0832=i;delay(pinlv/256);void tran()/三角波unsigned char i;for(i=0;i0;i-)DAC0832=i;delay(pinlv/256);void sin()/正弦波unsigned int i;for(i=0;i256;i+)DAC0832=table2i;delay(pinlv/256);void main(void)/主函数IE=0x85; /外部中断设定 改变频率TCON=0x05;LCD1602_init();table0=pinlv/1000; /计算周期作为输出table1=pinlv%1000/100;table2=pinlv%100/10;table3=pinlv%10;write_com(0x80+0x40); / 设置代写入数据的地址,写1602的第2行。写出做产生波形的周期for(j=12;j17;j+)write_data(TAB j );delay(1);for(j=0;j4;j+)write_data(TABtable j );delay(1);write_data(TAB10);/在周期后面加上“MS”write_data(TAB11);while(1)if(p20=0) /方波write_com(0x80); /写1602的第1行,写明产生的波形for(j=11;j22;j+)write_data(TAB1j);while(p20=0)fang();if(p21=0) /锯齿波write_com(0x80); /写1602的第2行?for(j=33;j44;j+)write_data(TAB1j);while(p21=0)jvchi(); if(p22=0) / 三角波write_com(0x80); /写1602的第2行?for(j=22;j33;j+)write_data(TAB1j);while(p22=0)tran();if(p23=0) /正弦波write_com(0x80); /写1602的第2行?for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 监理管理课件口诀图片
- 聊城辅警考试题库2025(有答案)
- 静脉穿刺技术风险防范措施
- 肝炎后期护理查房
- 高风险药物使用的安全管理
- 导尿手术安全性护理最佳实践
- 事故后创伤愈合的综合护理查房
- 海安初三一模数学试卷
- 2025北京培黎职业学院辅导员考试试题及答案
- 危险驾驶罪课件
- 东莞住宅工程质量通病防治手册
- 2025-2030年中国海洋大数据行业市场现状供需分析及投资评估规划分析研究报告
- 2025新人教版英语八上单词英译汉默写表(先鸟版)
- 药店借用资质协议书范本
- DB34T 4676-2024数字茶园建设指南
- 二维材料光电子器件集成-全面剖析
- 建筑项目主要劳动力配置计划
- 2025-2030中国孤独症及治疗市场规模与需求研究报告
- 地质调查员职业技能考试题(附答案)
- 儿童低钾血症的诊疗
- JJG(交通) 072-2024 燃烧法沥青含量测试仪
评论
0/150
提交评论