完整版基于单片机的函数信号发生器汇编语言__键盘显示..

合集下载

(完整)单片机课设——多功能函数信号发生器(汇编),推荐文档

(完整)单片机课设——多功能函数信号发生器(汇编),推荐文档

沈阳工程学院┊┊课程设计设计题目:多功能信号发生器程序设计系别自控系班级学生姓名学号2009308103指导教师职称教授起止日期:2012 年1月2日起——至2013 年1月13日止沈阳工程学院课程设计任务书课程设计题目:多功能信号发生器程序设计系别自控系班级学生姓名学号2009308103指导教师职称教授课程设计进行地点:F422任务下达时间:2012 年 1 月 2 日起止日期:2012年1月2日起——至2012年1月13日止教研室主任2012 年1月13日批准多功能信号发生器的设计1.设计主要内容及要求编写多功能信号发生器程序。

要求:1)能够产生正弦信号、方波信号和三角波信号。

2)输出三种波形能够转换。

2.对设计论文撰写内容、格式、字数的要求(1).课程设计论文是体现和总结课程设计成果的载体,一般不应少于3000字。

(2).学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。

课程设计论文的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。

应做到文理通顺,内容正确完整,书写工整,装订整齐。

(3).论文要求打印,打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。

(4). 课程设计论文装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。

3.时间进度安排沈阳工程学院C8051F020单片机原理及应用课程设计成绩评定表中文摘要随着电子技术的飞快发展,单片机也应用得越来越广泛,基于单片机的智能仪器的设计技术不断成熟。

单片机构成的仪器具有高可靠性,高性价比。

单片机技术在智能仪表和自动化等诸多领域有了极为广泛的应用,并用到各种家庭电器,单片机技术的广泛应用推动了社会的进步。

利用单片机采用程序设计方法来产生波形,线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强等优点,而且还能对波形进行细微的调整,改良波形,易于程序控制。

基于单片机的函数信号发生器设的正文

基于单片机的函数信号发生器设的正文

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊目录第一章绪论 (1)第二章方案设计与论证 (4)2.1方案一: (4)2.2方案二: (4)2.3方案比较 (4)第三章专用器件说明 (6)3.1 SPCE061单片机介绍 (6)3.1.1性能: (6)3.1.2 应用领域 (6)3.1.3 结构概览 (7)3.1.4通用I/O口的使用: (7)3.1.5 D/A转换 (8)3.1.6 IDE开发平台的使用 (9)3.1.7 PWM输出 (10)3.1.8 SPCE061A的时钟和定时器/计数器 (10)3.2 DM-1602显示器 (14)3.3 运算放大电路 (16)3.3.1 集成运放的电路结构和特点 (16)3.3.2 集成运放电路的组成及各部分的作用 (16)3.3.3 运算放大器电压传输特性 (17)3.3.4集成运放的主要性能指标 (18)第四章系统的硬件电路设计 (19)4.1系统框图 (19)4.2 SPCE061A基本工作电路设计 (19)4.3键盘电路设计 (20)4.4显示电路设计 (21)4.4信号输出电路设计 (22)第五章软件设计 (22)5.1主程序流程图 (22)5.2正弦波信号形成方法 (25)5.3三角波、锯齿波的形成 (26)5.4方波的形成和实现 (26)总结 (27)致谢 (28)参考文献 (29)附录1 程序 (29)第一章绪论测量仪器从宏观上可分为两大类,即激励和检测,激励仪器主要是各类信号发生器。

信号发生器按工作原理可分为:调谐信号发生器、锁相和合成信号发生器。

(1) 调谐信号发生器是由调谐振荡器构成。

传统调谐信号发生器都是由调谐振荡器和统调的调幅放大器(输出放大器)加上一些指示电路构成。

这种信号发生器结构复杂、频率范围窄,而且可靠性、稳定性较差,但其价格低廉。

随着半导体器件的发展,其性能有所改善。

(2) 锁相信号发生器是由调谐振荡器通过锁相的方法获得输出信号频率的信号发┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊生器。

基于单片机的函数信号发生器的设计与实现

基于单片机的函数信号发生器的设计与实现

基于单片机的函数信号发生器的设计与实现一、引言函数信号发生器是一种用于产生不同形式的函数信号的仪器。

在电子领域中,经常需要使用函数信号进行信号调试、测试和仿真。

