基于单片机的方波信 发生器设计

合集下载

基于STC15单片机的频率计及方波发生器设计

基于STC15单片机的频率计及方波发生器设计

课程设计论文课题:基于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. 构建原型并进行实验验证,进一步检验系统性能是否能够满足所需的功能要求。

总结而言,单片机多波形信号发生器设计的关键是合理选择芯片和外围电路,并编写合适的程序用于控制波形参数。

同时,开发人员需要进行充分的调试,以确保系统运行稳定、波形输出准确、频率稳定。

信号发生器 (正弦波,方波,三角波)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;}}。

基于单片机的智能信号发生器设计与仿真

基于单片机的智能信号发生器设计与仿真
i nt e r f a c e c i r cu i t d i a gr a m a r e gi v e n,c o m bi ni ng wi t h t he ke yb o ar d t o c o nt r o l t he c hoi c e a nd f r e qu e nc y o f wav e f o r m
Ab s t r a c t :U s i n g AT8 9 C5 1 a s t h e c o r e mo d u l e s , t h i s a r t i c l e d e s i g n e d a n i n t e l l i g e n t s i g n a l g e n e r a t o r , wh i c h c a n p r o d u c e s a wt o o t h wa v e , t r i a n g l e wa v e ,s q u a r e wa v e a n d s i n e wa v e .S i g n a l g e n e r a t o r s t r u c t u r e d i a g r a m a n d t h e Ha r d wa r e
e x p o n e n t i a l , l o g a r i t h mi c wa y, t h r o u g h D/ A c o n v e r t e r c o n v e r t s t h e s i g n a l s p r o d u c e d b y a n a l o g wa v e f o r m, a n d b y 1 2 8 6 4

8 1 0 0 0 8 )
要 :利 用 A T 8 9 C 5 1单 片 机 为 核 心 模 块 , 设 计 了 一种 智 能 信 号 发 生 器 , 可 实现锯齿波 、 三 角波 、 方 波 和 正 弦 波 4种

基于单片机的两相脉冲方波电路设计

基于单片机的两相脉冲方波电路设计

郑州航空工业管理学院毕业论文(设计)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单片机的超低频信号发生器设计

基于AT89C52单片机的超低频信号发生器设计

基于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单片机的波形发生器的设计讲解

基于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口控制。

掌握了单片机方波发生器的设计和实现方法,提高了我们对单片机应用的理解和实践能力。

同时,实验中也加深了我们对方波信号的理解,对信号发生器的应用有了更深入的认识。

以上就是本次单片机方波发生器实验的实验报告,希望能对你有所帮助。

方波信号发生器

方波信号发生器

单片机第五次作业5任务二——方波信号发生器一、电路仿真图(图中与P1.0脚相连的两台仪器分别为频率计和示波器)二、程序源码#include <REGX52.H>sbit CLK=P1^0;void InitTimer(void) //初始化定时器T1{TMOD=0x10; //设定T1为方式1TH1=(0x10000-499)/0x100; //装载初值TL1=(0x10000-499)%0x100;TF1=0; //清除T1溢出标志TR1=1; //启动T1定时器ET1=1; //允许T1溢出中断EA=1; //打开总中断开关}void main(void){CLK=0;InitTimer();while(1);}void Timer(void) interrupt 3{TH1+=(0x10000-499)/0x100;TL1+=(0x10000-499)%0x100;CLK=~CLK; //翻转P1.0口}三、工作原理本题仅要求在P1.0口上产生一个方波信号,因此硬件电路很简单,仅为一套单片机最小系统。

为了能够显示P1.0口上产生的方波信号,并精确测量其脉宽,仿真时在这个口上连接了一个示波器和一个频率计,通过观察频率计上的频率读数来间接测算出产生的方波信号脉宽时长。

软件方面,单片机启动定时器T1,设定好初始值后开始定时,并在每次中断里翻转P1.0口并重装载初值,以此实现方波的产生。

其中初始值的计算过程为,方波周期为1mS,且等宽,则应每隔500uS翻转一次P1.0口。

而定时器工作在方式1,为16位定时器,默认定时周期为0x10000个机器周期,由于晶振为12MHz,所以换算成时间也就是0x1000uS。

因此定时器初始值应为0x10000-500,则对应的TH1为(0x10000-500)/256,TL1为(0x10000-500)%256。

