当前位置:文档之家› 基于51单片机的方波,三角波,矩形波的低频信号发生器

基于51单片机的方波,三角波,矩形波的低频信号发生器

低频信号发生器-------期末课程设计学院:班级:学号:姓名:指导老师:2010-6-12第0章实验室基础 ........................................................ 错误!未定义书签。

第1章交换机基本配置 ..................... 错误!未定义书签。

1.1 使用交换机的命令行管理界面................. 错误!未定义书签。

1.2 交换机的全局配置.......................... 错误!未定义书签。

1.3 交换机端口的基本配置...................... 错误!未定义书签。

1.4 查看交换机的系统和配置信息................. 错误!未定义书签。

第2章虚拟局域网VLAN................... 错误!未定义书签。

2.1 交换机端口隔离 ........................... 错误!未定义书签。

2.2 跨交换机实现VLAN........................ 错误!未定义书签。

第3章提供交换网络中的冗余链路.......... 错误!未定义书签。

3.1 端口聚合提供冗余备份链路................... 错误!未定义书签。

3.2 快速生成树配置 ........................... 错误!未定义书签。

第4章路由器的基本配置................... 错误!未定义书签。

4.1 使用命令行界面 ........................... 错误!未定义书签。

4.2 路由器的全局配置.......................... 错误!未定义书签。

4.3 路由器端口的基本配置...................... 错误!未定义书签。

4.4 查看路由器的系统和配置信息............. 错误!未定义书签。

一、实验目的1、学习和运用keilC的C语言;2、学习通过proteus软件画原理图,并利用keilC软件形成的HEX文件运行;3、实现利用单片机AT98C51和8位D/A转换芯片DAC0832共同实现方波、三角波、锯齿波、梯形波这四种常见波形的发生4、进一步学习和利用protel软件,画出实验原理图,并生成PCB图;5、AT89S51为核心的单片机系统的软硬件开发过程;6、基本信号的产生原理及函数发生器系统的设计流程二、实验要求设计一个低频信号发生器:1、查阅相关资料,完成原理图设计;2、编写软件,使该系统能输出方波、三角波、锯齿波和梯形波;波形频率均为1khz,双极性输出。

3、用protel软件完成系统的硬件设计,并通过电器规则检查;4、仿真实现;5、画pcb图;6、写综合课程设计报告。

三、器件清单1、AT80C51一个;2、DAC0832一个;3、OPAMP两个;4、数码管一个;5、按键开关一个;6、电阻、电感若干;四、实验原理#include <AT89X51.H>unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66}// 0 1 2 3 4unsigned char time1; //////延时函数参数////////////////////////////////////变量说明//////////////////////////////////////unsigned char time2;unsigned char time3;unsigned char count;unsigned char ms;////////////////////////////////////////函数说明////////////////////////////////void initial(void); ////初始化函数//////void initial_time0(void); //////定时器0初始化///////void anjian(void);////////////按键函数////void delay(unsigned char time1,time2,time3); ////延时函数////void disp(unsigned char count); /////静态显示子函数/////void delay1(char ms);void fangbo(void); //方波函数//void sanjiaobo(void); //三角波函数//void juchibo(void); //锯齿波函数//void tixingbo(void); //正弦波函数//void main (void){initial();while(1){anjian();}}/****************************************************************** *******//函数名称:void anjian(void)//函数说明:按键函数//函数功能:// 注意:******************************************************************* ******/void anjian(void){if(P3_7==0){delay(1,50,248);if(P3_7==0){count=1;disp(count);fangbo();}}while(P3_7==0);count=0;disp(count);anjian();}/****************************************************************** *******//函数名称:void fangbo(void)//函数说明:方波函数//函数功能:// 注意:******************************************************************* ******/void fangbo(void){while(1){unsigned char fangbo_1;fangbo_1+=8;if(fangbo_1>128&fangbo_1<256) {P0=0x00;}if(fangbo_1<128) {P0=0xff;}if(P3_7==0){delay(1,50,248);if(P3_7==0){ count=2;disp(count);sanjiaobo();}}while(P3_7==0);}}/****************************************************************** *******//函数名称:void sanjiaobo(void)//函数说明:三角波函数//函数功能:// 注意:******************************************************************* ******/void sanjiaobo(void){while(1){unsigned char sanjiaobo_2;if(sanjiaobo_2<=128){P0=sanjiaobo_2;}else{P0=255-sanjiaobo_2;}sanjiaobo_2+=5;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);}}/****************************************************************** *******//函数名称:void juchibo(void)//函数说明:锯齿波函数//函数功能:// 注意:******************************************************************* ******/void juchibo(void){while(1){unsigned char juchibo_3;if(juchibo_3<180) {P0=juchibo_3;}juchibo_3+=4;if(juchibo_3>=180) {juchibo_3=0x00;}if(P3_7==0){delay(1,50,248);if(P3_7==0){count=4;disp(count);tixingbo();}}while(P3_7==0);}}/****************************************************************** *******//函数名称:void tixingbo(void)//函数说明:梯形波函数//函数功能:// 注意:******************************************************************* ******/void tixingbo(void){while(1){unsigned char tixingbo_4;if(tixingbo_4<120){P0=tixingbo_4;}else if(tixingbo_4==120)delay1(1);else if(tixingbo_4<240){P0=240-tixingbo_4;}if(tixingbo_4==240){delay1(1);}if(tixingbo_4>240){tixingbo_4=0x00;}tixingbo_4+=10;if(P3_7==0){delay(1,50,248);if(P3_7==0){ count=0;disp(count);anjian();}}while(P3_7==0);}}/****************************************************************** *******//函数名称:void initial(void)//函数说明:初始化函数//函数功能:// 注意:******************************************************************* ******/void initial(void){P0=0xff;P1=0xff;P2=0xff;P3=0xff;}/****************************************************************** *******//函数名称:delay(unsigned char time1,time2,time3)//函数说明:延时函数//函数功能://入口参数:unsigned char time1,time2,time3//出口参数:// 注意:延时时间的计算:(time1*time2*time3*8us)ustime1,time2,time3可以不进行变量说明******************************************************************* ******/void delay(unsigned char time1,time2,time3){unsigned char i,j,k;for(i=time1;i>0;i--){ for(j=time2;j>0;j--){for(k=time3;k>0;k--);}}}/****************************************************************** *******//函数名称:disp(unsigned char count)//函数说明:静态显示子函数//函数功能://入口参数:unsigned char count//出口参数:// 注意:******************************************************************* ******/void disp(unsigned char count){P2=table[count];delay(1,5,248);}void delay1(char ms){char ti;while(ms--){for(ti=0;ti<16;ti++){}}}实验心得通过该课题的设计掌握以AT89S51为核心的单片机系统的软硬件开发过程和基本信号的产生原理、测量及误差分析方法,同时掌握函数发生器系统的设计流程;培养我们综合运用所学的基本知识、基本理论和基本技能的能力,学习解决一般工程技术和有关专业问题的能力,学习工程设计和科学研究的基本方法,完成对所学知识的综合训练。

相关主题