基于单片机的方波信 发生器设计
- 格式:pdf
- 大小:4.69 MB
- 文档页数:14
课程设计论文课题:基于STC15单片机的频率计及方波发生器设计目录基于STC15单片机的频率计及方波发生器设计一、设计要求 (2)一)基础部分 (2)二) 发挥部分 (3)二、课程设计的意义与目的 (3)三、方案设计 (4)单片机数字频率计与可调方波发生器程序设计流程图 (4)四、硬件设计原理图: (6)五、硬件设计实物图: (6)六、程序框架: (7)七、功能说明: (7)八、测量: (8)低频测量: (8)高频测量: (8)九、误差分析: (9)第一次误差分析: (9)第二次误差分析: (9)十:实现功能情况表: (10)十一、心得与体会 (11)十二、参考资料 (11)十三、附录: (11)Main主函数: (11)按键扫描函数 (11)数码管显示相关函数: (12)PWM发生器函数: (13)频率计测量功能相关函数: (19)延时函数: (25)基于STC15单片机的频率计及方波发生器设计一、设计要求一)基础部分1. 数字频率计设计要求:1)被测信号为正弦波或方波,频率范围为1Hz~5MHz;2)测量相对误差的绝对值不大于百分之一;3)门限电压2V-5V;4)测量数据刷新时间不大于2s,测量结果稳定。
2. 方波发生器设计要求:1)方波发生器可以分为低频和高频2个端口产生,频率范围1Hz-6MHz;2)通过不同按键实现频率的粗调和微调。
二) 发挥部分1. 频率计范围为大于5MHz;2. 测量相对误差的绝对值不大于千分之一;3. 增加脉冲信号占空比的测量功能。
二、课程设计的意义与目的1.在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。
2.在通信技术中,波形的发生和频率的控制是最基本的要求,也是通信技术的基础,因此设计波形的发生与控制器就显得尤为重要。
3.单片机数字频率计与可调方波发生器,具有可靠性高、体积小、价格低、功能全,广泛应用与各种职能仪器中,能使在测量过程的控制中达到自动化,省掉很多繁琐的人工操作,同时也提高了测试精度。
基于单片机的多波形信号发生器设计
单片机多波形信号发生器是一种可以在微控制器芯片上合成不同波形的电路。
该电路可以生成正弦波、方波、三角波等多种波形,也可以通过设置不同的频率、幅值和相位来调节波形。
单片机多波形信号发生器被广泛应用于各种实验中,如音频信号处理、电子测量和信号仿真等领域。
以下是单片机多波形信号发生器设计的步骤:
1. 确定系统主要功能要求。
2. 选择合适的单片机芯片和外围电路。
3. 根据所选芯片的不同特点编写程序,并在仿真软件中进行测试。
4. 设计输出电路,包括输出放大电路和输出滤波电路。
5. 根据实际需要设计显示电路,用于控制波形参数和频率。
6. 进行系统调试和测试,对系统进行优化和改进。
7. 构建原型并进行实验验证,进一步检验系统性能是否能够满足所需的功能要求。
总结而言,单片机多波形信号发生器设计的关键是合理选择芯片和外围电路,并编写合适的程序用于控制波形参数。
同时,开发人员需要进行充分的调试,以确保系统运行稳定、波形输出准确、频率稳定。
/**************************************//* 信号发生器(正弦波,方波,三角波)*//*************************************/#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;}}。
郑州航空工业管理学院毕业论文(设计)2012 届电气工程及其自动化专业 0806072 班级题目基于单片机两相脉冲方波输出电路硬件开发姓名乱世达人学号080607224指导教师粉红佳人职称教授2012 年5月20日内容摘要本文设计的是一个方波发生器,两相输出相位差π/2,可用于模拟增量式旋转编码器的A、B两相脉冲。
用BCD码拨盘来设定和显示方波的周期,主控制模块是兼容于51系列的微处理器模块AT89C52,此单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点。
在此自动控制设备中,采用光电耦合器实现弱电系统与强电系统的通道之间的隔离;同时运用了继电器方式的开关量输出,解决了从低压直流到高压直流的过度,从而保证了电子电路和人身的安全。
关键词相位差;方波; AT89C52;光耦隔离The hardware development of two-phase pulse square wave output circuit based on SCMAbstractIn this paper , the design is a square wave generator , and it uses BCD dial with panel to control and display frequency of square wave , and the m aster control module is based on 51 series of microprocessor module A T89C52 devices , and the single-chip microcomputer has high level of integration and powerful function, high reliability, small volume, low power consumption, easy to use, cheap and so on a series of advantages.In the automatic control equipment , the optical coupler solves the problem i nvolving the channel isolation technology , and at the same time , using the way of relay switching output has solved the transition from low voltage DC to high voltage DC , so as to ensure the safety of the electronic circuit and personal .Key wordsphase difference ;square wave; A T89C52; light coupling isolation目录内容摘要 (Ⅱ)Abstract (Ⅲ)第一章概述 (1)第二章系统硬件设计 (3)2.1设计方案 (3)2.2器件选择 (4)2.2.1单片机芯片内部结构简介 (4)2.2.2 BCD拨码盘介绍 (9)2.2.3光耦合器的介绍 (14)第三章硬件实现及单元电路设计 (16)3.1单片机最小系统的设计 (16)3.1.1 电源电路 (17)3.1.2 复位电路 (18)3.1.3 晶振电路 (19)3.1.4 输入电路 (20)3.1.5 显示电路 (20)3.2 系统电路总原理图 (21)3.3 PCB板的制作 (22)致谢 (25)参考文献 (26)附录Ⅰ (27)附录Ⅱ (28)第一章概述单片机是一种集成的电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉冲调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
基于AT89C52单片机的超低频信号发生器设计低频以及超低频信号在医学、电化学研究和实验教学中都有广泛的应用,尤其在电化学领域里,超低频信号发生器已成为电化学仪器必不可少的组成部分。
电化学仪器配以方波、三角波和正弦波发生器,可以研究电化学系统各种暂态行为;配以慢的线性扫描信号或阶梯波信号,可以自动进行稳态(或接近稳态)极化曲线测量。
然而市面上适用于电化学领域的信号发生器很少,传统信号发生器无法满足专业需求,且购买成本太高。
现介绍一种用单片机控制的信号发生器,可输出方波、三角波及正弦波。
产生的波形信号频率范围是0.125 mHz(毫赫兹)~80 Hz,输出的模拟信号电压范围是-10~+10 V,输出信号的幅值和频率具有一定的调节范围。
该信号发生器与传统的信号发生器相比,有如下的特点:该信号发生器可以满足电化学领域对于信号发生器的要求,最低频率可达到0.125 mHz,在国内达到先进水平,且该信号发生器在超低频时精度高,失真度小,性能稳定,电路结构简单,体积小。
1 工作原理超低频信号发生器的输入参数有扫描方式、上下限电平、波形频率。
其中,扫描方式有单次、往返、连续三种选择;上下限电平在-10~+10 V之间,且上限电平大于下限电平;波形频率范围为0.125 mHz~80 Hz。
输出波形有三种:方波、三角波、正弦波。
当信号发生器上电后,先进行复位清零,然后进行系统初始化,用户通过将键盘设置扫描频率、上下限电平及扫描方式等参数输入单片机,并通过LCD进行显示。
按照一定的算法准确调节各个功能模块,断开积分电路模块中控制仪器工作的模拟开关,使信号发生器开始工作,从而输出所需信号波形。
2 波形产生原理该信号发生器可以产生频率、峰谷值可调的、连续的方波、三角波和正弦波。
下面详细介绍三种波形的产生原理。
2.1 正弦波产生原理由于该信号发生器的最低频率可达到0.125 mHz,传统的正弦波产生电路已经无法满足要求。
基于51单片机的波形发生器的设计讲解波形发生器是电子设备中常见的一种电子设备,它可以产生各种不同形状的波形信号。
在这篇文章中,我们将会详细介绍基于51单片机的波形发生器的设计。
一、波形发生器的原理及分类波形发生器的原理是利用电子元件、电路以及控制信号源,将一定幅度的电压信号变化成为需要的各种形状的波形信号。
根据波形的形状分类,可以将波形发生器分为以下几种类型:1.正弦波发生器:产生正弦波信号的发生器,常用于音频设备中。
2.方波发生器:产生方波信号的发生器,常用于数字电路中,也可用于频率测量和脉冲调制等应用。
3.三角波发生器:产生三角波信号的发生器,常用于音频设备以及频率测试等领域。
4.锯齿波发生器:产生锯齿波信号的发生器,常用于音频设备、测试仪器以及数据采集和测量等领域。
二、基于51单片机的波形发生器设计下面我们将详细介绍基于51单片机的波形发生器的设计步骤。
1.硬件设计:在基于51单片机的波形发生器设计中,我们需要准备的硬件元件有:-51单片机控制芯片-芯片烧录器-液晶显示屏-按键开关-电源模块-杜邦线等电子连接线2.硬件连接:根据电路原理图进行将电子元件进行正确的电路连接。
其中,51单片机作为核心控制芯片,负责生成波形信号,液晶显示屏用于显示波形信号,按键开关用于控制波形发生器的启动、停止以及参数调整等操作。
3.软件设计:利用Keil C编译软件进行51单片机的软件设计,根据控制芯片的指令集编写相应的程序代码,实现以下几个功能:-波形信号的产生:根据选择的波形类型(正弦波、方波、三角波或锯齿波),利用特定的算法生成相应形状的波形信号。
-参数调节:通过按键开关控制波形的频率、幅度以及相位等参数的调节,使波形发生器能够产生不同特性的波形信号。
-波形信号显示:通过LCD显示屏将生成的波形信号进行实时显示,以方便观察和调试。
4.软硬件的调试与优化:三、波形发生器的应用1.音频设备:波形发生器可以生成不同频率的正弦波信号,用于音频信号的发生和测试等应用。
用单片机进行方波发生器的设计方波发生器是一种产生具有固定频率和振幅的方波信号的电路或设备。
它可以广泛应用于通信、计算机、测量、控制等领域。
在本文中,我们将详细介绍如何使用单片机进行方波发生器的设计。
设计一个单片机方波发生器可以分为以下几个步骤:步骤一:选择单片机型号和开发工具选择一个适合的单片机型号是设计方波发生器的第一步。
目前市场上常见的单片机有MCS-51系列、AVR系列、STM32系列等。
根据需求选择适合的型号。
步骤二:确定方波的频率和振幅方波发生器的设计需要明确所需的方波频率和振幅。
频率指的是方波信号的周期性,单位为赫兹(Hz);振幅指的是方波信号的最大值和最小值之间的差值,单位为伏特(V)。
根据实际需求确定频率和振幅的数值。
步骤三:编写单片机程序在单片机方波发生器的设计中,需要编写相应的程序代码。
在编写代码之前,需要了解所选单片机的编程语言、开发工具和编程接口,以便正确地编写和调试程序。
在编写程序时,需要利用单片机的定时器/计数器功能。
通过配置定时器的工作模式、时钟源和计数值,可以生成一定频率的脉冲信号。
然后利用IO口输出脉冲信号,并通过电路将脉冲信号转换成方波信号。
具体的代码实现细节根据所选单片机型号和开发工具而定,可以参考相关的单片机开发文档和教程。
以下是一个使用STM32单片机的例子:#include "stm32f10x.h"void delay(uint32_t n)for(uint32_t i=0;i<n;i++);}int main(void)GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);TIM_TimeBaseStructure.TIM_Prescaler = 72-1;TIM_TimeBaseStructure.TIM_Period = 1000-1;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse = 500-1;TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;TIM_OC1Init(TIM2, &TIM_OCInitStructure);TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);TIM_ARRPreloadConfig(TIM2, ENABLE);TIM_Cmd(TIM2, ENABLE);while(1)}}步骤四:电路设计和调试完成单片机程序编写后,需要进行相应的电路设计和调试工作。
课程设计报告课程名称:基于单片机的方波信号发生器院部:电控学院专业班级:电气0601班学生姓名:***指导教师:***完成时间:2009年06月10日报告成绩:_____ _____________________目录一、概述 ------------------------------------------------------------------ 31.1、设计内容 ------------------------------------------------------ 31.2、设计的基本要求 ------------------------------------------------ 3二、方波发生器设计方案 ---------------------------------------------------- 42.1、方案介绍 ------------------------------------------------------ 42.2、方波信号发生器的原理与功能 ------------------------------------ 4三、系统的硬件设计 -------------------------------------------------------- 63.1、单片机最小系统 ------------------------------------------------ 63.2、小键盘接口电路 ------------------------------------------------ 73.3、LED显示电路--------------------------------------------------- 7四、系统的软件设计 -------------------------------------------------------- 84.1、主程序 -------------------------------------------------------- 84.2、系统初始化子程序 ---------------------------------------------- 94.3、显示子程序 ---------------------------------------------------- 94.4、键盘扫描程序 ------------------------------------------------- 104.5、定时器中断子程序 --------------------------------------------- 11五、调试与性能分析 ------------------------------------------------------- 125.1硬件调试------------------------------------------------------- 125.2软件调试------------------------------------------------------- 12六、设计体会 ------------------------------------------------------------- 13 参考文献 ----------------------------------------------------------------- 14 附录A:基于单片机方波信号发生器的原理图---------------------------------- 15 附录B:基于单片机方波信号发生器的程序清单-------------------------------- 16 附录C:仿真图——————————————————————————————21方波信号发生器设计一、概述单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。
单片机方波发生器实验报告实验报告,单片机方波发生器。
实验目的:本实验旨在通过单片机实现方波发生器电路,了解方波发生器的工作原理,并掌握单片机的IO口控制。
实验器材:1. 单片机(如STC89C52)。
2. 电源。
3. 适配器。
4. 电阻、电容。
5. 示波器。
6. 连接线。
实验原理:方波发生器是一种能够产生方波信号的电路或设备。
在本实验中,我们将通过单片机的IO口控制来实现方波信号的产生。
单片机作为控制核心,通过对IO口的高低电平控制,可以实现方波信号的产生。
通过改变IO口的输出频率和占空比,可以产生不同频率和占空比的方波信号。
实验步骤:1. 连接电路,按照电路图连接单片机、电源、电阻、电容和示波器。
2. 编写程序,使用C语言或汇编语言编写单片机控制程序,配置IO口的输出模式和控制方波的频率和占空比。
3. 烧录程序,将编写好的程序通过编程器烧录到单片机中。
4. 实验验证,连接示波器,观察输出的方波信号的频率和占空比是否符合预期。
实验结果与分析:经过实验验证,我们成功实现了单片机方波发生器电路。
通过改变程序中的参数,我们可以得到不同频率和占空比的方波信号。
通过示波器观察,我们可以清晰地看到产生的方波信号波形,验证了实验的成功。
实验总结:通过本次实验,我们深入了解了方波发生器的原理和单片机的IO口控制。
掌握了单片机方波发生器的设计和实现方法,提高了我们对单片机应用的理解和实践能力。
同时,实验中也加深了我们对方波信号的理解,对信号发生器的应用有了更深入的认识。
以上就是本次单片机方波发生器实验的实验报告,希望能对你有所帮助。