至于程序源码中的初值为何为0x10000-499,会在下一节详细给出原因。

基于单片机波形发生器硬件设计论文

基于单片机波形发生器硬件设计论文

基于单片机的波形发生器的硬件设计【摘要】本设计是基于单片机at89s52和dac0832数模转换器组成的波形发生器。

正弦波,三角波,方波的产生是通过单片机编程实现。

通过按键选择波形的输出以及控制波形的频率和幅值输出,同时采用液晶lcd1602实时显示波形频率和幅值。

输出电压幅值范围为0-5v。

以单片机核心控制电路,键盘电路,数模转换电路,液晶显示电路,倍频电路等来实现波形发生器的设计。

【关键字】单片机波发生器数模转换频率幅值波形发生器是一种常用的信号源,常包括有音频信号发生器,函数发生器,脉冲发生器,射频信号发生器,任意波形发生器等,在科学研究,生产实践中都有重大的应用。

传统设计波形发生器主要是通过硬件电路搭接形成的,这种设计存在波形不稳定,控制比较难而且电路比较复杂,体积大,功耗大等缺点。

随着信息技术的发展,科学技术的研究以及仪器的智能化,都给我们带来方便。

本设计是采用单片机来产生几种不同的波形,集成度高,体积小,低功耗,性价比高。

在一些设计研究中通常需要一种有特殊要求的信号来作为测试的信号源,比如能产生正弦波,三角波,方波等信号的波形,并能实现幅值和频率的可调。

这样的设计更接近智能化,也是市场的需求所在。

一、总体设计思路本设计主要以at89s52单片机为控制核心,由单片机编程产生三种波形的程序,p0口向dac0832送信号值, lm324运放实现了把dac0832的输出电流值转换成对应的电压值,这样可以输出不同的波形。

通过p1口的按键来选择三种波形的输出,以及频率和幅值的增加与减少,同时在lcd上实时显示波形幅值和频率。

为了实现信号的高频率输出,采用倍频电路来提高频率。

硬件需求:●万用表:主要用来检测制作的pcb板有没有断路,短路,电子元件是否连接完好,电路板通电后的部分的电压电流是否正常等。

●所选元件:at89s52单片机,液晶显示屏。

●烧写器:主要用来把完成的软件程序烧写到89s52单片机上。

基于单片机的两相脉冲方波电路设计

基于单片机的两相脉冲方波电路设计

基于单片机的两相脉冲方波电路设计设计基于单片机的两相脉冲方波电路需要考虑以下几个方面:单片机的选择,输入脉冲信号的条件,输出方波信号的特性,以及其他相关的电路元件。

首先,选择单片机。

在进行电路设计之前,我们需要选择适合的单片机,它应该具有足够的IO接口来实现两个输入信号和一个输出信号。

常见的单片机包括8051系列、AVR系列和PIC系列等。

根据具体需求,可以选择适合的单片机。

其次,输入脉冲信号的条件。

输入脉冲信号应满足一定的条件,如幅值、频率和波形。

对于方波信号,幅值可以选择5V,频率可以选择1kHz,波形应为两相脉冲。

简单起见,我们可以使用两个外部信号源提供输入脉冲信号,或者使用函数发生器产生脉冲信号。

然后,设计输出方波信号的特性。

根据需求,我们可以选择输出方波信号的幅值、频率和波形。

幅值可以选择5V或3.3V,频率可以选择1kHz或者其他合适的频率,波形要求为方波。

然后,我们需要使用单片机的IO口控制输出信号,并使用相应的电路元件进行滤波和保护,确保输出方波信号的稳定性和可靠性。

最后,设计其他相关的电路元件。

在设计过程中,还需要考虑一些额外的电路元件,如滤波电容、限幅电阻、可编程电阻等。

这些元件可以根据具体要求和电路特性进行选择和配置,以确保电路工作正常。

综上所述,设计基于单片机的两相脉冲方波电路需要根据具体需求选择合适的单片机,满足输入信号和输出信号的条件,并考虑其他相关的电路元件的设计。

设计过程中,需要合理布局电路和连接电路,严格按照电路原理和规范进行操作,以确保电路的稳定性和可靠性。

基于单片机的波形发生器设计及实现

基于单片机的波形发生器设计及实现