传统的函数信号发生器通常较为昂贵,而基于单片机的函数信号发生器则能够以较低的成本实现,并且具有良好的可调节性和稳定性。

本文将介绍基于单片机的函数信号发生器的设计与实现。

二、设计原理基于单片机的函数信号发生器主要由以下几部分组成:单片机控制模块、波形发生模块、幅度控制模块、频率控制模块和显示模块。

其中,单片机控制模块采用单片机进行控制和信号生成,波形发生模块用于产生不同形式的函数信号,幅度控制模块用于调节信号的幅度,频率控制模块用于调节信号的频率,显示模块用于显示当前的信号参数。

三、基本功能和设计过程1.单片机控制模块的设计:选择合适的单片机,搭建合适的电路,并进行相应的编程。

具体的控制程序需根据单片机型号和要求进行设计和实现。

2.波形发生模块的设计:选择合适的波形发生电路,包括正弦波、方波、三角波等。

这些波形的发生可以采用基于单片机的数字方法生成。

3.幅度控制模块的设计:通过调节电路中的阻值来实现对信号幅度的调节。

可以使用模拟方法或者数字方法实现。

4.频率控制模块的设计:通过调节电路中的电容或者电阻来实现对信号频率的调节。

可以使用模拟方法或者数字方法实现。

5.显示模块的设计:选择合适的显示设备,如LCD液晶显示屏,将信号的参数通过单片机发送到显示设备上进行显示。

四、设计实例以基于PIC16F877A单片机的函数信号发生器为例,简要介绍其设计与实现步骤。

1.单片机控制模块的设计:选择PIC16F877A单片机,并搭建相应的电路。

使用C语言编写程序,根据用户的输入和要求,通过PWM或DAC控制输出信号的幅度和频率。

2.波形发生模块的设计:根据需要,选择合适的波形发生电路进行设计。

可使用PIC16F877A的PWM输出产生正弦波,方波和三角波等。

信号发生器 (正弦波,方波,三角波)51单片机 C语言代码

信号发生器 (正弦波,方波,三角波)51单片机 C语言代码

/**************************************//* 信号发生器(正弦波,方波,三角波)*//*************************************/#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit cs=P2^0; //tlc5615片选端口sbit clk=P2^1; //tlc5615时钟线sbit din=P2^2; //tlc5615传输端口sbit key1=P1^0;sbit key2=P1^1; //按键的单片机接口uchar keydat;uchar flag; //波形发生终止信号的标志位一旦被置零立马停止发信号uchar flagsqu; //方波高低电平控制为(运用定时器1中断控制)uchar m,num;uchar dat=0xff;uchar code tosin[141]={ //正弦波的编码0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,0x7f,0x80,0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00};void delay(uchar z) //延时函数{uchar x,y;for(x=0;x<110;x++)for(y=z;y>0;y--);}void prepare() //tlc5615的初始化{cs=1;din=1;clk=0;cs=0; //cs的上升沿和下降沿必须在clk 为低时进?}/* 用中断来产生方波void Squtranslator(){TR1=1; //启动定时器1 控制高低电平的持续时间占空比do{do{_wave=0;}while((!flagsqu) && flag==1);//如果一旦终止信号的//产生可以立马退出循环flagsqu=0;do{_wave=1;}while((!flagsqu) && flag==1);flagsqu=0;}while(flag);flag=1;TR1=0;}*/void Squtranslator() //方波函数{uchar j;uchar dat1=0x7f;while(flag){do{prepare();dat=dat1;for(j=0;j<12;j++){din=(bit)(dat>>7); //将数据的最高位赋给dinclk=1;dat=dat<<1; //一位位的传输clk=0;}cs=1; //cs的上升沿和下降沿必须在clk 为低时进行delay(200); //使高低电平持续一段时间if(dat1==0)dat1=0x7f; //完成了0和0x7f之间的替换elsedat1=0;}while(flag);}}void Tratranslator() //锯齿波的发生函数{uchar j;uchar dat1=0x7f;while(flag){do{prepare();dat=dat1;for(j=0;j<12;j++){din=(bit)(dat>>7); //将数据的最高位赋给dinclk=1;dat=dat<<1; //一位位的传输clk=0;}cs=1; //cs的上升沿和下降沿必须在clk 为低时进行delay(2); //稍加延时dat1--;}while(flag && dat1); //一旦有终止信号就可以停止do{prepare();dat=dat1;for(j=0;j<12;j++){din=(bit)(dat>>7); //将数据的最高位赋给dinclk=1;dat=dat<<1; //一位位的传输clk=0;}cs=1; //cs的上升沿和下降沿必须在clk 为低时进行delay(2); //稍加延时dat1++;}while(flag && (!(dat1==0x7f)));}}void Sintranslator(uchar wave[],uchar num )//正弦波的转换函数{uchar i,j;uchar dat1;do{for(i=0;i<num;i++){prepare();dat1=wave[i]; //打开片选开始工作for(j=0;j<12;j++){din=(bit)(dat1>>7); //将数据的最高位赋给dinclk=1;dat1=dat1<<1; //一位位的传输clk=0;if(flag==0)break;}cs=1; //cs的上升沿和下降沿必须在clk为低时进行delay(1); //稍加延时if(flag==0)break;}}while(flag); //等待控制键的暂停}void keyscan() //切换功能按键返回键值函数{uchar i;for(i=0;i<4;i++){if(key1==0){delay(10);if(key1==0){keydat++;do{}while(!key1); //松手检测if(keydat==4)keydat=1;//加满回零处理}}}}void keycountrl() //切断输出控制函数{if(key2==0){delay(10);if(key2==0){flag=0;do{}while(!key2); //松手检测}}}void main (){uchar temp;TMOD=0x01; //确定定时器的工作方式TH0=(65536-50000)/256; //给定时器0赋予初值TL0=(65536-50000)%256;EA=1; //开总中断ET0=1; //开启定时器0中断TR0=1;while(1){do{switch(keydat){case 1:flag=1;do{Sintranslator(tosin,141);}while(flag);break;case 2: flag=1;do{Tratranslator();}while(flag);break;case 3: flag=1;do{Squtranslator();}while(flag);break;default:break;}}while(flag);temp=keydat; //装载键值while(keydat==temp); //在这里等待键值的改变}}void Time0() interrupt 1{TH0=(65536-50000)/256; //定时器0用来扫描按键不断地扫描dTL0=(65536-50000)%256;num++;if(num==4){keyscan();keycountrl();num=0;}}。

