51单片机 信号发生器如何接受矩形信号

当前位置: >>
基于51单片机函数信号发生器设计
湘南学院电子工程设计题目: 基于 51 单片机的函数信号发生器设计 电子信息与电气工程学院 2013 级电子信息科学与技术
, 周 王 慧 龙 程迅学院(系) : 年级专业: 学 号:学生姓名: 指导教师:2016 年 4月 1 日 课程设计任务书学生姓名:程迅 周慧专业班级:电子信息科学与技术(一)班 指导教师:王 龙 工作单位:电子信息与电气工程学院 题 目: 基于 51 单片机的函数信号发生器的设计初始条件:1. 2. 3. 运用所学的单片机原理与接口技术知识和数字电路知识; 51 单片机最小系统; PC 机及相关应用软件。要求完成的主要任务:系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,通 过程序设计方法产生锯齿波、正弦波、三角波、矩形波四种波形, 通过按键来控 制四种波形的类型选择、频率变化,并通过液晶屏 1602 显示其各自的类型以及 频率值。 1.完成函数信号发生器的设计和调试。 2.撰写课程设计说明书,说明书使用 A4 打印纸计算机打印,用 proteus 等 仿真软件绘制电子线路图纸。 基于 51 单片机的函数信号发生器的设计摘 要本系统利用单片机 STC89C52 采用程序设计方法产生锯齿波、正弦波、三 角波、 矩形波四种波形, 再通过 D/A 转换器 DAC0832 将数字信号转换成模拟信号, 滤波放大,最终由示波器显示出来,能产 0Hz―535Hz 的波形。通过按键来控制 三种波形的类型选择、频率变化,并通过液晶屏 1602 显示其各自的类型以及数 值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其 中尤其对数/模转换部分和波形产生和变化部分进行详细论述。 关键词:单片机 STC89C52、DAC0832、液晶 1602 目录前言 .......................................................................... 1 第一章 系统设计要求及设计方案 .................................................. 2 1.1 设计要求 ................................................................. 2 1.2 方案设计与论证 ........................................................... 2 1.2.1 信号发生电路方案论证............................................... 2 1.2.2 1.2.3 单片机的选择论证.................................................. 2 显示方案论证 ..................................................... 31.2.4 键盘方案论证 ...................................................... 3 1.3 系统主要功能 ............................................................. 3 第二章 系统的硬件设计 .......................................................... 4 2.1 总体系统设计 ............................................................. 4 2.2 硬件实现及单元电路设计 ................................................... 4 2.2.1 振荡电路 .......................................................... 4 2.2.2 复位电路设计 ..................................................... 5 2.2.3 波形产生模块设计 .................................................. 6 2.2.4 显示模块的设计 ..................................................... 7 2.2.5 键盘显示模块的设计................................................. 7 2.3 软件设计流程 ............................................................. 8 第三章 proteus 的简介 .......................................................... 9 3.1 proteus 介绍 ............................................................. 9 3.1.1 keil 调试 ......................................................... 10 3.1.2 proteus 仿真调试 .................................................. 10 3.2 测试过程 ................................................................ 11 附录一:总电路图.............................................................. 12 附录二:部分程序.............................................................. 12 前言信号发生器是一种常用的信号源,广泛应用于电子电路、自动控制系统和教 学实验等领域。信号的产生有模拟电路、专用硬件和软件产生等方法。采用模拟 电路搭建函数信号发生器,可产生方波、三角波、正弦波、锯齿波,但不能产生 任意波形,存在波形质量差、控制难、可调范围小,电路复杂和体积大等缺点, 且频率调节不方便。专用硬件方法产生的信号频率分辨率高、稳定性好、在线调 整方便,如目前在通讯系统中应 用广泛的直接数字频率合成( DDS)技术,例 如 AD9854 是一种典型的信号产生方法,但是价格昂贵。 利用单片机通过程序设计方法产生低频信号,其频率底线较低,具有线路简 单、结构紧凑、体积小、价格低廉、频率稳定度高、抗干扰能力强、用途广泛等 优点,且如需要产生新的波形时,只需对程序进行修改即可。该系统利用单片机 STC89C52 和 D /A 转换器 DAC0832 转换数字信号为 0 ~ 5 V 模拟电压信号, 并在 LCD1602 显示,通过示波器就能得知产生的信号波形。1 第一章 系统设计要求及设计方案1.1 设计要求1)、利用单片机采用软件设计方法产生四种波形 2) 、四种波形可通过按键选择输出 3) 、波形频率可调 4) 、需显示波形的频率1.2 方案设计与论证1.2.1 信号发生电路方案论证方案一: 通过单片机控制 D/A, 输出三种波形。 此方案输出的波形不够稳定, 抗干扰能力弱,不易调节。但此方案电路简单、成本低。 方案二:使用传统的锁相频率合成方法。通过芯片 IC145152,压控振 荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方 波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。 方案三:利用 MAX038 芯片组成的电路输出波形。MAX038 是精密高频波 形产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形。但此方案 成本高,程序复杂度高。 以上三种方案综合考虑,选择方案一。 1.2.2 单片机的选择论证方案一:STC89C52 单片机是一种高性能 8 位单片微型计算机。它把构成计 算机的中央处理器 CPU、存储器、寄存器、I/O 接口制作在一块集成电路芯片中, 从而构成较为完整的计算机、而且其价格便宜。 方案二:C 单片机是完全集成的混合信号系统级芯片,具有与 8051 兼容的微控制器内核,与 MCS-51 指令集完全兼容。除了具有标准 8052 的 数字外设部件, 片内还集成了数据采集和控制系统中常用的模拟部件和其他数字 外设及功能部件,而且执行速度快。但其价格较贵。 以上两种方案综合考虑,选择方案一2 1.2.3显示方案论证方案一:采用 LED 数码管。LED 数码管由 8 个发光二极管组成,每只数码管 轮流显示各自的字符。 由于人眼具有视觉暂留特性,当每只数码管显示的时间间 隔小于 1/16s 时人眼感觉不到闪动,看到的是每只数码管常亮。使用数码管显示 编程较易,但要显示内容多,而且数码管不能显示字母。 方案二:采用 LCD 液晶显示器 1602。其功率小,效果明显,显示编程容易 控制,可以显示字母。 以上两种方案综合考虑,选择方案二。 1.2.4 键盘方案论证 方案一:矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩 阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高 电平。当某一个键闭合时,该键所对应的行线和列线被短路。 方案二:独立点触按键。点触按键体积小,安装方便,成本低。 以上两种方案综合考虑,选择方案二。1.3 系统主要功能经过考虑, 我们确定方案如下:利用 STC89C52 单片机采用程序设计方法产 生锯齿波、正弦波、矩形波锯齿波四种波形,再通过 D/A 转换器 DAC0832 将数字 信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过按键来控制四种 波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。3 第二章 系统的硬件设计2.1 总体系统设计该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统 控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电 路输出数字显示的方案。将设计任务分解为按键电路、液晶显示电路等模块。下 图 2.1 为系统的总体框图图 2.1 总体方框图2.2 硬件实现及单元电路设计2.2.1 振荡电路 单片机内部有一个高增益、反相放大器,其输入端为芯片引脚 XTAL1,其输 出端为引脚 XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容 (电容和一般取 30pF) 。这样就构成一个稳定的自激振荡器。 振荡电路脉冲经过二分频后作为系统的时钟信号, 再在二分频的基础上三分频产4 生 ALE 信号,此时得到的信号时机器周期信号。 振荡电路如图 2.2.1 所示:图 2.2.1 振荡电路2.2.2复位电路设计复位操作有两种基本形式:一种是上电复位,另一种是按键复位。按键复位 具有上电复位功能外,若要复位,只要按图中的 RESET 键,电源 VCC 经电阻 R1、 R2 分压,在 RESET 端产生一个复位高电平。上电复位电路要求接通电源后,通 过外部电容充电来实现单片机自动复位操作。上电瞬间 RESET 引脚获得高电平, 随着电容的充电,RERST 引脚的高电平将逐渐下降。RERST 引脚的高电平只要能 保持足够的时间(2 个机器周期) ,单片机就可以进行复位操作。按键复位电路 图如图 2.2.2 所示。图 2.2.2 复位电路5 2.2.3 波形产生模块设计 由单片机采用编程方法产生四种波形、通过 DA 转换模块 DAC0832 在进过滤 波放大之后输出。 其电路图如下图 2.2.3(1):图 2.2.3(1) 波形产生电路如上图 2.2.3(1)所示,单片机的 P0 口连接 DAC0832 的八位数据输入端, DAC0832 的输出端接放大器,经过放大后输出所要的波形。DAC0832 的为八位数 据并行输入的,其结构图如下图 2.2.3(2):图 2.2.3(2) DAC0832 的内部结构6 2.2.4 显示模块的设计 通过液晶 1602 显示输出的波形、频率。1602 的八位数据端接单片机的 P0 口,其使能端 RS、E 分别接单片机的 P3.5、P3.4。通过软件控制液晶屏可以显 示波形的种类以及波形的频率。 其电路图如下图 2.2.4:图 2.2.4 液晶显示2.2.5 键盘显示模块的设计 其连接电路图如下图 2.2.5:图 2.2.5 键盘图中键盘引出的 5 跟线分别接单片机的 P1 口, 其中 P1.0 连接按键 1 用于切 换波形,P1.1、P1.2 连接按键 2 、3 用于调节波形的频率的增减,P1.3 连接的按 键用于占空比的升高。7 2.3 软件设计流程本系统采用 STC89C52 单片机,用编程的方法来产生四种波形,并通过编程 来切换四种波形以及波形频率的改变。 具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增 减等。 软件调通后,通过编程器下载到 STC89C52 芯片中,然后插到系统中即可独 立完成所有的控制。 软件的流程图如下图 2.3:图 2.3 程序流程图8 第三章 proteus 的简介3.1 proteus 介绍Proteus 软件是来自英国 Labcenter electronics 公司的 EDA 工具软件,它 组合了高级原理布图、混合模式 SPICE 仿真,PCB 设计以及自动布线来实现一个 完整的电子设计系统。此系统受益于 15 年来的持续开发,被《电子世界》在其对 PCB 设计系统的比较文章中评为最好产品―“The Route to PCB CAD” 。Proteus 产品系列也包含了我们革命性的 VSM 技术,用户可以对基于微控制器的设计连同 所有的周围电子器件一起仿真。用户甚至可以实时采用诸如 LED/LCD、键盘、 RS232 终端等动态外设模型来对设计进行交互仿真。 其功能模块:―个易用而又功能强大的 ISIS 原理布图工具;PROSPICE 混合 模型 SPICE 仿真;ARES PCB 设计。PROSPICE 仿真器的一个扩展 PROTEUS VSM: 便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微 控制器软件使用动态的键盘,开关,按钮,LEDs 甚至 LCD 显示 CPU 模型。支持 许多通用的微控制器,如 PIC,AVR,HC11 以及 8051。最新支持 ARM。交互的装置 模型包括:LED 和 LCD 显示,RS232 终端,通用键盘,I2C,SPI 器件。强大的调 试工具,包括寄存器和存储器,断点和单步模式。IAR C-SPY 和 Keil uVision2 等开发工具的源层调试。 应用特殊模型的 DLL 界面-提供有关元件库的全部文件。 在完成了函数信号发生器的硬件设计和软件设计以后, 便进入系统的调试阶 段。 系统的调试步骤和方法基本上是相同的,但具体细节和所采用的开发系统以 及用户系统选用的单片机型号有关,我们选用的是 Keil 软件进行软件调试,用 Proteus 软件完成硬件调试。9 3.1.1 keil 调试3.1.2 proteus 仿真调试10 3.2 测试过程1)、当程序下进去时经过初始化,液晶屏的上只显示“Frequency:”和 “0050Hz”,默认状态输出波形为正弦波,按一下按键 1 时输出为方波,按按键 1 两下时输出为锯齿波,按按键 1 三下时输出三角波。按键 2、3 可以调节频率, 三种波形的频率可调范围,分别如下: 正弦波:0―535Hz 方 波:0――535Hz 三角波:0――535Hz 锯齿波:0――535Hz 根据示波器的波形频率的显示计算出三种波形的频率计算公式如下: 正弦波:f= //(512*FREQ) 方 波:f= /(256*FREQ) 三角波:f= /(256*FREQ) 锯齿波:f= 100(+\-)n*2Hz. 2) 、四种种波形的仿真波形图如下:图 3.2(1) 方波图形图 3.2(2) 正弦波图形图 3.2(3) 三角波图形图 3.2(4) 锯齿波图形11 附录一:总电路图附录二:部分程序//调节部分――频率 void freq_ud(void) { if(freq_d==0) { FREQ--; } }else if(freq_u==0){ FREQ++;if(cho==1|cho==3) //锯齿波 256 次中断一周期,否则他的频率是 100(+\-)n*2Hz. {temp=0xffff-3906/FREQ;//默认为 100hz,切换后频率为 50HZ/(256*FREQ) TIME0_H=temp/256; TIME0_L=temp%256; } else if(cho==0|cho==3)//正弦波 三角波默认周期 50hz //(512*FREQ) {temp=0xffff-1953/FREQ; TIME0_H=temp/256; TIME0_L=temp%256; }}12 //调节部分――方波的占空比 void duty_ud(void) //方波也采用 512 次中断构成一个周期。 { if(duty_d==0&sqar_num&0) sqar_num--; else if(duty_u==0&sqar_num&255) sqar_num++; } //波形发生函数 void sint(void) { if(!flag) { cs=0;P2=sin_num[num++];cs=1; if(num==0){num=255;flag=1;} } else if(flag) { cs=0;P2=sin_num[num--];cs=1; if(num==255){num=0;flag=0;} } } void square(void) { if(i++&sqar_num) {cs=0;P2=0XFF;cs=1;}else{cs=0;P2=0X00;cs=1;} } void triangle(void) {13 cs=0;P2=num++;cs=1; } void stw(void) { if(~flag) { cs=0;P2=num++;cs=1; if(num==0){num=255;flag=1;} } else if(flag) { cs=0;P2=num--;cs=1; if(num==255){num=1;flag=0;} } } void main() { TMOD=0X01; TH0=0 TL0=0xd9; IT0=1; EA=1; EX0=1; ET0=1; IP=0X01;//键盘中断级别高 //设置中断触发方式,下降沿init_1602();//初始化 lcd write_command(0x80);//液晶显示位置 delay(5); for (i=0;i&sizeof(value1)-1;i++)14 { write_data(value1[i]); delay(5); } TR0=1; while(1) { show_frequency();} } //按键中断处理程序。 void it0() interrupt 0 { if(chg==0){FREQ=50;if(++cho==4){cho=0;num=0;}}//num=0;所有数据从新开始,保证波形的完整性else if(freq_u==0|freq_d==0) {freq_ud();} else if (cho==1&(duty_d==0|duty_u==0)) {duty_ud();} }15
基于51 单片机的函数发生器 以STC89C51单片机为核心设计了一个低频函数信号发生器。 信号发生器采用 数字波形合成技术,通过硬件电路和软件程序相结合,可输出自定义...创新性实验研究报告 实验项目名称_简易函数信号发生器 山东科技大学电工电子实验教学中心 创新性实验研究报告 一、实验摘要用 AT89C51 单片机采用程序设计方法构成的...单片机原理及接口技术 课程设计报告 设计题目: 基于 51 单片机的波形发生器 学姓...在通信、广播、电视系 统,工业、农业、生物医学领域内,函数信号发生器在实验室...基于51 单片机的信号发生器设计报告 二零一四年十二月十一日 摘 要 根据题目...按信号波形可分为正弦信号、 函数(波形)信号、脉冲信号和随机信号发生器等四大...基于51单片机函数信号发生器设计_信息与通信_工程科技_专业资料。基于51单片机函数信号发生器设计 摘要: 本系统利用单片机 AT89S52 采用程序设计方法产生锯齿波,...基于51单片机的高频函数信号发生器 - 函数信号发生器设计报告 参赛人员:朱秋 王嘉文 房开兰 指导教师:漆晶 二 00 九年七月十四日 -1- 摘要 波形发生器是一...方向课程设计报告 设计课题:信号发生器的设计 设计时间:2012 年 06 月 6 日 信号发生器的设计摘要:本文以 STC89C51 单片机为核心设计了一个低频函数信号发生器...基于AT89C51单片机的多功能函数信号发生器设计_电子/电路_工程科技_专业资料。海南师范大学本科生毕业论文 题目:基于 AT89C51 单片机的多功能函数信号发生器设计 姓...基于51单片机函数信号发生器设计毕业论文 - 基于 51 单片机函数信号发生器设计 摘要: 本系统利用单片机 STC89C51RC 采用程序设计方法产生正弦波、三角波、 矩形波...开题报告_基于51单片机信号发生器的设计 - 西安交通大学城市学院 本科毕业设计(论文)开题报告 题 目 基于 51 单片机的信号发生 器设计 所在系 学生...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。51单片机GPS接受程序_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
51单片机GPS接受程序
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩21页未读,
定制HR最喜欢的简历
你可能喜欢51单片机IO口能够接受大于100K频率的方波吗?
<span class="xi1" style="color:#ff
juexinjiujiu离线LV2本网技师积分:103|主题:1|帖子:0积分:103LV2本网技师 15:25:56
51单片机IO口能够接受大于100K频率的方波吗?需要检测多路脉冲信号,大于8路,频率位100K左右,是电力仪表上的输出信号
我想用单片机的IO来做,不知道可不可行
用8个IO来采集8路信号,然后判断信号状态变化来计数
完全可以。
传统51理论上最大可以测到1M,不过需要编程上的技巧。
8路以上?几路的话可以考虑外中断,分时复用。要同时检测的话就用IO口吧,用内部定时器。不过编程细节要注意。
Coming.Lu离线LV7版主积分:42899|主题:38|帖子:14538积分:42899版主 18:04:24倒数5&如果是老式的51,12时钟指命的那种,很吃力。 ||liu1337离线LV8副总工程师积分:3606|主题:92|帖子:594积分:3606LV8副总工程师 21:08:23倒数4&用传统51比较吃力吧,100kHZ差不多10us中断一次,如果是传统51,如12M脉冲就是10个指令周期中断一次了,这个速度上来不及吧。还是考虑DSP吧,速度差的太多,你还要测大于8路的 ||
sjl2001离线LV6高级工程师积分:612|主题:23|帖子:191积分:612LV6高级工程师 23:06:15倒数2&dsp太浪费了吧 16位单片机就足够了 100多M的dsp做这个 确实有点大材小用了 ||
sjl2001离线LV6高级工程师积分:612|主题:23|帖子:191积分:612LV6高级工程师 23:03:24倒数3&一个8位的单片机 一般一个指令周期1us,也就是说10个指令周期必须完成设置和采集。建议选用16位的pic的就行,带捕获功能的 价格也不高 开发器也比较便宜。应该能满足你的这些需求 ||
pkk1989离线LV6高级工程师积分:639|主题:23|帖子:278积分:639LV6高级工程师最新回复 23:09:39倒数1&完全可以。
传统51理论上最大可以测到1M,不过需要编程上的技巧。
8路以上?几路的话可以考虑外中断,分时复用。要同时检测的话就用IO口吧,用内部定时器。不过编程细节要注意。 ||
热门技术、经典电源设计资源推荐
世纪电源网分部
广 东:(7 /()
北 京:(010) /()
上 海:(021) /()
香 港:HK(852)
中国电源学会
地 址:天津市南开区黄河道大通大厦5层
电 话:(022)
传 真:(022)
E-mail:cpss#cpss.org.cn(#换成@)51单片机如何接收传感器信号_百度知道
51单片机如何接收传感器信号
51单片机如何接收传感器信号
我有更好的答案
你要接什么传感器?????自己没有问清楚如果只是开关信号,那你只要扫描IO就行如果是脉冲信号,你只要用外部定时计数器或者外部中断就行,比如光电编码器
采纳率:39%
来自团队:
如果是数字信号可以使用串口接收,如果是模拟信号则要加上A/D转换器。当然也可能通过无线收发等方法来实现。
为您推荐:
其他类似问题
您可能关注的内容
51单片机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。单片机如何接收外部的信号_百度知道
单片机如何接收外部的信号
LM339出来的高低电平,单片机如何去接收,需要改变IO口的工作方式么?
我有更好的答案
  如果只是开关信号,那只要扫描IO就行;如果是脉冲信号,只要用外部定时计数器或者外部中断就行,比如光电编码器;  发射出来的信号是个周期信号,不同的按键,其编码不同,编码中0和1对应的脉冲长度有差别,详细内容可以看相关的资料。  要实现一直按着音量会一直加(减),这个过程比较复杂,需要单片机不断的接收响应,要编写相应的单片机程序,之后还需要调试。
我讲一下大概的思路哦,有2种办法:1.不用改变IO的工作方式,采用查询的方式接收信号,比如,
if( IOx == 1 )//检测到高电平信号,低电平也一样,把1改为0
{ //做高电平信号时的处理}
//否则没有检测到高电平信号
{//做其它处理}2.采用中断,要改变IO为中断模式,这个可以看一下书,外部中断那一章。
本回答被网友采纳
直接接到I/O口上就可以了
本回答被提问者采纳
LM339&&&&&电压比较器&&&&&&一个芯片有四组&&比较器;&&&&比如&&INPUT1+端口电压大于INPUT1-电压&&&&则OUTPUT1&输出&&高电平&&&&反之&输出&低电平;&&&&当芯片的&&工作电压&&接5V&&&时,&&&GND&&接&地&&&&&;&&&&&&输出的&&信号也对应的输出&&&+5V&&&和GND&&&&&;&&&&&单片机&是可以识别的
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
单片机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 单片机信号灯 的文章

 

随机推荐