基于单片机的波形发生器设计及实现基于单片机的波形发生器是一种能够输出各种波形信号(如正弦波、方波、三角波等)的电子设备。

它通常由单片机、存储器、数字模拟转换器(DAC)、时钟电路、显示屏幕等组成。

本文将详细介绍基于单片机的波形发生器的设计和实现过程。

首先,我们选择一款合适的单片机作为波形发生器的控制核心。

在选择单片机时,需要考虑其计算能力、输入输出接口、外设资源等因素。

常见的单片机有STM32系列、Arduino等。

接下来,我们需要设计存储器组件来存储各种波形信号数据。

可以使用EEPROM或FLASH作为存储器,将波形信号经过编码后存储在其中。

编码方式有多种选择,如幅值编码、相位编码等。

在波形发生器中,我们需要存储多个波形信号的数据,因此需要设计合适的数据格式来存储不同波形信号的信息。

然后,我们需要设计数字模拟转换器(DAC)电路,将存储器中的数字信号转换为模拟信号输出。

DAC电路的设计需要考虑输出分辨率、精度以及电压范围等因素。

通常情况下,我们可以使用市场上现成的DAC芯片,如R-2R型DAC芯片。

接下来,我们需要设计时钟电路,用以控制波形信号的频率和相位。

时钟电路一般使用晶体振荡器提供稳定的时钟信号。

根据波形信号的需求,我们可以选择不同的工作频率和相位。

最后,我们需要选择合适的显示屏幕来显示输出的波形信号。

显示屏幕可以选择液晶显示屏或者OLED显示屏,具体选择则取决于要求和预算。

在实现基于单片机的波形发生器时,我们需要注意以下几点:首先,需要编写控制单片机的程序代码。

程序代码需要实现波形信号的生成、存储器数据的访问、DAC电路的控制以及时钟信号的生成等功能。

其次,需要进行电路布局设计和焊接工作。

通过将各个电路模块进行合理布局,以减小电路的干扰,提高波形发生器的性能。

最后,进行测试和调试工作。

在测试和调试时,我们需要对波形发生器输出的波形进行检测,以确保波形的准确性和稳定性。

同时,还需要对其他模块,如存储器、DAC、时钟电路等进行测试和调试。

基于单片机的信号发生器设计

基于单片机的信号发生器设计

基于单片机的信号发生器设计一、本文概述随着现代电子技术的飞速发展,单片机因其高集成度、低成本和易于编程等特点,在信号处理和控制领域得到了广泛应用。

本文旨在探讨基于单片机的信号发生器设计,该设计在电子工程、自动化控制、信号处理等领域具有重要的应用价值。

本文将首先介绍单片机的基本概念、特点及其在信号发生器设计中的应用优势。

随后,将详细阐述信号发生器的设计原理、系统架构以及关键模块的设计方法,包括信号生成模块、放大模块、滤波模块等。

本文还将探讨单片机编程技术在信号发生器中的应用,包括程序设计、调试与优化等方面。

通过实验验证所设计信号发生器的性能,并对其在实际应用中的可行性进行评估。

本文的研究成果将为相关领域的研究人员和技术人员提供一定的理论指导和实践参考。

二、单片机概述单片机(Microcontroller Unit,MCU)是一种集成电路芯片,是将中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入输出(IO)端口、定时计数器以及中断系统等主要计算机功能部件集成在一块芯片上的微型计算机。

单片机以其体积小、功能强、性价比高、可靠性高、控制灵活、易于扩展等优点,被广泛应用于各种控制系统和智能化产品中。

单片机通常按照数据总线宽度、内部程序存储器容量、IO端口数量等参数进行分类。

其内部逻辑电路主要包括CPU、存储器、IO接口电路、定时计数器、中断控制逻辑等模块。

CPU是单片机的核心,负责执行指令、处理数据和进行逻辑运算存储器用于存储程序和数据IO接口电路负责单片机与外部设备的连接和通信定时计数器用于实现定时和计数功能中断控制逻辑则用于响应和处理外部中断事件。

在信号发生器设计中,单片机作为核心控制单元,负责产生和控制各种信号波形,如正弦波、方波、三角波等。

通过编程控制单片机的IO端口,可以产生不同频率、不同幅度的信号,从而实现信号发生器的功能。

同时,单片机还可以通过与其他电路模块的配合,实现信号调理、功率放大、显示输出等功能,使信号发生器具有更高的性能和更广泛的应用范围。

