C51单片机的波形发生器
单片机波形发生器频率调节
![单片机波形发生器频率调节](https://img.taocdn.com/s3/m/ebc4f352a9114431b90d6c85ec3a87c241288a40.png)
单片机波形发生器频率调节
单片机波形发生器是一种能够生成各种波形(如方波、三角波、锯齿波、正弦波等)的设备,其频率调节通常通过软件编程实现。
以下是一个基于单片机波形发生器的频率调节的基本过程:
1. 初始化单片机:首先,需要对单片机进行初始化,包括设置时钟、I/O端口、中断等。
2. 编写波形生成程序:根据需要生成的波形类型,编写相应的程序。
例如,生成正弦波需要计算每个采样点的正弦值,生成方波则需要在一个周期内输出高低电平。
3. 频率计算:根据所要生成的波形的频率,计算出每个周期内需要多少个时钟周期,以及每个时钟周期内需要多长时间。
4. 定时器设置:在单片机中设置一个定时器,用于定时产生中断,从而控制波形的输出。
定时器的时钟源可以是系统时钟、外部时钟或者定时器自身产生的时钟。
5. 中断服务程序:当定时器达到预设的计数值时,将产生中断。
在中断服务程序中,根据波形生成程序的指令,改变输出波形的电平状态。
6. 输出波形:通过单片机的I/O端口,输出波形信号。
如果需要,可以通过DAC(数字模拟转换器)将数字信号转换为模拟信号。
7. 频率调节:通过改变定时器的计数值或者波形生成程序的参数,可以实现波频率的调节。
例如,增加计数器的值将降低输出频率,减少计数器的值则提高输出频率。
8. 测试与校准:对生成的波形进行测试,确保其频率和形状符合要求。
如有必要,进行校准。
在实际应用中,可能还需要考虑波形的非线性失真、噪声、电源波动等因素,这些因素都可能影响波形的质量。
因此,频率调节不仅仅是简单的数字操作,还需要结合实际的硬件特性进行细致的调整。
基于51单片机的波形发生器的设计讲解
![基于51单片机的波形发生器的设计讲解](https://img.taocdn.com/s3/m/82992babba0d4a7302763ad7.png)
目录1 引言 (1)1.1 题目要求及分析 (1)1.1.1 示意图 (1)1.2 设计要求 (1)2 波形发生器系统设计方案 (2)2.1 方案的设计思路 (2)2.2 设计框图及系统介绍 (2)2.3 选择合适的设计方案 (2)3 主要硬件电路及器件介绍 (4)3.1 80C51单片机 (4)3.2 DAC0832 (5)3.3 数码显示管 (6)4 系统的硬件设计 (8)4.1 硬件原理框图 (8)4.2 89C51系统设计 (8)4.3 时钟电路 (9)4.4 复位电路 (9)4.5 键盘接口电路 (10)4.7 数模转换器 (11)5 系统软件设计 (12)5.1 流程图: (12)5.2 产生波形图 (12)5.2.1 正弦波 (12)5.2.2 三角波 (13)5.2.3 方波 (14)6 结论 (16)主要参考文献 (17)致谢....................................................... 错误!未定义书签。
1引言1.1题目要求及分析题目:基于51单片机的波形发生器设计,即由51单片机控制产生正弦波、方波、三角波等的多种波形。
1.1.1示意图图1:系统流程示意图1.2设计要求(1) 系统具有产生正弦波、三角波、方波三种周期性波形的功能。
(2) 用键盘控制上述三种波形(同周期)的生成,以及由基波和它的谐波(5次以下)线性组合的波形。
(3) 系统具有存储波形功能。
(4) 系统输出波形的频率范围为1Hz~1MHz,重复频率可调,频率步进间隔≤100Hz,非正弦波的频率按照10次谐波来计算。
(5) 系统输出波形幅度范围0~5V。
(6) 系统具有显示输出波形的类型、重复频率和幅度的功能。
2波形发生器系统设计方案设计并制作一个波形信号发生器,能够产生正弦波、方波、三角波的波形,其中不使用DDS和一些专用的波形产生芯片。
并让系统的频率范围在1Hz~1MHZ可调节,在频率范围在1HZ~10KHz时,步进小于或等于10Hz,在频率范围在10KHz~1MHz时,步进小于或等于100Hz,并且电压在0~5V范围,能够实时的显示波形的类型、频率和幅值。
单片机的三角波信号发生器设计
![单片机的三角波信号发生器设计](https://img.taocdn.com/s3/m/1903e693ed3a87c24028915f804d2b160b4e8674.png)
单⽚机的三⾓波信号发⽣器设计基于51单⽚机的三⾓波信号发⽣器设计【内容摘要】单⽚机是⼀种集成在电路芯⽚,是采⽤超⼤规模集成电路技术把具有数据处理能⼒的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O⼝和中断系统、定时器/计时器等功能(可能还包括显⽰驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到⼀块硅⽚上构成的⼀个⼩⽽完善的计算机系统。
单⽚机我感觉很重要,现在⾃动控制在各个领域被⼴泛应⽤,这少不了单⽚机的功劳。
⽬前使⽤的信号发⽣器是函数信号发⽣器,且特殊波形发⽣器的价格昂贵。
所以使⽤我设计单⽚机构成的发⽣器,可产⽣三⾓波、⽅波、正弦波等多种特殊形和任意波,波形的频率可以⽤程序控制、在单⽚机上外围器件距阵式键盘,通过其控制波形并选择,并⽤显⽰器显⽰频率⼤⼩。
在单⽚机的输出端⼝进⾏转换,再通过运放进⾏波形调整,最后输出波在⽰波器上显⽰。
本设计性能优越、价格低廉、结构紧凑、线路简单,希望能在以后产品上能⼴泛的应⽤。
【关键词】单⽚机三⾓波信号发⽣器性能优越⽬录:第⼀章绪论1.1课题背景……………………………………….3--41.2课题意义 (5)第⼆章系统设计2.1三⾓波的产⽣ (6)2.2 设计思路 (7)2.3结构模块划分 (8)第三章硬件电路的设计3.1基本原理………………………………………………………9--103.2 显⽰电路 (11)3.3、D/A电路 (12)第四章软件设计...........................................................................13--16 论⽂总结..............................................................................17--18 参考⽂献 (19)第⼀章绪论1.1课题背景单⽚机诞⽣于20世纪70年代末,经历了SCM、MCU、soc三⼤阶段。
51单片机——增强型PWM,使用自带PWM发生器
![51单片机——增强型PWM,使用自带PWM发生器](https://img.taocdn.com/s3/m/54526e02c4da50e2524de518964bcf84b9d52d71.png)
51单片机——增强型PWM,使用自带PWM发生器0. 序之前用定时器做了模拟PWM输出,得到的1k左右波形还行,到10k往上波形就特别难看,又是跳变又是长短不一。
后来在参考手册上面看到stc15w4k系列自带pwm波形发生器,于是整了好久写出来了。
今天因为业务需求要改代码,回头一看,好家伙,都不知道自己写的啥了。
看了一会儿想起来,于是有了此文。
1. 简介如图,如下介绍,他直接把PWM输出到IO口上面,我使用的是这两个,于是就用了PWM3和PWM2_2两个。
2. 分析占坑,今天还要重构代码,改很多东西,暂时不分析了(2021.6.2)。
3. 代码代码比较简单,我是照着这个写的,XDM自己去瞅瞅啊,我当时看了一早上才看明白。
1.#include <STC15.H> //52头文件2.#include <PWM.H>3.4.u8 Tcount=0; //一个PWM周期内的:周期计数,占空比,方向5.sbit PWM = P2^1;//PWM4口6.sbit PWM2 = P2^7; //PWM2口7.sbit NPWM1 =P5^4; //关闭PWM异常口8.sbit NPWM2 =P5^4; //关闭PWM异常口9.void setPWMWide(u8 Wide); //设置脉宽10.11.#define CYCLE 0x800L//5khz //定义PWM周期(最大值为32767)12.#define DUTY1 20 //定义占空比为20%13.#define DUTY2 30 //定义占空比为30%14.#define DUTY3 50 //定义占空比为50%15.16.//主函数17.void InitPWM()18.{19.InterruptInit();//初始化中断配置20.}21.22.void setPWMWide(u8 Wide)23.{24.P_SW2 |= 0x80; //使能访问XSFR25.PWMIF=0x00;26.PWMFDCR = 0x00; //关闭PWM异常检测,P5.4和P5.5在IIC中使用,如果不关闭会一直进入异常导致无法设置PWM占空比27.PWMCFG = 0x00; //配置PWM的输出初始电平为低电平28.PWMCKS = 0x00; //选择PWM的时钟为Fosc/(0+1)29.PWMC = CYCLE; //设置PWM周期30.31.//板子PWM4 芯片PWM2_2 P2.732.// PWM2T1 = 0x0000; //设置PWM2第1次反转的PWM计数33.// PWM2T2 = CYCLE * DUTY / 100; //设置PWM2第2次反转的PWM计数34.PWM2T1 = 0x0000; //设置PWM2第1次反转的PWM计数35.PWM2T2 = CYCLE * (Wide) / 100; //设置PWM2第2次反转的PWM计数36.PWM2CR |= 0x08; //选择PWM2输出到P2.7,不使能PWM2中断37.38.PWM3T1 = 0x0000; //设置PWM2第1次反转的PWM计数39.PWM3T2 = CYCLE * (Wide) / 100; //设置PWM2第2次反转的PWM计数40.//占空比为(PWM2T2-PWM2T1)/PWMC41.PWM3CR = 0; //选择PWM2输出到P2.142.43.//使能44.PWMCR = 0x03; //使能PWM信号输出45.PWMCR |= 0x80; //使能PWM模块46.P_SW2 &= ~0x80;47.48.}49.50.void SetPWM(u8 level) //设置风扇等级 1 2 3 4是自动不用管风速51.{52.// PutChar(speedFlag);53.if(level==1) //1是9.8k54.{55.setPWMWide(DUTY1);56.}57.else if(level==2)58.{59.setPWMWide(DUTY2);60.}61.else if(level==3)62.{63.setPWMWide(DUTY3);64.}65.66.}67.68.69.//中断初始化配置70.void InterruptInit()71.{72.73.P2M1 &= 0<<1; //PWM4 P2.1 设置推挽74.P2M0 |= 1<<1;75.P2M1 &= 0<<7; //PWM4 P2.7 设置推挽76.P2M0 |= 1<<7;77.78.PWM=0;79.PWM2=0;80.81.P_SW2 |= 0x80; //使能访问XSFR82.PWMIF=0x00;83.PWMFDCR = 0x00; //关闭PWM异常检测,P5.4和P5.5在IIC中使用,如果不关闭会一直进入异常导致无法设置PWM占空比84.PWMCFG = 0x00; //配置PWM的输出初始电平为低电平85.PWMCKS = 0x00; //选择PWM的时钟为Fosc/(0+1)86.PWMC = CYCLE; //设置PWM周期87.88.//板子PWM4 芯片PWM2_2 P2.789.PWM2T1 = 0x0000; //设置PWM2第1次反转的PWM计数90.PWM2T2 = CYCLE * DUTY1 / 100; //设置PWM2第2次反转的PWM计数91.//占空比为(PWM2T2-PWM2T1)/PWMC92.PWM2CR |= 0x08; //选择PWM2输出到P2.7,不使能PWM2中断93.94.//板子PWM2 芯片PWM3 P2.195.PWM3T1 = 0x0000; //设置PWM2第1次反转的PWM计数96.PWM3T2 = CYCLE * DUTY1 / 100; //设置PWM2第2次反转的PWM计数97.//占空比为(PWM2T2-PWM2T1)/PWMC98.PWM3CR = 0; //选择PWM2输出到P2.199.100.//使能101.PWMCR = 0x03; //使能PWM信号输出102.PWMCR |= 0x80; //使能PWM模块103.P_SW2 &= ~0x80;104.105.}。
单片机波形发生器
![单片机波形发生器](https://img.taocdn.com/s3/m/4798baef81c758f5f61f6756.png)
前言波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。
函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。
在 70 年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。
这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。
同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。
在 70 年代后,微处理器的出现,可以利用处理器、A/D/和 D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。
这时期的波形发生器多以软件为主,实质是采用微处理器对 DAC的程序控制,就可以得到各种简单波形。
90 年代末,出现几种真正高性能、高价格的函数发生器、但是HP公司推出了型号为 HP770S的信号模拟装置系统,它由 HP8770A任意波形数字化和HP1776A波形发生软件组成。
HP8770A实际上也只能产生8 中波形,而且价格昂贵。
不久以后,Analogic公司推出了型号为 Data-2020的多波形合成器,Lecroy 公司生产的型号为9100 的任意波形发生器等。
到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz 的DDS 芯片,同时也推动了函数波形发生器的发展,2003 年,Agilent的产品 33220A能够产生17种波形,最高频率可达到 20M,2005 年的产品N6030A 能够产生高达 500MHz的频率,采样的频率可达 1.25GHz。
单片机课程设计———波形发生器
![单片机课程设计———波形发生器](https://img.taocdn.com/s3/m/6a14fa3f581b6bd97e19ea31.png)
课程设计任务书题目波形发生器专业、班级学号姓名主要内容:设计一个产生各种波形的波形发生器基本要求:利用单片机P1.0引脚输出频率范围1Hz – 1000Hz的正弦波、方波、三角波、梯形波、锯齿波,并用示波器观察。
目录一、设计目的及意义 ........................................................................... - 3 -1.1设计目的 (3)1.2设计意义 (3)二、方案论证 ....................................................................................... - 3 -2.1设计要求 (3)2.2方案论证 (4)三、硬件电路设计 ............................................................................... - 4 -3.1设计思路、元件选型 (4)3.2原理图 (5)3.3主要芯片介绍 (5)3.4硬件连线图 (8)四、软件设计 ....................................................................................... - 9 -4.1锯齿波的产生过程 (10)4.2梯形波的产生过程 (11)4.3三角波的产生过程 (13)4.4方波的产生过程 (14)4.5正弦波的产生过程 (15)五、调试与仿真 ................................................................................. - 16 -六、总结.............................................................................................. - 19 -七、参考文献: ................................................................................. - 19 -一、设计目的及意义1.1设计目的(1)利用所学单片机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、提高我们的综合应用能力。
基于51单片机的波形发生器设计报告
![基于51单片机的波形发生器设计报告](https://img.taocdn.com/s3/m/eee241201fd9ad51f01dc281e53a580217fc504b.png)
基于51单片机的波形发生器设计报告波形发生器是一种电子设备,用于产生各种不同类型和频率的电信号波形。
基于51单片机的波形发生器设计是一种常用的工程设计。
下面是一个关于基于51单片机的波形发生器设计的报告,详细介绍了设计的原理、步骤、电路、程序和性能。
一、设计原理:二、设计步骤:1.确定波形发生器的输出频率范围和分辨率要求。
2.选择适当的定时器/计数器模块来实现频率的计时和控制。
3.设计电路,包括定时器/计数器模块、晶振、滤波电路和输出接口等。
4.编写程序,配置定时器/计数器模块的工作模式、计数值和中断服务程序。
5.调试和测试电路和程序,确保波形发生器正常工作并满足设计要求。
三、电路设计:1.定时器/计数器模块:选择一个合适的定时器/计数器模块,如51单片机的定时器/计数器T0或T1、根据设计要求,设置工作模式、计数器模式和计数值。
2.晶振:选择适当的晶振频率,一般为11.0592MHz,将晶振连接到单片机的晶振引脚。
3.滤波电路:根据需要,设计一个滤波电路来滤除不需要的高频噪声和杂散信号。
4.输出接口:设计一个输出接口电路来连接单片机和外部电路,使用电平转换电路将单片机的低电平(0V)输出转换为所需的电平电压。
四、程序设计:1.配置定时器/计数器模块的工作模式和计数值,设置中断服务程序。
2.在中断服务程序中,根据设计要求生成矩形波信号,并将信号输出到输出端口。
3.在主程序中,初始化单片机和定时器/计数器模块,使波形发生器开始工作。
4.在主循环中,可以设置按键输入来改变输出频率,通过调整计数值来实现不同的频率输出。
五、性能评估:1.输出频率范围:根据设计要求,测试波形发生器的最低和最高输出频率是否在设计范围内。
2.分辨率:对于指定频率范围,测试波形发生器的输出频率的分辨率,即最小可调节的频率。
3.稳定性:测试波形发生器的输出信号的稳定性和准确度,是否有漂移和偏差。
4.噪声:测试波形发生器的输出信号是否有杂散噪声和幅度波动。
函数波形发生器实训报告
![函数波形发生器实训报告](https://img.taocdn.com/s3/m/aed746f1d0f34693daef5ef7ba0d4a7302766cc4.png)
一、实训背景函数波形发生器是一种能够产生正弦波、方波、三角波等多种周期性波形的电子设备。
在现代电子技术中,波形发生器被广泛应用于通信、信号处理、自动控制等领域。
本实训旨在通过设计和实现一个基于51单片机的函数波形发生器,提高学生对单片机应用系统的设计与实现能力。
二、实训目标1. 掌握51单片机的基本原理和编程方法;2. 了解DAC0832数字模拟转换器的工作原理;3. 学会使用LM324运算放大器进行信号处理;4. 设计并实现一个能够产生正弦波、方波、三角波等多种周期性波形的函数波形发生器。
三、实训内容1. 硬件设计(1)51单片机:作为主控单元,负责控制整个系统的运行。
(2)DAC0832:将51单片机输出的数字信号转换为模拟信号。
(3)LM324运算放大器:对模拟信号进行放大、滤波等处理。
(4)电阻、电容、二极管等元件:构成滤波电路、限幅电路等。
2. 软件设计(1)正弦波发生器:采用查表法实现,将正弦波数据存储在单片机的存储器中,通过定时器产生中断,不断读取数据,经DAC0832输出。
(2)方波发生器:采用比较法实现,通过改变比较器的阈值,使输出波形在0和5V之间切换。
(3)三角波发生器:采用积分法实现,通过不断改变积分器的输入电压,使输出波形在0和5V之间变化。
3. 系统集成与调试将硬件电路连接完毕后,进行软件编程。
在编程过程中,不断调试,确保各个模块能够正常工作。
最后,将各个模块集成在一起,形成一个完整的函数波形发生器。
四、实训过程1. 硬件电路搭建(1)按照设计方案,连接51单片机、DAC0832、LM324运算放大器等元件。
(2)搭建滤波电路、限幅电路等。
2. 软件编程(1)编写正弦波发生器程序,实现正弦波输出。
(2)编写方波发生器程序,实现方波输出。
(3)编写三角波发生器程序,实现三角波输出。
3. 系统调试(1)检查各个模块是否正常工作。
(2)调整参数,使输出波形满足要求。
(3)测试不同频率、幅度下的波形输出。
基于51单片机的波形发生器的设计讲解
![基于51单片机的波形发生器的设计讲解](https://img.taocdn.com/s3/m/bcd64f9fac51f01dc281e53a580216fc700a53a7.png)
基于51单片机的波形发生器的设计讲解波形发生器是电子设备中常见的一种电子设备,它可以产生各种不同形状的波形信号。
在这篇文章中,我们将会详细介绍基于51单片机的波形发生器的设计。
一、波形发生器的原理及分类波形发生器的原理是利用电子元件、电路以及控制信号源,将一定幅度的电压信号变化成为需要的各种形状的波形信号。
根据波形的形状分类,可以将波形发生器分为以下几种类型:1.正弦波发生器:产生正弦波信号的发生器,常用于音频设备中。
2.方波发生器:产生方波信号的发生器,常用于数字电路中,也可用于频率测量和脉冲调制等应用。
3.三角波发生器:产生三角波信号的发生器,常用于音频设备以及频率测试等领域。
4.锯齿波发生器:产生锯齿波信号的发生器,常用于音频设备、测试仪器以及数据采集和测量等领域。
二、基于51单片机的波形发生器设计下面我们将详细介绍基于51单片机的波形发生器的设计步骤。
1.硬件设计:在基于51单片机的波形发生器设计中,我们需要准备的硬件元件有:-51单片机控制芯片-芯片烧录器-液晶显示屏-按键开关-电源模块-杜邦线等电子连接线2.硬件连接:根据电路原理图进行将电子元件进行正确的电路连接。
其中,51单片机作为核心控制芯片,负责生成波形信号,液晶显示屏用于显示波形信号,按键开关用于控制波形发生器的启动、停止以及参数调整等操作。
3.软件设计:利用Keil C编译软件进行51单片机的软件设计,根据控制芯片的指令集编写相应的程序代码,实现以下几个功能:-波形信号的产生:根据选择的波形类型(正弦波、方波、三角波或锯齿波),利用特定的算法生成相应形状的波形信号。
-参数调节:通过按键开关控制波形的频率、幅度以及相位等参数的调节,使波形发生器能够产生不同特性的波形信号。
-波形信号显示:通过LCD显示屏将生成的波形信号进行实时显示,以方便观察和调试。
4.软硬件的调试与优化:三、波形发生器的应用1.音频设备:波形发生器可以生成不同频率的正弦波信号,用于音频信号的发生和测试等应用。
基于AT89C51单片机的多功能函数信号发生器设计毕业论文
![基于AT89C51单片机的多功能函数信号发生器设计毕业论文](https://img.taocdn.com/s3/m/36aedcc1f90f76c661371aa8.png)
·正弦波
正弦信号可用如下形式表示
f(t)=Asin(ωt+θ)(1)
其中,A为振幅,ω是角频率,θ为初相位。正弦函数为一周期信号如下图1所示:
图1 正弦波
·方波
方波函数是我们常用且所熟知的简单波形函数,做脉冲等,其表示形式如下:
(2)
方波波形如下:
图2 图形
当方波下半段幅值为0时,就为矩形波,一个原理,所以不再赘述矩形波。
(2)片内数据存储器有128B,地址空间为00H—7FH,片外没数据存储器。
(3)片内有4KB的程序存储器,地址空间为0000H—0FFFH,没有偏外存储器, 应接高电平。
(4)可以使用两个定时/计数器T0和T1,一个全双工的串行通信接口,5个中断源[1]。
·晶振电路工作原理及应用
单片机有18、19两引脚。分别为XTAL1和XTAL2。单片机采取内部振荡电路时,将这两引脚接石英晶体与微调电容。此设计采用的是12M晶振和两个30pF的电容。在芯片内部结构中,XTAL1和XTAL2引脚是一反相放大器的两个输入端,构成单片机内部振荡器。同样,根据需要的不同,也可采用外部时钟方式。本次设计采用内部时钟方式。如图所示。
It can control the type and the output frequency of the waveform when the microcontroller are equipped with the keyboard. Also when it coupled with the LED it can be displayed. It can be sure that it is digital signal that come from the microcontroller. So we should add the DAC0832 on the output side for D/A conversion. With the two levels of op-amp we can adjust waveform. Finally display on theoscilloscope.
基于51单片机的简易函数信号发生器资料
![基于51单片机的简易函数信号发生器资料](https://img.taocdn.com/s3/m/d5fadcdafab069dc502201b1.png)
创新性实验研究报告实验项目名称_简易函数信号发生器四、实验内容1、运用keil软件对程序进行编写,运行程序,并进行程序修改。
2、运用protues软件进行硬件电路仿真设计。
3、将程序下载到仿真单片机中,并观测输出波形。
4、对程序进行修改,再次运行仿真软件,直到输出理想的波形。
5、仿照仿真软件进行硬件电路的焊接。
6、将程序下载到单片机,并用示波器测试输出波形。
7、对程序进行修改,直到输出满意的波形为止。
3、实验步骤1、首先打开keil软件.2、运用keil软件对程序进行编写,程序见附件。
3、打开protues软件.4、运用protues软件对硬件电路进行设计。
9C51单片机是该信号发生器的核心,具有2个定时器,32个并行I/O口,1个串行I/O口,5个中断源。
由于本设计功能简单,数据处理容易,数据存储空间也足够,因为我们采用了片选法选择芯片,进行芯片的选择和地址的译码。
在单片机最小最小系统中,单片机从P1口接收来自键盘的信号,并通过P0口输出控制信号,通过DA转换芯片最终由示波器显示输出波形。
单片机引脚分配如下:�XTAL1,XTAL2:外接晶振,产生时钟信号。
�RST:复位电路;�P2口:8位数字信号输出输出,外接DAC0832;�P3.6口和P3.7口:DAC0832的时钟信号;单片机模块单片机输出的是数字信号,因为要得到模拟信号的波形就必须对其进行数模转换。
我们采用了DAC0832数模转换器,该芯片具由8位输入锁存器、8位DAC寄存器、8位D/A转换器及转换控制电路四部分构成。
由于其输出为电流输出,因为外加运算放大器LM324使之转换为电压输出。
最后通过示波器显示输出的波形。
数模转换模块运放模块整体硬件电路图五、实验结果与分析1、实验现象、数据记录仿真波形2、对实验现象、数据及观察结果的分析与讨论:经过观察调试,再观察,再调试,最终输出的波形较为理想。
此次试验经过一系列的调试,最终输出的波形为正弦波、方波、三角波。
基于单片机的波形发生器设计
![基于单片机的波形发生器设计](https://img.taocdn.com/s3/m/8f6ee53d5e0e7cd184254b35eefdc8d376ee14f8.png)
基于单片机的波形发生器设计
基于单片机的波形发生器设计是一种新兴的技术,它利用单片机
来发出不同的波形信号,以满足不同的测量需求。
这种技术的核心部
分就是使用微处理器(单片机)来生成和控制信号,以及支持信号实验。
首先,为了发出不同的波形,使用微处理器(单片机)需要进行
控制程序设计,以将不同的波形转变为数字信号。
这要求开发者在硬
件上设计一个模拟输入的控制信号,以便发出不同的波形。
程序设计
中需要考虑波形的持续时间、信号的幅度等,并编写相应代码来表示
不同的波形。
一旦波形发生器已经通过发出不同的波形通过单片机设计,就可以将此模拟信号输出到一系列设备。
此外,为了确保实验能够取得有效的结果,还需要对基于单片机
的波形发生器进行测试和校准。
在这方面,使用电子测量仪表来检查
实验中的信号,确保不同的波形能够准确的在一系列的设备中传播,
以及数据采集是否能被准确的捕获。
同时,根据波形的持续时间,来
进行相应调整,确保发出不同波形的准确性。
总而言之,基于单片机的波形发生器设计是一项很有前景的技术,可以有效的处理和传送信号,同时也为测量和实验提供准确的信号。
然而,这也要求开发者具有扎实的单片机知识和信号处理能力,以及
对测量仪表、信号传输和数据采集的理解,才能将这项技术发挥出最
大的效果。
51单片机信号发生器频率调整思路
![51单片机信号发生器频率调整思路](https://img.taocdn.com/s3/m/fad92d501fd9ad51f01dc281e53a580217fc5074.png)
51单片机信号发生器频率调整思路一、引言51单片机信号发生器是一种常见的电子设备,它可以产生各种不同频率的信号。
在实际应用中,有时需要调整信号发生器的频率以满足特定的需求。
本文将介绍如何通过51单片机实现信号发生器频率调整。
二、基本原理信号发生器是一种能够产生不同频率、振幅和波形的电子设备。
在其内部,通常采用了一个稳定的时钟源和一个可变频率的振荡电路来产生不同频率的信号。
其中,时钟源通常采用晶体振荡器或者RC振荡器;而可变频率的振荡电路则可以采用多种不同的方案,比如VCO (Voltage Controlled Oscillator)或PLL(Phase Locked Loop)等。
在51单片机中,可以通过控制其内部定时器/计数器来实现可变频率的振荡电路。
具体来说,我们可以将定时器/计数器设置为一定的计数值,并且将其工作模式设置为定时模式或者计数模式。
当计数值达到预设值时,定时器/计数器就会产生一个中断请求,在中断服务函数中我们可以进行相应处理从而实现对输出波形频率和占空比的控制。
三、实现步骤1. 硬件设计在硬件设计上,我们需要准备一个51单片机开发板、一个LCD显示屏、一个旋转编码器和一些必要的电子元件。
其中,旋转编码器用于调节输出波形的频率,而LCD显示屏用于显示当前频率和占空比等信息。
2. 软件设计在软件设计上,我们需要编写51单片机的程序来实现信号发生器的控制。
具体来说,程序需要完成以下几个任务:(1)初始化定时器/计数器,并将其工作模式设置为定时模式或者计数模式;(2)设置定时器/计数器的计数值,并启动定时器/计数器;(3)在定时器/计数器中断服务函数中,更新输出波形的频率和占空比等参数;(4)通过旋转编码器来调节输出波形的频率,并更新LCD显示屏上相应的信息。
四、总结通过以上步骤,我们可以实现一个简单的51单片机信号发生器,并且可以通过旋转编码器来调节其输出波形的频率。
当然,在实际应用中还需要考虑到一些其他因素,比如精度、稳定性、噪声等问题。
基于单片机的波形发生器设计及实现
![基于单片机的波形发生器设计及实现](https://img.taocdn.com/s3/m/4784db810d22590102020740be1e650e52eacf96.png)
基于单片机的波形发生器设计及实现基于单片机的波形发生器是一种能够输出各种波形信号(如正弦波、方波、三角波等)的电子设备。
它通常由单片机、存储器、数字模拟转换器(DAC)、时钟电路、显示屏幕等组成。
本文将详细介绍基于单片机的波形发生器的设计和实现过程。
首先,我们选择一款合适的单片机作为波形发生器的控制核心。
在选择单片机时,需要考虑其计算能力、输入输出接口、外设资源等因素。
常见的单片机有STM32系列、Arduino等。
接下来,我们需要设计存储器组件来存储各种波形信号数据。
可以使用EEPROM或FLASH作为存储器,将波形信号经过编码后存储在其中。
编码方式有多种选择,如幅值编码、相位编码等。
在波形发生器中,我们需要存储多个波形信号的数据,因此需要设计合适的数据格式来存储不同波形信号的信息。
然后,我们需要设计数字模拟转换器(DAC)电路,将存储器中的数字信号转换为模拟信号输出。
DAC电路的设计需要考虑输出分辨率、精度以及电压范围等因素。
通常情况下,我们可以使用市场上现成的DAC芯片,如R-2R型DAC芯片。
接下来,我们需要设计时钟电路,用以控制波形信号的频率和相位。
时钟电路一般使用晶体振荡器提供稳定的时钟信号。
根据波形信号的需求,我们可以选择不同的工作频率和相位。
最后,我们需要选择合适的显示屏幕来显示输出的波形信号。
显示屏幕可以选择液晶显示屏或者OLED显示屏,具体选择则取决于要求和预算。
在实现基于单片机的波形发生器时,我们需要注意以下几点:首先,需要编写控制单片机的程序代码。
程序代码需要实现波形信号的生成、存储器数据的访问、DAC电路的控制以及时钟信号的生成等功能。
其次,需要进行电路布局设计和焊接工作。
通过将各个电路模块进行合理布局,以减小电路的干扰,提高波形发生器的性能。
最后,进行测试和调试工作。
在测试和调试时,我们需要对波形发生器输出的波形进行检测,以确保波形的准确性和稳定性。
同时,还需要对其他模块,如存储器、DAC、时钟电路等进行测试和调试。
信号发生器(正弦波,方波,三角波)51单片机C语言代码
![信号发生器(正弦波,方波,三角波)51单片机C语言代码](https://img.taocdn.com/s3/m/d04d61a90508763230121264.png)
/**************************************//* 信号发生器(正弦波,方波,三角波)*/ /*************************************/#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit cs=P2^0;sbit clk=P2^1;sbit din=P2^2;sbit key1=P1^0;sbit key2=P1^1; uchar keydat;uchar flag;被置零立马停止发信号//tlc5615 片选端口//tlc5615 时钟线//tlc5615 传输端口//按键的单片机接口//波形发生终止信号的标志位一旦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};uchar flagsqu; 中断控制)// 方波高低电平控制为 (运用定时器 1void delay(uchar z) //延时函数{uchar x,y;for(x=0;x<110;x++)for(y=z;y>0;y--);}void prepare() {cs=1;din=1;clk=0;cs=0; 为低时进? //tlc5615 的初始化//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);clk=1;dat=dat<<1; clk=0;}cs=1;为低时进行delay(200);if(dat1==0)dat1=0x7f;elsedat1=0;}while(flag);}//将数据的最高位赋给din//一位位的传输//cs 的上升沿和下降沿必须在//使高低电平持续一段时间//完成了0和0x7f 之间的替换clkvoid Tratranslator() //锯齿波的发生函数{uchar j;uchar dat1=0x7f;while(flag){do{prepare();dat=dat1;for(j=0;j<12;j++){din=(bit)(dat>>7);clk=1;dat=dat<<1;clk=0;}cs=1;为低时进行delay(2);dat1--;}while(flag && dat1);do{//将数据的最高位赋给din//一位位的传输//cs 的上升沿和下降沿必须在//稍加延时//一旦有终止信号就可以停止clk{uchar i,j;prepare(); dat=dat1; for(j=0;j<12;j++){din=(bit)(dat>>7); //将数据的最高位赋给 dindelay(2); dat1++;}while(flag && (!(dat1==0x7f)));}}void Sintranslator(uchar wave[],uchar num )//正弦波的转换函数clk=1; dat=dat<<1; clk=0;}cs=1;为低时进行//一位位的传输//cs 的上升沿和下降沿必须在clk//稍加延时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);{case 1:if(key2==0)flag=0;do{}while(!key2); //松手检测}}}void main (){uchar temp;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(1){do{switch(keydat)//确定定时器的工作方式 //给定时器 0 赋予初值 //开总中断 //开启定时器 0 中断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;}}。
单片机波形发生器设计
![单片机波形发生器设计](https://img.taocdn.com/s3/m/d0cf5e61cdbff121dd36a32d7375a417866fc1fe.png)
单片机波形发生器设计引言:波形发生器是一种电子仪器,可用于产生不同类型的电子波形。
在电子系统设计和实验中,波形发生器起着至关重要的作用。
传统的波形发生器通常有很多旋钮和开关,而现代的波形发生器则大多通过单片机或其他微控制器来实现。
本文将介绍如何通过单片机设计一个简单的波形发生器。
设计方案:1.硬件设计:单片机选择常见的8051系列单片机,因为其性能稳定、功能强大且易于编程。
可以使用Keil等集成开发环境进行程序编写。
电路主要由单片机、晶振、电源电路、按键和LCD显示屏组成。
2.基本波形发生:首先,我们需要设计一个能够产生基本波形的波形发生器。
单片机通过PWM(脉宽调制)技术来实现波形发生。
通过改变脉冲的占空比,可以产生不同频率的方波。
通过将方波依次通过RC滤波电路和运算放大器,可以得到正弦波和三角波。
运算放大器可以选择常见的OPA2134等。
3.频率调节和触发方式:波形发生器需要能够实现频率的调节和触发方式的选择。
频率的调节可以通过旋钮或按键来实现。
可以通过改变控制单片机的定时器参数来改变频率。
触发方式可以选择为外部触发或内部触发,通过开关来实现切换。
4.显示:为了方便用户观察波形,我们可以在电路中添加LCD显示屏。
通过编写程序,可以在显示屏上实时显示波形的参数和波形形状。
5.扩展功能:在基本波形发生器的基础上,可以进一步扩展功能。
例如,可以添加DAC芯片,实现更精确的波形输出。
还可以通过增加存储器,实现波形的存储与回放。
另外,还可以添加数字接口,实现与计算机的通信和控制。
总结:通过单片机设计的波形发生器具有灵活性和可扩展性强的优点。
通过改变软件程序,可以实现不同类型的波形输出,满足不同实验和设计的需求。
注:本文中字数未满1200字,请根据实际需要进行补充。
基于51单片机波形发生器课程设计
![基于51单片机波形发生器课程设计](https://img.taocdn.com/s3/m/026cb2cfbb0d4a7302768e9951e79b89680268ed.png)
基于51单片机波形发生器课程设计1. 引言波形发生器是电子技术领域中常用的仪器设备,用于产生各种不同形状的电信号波形。
在电子电路实验和测试中,波形发生器能够提供不同频率、幅度和相位的信号,用于测试和验证电路的性能。
本篇文章将介绍一个基于51单片机的波形发生器设计。
通过使用51单片机,我们可以实现一个简单但功能强大的波形发生器,并通过编程控制实现不同类型的波形输出。
2. 硬件设计2.1 51单片机51单片机是一种常见的8位微控制器,具有低功耗、高性能和广泛应用等特点。
在本设计中,我们选择使用51单片机作为主控芯片。
2.2 数模转换芯片为了将数字信号转换为模拟信号输出,我们需要使用一个数模转换芯片。
在本设计中,我们选择使用DAC0800芯片作为数模转换器。
2.3 操作面板为了方便用户操作和设置参数,我们设计了一个操作面板。
该面板包括按键、旋钮和显示屏等组件,用户可以通过操作面板来控制波形发生器的参数和功能。
2.4 输出接口为了将模拟信号输出到外部设备,我们设计了一个输出接口。
该接口可以连接到示波器或其他测试仪器,以便观察和测量输出信号。
3. 软件设计3.1 程序框架波形发生器的软件设计主要包括初始化设置、参数调整和波形生成等功能。
我们可以使用C语言编程,在51单片机上实现这些功能。
以下是程序框架的伪代码:void main(){初始化设置();while(1){获取用户输入();参数调整();波形生成();}}3.2 初始化设置在初始化设置阶段,我们需要对51单片机和数模转换芯片进行初始化配置。
这包括设置时钟频率、IO口方向、数模转换精度等。
以下是初始化设置的伪代码:void 初始化设置(){设置时钟频率();配置IO口方向();配置数模转换精度();}3.3 参数调整在参数调整阶段,用户可以通过操作面板来调整波形发生器的参数。
这包括选择波形类型、设定频率和幅度等。
以下是参数调整的伪代码:void 参数调整(){获取用户输入();if(用户选择了波形类型){设置波形类型();}if(用户设定了频率){设置频率();}if(用户设定了幅度){设置幅度();}3.4 波形生成在波形生成阶段,根据用户设定的参数,我们可以通过数模转换芯片来生成相应的波形信号。
89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波、三角波等信号波形
![89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波、三角波等信号波形](https://img.taocdn.com/s3/m/59b451fe910ef12d2af9e732.png)
波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
本次课程设计使用的AT89S51 单片机构成的发生器可产生锯齿波、三角波、正弦波等多种波形,波形的周期可以用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑等优点。
在本设计的基础上,加上按钮控制和LED显示器,则可通过按钮设定所需要的波形频率,并在LED上显示频率、幅值电压,波形可用示波器显示。
二、系统设计波形发生器原理方框图如下所示。
波形的产生是通过AT89S51 执行某一波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。
在AT89S51的P2口接5个按扭,通过软件编程来选择各种波形、幅值电压和频率,另有3个P2口管脚接TEC6122芯片,以驱动数码管显示电压幅值和频率,每种波形对应一个按钮。
此方案的有点是电路原理比较简单,实现起来比较容易。
缺点是,采样频率由单片机内部产生故使整个系统的频率降低。
1、波形发生器技术指标1)波形:方波、正弦波、锯齿波;2)幅值电压:1V、2V、3V、4V、5V;3)频率:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;2、操作设计1)上电后,系统初始化,数码显示6个…-‟,等待输入设置命令。
2)按钮分别控制“幅值”、“频率”、“方波”、“正弦波”、“锯齿波”。
3)“幅值“键初始值是1V,随后再次按下依次增长1V,到达5V后在按就回到1V。
4)“频率“键初始值是10HZ,随后在按下依次为20HZ、50HZ、100HZ、200HZ、500HZ、1000HZ循环。
三、硬件设计本系统由单片机、显示接口电路,波形转换(D/A)电路和电源等四部分构成。
电路图2附在后1、单片机电路功能:形成扫描码,键值识别、键处理、参数设置;形成显示段码;产生定时中断;形成波形的数字编码,并输出到D/A接口电路和显示驱动电路。
单片机波形发生器51
![单片机波形发生器51](https://img.taocdn.com/s3/m/f57879a8dd3383c4bb4cd224.png)
安徽工程大学机电学院本科课程设计说明书专业:计算机科学与技术题目:数字式波形发生器学生姓名:刘志国指导教师:谢永宁2012年6月6日目录附录 (3)前言 (4)课程设计任务书 (5)第一章系统总体设计思路 (6)1.1 总体设计思路 (6)1.2 总体框图 (6)1.3硬件设计组成 (6)第二章接口技术及相关芯片介绍 (7)2.1键盘接口电路 (7)2.2显示电路 (7)2.3电源电路 (7)2.4波形转换(D/A)电路 (8)2.5芯片介绍 (9)第三章程序编写 (13)第四章系统调试与测试结果 (19)4.1. 硬件调试 (19)4.2. 软件调试 (19)4.3 调试结果 (19)第五章设计心得与参考文献 (21)5.1实验心得 (21)5.2参考文献 (22)元件清单1 1K电阻·····················································6个2 22uF电解电容···············································4个3 104瓷片电容················································3个4 33pF·······················································2个5 0.1uF·······················································1个6 15K电阻····················································2个7 7.5K电阻···················································1个8 12Mhz 晶振·················································1个9 轻触开关····················································3个10 89C52单片机芯片···········································一片11 DAC0832数模转换芯片······································1片12 TL082运放芯片·············································1片13 发光二极管················································2个14 上拉电阻···················································1个15 1602液晶显示···············································1个16 双面板·····················································一块17 排针······················································若干前言随着微型计算机的普及和广泛应用,接口技术成为十分重要、十分关键的计术。
51单片机与0832波形发生器锯齿波、三角波、正弦波
![51单片机与0832波形发生器锯齿波、三角波、正弦波](https://img.taocdn.com/s3/m/eeeeba1bf01dc281e53af087.png)
//锯齿波#include <reg51.h>#include <absacc.h>//绝对地址访问头文件#define DAC0832 XBYTE[0x7fff]//DAC0832的地址为0x7fffvoid delay()//定时器定时1ms{TH1=0xfc;TL1=0x18;//定时器初值设定TR1=1;//启动定时器while(!TF1);//查询是否溢出TF1=0;//将溢出标志位清零}void main(){unsigned char i;TMOD=0x10;//设置定时器工作方式while(1){for(i=0;i<=255;i++)//形成锯齿波,最大值为255{DAC0832=i;// D/A转换输出delay();//延时}}}//三角波#include <reg51.h>#include <absacc.h>//绝对地址访问头文件#define DAC0832 XBYTE[0x7fff]//DAC0832的地址为0x7fffvoid delay()//定时器定时1ms{TH1=0xfc;TL1=0x18;//定时器初值设定TR1=1;//启动定时器while(!TF1);//查询是否溢出TF1=0;//将溢出标志位清零}void main(){unsigned char i;TMOD=0x10;//设置定时器工作方式while(1){for(i=0;i<255;i++)//形成三角波,i增加到最大值为255{DAC0832=i;// D/A转换增量输出delay();//延时}for(i=255;i>0;i--)//形成三角波,i减小至最小值0{DAC0832=i;// D/A转换减量输出delay();//延时}}}//正弦波#include <reg51.h>#include <absacc.h>//绝对地址访问头文件#define DAC0832 XBYTE[0x7fff]//DAC0832的地址为0x7fffunsigned char code sin[]={//正弦波一周期内采样256次,把幅值按比例放大0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0x AE,0xB1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD 6,0xD8,0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0 xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0 xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7, 0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,0xDD ,0xDA,0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7, 0xB4,0xB1,0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x 86,0x83,0x80,0x80,0x7C,0x79,0x76,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A, 0x57,0x55,0x51,0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2 E,0x2B,0x29,0x27,0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0 x0E,0x0D,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x0 5,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0 x1C,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,0x 6F,0x72,0x76,0x79,0x7C,0x80};void delay()//定时器定时1ms{TH1=0xfc;TL1=0x18;//定时器初值设定TR1=1;//启动定时器while(!TF1);//查询是否溢出TF1=0;//将溢出标志位清零}void main(){unsigned char i;TMOD=0x10;while(1)//设置定时器工作方式{for(i=0;i<255;i++)//形成正弦波,i增加到最大值为255{DAC0832=sin[i];// D/A 转换增量输出delay();//xx}}}//方波#include <reg51.h>sbit P2_0=P2^0; //定义位变量void main(){TMOD=0x02;//设置T0,工作方式2 TH0=6;TL0=6;//设置初值TR0=1;//启动T0while(1){if(TF0==1)//查询是否溢出{TF0=0;//溢出标志清零P2_0=!P2_0;}//P2.0取反,输出方波}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信专业技能实训报告题目基于Proteus的波形发生器设计学院信息科学与工程学院专业通信工程班级学生学号指导教师魏长智二〇一九年一月五日济南大学通信专业技能实训报告目录1 前言 ...................................................................................................................... - 1 -2 硬件设计 .............................................................................................................. - 2 -2.1 启动方式选择 ........................................................................................... - 2 -2.2 框图设计 ................................................................................................... - 2 -2.3 电路图设计 ............................................................................................... - 3 -3 DAC0832性能与特征........................................................................................ -4 -3.1 D/A转换器与单片机接口探究 .............................................................. - 4 -3.1.1 数据线连接 .................................................................................... - 4 -3.1.2 地址线连接 .................................................................................... - 4 -3.1.3 控制线连接 .................................................................................... - 4 -3.2 DAC0832的认识..................................................................................... - 5 -3.2.1 DAC0832的结构.......................................................................... - 5 -3.2.2 DAC0832的引脚.......................................................................... - 6 -3.2.3 DAC0832的启动控制方式.......................................................... - 7 -4 程序设计 .............................................................................................................. - 8 -4.1 程序流程图 ............................................................................................... - 8 -4.1.1 程序设计思路 ................................................................................ - 8 -4.1.2流程图 .............................................................................................. - 8 -4.2 用C语言实现 .......................................................................................... - 10 -5 Proteus仿真及结果 .......................................................................................... - 13 -5.1方波: ....................................................................................................... - 13 -5.2正弦波: ................................................................................................... - 14 -5.3三角波: ................................................................................................... - 15 -5.4梯形波: ................................................................................................... - 16 -5.5锯齿波: ................................................................................................... - 17 -实训结语: ............................................................................................................ - 18 -参考文献 ................................................................................................................ - 19 -1 前言波形发生器也称函数发生器,作为实验信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。
目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿波,正弦波,方波,三角波等波形。
作为一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路。
通过对函数波形发生器的原理以及构成分析,可设计一个能变换出三角波、正弦波、方波的函数波形发生器。
本设计主要运用AT89C51单片机为核心硬件,对直流电动机进行速度控制。
并且辅助以硬件部分的驱动、复位、LED显示等电路,软件部分对AT89C51进行模块化程序的输入,通过按钮控制,实现对直流电动机的正转、反转、加速、减速和停止等控制功能。
同时利用DAC0823转换成模拟信号输出,由LED与电动机转速显示控制效果。
利用AT89C51芯片进行低成本直流电动机控制系统设计,简化系统构成、提高系统性能,满足了生产要求。
2 硬件设计2.1 启动方式选择因为本设计要求设计一个波形发生器,要求能产生正弦波、方波、三角波、梯形波、锯齿波,而且由按键控制输出的波形。
故各个波形输出并非同步输出,而是由按键控制,单个输出,并且本例只需要一个DAC,如果选择双缓冲方式就会加大不必要的难度;直通方式不能有效的控制DAC转换,转换时可能会出现数据流失。
故选择单缓冲启动控制方式来驱动DAC0832。
2.2 框图设计根据2.1节的判断,选择AT89c51单片机作控制,实现电路框如下:图2.1 硬件设计框图2.3 电路图设计根据以上框图,选择+12V的基准电压,选择一级集成运放作放大电路,连接A/D 转换电路图如下:图2.2 单片机与DAC的连接方式3 DAC0832性能与特征3.1 D/A转换器与单片机接口探究D/A转换器与单片机接口具有软硬相依性。
在连接过程中要考虑到数据线、地址线、控制线的连接。
3.1.1 数据线连接D/A转换器与单片机接口要考虑到两个问题:一个是位数,当高于8位的D/A 转换器与8位数据总线的51单片机接口时,51单片机的数据必须分时输出,这时就必须考虑数据分时传送的格式和输出电压“毛刺”问题;二是D/A转化器的内部结构,当D/A转换器的内部结构没有输入锁存器时,必须在单片机与D/A转换器之间增设锁存器或者I/O口。
最常用的是8位带锁存端的D/A转换器与8位单片机的接口,这时只需要将单片机的数据总线和D/A转换器的8位数据输入端一一对应即可。
3.1.2 地址线连接一般的D/A转换器只有片选信号,而没有地址线。
这时单片机的地址线采用全译码或者部分译码,经译码器输出控制片选信号,也可以用某一位I/O线来控制片选信号。
也有少数D/A转换器有少量的地址线,用于选中片内独立的寄存器或者选择输出通道,这时单片机执行的地址线与D/A转换器的地址线对应连接。
3.1.3 控制线连接D/A转换器主要有片选信号、写信号、及启动转换信号等,一般由单片机的有关引脚或译码器提供。
一般来说,写信号多由单片机的信号控制;启动信号常常由片选信号与写信号的组合形式(LE1、LE2)形成,当单片机执行一条输出指令时,传送的地址使转换器的片选信号有效。
3.2 DAC0832的认识图3.1 DAC0832的管脚结构3.2.1 DAC0832的结构DAC0832的结构如图1.1所示,主要由控制逻辑电路、输入寄存器、DAC寄存器和D/A转换器构成。