1、学习并使用keilC的C语言;
2、学习通过软件绘制原理图,并使用keilC软件形成的HEX文件运行;
3、实现利用单片机和8位D/A转换芯片共同实现方波、三角波、锯齿波、梯形波四种常见波形的生成。
4、进一步学习和使用软件,绘制实验原理图,生成PCB图; 5、核心单片机系统的软硬件开发流程;
6. 信号产生基本原理及函数发生器系统设计流程
2. 实验要求
设计低频信号发生器:
1、查阅相关资料并完成方案设计;
2、编写软件,使系统可以输出方波、三角波、锯齿波和梯形波; 波形频率均为1khz,双极性输出。
3、使用软件完成系统硬件设计并通过电规检验;
4、模拟实现;
5、绘制PCB图;
6. 撰写综合课程设计报告。
3. 设备列表
1. 一;
2. 一;
3. 两个运放;
4、数码管1个;
5、一键开关;
6、电阻、电感若干个;
4 实验原理
#
字符码表[]={0x3f,0x06,0x5b,0x4f,0x66}// 0 1 2 3 4
字符时间1; //////延时函数参数///////
///////////////////////////////变量说明////////////////// /// /////////////////////////////////////////////////
字符时间2;
字符时间3;
字符数;
字符女士;
//////////////////////////////////////////功能说明////// // //////////////////////////////////////////////////////////
无效(无效); ////初始化函数////
//无效(无效); //////定时器0初始化///////
无效(无效); ////////////按键功能////
无效延迟(字符时间1,时间2,时间3); ////延时函数////
无效显示(字符计数); /////静态显示子函数/////
无效(字符毫秒);
无效(无效); //方波函数//
无效(无效); //三角波函数//
无效(无效); //锯齿波函数//
无效(无效); //正弦波函数//
无效主(无效)
();
同时(1)
();
/******************************************************** ******************************
//函数名:void(void)
//函数说明:关键函数
//函数功能:
// 注意:
****************************************************** *************************/
无效(无效)
如果(P3_7==0)
{延迟(1,50,248);
如果(P3_7==0)
{计数=1;
显示(计数);
();
而(P3_7==0);
计数=0;
显示(计数);
();
/******************************************************** ******************************
//函数名:void(void)
//函数说明:方波函数
//函数功能:
// 注意:
****************************************************** *************************/
无效(无效)
同时(1)
字符;
+=8;
if(>128& {P0=0x00;}
如果({P0=0xff;}
如果(P3_7==0)
{延迟(1,50,248);
如果(P3_7==0)
{ 计数=2;
显示(计数);
();
而(P3_7==0);
/******************************************************** ******************************
//函数名:void(void)
//函数说明:三角波函数
//函数功能:
// 注意:
****************************************************** *************************/
无效(无效)
同时(1)
;
如果(=255)
{=0x00;}
如果(P3_7==0)
延迟(1,50,248);
如果(P3_7==0)
{计数=3;
显示(计数);
();
而(P3_7==0);
/******************************************************** ******************************
//函数名:void(void)
//函数说明:锯齿波函数
//函数功能:
// 注意:
****************************************************** *************************/
无效(无效)
同时(1)
;
如果({P0=;}
+=4;
if(>=180) {=0x00;}
如果(P3_7==0)
延迟(1,50,248);
如果(P3_7==0)
{计数=4;
显示(计数);
();
而(P3_7==0);
/******************************************************** ******************************
//函数名:void(void)
//函数说明:梯形波函数
//函数功能:
// 注意:
****************************************************** *************************/
无效(无效)
同时(1)
;
如果(
{P0=;}
(==120)
(1);
否则如果(
{P0=240-;}
如果(==240)
{(1);}
如果(>240)
=0x00;
+=10;
如果(P3_7==0)
{延迟(1,50,248);
如果(P3_7==0)
{ 计数=0;
显示(计数);
();
而(P3_7==0);
/******************************************************** ******************************
//函数名:void(void)
//函数说明:初始化函数
//函数功能:
// 注意:
****************************************************** *************************/
无效(无效)
P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff;
/******************************************************** ******************************
//函数名:delay(char time1, time2, time3)
//函数说明:延时函数
//函数功能:
//入口参数:char time1,time2,time3
//导出参数:
// 注:延迟时间计算:(time1*time2*time3*8us)us
time1、time2、time3 不需要是变量声明
****************************************************** *************************/
无效延迟(字符时间1,时间2,时间3)
我,j,k;
for(i=时间1;i>0;i--)
{ for(j=time2;j>0;j--)
for(k=time3;k>0;k--);
/******************************************************** ******************************
//函数名称:disp(字符计数)
//函数说明:静态显示子函数
//函数功能:
//入口参数:字符计数
//导出参数:
// 注意:
****************************************************** *************************/
无效显示(字符数)
P2=表[计数];
延迟(1,5,248);
(字符毫秒)
查蒂;
同时(毫秒--)
对于(ti=0;ti
实验经验
通过本课题的设计,掌握核心单片机系统的软硬件开发流程以及基本的信号产生原理、测量和误差分析方法,同时掌握函数发生器系统的设计流程; 培养我们综合运用所学基础知识和基本知识的理论和基本技能的能力,学习解决通用工程技术和相关专业问题的能力,学习工程设计和科学研究的基本方法,完成综合性的工作所学知识的培训。