基于STC15单片机的频率计及方波发生器设计

基于STC15单片机的频率计及方波发生器设计

基于STC15单片机的频率计及方波发生器设计频率计是一种测量信号频率的仪器,而方波发生器是一种能够产生方波信号的电路。

本文将介绍基于STC15单片机的频率计和方波发生器的设计。

一、引言频率计和方波发生器是电子领域常用的测试仪器和电路。

本文中,我们将结合STC15单片机的特性,设计一种简单、稳定且易于使用的频率计和方波发生器。

二、频率计设计频率计是一种能够测量信号频率的仪器。

对于频率计的设计,我们需要通过捕获信号的上升沿和下降沿并计算时间差来计算频率。

1.硬件设计硬件设计主要包括信号捕获电路和单片机的连接。

信号捕获电路中,我们可以使用一个触发器电路来捕获信号的上升沿和下降沿。

触发器电路可以使用CD4013等型号的D触发器芯片。

通过将信号接入D触发器的CLK引脚,并将Q和/CLR引脚连接到单片机的输入脚,我们可以通过检测D触发器输出的脉冲来捕获信号的边沿。

在信号捕获电路中,我们还需要使用一个电阻和一个电容来形成一个低通滤波器,以滤除高频噪声。

将信号捕获电路的输出接入单片机的外部中断引脚,可以方便地触发单片机中断服务程序进行频率计的测量。

2.软件设计频率计的软件设计主要包括中断服务程序和主程序。

中断服务程序中,我们需要在捕获到信号边沿时,记录当前时间并清除中断标志位。

通过记录上升沿和下降沿时间的差值,我们可以得出信号的周期和频率。

主程序中,我们可以定时地调用频率计测量函数,并将测量结果显示在LCD屏幕上。

方波发生器是一种能够产生方波信号的电路。

在方波发生器的设计中,我们可以通过单片机的IO口来控制信号的频率和占空比。

1.硬件设计硬件设计中,我们需要连接单片机的IO口和电路中的相关元件。

在方波发生器电路中,我们可以使用一个555定时器芯片或者一个RC电路来产生方波信号。

通过单片机的IO口来控制触发信号的频率和高低电平持续的时间,我们可以产生所需的方波信号。

2.软件设计方波发生器的软件设计主要包括主程序的编写和IO口状态的控制。

基于MSP430单片机的信号发生器设计

基于MSP430单片机的信号发生器设计

基于MSP430单片机的信号发生器设计信号发生器是一种用于产生各种波形信号的仪器,常用于电子实验、通信测试等领域。

本文将基于MSP430单片机设计一个简单的信号发生器,并介绍其原理、硬件电路和软件设计过程。

一、设计原理MSP430是德州仪器(TI)推出的一款低功耗微控制器,具有丰富的外设和易用的开发环境,适合用于嵌入式系统设计。

通过MSP430的数字模拟转换器(DAC)和PWM输出功能,我们可以实现一个基本的信号发生器。

本设计基于MSP430G2553单片机,通过PWM输出产生不同频率的方波,并通过DAC输出控制方波的幅度,从而生成正弦、三角和方波等不同波形的信号。

二、硬件电路设计硬件电路主要包括MSP430G2553单片机、DAC芯片、PWM输出电路和运放放大电路。

1.MSP430G2553单片机MSP430G2553单片机具有16位的定时器,可产生必要的时序信号,以及8位的数字模拟转换器(DAC),可用于控制信号幅度。

2.DAC芯片DAC芯片用于将MSP430的数字信号转换为模拟信号,并控制信号的幅度。

常用的DAC芯片有MAX523和TLV5620等。

3.PWM输出电路PWM输出电路用于产生不同频率和占空比的方波信号。

我们可以利用MSP430的定时器功能或使用外部PWM芯片,如L293D或ULN2803A。

4.运放放大电路运放放大电路用于放大DAC输出的信号,以得到更高的输出幅度。

我们可以选择常见的运放芯片,如LM324或OPA2134三、软件设计过程软件设计主要包括定时器配置、PWM输出配置和DAC控制等模块。

1.定时器配置首先,我们需要配置MSP430的定时器,以产生所需的频率。

通过设定定时器的计数周期和分频系数,可以设置定时器的频率。