基于单片机的函数信号发生器的设计与实现

基于单片机的函数信号发生器的设计与实现
本设计中要求用液晶显示器显示输出信号的频率和波形的性质等信息而这些信息在信号输出的时候是需要随按键的输入而时刻改变的所以设计中选用液晶显示器lcd1602它可以显示字母及其他符号这样保证了波形的性质以及频率能够完全显示出来由单片机的p00p07口输出显示数据
基于单片机的函数信号发生器 的设计与实现
姓名:刘作东 班级:电子1071班
这部分计算位数较多,不适合用单片机编程来计算计数初值, 所以本设计中将各频率的计数初值算出,让单片机按控制命令来查 表控制频率。 正弦波和三角波的频率控制方法都与上述方法相同,而方波的
频率控制是半周期计数,经过半周期只需改变输出为最大或最小电
平即可。
2 占空比控制
当切换按键切换到方波输出的时候,这时波形的占空比可以进
学号:1071205142
专业:电子信息工程 指导老师:庄立运
一、文献综述
信号发生器亦称函数发生器,主要作为实验用信号源,是现今 各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市 场上常见的波形发生器多为纯硬件的搭接而成,波形种类多为锯齿、 正弦、方波、三角等波形。用分立元件组成的函数发生器,通常是 单函数发生器且频率不高,其工作不很稳定,不易调试;用集成芯片的 函数发生器,可达到较高的频率和产生多种波形信号,但电路较为复 杂且不易调试。利用单片集成芯片的函数发生器,能产生多种波形, 达到较高的频率,且易于调试;利用专用直接数字合成DDS芯片的函数 发生器,能产生任意波形并达到很高的频率,但成本较高。
字量,再由D/A转换器将数字量转化为模拟电流输出,通过运放转化为
模拟电压输出。 因为D/A数模转换器的最大输出电压是由其输入的基准电压来控制的,
所以只要能控制D/A的基准电压便可以控制输出幅度,实现幅度可调。

基于51单片机的信号发生器-完整电路、程序.

