版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论1.1信号发生器的现状与发展信号发生器是一种常用的信号源,广泛的应用于电子电路、自动控制和科学实验等领域。它是一种为电子测量和计量工作提供符合严格技术要求的电信号设备。因此,信号发生器和示波器、电压表、频率计等仪器一样是最普通、最基本的,也是应用最广泛的电子仪器之一,几乎所有的电参量的测量都需要用到信号发生器。自六十年代以来,信号发生器就有了迅速的发展,出现了函数发生器、扫描信号发生器、合成信号发生器、控制信号发生器等种类。各种信号发生器的主要性能指标也都有了大幅度的提高,同时在简化机械结构、小型化、多功能等各方面也有了显著的发展。1.2设计内容及方案的确定本课题要求以MCS-51系列单片机为核心,设计一个简易低频信号发生器。要求能输出0.1~50HZ的正弦波、三角波和方波信号,能方便的用键盘选择不同的输出并在LED显示器上显示。单片机通过查表的方法完成波形数据要求,输出的正弦波、三角波和方波信号频率在0.1~50HZ可调,系统有启动、调频和不同波形选择按键,转速显示要求至少4位。根据要求我们组讨论如下:直接采用8位DA转换芯片,让单片机对8位DA芯片进行控制,从而输出波形。第2章基于单片机的简易低频信号发生器的设计2.1总体设计框图5151单片机DAC0832DAC0832数码管示波器示波器按键图2.1.1总体设计框图如方框图所示根据要求我们组讨论如下:通过C程序的编译,频率档位选择按键UP、DOWN以及波形选择按键SWITCH,通过数码管显示频率档位和波形。并且通过DAC0832实现数模转换,最后用示波器观察输出的结果。2.2单片机结构及系统工作原理数模转换器器工作原理就是模拟信号数字化的逆过程,模拟信号数字化通过采样、量化、编码完成,那么数字信号模拟化的过程读取二进制码、二进制码权值相加、输出一个总的电流或电压。这其实就是一个模拟电子计数中的加法器。量化电平个数相对于数模转换的分辨率,对于低频低成本的信号发生器,为了简化程序设计,所以直接采用8位DA转换芯片DAC0832,让单片机AT89C51对8位DA芯片进行控制,从而输出波形。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。单尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。我们所设计的程序是总结了目前各个智能化设计程序的水位监测系统,采用51控制单片机,集水位采集、存储、显示及远程联网于一体的设计,使得仪器仪表数字化、智能化、微型化。同时采用AT89系列单片机,AT89系列单片机是ATEML公司的8位Flash单片机。AT89系列单片的核心是8031,在软件和硬件方面与MCS-51系列完全兼容,AT89系列的指令与有关定义和MCS一51完全相同,MCS—51系列单片机应用系统编写的程序可以直接使用。AT89系列的引脚排列、定义与MCS-51完全一致,可以直接替换。由于内部有FlashROM,所以编写的程序烧录很方便,易于电擦除,可以反复使用,非常方便用户对程序进行修改,缩短研制周期,降低了研制成本。在单片机部有Flash存贮器,功耗特别低,FlashROM的容量从TA89C1051的1K到AT89S55的20K,有许多品种,选择余地大。2.3系统工作流程图开始中断初始化键盘扫描子程序数码管显示图2.3.1系统工作流程图在C编译时,通过在主程序内设置中断初始化、调用按键子程序、档位频率键、波形种类选择键的设置,在辅助程序中编译好各个子程序使得程序可以通顺流程的进行2.4独立按键流程图编译按键子程序时,要求开始后系统默认设置波形种类选择档位为1,设置频率档位为5,通过标志位来判断走向,如果标志位不为0则直接结束,如果标志位为0,则按键松开后看a的取值来选择波形种类,如果a>3,则认为a=1,如果不大于则结束。键松开?键松开?SWITCH标志位=0?YNa+1开始SWITCH按下?消抖延时20msNYa=1a>3?结束YN图2.4.1独立按键流程图2.5中断服务程序流程图开开始a=1?a=2?Case语句给定时器赋初值输出正弦波输出三角波输出方波YYa=3?YNN结束i++;if(i>255)i=0;图2.5.1中断服务程序流程图程序开始后根据Case语句给定时器赋初值,判定a的取值,如果a=1则输出正弦波形,如果a=2则输出三角波形,如果a=3则输出方波波形,待波形输出后看中断服务计数i的取值如果i++;if(i>255)i=0,则程序结束。第3章各硬件单元电路的设计3.1AT89C51单元电路的设计单片机的设计利用P1、P2口共同控制数码管的一系列显示,P1口为段码输出,P2.0、P2.3作为位码输出,P0口作为输出,输出到D/A转换器的输入,P3.2、P3.3、P3.4分别作为波形种类选择按键的输入,波形频率档位加的输入,波形频率档位减的输入,P3.6口连接到D/A转换器的WR口。图3.1.1A3.2按键的单元电路设计三个不同的按键一端连在单片机P3口,另一端接地使得电路连通,在按键与单片机间还需增加三个上拉电阻来避免出现悬空的可能性。图3.2.1AT89C51单元设计电路图3.3DAC0832芯片的单元电路设计本单元的设计主要是把单片机的数字输出转换成模拟输出,把单片机的八位输出送到D/A转换器的D10到D17作为转换器的输入,从单片机P3.6口输出的信号送到D\A寄存器选通输入WR。因为D\A转换器的输出是电流,所以要加一个运算放大器把电流转换成电压。图3.3.1DAC0832单元设计电路第4章系统仿真由于本次课程设计条件的限制,只做了软件(protues)仿真。按照设计的电路连接好,电路接好后,按照预先设定好的调试步骤,逐步对电路进行系统调试,调试结果做如下:4.1方波当数码管上第四位及波形种类显示位显示为3时,示波器中显示为方波,此时频率的大小受频率档位选择键的控制。图4.1.1方波仿真图4.2正弦波当数码管上第四位及波形种类显示位显示为1时,示波器中显示为正弦波,此时频率的大小受频率档位选择键的控制。图4.2.2正弦波仿真图4.3三角波当数码管上第四位及波形种类显示位显示为2时,示波器中显示为三角波,此时频率的大小受频率档位选择键的控制。4.3.1三角波仿真图结束语这次单片机课程设计我们历时两个星期,但经过这两个星期的实践和体验下来,我对单片机越来越感兴趣了,之前对我来说学到的仅是那些理论知识,通过这次设计的具体应用,我发现了它的强大之处。这次课程设计感触最深的是团队和合作。在这我要谢过那些帮我的老师和同学。现在想来,学校安排的课程设计确实有着它深层的意义,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。单片机课程设计结束了,但通过设计我所学到的东西却将长久的存在。相信这次设计带给我们的严谨的学习态度和一丝不苟的科学作风将会给我们未来的工作和学习打下一个更坚实的基础。最后真诚的感谢李晓秀的老师的教育与指导,感谢周定双与陈顺舟同学在整个过程中对我的帮助!参考文献【1】教材《单片微型计算机技术》刘国荣编机械工业出版社【2】《单片微型计算机原理、应用及接口技术》张迎新编国防工业出版社【3】单片机实用系统设计技术》房小翠编国防工业出版社【4】《单片机应用系统设计》何立民编北航出版社【5】《单片机原理及接口技术曹琳琳编国防科技大学出版社附录A建议信号发生器设计控制电路及仿真附录B源程序清单#include<reg51.h>#include<absacc.h>#defineP0XBYTE[0xdf00] //P0琐存地址unsignedcharcodeseg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//显示数组unsignedcharcodesig_sin[256]={0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x14,0x12,0x10,0xf,0xd,0xc,0xb,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x3,0x2,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x3,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xc,0xd,0xe,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b,0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c};unsignedchara;//全局信号信号选择变量unsignedintb;//全局信号档位变量送显示unsignedintpinlv;// 档位变量送定时器赋初值unsignedinti=0;//中断服务计数sbitbutten_swtich=P3^2; //按键1波形选择sbitbutten_up=P3^3; //按键2频率+sbitbutten_down=P3^4; //按键3频率-voiddelay1ms(unsignedcharii)//延时基时1毫秒子程序{unsignedcharjj;for(;ii>0;ii--)for(jj=0;jj<125;jj++);}voidInit_Timer1(void) //定时器0初始化{EA=1;//开总中断 ET1=1;//定时器T1中断允许 TMOD=0x10;//TMOD=0001000B,使用定时器T1的模式1 TH1=(65536-500)/256;//定时器T1的高8位赋初值TL1=(65536-500)%256;//定时器T1的高8位赋初值 TR1=1;//启动定时器T1}voidbutten_scan1()//按键处理子程序{ if(butten_swtich==0)//信号按键选择 { delay1ms(20);//消抖延时 if(butten_swtich==0) { while(!butten_swtich); //等待按键松开 a++; if(a>3)a=1;//循环选择 } }}voidbutten_scan2(){ if(butten_up==0)//信号按键选择 { delay1ms(20);//消抖延时 if(butten_up==0) { while(!butten_up);//等待按键松开 b=b+1; if(b>9)b=9;//再按加就不再加了 } } elseif(butten_down==0)//信号按键选择 { delay1ms(10);//消抖延时 if(butten_down==0) { while(!butten_down);//等待按键松开 b=b-1; if(b<1)b=1;//再按减就不再减了 }}}main(){ a=1;b=5;Init_Timer1(); while(1) { butten_scan1();//调用按键处理子程序 butten_scan2(); P2=0x1;P1=seg[a];//信号输出送显示1三角波2正弦波3方波 delay1ms(10);P2=0x8;P1=seg[b];//档位显示0~9默认第5档 delay1ms(10); }}voidOS_Timer1(void)interrupt3 //系统OS定时中断服务{ switch(b) //根据不同的档位给定时器赋不同的初值 { case1:pinlv=0xf2;break; case2:pinlv=0xf3;break; case3:pinlv=0xf4;break; case4:pinlv=0xf5;break; case5:pinlv=0xf6;break; case6:pinlv=0xf7;break; case7:pinlv=0xf8;break; case8:pinlv=0xf9;break; case9:pinlv=0xfa;break; }TH1=pinlv; //定时器赋初值TL1=0xff; //定时器赋初值if(a==1)P0=sig_sin[i];//P0口给正弦波信号数组elseif(a==2){if(i<128)P0=2*i;elseP0=254-2*i;}//P0口给三角波信号数组elseif(a==3){if(i>128)P0=0xff;elseP0=0;}//方波i++;if(i>255)i=0;}目录第1章 绪论 11.1信号发生器的现状与发展 11.2设计内容及方案的确定 1第2章基于单片机的简易低频信号发生器的设计 22.1总体设计框图 22.2单片机结构及系统工作原理 32.3系统工作流程图 42.4独立按键流程图 42.5中断服务程序流
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度社保劳动合同范本与社会保障3篇
- 二零二五年度劳动合同转让及员工劳动合同解除协议3篇
- 2025年度矿产资源开发与购买合同3篇
- 二零二五年度数据中心搬迁服务合同3篇
- 二零二五年度房地产买卖合同A3版(含产权登记服务)3篇
- 二零二五年度文化产业园区财务担保合同文化创意产业与会计操作3篇
- 二零二五年度教育行业助学贷款合同合规性分析3篇
- 二零二五年度二手珠宝首饰买卖简单协议书范本20253篇
- 海南政法职业学院《程序设计语言(C语言)》2023-2024学年第一学期期末试卷
- 2025年度建筑施工合同具体条款和工程标的2篇
- 北京2025年首都医科大学附属北京友谊医院招聘140人历年参考题库(频考版)含答案解析
- 股权质押权借款合同模板
- 《工商管理专业毕业实习》课程教学大纲
- 2025年中国社区团购行业发展环境、运行态势及投资前景分析报告(智研咨询发布)
- 国开电大本科《西方经济学(本)》网上形考(作业一至六)试题及答案
- 提高有风险患者预防跌倒坠床护理措施落实率品管圈PDCA案例汇报
- 建材行业绿色建筑材料配送方案
- 2024年行政执法人员执法资格知识考试题库(附含答案)
- 西那卡塞治疗甲旁亢
- 无人驾驶 物流行业市场调研分析报告
- 代理记账有限公司简介(5个范本)
评论
0/150
提交评论