2.PWM输出配置接下来,我们需要配置PWM输出。

通过设定PWM期间和占空比,可以产生不同频率和占空比的方波信号。

3.DAC控制最后,我们需要利用MSP430的DAC输出控制信号的幅度。

频率可调的方波信号发生器设计及电路

频率可调的方波信号发生器设计及电路

频率可调的方波信号发生器设计及电路用单片机产生频率可调的方波信号。

输出方波的频率范围为1Hz-200Hz,频率误差比小于0.5%。

要求用“增加”、“减小”2个按钮改变方波给定频率,按钮每按下一次,给定频率改变的步进步长为1Hz,当按钮持续按下的时间超过2秒后,给定频率以10次/秒的速度连续增加(减少),输出方波的频率要求在数码管上显示。

用输出方波控制一个发光二极管的显示,用示波器观察方波波形。

开机默认输出频率为5Hz。

3.5.1模块1:系统设计(1)分析任务要求,写出系统整体设计思路任务分析:方波信号的产生实质上就是在定时器溢出中断次数达到规定次数时,将输出I/O管脚的状态取反。

由于频率范围最高为200Hz,即每个周期为5 ms(占空比1:1,即高电平2.5ms,低电平2.5 ms),因此,定时器可以工作在8位自动装载的工作模式。

涉及以下几个方面的问题:按键的扫描、功能键的处理、计时功能以及数码管动态扫描显示等。

问题的难点在按键连续按下超过2S的计时问题,如何实现计时功能。

系统的整体思路:主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行相应的功能,然后在数码显示频率的值,显示完成后再回到按键扫描,如此反复执行。

中断程序负责方波的产生、按键连续按下超过2S后频率值以1 0Hz/s递增(递减)。