基于51单片机的信号发生器-完整电路、程序.
曹晖 0945531215 电子信息工程二班
摘要
本文以STC89C51单片机为核心设计了一个低频函数信号发生器。信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出自定义波形,如正弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的频率和幅度在一定范围内可任意改变。波形和频率的改变通过软件控制,幅度的改变通过硬件实现。本文介绍了波形的生成原理、硬件电路和软件部分的设计原理。本系统可以产生最高频率798.6HZ的波形。该信号发生器具有体积小、价格低、性能稳定、功能齐全的优点。
2.1.2改变幅度方案:
将输出电压通过一个运算放大器的放大挺简单。
2.2工作原理
数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及、数模转换及波形输出、放大电路等部分,即可构成所需的波形发生器,其信号发生器构成系统框图如下图所示。
主程序流程图
3.2.2中断服务程序:
本程序中两个外部中断分别起到了控制波形和频率的作用。在程序中还加入了消抖部分。
4.软件仿真
4.1系统仿真波形:
5设计总结
基于单片机的信号发生器设计,这个信号发生器的设计中涉及到一个典型的控制过程。通过单片机控制一个模数转换器DAC0832产生所需要的电流,然后使用运算放大器LM324可以将其电流输出线性地转换成电压输出,再将电压经过运算放大器的放大,可以得到足够幅度的信号。通过程序的控制,可以产生一系列有规律的波形。这样一个信号发生装置在控制领域有相当广泛的应用范围。

基于单片机的函数信号发生器

基于单片机的函数信号发生器

基于单片机的函数信号发生器Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】基于51单片机的函数信号发生器设计方案利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生10Hz—10kHz的波形。

通过键盘来控制四种波形的类型选择、拨码开关控制频率的变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。

设计要求1)、利用单片机采用软件设计方法产生四种波形2)、四种波形可通过键盘选择3)、波形频率可调4)、需显示波形的种类及其频率方案设计1 信号发生电路方案通过单片机控制D/A,输出四种波形。

此方案虽输出的波形不够稳定,抗干扰能力弱,不易调节,但此方案电路简单、成本低。

因此选用此方案。

2 单片机的选择AT89C52单片机是一种高性能8位单片微型计算机。

它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。

3 显示方案采用LCD液晶显示器1602。

其功率小,效果明显,显示编程容易控制,可以显示字母。

4 键盘方案论证采用独立式键盘。

独立式键盘具有硬件与软件相对简单的特点,其缺点是按键数量较多时,要占用大量口线。

总体系统设计该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。

将设计任务分解为按键电路、液晶显示电路等模块。

下图为系统的总体框图:总体方框图硬件实现及单元电路设计1单片机最小系统的设计AT89C52是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。

基于单片机的智能函数信号发生器

基于单片机的智能函数信号发生器

智能应用1 智能任意信号发生器的设计背景在电子产品调试和测量领域,常常需要有信号种类多、精度高且频率、幅度等信号参数方便可调的信号源。

尤其随着电子、通信、网络行业的发展,频段的分布日趋密集,更要求有高精度、高可靠性的信号源。

信号发生器则是一种常用的信号源,广泛地应用于电子电路调试、通信测试、控制系统仿真和教学实验测试等领域。

但是目前的产品体积大、电路复杂、价格高,无法满足用户对成本和便携性要求高的波形发生器的需求。

本设计是以多种函数信号产生为目的,用单片机作为中央处理控制器,函数信号经数学运算解析成程序算法,直接由软件程序产生波形信号数据送给数摸转换输出,可以用来给测试电路及设备提供波形,实现智能化波形发生器的作用。

2 智能任意信号发生器的总体设计本设计是将目前信号发生器产品多而复杂的外围功能部件整合到具有模数混合功能设计的的单片机内部电路中,提高该仪器仪表的集成度和可靠性,同时降低了系统的成本,利用单片机片丰富的内部资源和功能部件增强仪器的性能,因此,该方案在提高仪器仪表可靠性、实用性及性价比方面取得非常好的效果。

利用单片机作为波形存储及控制元件,运用软件函数运算法产生多种波形,通过键盘电路控制波形,实现高精度、任意波形、便携式、智能化信号发生器。

