电子技术课程设计报告111.docx
- 文档编号:22998798
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:18
- 大小:245.71KB
电子技术课程设计报告111.docx
《电子技术课程设计报告111.docx》由会员分享,可在线阅读,更多相关《电子技术课程设计报告111.docx(18页珍藏版)》请在冰豆网上搜索。
电子技术课程设计报告电子技术课程设计报告111电子技术课程设计报告题目:
函数信号发生器作者:
罗涌新黄漫辉单位:
揭阳职业技术学院专业:
机电系电子信息工程技术091班指导老师:
钱德明二一一年六月八日目录一、摘要3二、设计要求41.4三、硬件设计43.1、电路设计4四、软件设计54.1主程序流程图54.2电路原理图7五、电路的调设六、实验总结7七、附录81、函数信号发生器的程序:
82、proteus仿真电路图15一、摘一、摘要要函数信号发生器是一种在科研和生产中经常用到的基本波形发生器,随着大规模集成电路的迅速发展,很多功能信号发生器已被制作成专用集成电路,如用AT89C51单片机还做波形发生器,可以产生精度较高的方波、正弦波、三角波、锯齿波等多种信号。
也可以采用其他的芯片如5G8038或者ICL8038单片机函数信号发生器。
我们采用的是AT89C51,电路也可以通过调节外接电阻和电容的参数值进行调节,为快速准确地实现函数信号发生器提供了极大方二、设计要求二、设计要求1.具有产生正弦波、方波、三角波及锯齿波四种周期性的波形。
用键盘输入编辑生成上述四种波形(同周期)的线性组合波形,以及由基波及其谐波(5次以下)线性组合的波形。
2.具有波形存储功能。
输出波形的频率为100Hz20KHz(非正弦波频率按10次谐波计算):
重复频率可调,频率步进间隔100Hz。
输出波形幅度范围05V(峰-峰值),可按步进0.1V(峰-峰值)调整。
具有显示输出波形的类型、重复频率(周期)和幅度的功能三、硬件设计3.1、电路设计低频信号发生器系统框图低频信号发生器系统主要由CPU、D/A转换电路、基准电压电路、电流/电压转换电路、按键和波形指示电路、电源等电路组成。
其工作原理为当分别每按下按键一次就会分别出现方波、锯齿波、三角波、正弦波,并且有数码管会指示是那种波形序号,另外,发光二极管发光说明系统处于工作状态。
四、软件设计四、软件设计软件设计上,根据功能分了几个模块编程。
模块主要有:
主程序模块、方波模块、三角波模块、锯齿波模块、正弦波模块、延时子程序模块等。
显示波形模块是利用DAC0832的8位特点,把波形的数据以8位数据的形势送进CPU中,只要一按键就能显示波形。
4.1主主程序流程图程序流程图本软件设计过程中主要实现利用按键来控制不同波形的输出,当按本软件设计过程中主要实现利用按键来控制不同波形的输出,当按键键KEY1按下按下1次时,函数发生器就输出方波;当按键次时,函数发生器就输出方波;当按键KEY1按下按下2次时,函数发生器就输出三角波;当按键次时,函数发生器就输出三角波;当按键KEY1按下按下3次时,函数发次时,函数发生器就输出锯齿波;当按键生器就输出锯齿波;当按键KEY1按下按下4次时,函数发生器就输出正次时,函数发生器就输出正弦波。
通过按键可以以任意循环方式输出不同波形,数码管上显示的弦波。
通过按键可以以任意循环方式输出不同波形,数码管上显示的数字分别对应相应的波形。
按键数字分别对应相应的波形。
按键KEY2按下时复位。
按下时复位。
4.2电路原理图电路原理图五、电路的调试采用分别调试各个单元模块,调通后再进行各单元电路联机统调的方法,提高调试效率。
(1)软件部分调试本机的软件主要功能是完成人机接口,因此编程的时候把界面的友好性放在首位,采用主从菜单式的操作方法。
由于对51系列单片机编程比较熟悉,在软件的仿真调试过程中没有遇到太大的问题。
各软件功能均正常实现。
(2)硬件部分调试整个硬件调试过程基本顺利,由于采用了工艺精良的双面孔化PCB板,各单元电路工作稳定,给调试工作带来很大的方便。
六、实验总结六、实验总结通过这次实验我们学会了很多东西,既巩固了现有的知识,自己对发生器的工作原理也有了进一步的了解。
通过本次波形发生器的设计,装配,调试;了解了它在实际生活中的运用和功能。
七、附录七、附录1、函数信号发生器的程序:
、函数信号发生器的程序:
/*/程序名称:
波形发生器/设计时间:
2008.8.3/设计人:
祁瑞红/*/#include/#include/nop的头文件/#include/共阴数码管的表/unsignedcharcodetable=0xc0,0xf9,0xa4,0xb0,0x99;/0x00,0x12,0x4f,0x5b,0x72;/1234unsignedcharcodestable=80,81,83,84,86,87,89,90,92,93,95,96,97,99,100,102,103,104,106,107,108,110,111,112,113,115,116,117,118,119,120,121,123,124,125,126,126,127,128,129,130,131,132,132,133,134,134,135,135,136,137,137,137,138,138,139,139,139,139,140,140,140,140,140,140,140,140,140,140,140,139,139,139,138,138,138,137,137,136,136,135,135,134,133,133,132,131,131,130,129,128,127,126,125,124,123,122,121,120,119,118,117,115,114,113,112,111,109,108,107,105,104,103,101,100,98,97,96,94,93,91,90,88,87,85,84,83,81,80,78,77,75,74,72,71,69,68,66,65,64,62,61,59,58,57,55,54,53,51,50,49,47,46,45,44,43,42,40,39,38,37,36,35,34,33,32,31,31,30,29,28,28,27,26,26,25,24,24,23,23,22,22,22,21,21,21,21,20,20,20,20,20,20,20,20,20,20,21,21,21,21,22,22,22,23,23,24,24,25,25,26,27,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,43,44,45,46,47,49,50,51,52,54,55,56,58,59,61,62,63,65,66,68,69,71,72,73,75,76,78,79;unsignedchartime1;/延时函数参数/变量说明/unsignedchartime2;unsignedchartime3;unsignedcharcount;/函数说明/voidinitial(void);/初始化函数/voidinitial_time0(void);/定时器0初始化/voidanjian(void);/按键函数/voiddelay(unsignedchartime1,time2,time3);/延时函数/voiddisp(unsignedcharcount);/静态显示子函数/voidfangbo(void);/方波函数/voidsanjiaobo(void);/三角波函数/voidjuchibo(void);/锯齿波函数/voidzhengxianbo(void);/正弦波函数/voidmain(void)initial();while
(1)anjian();/*/函数名称:
voidanjian(void)/函数说明:
按键函数/函数功能:
/注意:
*/voidanjian(void)if(P3_7=0)delay(1,50,248);if(P3_7=0)count=1;disp(count);fangbo();while(P3_7=0)count+=1;if(count4)count=0;disp(count);/anjian();/*/函数名称:
voidfangbo(void)/函数说明:
方波函数/函数功能:
/注意:
*/voidfangbo(void)/while
(1)是个死循环看执行一次多长时间*128求算频率,一个周期大约3ms多,这个频率为300hz左右while
(1)unsignedcharfangbo_1;fangbo_1+;if(fangbo_1128&fangbo_1256)P2=0x00;if(fangbo_1128)P2=0xff;if(P3_7=0)delay(1,50,248);if(P3_7=0)count=2;disp(count);sanjiaobo();while(P3_7=0);/*/函数名称:
voidsanjiaobo(void)/函数说明:
三角波函数/函数功能:
/注意:
*/voidsanjiaobo(void)while
(1)unsignedcharsanjiaobo_2;if(sanjiaobo_2=255)sanjiaobo_2=0x00;if(P3_7=0)delay(1,50,248);if(P3_7=0)count=3;disp(count);juchibo();while(P3_7=0);/*/函数名称:
voidjuchibo(void)/函数说明:
锯齿波函数/函数功能:
/注意:
*/voidjuchibo(void)while
(1)unsignedcharjuchibo_3;if(juchibo_3=180)juchibo_3=0x00;if(P3_7=0)delay(1,50,248);if(P3_7=0)count=4;disp(count);zhengxianbo();while(P3_7=0);/*/函数名称:
voidzhengxianbo(void)/函数说明:
正弦波函数/函数功能:
/注意:
*/voidzhengxianbo(void)while
(1)unsignedcharzhengxianbo_4;P2=stablezhengxianbo_4;zhengxianbo_4+;if(zhengxianbo_4=255)zhengxianbo_4=0;if(P3_7=0)delay(1,50,248);if(P3_7=0)count=0;disp(count);anjian();while(P3_7=0);/*/函数名称:
voidinitial(void)/函数说明:
初始化函数/函数功能:
/注意:
*/voidinitial(void)P0=0xff;P1=0xff;P2=0xff;P3=0xff;/*/函数名称:
delay(unsignedchartime1,time2,time3)/函数说明:
延时函数/函数功能:
/入口参数:
unsignedchartime1,time2,time3/出口参数:
/注意:
延时时间的计算:
(time1*time2*time3*8us)ustime1,time2,time3可以不进行变量说明*/voiddelay(unsignedchartime1,time2,time3)unsignedchari,j,k;for(i=time1;i0;i-)for(j=time2;j0;j-)for(k=time3;k0;k-);/*/函数名称:
disp(unsignedcharcount)/函数说明:
静态显示子函数/函数功能:
/入口参数:
unsignedcharcount/出口参数:
/注意:
*/voiddisp(unsignedcharcount)P0=tablecount;delay(1,5,248);/*/函数名称:
voidinitial_time(void)/函数说明:
定时器初始化/函数功能:
/注意:
*/*voidinitial_time0(void)unsiguedcharth,tl;TMOD=0x01;/设置为定时器0方式1/th=(65536-50000)/256;/给定时器0赋初值/tl=(65536-50000)%256;TH0=th;TL0=tl;TR0=1;/开启定时器0/ET0=1;/开启定时器0溢出中断/EA=1;/开启中断总开关/*/*/函数名称:
voidvoidT0(void)interrupt1using0(void)/函数说明:
定时t0的中断函数/函数功能:
/注意:
*/*voidt0(void)interrupt1using1TR0=0;TH0=th;TL0=tl;TR0=1;*/2、proteus仿真电路图仿真电路图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子技术 课程设计 报告 111