(2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图采用MCS51系列单片机At89S51作为主控制器,外围电路器件包括数码管驱动、独立式键盘、方波脉冲输出以及发光二极管的显示等。

数码管驱动采用2个四联共阴极数码管显示,由于单片机驱动能力有限,采用7 4HC244作为数码管的驱动。

在74HC244的7段码输出线上串联100欧姆电阻起限流作用。

独立式按键使用上提拉电路与电源连接,在没有键按下时,输出高电平。

发光二极管串联500欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。

图3-14 方波信号发生器的硬件电路原理图(3)分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图软件任务要求包括按键扫描、定时器的控制、按键连续按下的判断和计时、数码管的动态显示。

基于单片机的方波信号发生器设计

基于单片机的方波信号发生器设计

基于单片机的方波信号发生器设计为了实现方波信号的发生器,我们可以使用单片机来实现,单片机可以通过编程来控制方波信号的频率和占空比。

在这里,我将介绍一种基于单片机的方波信号发生器的设计。

首先,我们需要选择一个合适的单片机来作为我们的控制器。

常用的单片机有Arduino、STM32等。

在这里,我们选择使用Arduino Uno作为控制器。

Arduino Uno是一种开源的微控制器板,使用ATmega328P芯片,具有易用性和良好的稳定性。

接下来,我们需要连接一块电路板用于输出方波信号。

为了实现方波信号的生成,我们可以使用一个555定时器芯片来实现。

555定时器可以方便地产生方波信号。

我们将在Arduino Uno和555定时器之间进行串联连接,Arduino Uno将通过编程来控制555定时器的工作。

接下来,我们需要编写Arduino的程序来控制方波信号的频率和占空比。

我们可以使用Arduino的PWM输出功能来控制方波信号的频率。

通过调整PWM的占空比,我们可以控制方波信号的占空比。

以下是一个简单的Arduino程序示例:```c//定义信号输出引脚#define SIGNAL_PIN 9void setu//将信号输出引脚设为输出模式pinMode(SIGNAL_PIN, OUTPUT);void loo//设置PWM频率为1kHzint frequency = 1000;//设置PWM占空比为50%int dutyCycle = 50;//计算PWM周期//计算PWM高电平时间int highTime = period * dutyCycle / 100;while (true)//输出高电平digitalWrite(SIGNAL_PIN, HIGH);delayMicroseconds(highTime);//输出低电平digitalWrite(SIGNAL_PIN, LOW);delayMicroseconds(period - highTime);}```在这个示例程序中,我们定义了信号输出引脚为9号引脚,在setup 函数中将其设为输出模式。

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

本设计用到一个 AT89C51 微处理器,4 个按键,一个四与门。AT89C51 用到两个定时
器,定时器 0 和定时器 1。其中定时器 0 工作在定时方式 1 下,决定方波频率;定时器 1
工作在定时方式 1 下,用来设定占空比。按键 1 与 2 控制方波信号频率。按下按键 1 或 2
时,进行频率的调节,占空比不变。1 键按下时,频率增加 100Hz,若 2 键按下时,频率
总体看来,设计成果达到了设计要求。输出方波的波形稳定,调节也较为简单。
11
七、 源程序
成都理工大学《电子系统设计》课程设计
#include<reg51.h> #define uchar unsigned char #define uint unsigned int
float fosc=12000000; sbit KEY1=P1^0; sbit KEY2=P1^1; sbit KEY3=P1^2; sbit KEY4=P1^3;
6
成都理工大学《电子系统设计》课程设计
开始 关中断 延时消抖
N 是否有键按下 Y 判断按键号
键处理
频率和占空比 N 范围是否超界
Y 赋初值 计算定时初值 键盘口初始化 关中断
结束
图 4 – 键盘中断处理子程序流程图
3.4 定时器中断子程序
定时器中断子程序中有定时器 0 与定时器 1 中断,频率定时器 0 中断流程图与占空比 定时器 1 流程图分别如图 5、图 6 所示。
增加 10Hz。频率最大值为 500Hz,当频率大于最大值时,重新赋值为 50Hz。另外两个按键
控制方波信号占空比。当按键 3 和 4 按下时,进行占空比调节,频率不变。3 键按下时,
占空比进行增加 10%,4 键按下时,占空比增加 1%。占空比最大值为 100%,当占空比大于
100%时,重新赋值为 0%。
比分别为 50Hz 和 50%,符合程序初始化的结果。
图 7 – Proteus 仿真 – 初始状态
8
成都理工大学《电子系统设计》课程设计
2) 分别按下按键 1、2 调节方波频率。可以看到方波波形频率不断增加,一快一慢, 而占空比依然为 50%未变。
图 8 – Proteus 仿真 – 调节方波频率
/******************* 系统初始化 *******************/
void chushihua(void)
{
P1=0x0f;
freq=50;
zkb=50;
TIMER0_L=0xe0;
TIMER0_H=0xb1;
TIMER1_L=0xf0;
TIMER1_H=0xd8;
TL0=0xe0; //初始频率 50Hz 定时 20ms
成都理工大学《电子系统设计》课程设计
表 3 AT89C51 芯片端口资源分配表
芯片端口
作用说明
P1.0
连接按键 1,控制输出方波频率
P1.1
连接按键 2,控制输出方波频率
P1.2
连接按键 3,控制输出方波占空比
P1.3
连接按键 4,控制输出方波占空比
P2.0
输出方波波形
P3.2
接收键盘中断请求信号
①定时器 0 中断执行的操作有:复位,启动自身进行频率定时,同时启动定时器 1, 进行占空比定时,输出高电平。
②定时器 1 中断,停止自身的计时,输出低电平。
7
成都理工大学《电子系统设计》课程设计
定时器0中断入口
定时器1中断入口
TR1=1
TR1=0
重装定时初值
重装定时初值
输出高电平
输出低电平
结束
图 5 – 频率定时器 0 中断流程
1.2 设计原理
AT89C51 单片机具有组成微型计算机的各部分部件:CPU、RAM、I/O 定时器/计数器以 及串行通讯接口等。只要将 AT89C51 的 ROM,接口电路,再配置键盘及其接口,显示器及
2
成都理工大学《电子系统设计》课程设计
其接口,数模转换及波形输出,指示灯及其接口等四部分,即可构成所需波形发生器。其 信号发生器构成原理框图如图 1 所示。
TH0=0xb1;
TL1=0xf0; //初始占空比 50%定时 10ms
TH1=0xd8;
TMOD=0x11; //定时器 1 和定时器 0 工作在方式 1
IT0=1;
//选择 INT0 为下降沿触发方式
EX0=1;
//外部中断 0 允许
ET0=1;
//定时器 1 和定时器 0 中断允许
ET1=1;
//系统时钟频率 //控制频率百位; //控制频率十位; //控制占空比十位; //控制占空比个位;
sbit OUTPUT=P2^0;
//方波输出端口;
uchar zkb;
uint freq;
uchar TIMER0_L,TIMER0_H,TIMER1_L,TIMER1_H; //定时器 0 和 1 的定时初值;
EA=1;
//系统中断允许
TR0=1;
//定时器 1 和定时器 0 开始定时
TR1=1;
}
/********************* 主函数
13
成都理工大学《电子系统设计》课程设计
*********************/ void main(void) { chushihua(); //系统初始化 while(1) {} }
3.2 系统初始化子程序
在此程序中,给所有变量赋初值:键盘扫描口、初始频率与占空比及定时、开中断、 定时器 0 与定时器 1 的工作方式等。初始化时启动了定时器 0 和定时器 1.其中初始频率为 50Hz,占空比为 50%。键盘中断处理子程序流程图如图 4 所示
3.3 键盘中断子程序
键盘用外中断 0 实现。当有键按下时,产生低电平送入 INT0 口,形成中断请求信号, CUP 转去执行键盘中断子程序,进行频率调节或占空比调节。
3
成都理工大学《电子系统设计》课程设计
二、 系统的硬件设计
2.1 系统硬件原理
系统硬件原理图如图 2。本次设计中,采用内部时钟方式。 AT89C51 单片机的 P1.0、P1.1、P1.2、P1.3 口分别连接四个按键,对输出方波的频率、 占空比进行控制。P2.0 口作为方波输出口,可以通过示波器来观察波形。四个键盘口连接 一个四与门,与 INT0 口连接,将键盘中断请求信号送入 CPU。
结束
图 6 – 频率定时器 1 中断流程
四、 系统调试
在本次课程设计中,使用 Proteus 软件进行仿真调试。调试内容主要为软硬件的协同, 观察波形输出结果是否能够与设计方案所设计的那样达到要求。
调试结果如下: 1) 在 Proteus 软件中运行仿真,示波器窗口中出现方波波形,显然波形频率与占空
时。
根据计算定时器初值的公式:
TC
=
2L