■2.1 总体硬件设计方案及分框图介绍2.1.1 智能任意信号发生器设计方案该信号发生器的主要技术指标如下:频率范围:50Hz~10MHz;输出波形:正弦波、三角波,脉冲(占空比可调),梯形波,DC信号等;占空比调节范围:各输出波形均可在25%~75%范围内调节;输出信号幅度:10V(p-p);输出信号参考电平:-5V~+5V;输出阻抗:50Ω~100Ω。

2.1.2 分框图的简介电源:将采用AS1117等电源芯片提供单片机和外围电路的工作电压。

单片机:选用C8051F020用来将编写的程序存储在芯片中。

存储器: 单片机中的读写存储单元。

D/A:将数字信号转换成模拟信号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机的函数信号发生器完整版汇编__键盘显示摘要本文介绍一种用AT89C51单片机构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。

文章给出了源代码,通过仿真测试,其性能指标达到了设计要求。

关键词:单片机;DAC;信号发生器目录摘要............................................................... 目录............................................................... 第一章绪论..........................................................1.1单片机概述......................................................1.2信号发生器的分类................................................1.3研究内容........................................................ 第二章方案的设计与选择..............................................2.1方案的比较......................................................2.2设计原理........................................................2.3设计思想........................................................2.4设计功能........................................................ 第三章硬件设计......................................................3.1硬件原理框图....................................................3.2主控电路........................................................3.3数、模转换电路..................................................3.4按键接口电路....................................................3.5时钟电路........................................................3.6显示电路........................................................ 第四章软件设计......................................................4.1程序流程图...................................................... 第五章总结与展望.................................................... 致谢............................................................... 参考文献............................................................. 附录1电路原理图..................................................... 附录2 源程序......................................................... 附录 3 器件清单......................................................第一章绪论1.1单片机概述随着大规模集成电路技术的发展,中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、(I/O)接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。

单片机具有体积小、成本低,性能稳定、使用寿命长等特点。

其最明显的优势就是可以嵌入到各种仪器、设备中,这是其他计算机和网络都无法做到1.2信号发生器的分类信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。

按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。

按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。

按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。

前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。

后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。

1.3 研究内容本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。

根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。

在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。

第二章方案的设计与选择2.1 方案的比较方案一:采用单片函数发生器(如8038),8038可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。

方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。

方案三:采用单片机编程的方法来实现。

该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。

此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。

鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。

它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。

2.2 设计原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。

89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图2.1所示。

图2.1信号发生器原理框图89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。

当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。

2.3 设计思想(1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。

(2)将一个周期的信号分离成256个点(按X 轴等分),每两点之间的时间间隔为∆T ,用单片机的定时器产生,其表示式为:∆T=T/256。

如果单片机的晶振为12MHz ,采用定时器方式0,则定时器的初值为:X=213—∆T/T mec (2.1)定时时间常数为:TL =(8192—∆T )/MOD256(2.2)TH=(8192∆T)/256(2.3)MOD32表示除32取余数(3)正弦波的模拟信号是D/A 转换器的模拟量输出,其计算公式为:Y=(A/2sin ∆t )+A/2 (其中A=VREF)(2.4) ∆t=N ∆T (N=1~256) (2.5)那么对应着存放在计算机里的这一点的数据为:(2.6) (4)一个周期被分离成256个点,对应的四种波形的256个数据存放在以TA2.4 设计功能(1)本方案利用8155扩展8个独立式按键,6个LED 显示器。

其中“S 0”号键代表方波输出,“S 1”号键代表正弦波输出,“S 2”号键代表三角波输出,“S3” 号键代表锯齿波输出。

(2)“S 4”号键为10Hz 的频率信号,“S 5”号键为100Hz 的频率信号,“S 6”号键为500Hz 的频率信号,“S 7”号键为1KHz 的频率信号,6个LED 显示器输出信号的频率值,选用共阳极LED 。

(3)利用两片DAC0832实现幅度可调的信号源,(其中一片用来调节幅度,(sin 1)255(255)/2t Di Y A ∆+⨯=⨯=另外一片用来实现信号源的输出)。

(4)频率范围:10~1000Hz。

(5)输出波形幅度为0~5V第三章硬件设计3.1 硬件原理框图硬件原理方框图如图3.1所示。

图3.1硬件原理框.2 主控电路AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。

在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。

模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。

中断系统是使处理器具有对外界异步事件的处理能力而设置的。

当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。

在波形发生器中,只用到片内定时器/计数器溢出时产生的中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形[6]。

相关文档
最新文档