fOSC × 12
t
计算出定时器 0 与定时器 1 所要装入的初值。
定时器 0 初值:C1=(65536-fosc/(12.0*freq))
定时器 0 初值:C1=(65536-(fosc*zkb)/(12.0*100*freq))
其中 freq 表示输出方波频率,zkb 表示方波占空比。
9
成都理工大学《电子系统设计》课程设计
图 10 – 系统运行 – 初始状态
2) 按下 1、2 键调节方波频率,可见方波频率增加,占空比依然保持 50%。
图 11 – 系统运行 – 调节方波频率
3) 使方波重新达到初始状态,分别按下 3、4 键,可见方波占空比发生相应变化,而 频率依然为 50Hz 未变。
3) 重新在初始状态下进行仿真。分别按下按键 3、4 调节方波占空比,可以看到方波 波形的占空比发生变化,而频率未变。
图 9 – Proteus 仿真 – 调节方波占空比
五、 实验记录
将 HEX 文件加载后,用示波器观察单片机的 P2.0 口,得到输出结果,如下图。 1) 系统运行的初始状态如下图,与仿真结果一致。
图 2 – 系统硬件原理图
2.2 芯片端口资源分配表
表 2 74LS21 芯片端口资源分配表
芯片端口1 2 4 5
作用说明 连接按键 1,判断按键 1 是否按下 连接按键 2,判断按键 2 是否按下 连接按键 3,判断按键 3 是否按下 连接按键 4,判断按键 4 是否按下
6
发送键盘中断请求信号
4
***********************/
void keyscan() interrupt 0 using 1 //外部中断 0
{float TF0,TZ1;
EX0=0;
//关中断
delay(10); //延时消抖
if(P1!=0x0f) //判断是否有键按下
/**************************** 延时子程序 ****************************/
void delay(uchar n) //延时 {
uchar i; while(n--)
{for(i=255;i>0;i--) {} }}
12
成都理工大学《电子系统设计》课程设计
性能良好
难以达到输出频率覆盖系数 的要求,电路复杂。
单片机编程
信号精度较高
需求软硬件结合
表 1 – 方案对比
通过对比,决定采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信
号波形的频率和幅度,而且在硬件电路不变的情况下,通过改编程序来实现频率的变换。
此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做得很高。
三、 软件设计
相关文档
最新文档