单片机及DSP课程设计报告 波形发生器_第1页
单片机及DSP课程设计报告 波形发生器_第2页
单片机及DSP课程设计报告 波形发生器_第3页
单片机及DSP课程设计报告 波形发生器_第4页
单片机及DSP课程设计报告 波形发生器_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 单片机及 DSP 课程设计报告 专 业 电子信息工程 班 级 姓 名 学 号 指导教师 时 间 2012 06 11 24 通信与电子工程学院 2 波形发生器波形发生器 目目 录录 1 引言引言 3 2 设计目的设计目的 3 3 设计任务设计任务 3 4 方案论证方案论证 3 5 原理框图原理框图 4 6 芯片介绍芯片介绍 4 7 程序程序流程图流程图 6 8 算法及其分析算法及其分析 6 9 仿真结果叙述仿真结果叙述 7 10 解决解决问题以及心得体会问题以及心得体会 8 11 参考文参考文献献 9 3 1 1 引言引言 随着微电子技术和超大规模集成电路技术的发展 单片微型计算机以其体积 小 行价比高 功能强 可靠性高等独有的特点 在各个领域 如工业控制 家电 产品 汽车电子 通信 智能仪器仪表 得到了广泛的应用 波形发生器是一种常 用的信号源 广泛地应用于电子电路 自动控制系统和教学实验等领域 本次课程 设计使用的以AT89C51 单片机为核心以及DAC0832构成的简易波形发生器 通过编 写程序来产生锯齿波 具有线路简单 结构紧凑等优点 2 2 设计目的设计目的 为了进一步巩固学习的理论知识 增强对所学知识的实际应用能力和运用所学 的知识解决实际问题的能力 开始为期两周的课程设计 通过设计使学生在巩固所 学知识的基础之上具有初步的单片机系统设计与应用能力 能够对电子电路 电子 元器件 印制电路板等方面的知识有进一步的认识 独立对其进行测试与检查 1 熟悉8051单片机的内部结构和功能 合理使用其内部寄存器 能够完成相关软 件编程设计工作 2 通过本设计 使学生综合运用 微型计算机技术 C语言程序设计 以及 数字电路 模拟电路 等课程的内容 为以后从事电子产品设计 软件编程 系统控制等工作奠定一定的基础 3 学会使用KEIL C和PROTEUS等软件 用C语言或汇编语言编写一个较完整的实 用程序 并仿真运行 保证设计的正确性 4 了解单片机接口应用开发的全过程 分析需求 设计原理图 选用元器件 布 线 编程 调试 撰写报告等 3 3 设计任务设计任务 用D A完成锯齿波输出 用PROTEUS内带的示波器查看波形 4 4 方案论证方案论证 单片微型计算机简称为单片机 它是把组成微型计算机的各功能部件 中央处 理器CPU 随机存取存贮器RAM 只读存贮器ROM I O接口电路 定时器 计数 器以及串行通讯接口等部件制作在一块集成电路芯片中 构成一个完整的微型计算 机 这样的集成电路称得起超大规模集成电路 因此可以说 单片微型计算机与大 规模集成电路和超大规模集成电路的发展井驾齐驱 由于在单片机中设置有只读存贮器 可用来存放控制单片机及外围设备进行工 作的程序 于是从外部来看单片机成为一个独立的控制装置 可广泛用于实时控制 数据采集与处理等方而 因此单片机又称为微控制器 本设计课题采用的就是 ATMEL的AT89C51 DAC0832是一个具有两个输入数据寄存器的8位DAC 目前生产的DAC芯片分 4 为两类 一类芯片内部设置有数据寄存器 不需要外加电路就可以直接与微型计算 机接口 另一类芯片内部没有数据寄存器 输出信号随数据输入线的状态变化而变 化 因此不能直接与微型计算机接口 必须通过并行接口与微型计算机接口 DAC0832是具有20条引线的双列直插式CMOS器件 它内部具有两级数据寄存器 完成8位电流D A转换 故不需要外加电路 0832是电流输出型 示波器上显示波 形 通常需要电压信号 电流信号到电压信号的转换可以由运算放大器实现 单片 机向0832发送数字编码 产生不同的输出 先利用采样定理对各波形进行抽样 然 后把各采样值进行编码 的到的数字量存入各个波形表 执行程序时通过查表方法 依次取出 经过D A转换后输出就可以得到波形 5 5 原理框图原理框图 6 6 芯片介绍芯片介绍 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器 FPEROM Falsh Programmable and Erasable Read Only Memory 的低电压 高性能CMOS8位微处理 器 俗称单片机 管脚说明 VCC 供电电压 GND 接地 P0口 P0口为一个8位漏级开路双向I O口 每脚可吸收8TTL门电流 当P1口 的管脚第一次写1时 被定义为高阻输入 P0能够用于外部程序数据存储器 它可 5 以被定义为数据 地址的第八位 在FIASH编程时 P0 口作为原码输入口 当 FIASH进行校验时 P0输出原码 此时P0外部必须被拉高 P1口 P1口是一个内部提供上拉电阻的8位双向I O口 P1口缓冲器能接收输 出4TTL门电流 P1口管脚写入1后 被内部上拉为高 可用作输入 P1口被外部下 拉为低电平时 将输出电流 这是由于内部上拉的缘故 在FLASH编程和校验时 P1口作为第八位地址接收 P2口 P2口为一个内部上拉电阻的8位双向I O口 P2口缓冲器可接收 输出4 个TTL门电流 当P2口被写 1 时 其管脚被内部上拉电阻拉高 且作为输入 并 因此作为输入时 P2口的管脚被外部拉低 将输出电流 这是由于内部上拉的缘 故 P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时 P2口输 出地址的高八位 在给出地址 1 时 它利用内部上拉优势 当对外部八位地址数 据存储器进行读写时 P2口输出其特殊功能寄存器的内容 P2口在FLASH编程和 校验时接收高八位地址信号和控制信号 P3口 P3口管脚是8个带内部上拉电阻的双向I O口 可接收输出4个TTL门电 流 当P3口写入 1 后 它们被内部上拉为高电平 并用作输入 作为输入 由于 外部下拉为低电平 P3口将输出电流 ILL 这是由于上拉的缘故 P3口也可作为AT89C51的一些特殊功能口 如下表所示 口管脚 备选功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 INT0 外部中断0 P3 3 INT1 外部中断1 P3 4 T0 记时器0外部输入 P3 5 T1 记时器1外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 P3口同时为闪烁编程和编程校验接收一些控制信号 RST 复位输入 当振荡器复位器件时 要保持RST脚两个机器周期的高电平 时间 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平用于锁存地址的 地位字节 在FLASH编程期间 此引脚用于输入编程脉冲 在平时 ALE端以不 变的频率周期输出正脉冲信号 此频率为振荡器频率的1 6 因此它可用作对外部 输出的脉冲或用于定时目的 然而要注意的是 每当用作外部数据存储器时 将跳 过一个ALE脉冲 如想禁止ALE的输出可在SFR8EH地址上置0 此时 ALE只有 在执行MOVX MOVC指令是ALE才起作用 另外 该引脚被略微拉高 如果微处 理器在外部执行状态ALE禁止 置位无效 PSEN 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机 器周期两次 PSEN有效 但在访问外部数据存储器时 这两次有效的 PSEN信号将 不出现 EA VPP 当 EA保持低电平时 则在此期间外部程序存储器 0000H 6 FFFFH 不管是否有内部程序存储器 注意加密方式1时 EA将内部锁定为 RESET 当 EA端保持高电平时 此间内部程序存储器 在FLASH编程期间 此引 脚也用于施加12V编程电源 VPP XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 来自反向振荡器的输出 振荡器特性 XTAL1和XTAL2分别为反向放大器的输入和输出 该反向放大器可以配置为 片内振荡器 石晶振荡和陶瓷振荡均可采用 如采用外部时钟源驱动器件 XTAL2应不接 有余输入至内部时钟信号要通过一个二分频触发器 因此对外部 时钟信号的脉宽无任何要求 但必须保证脉冲的高低电平要求的宽度 D A转换器DAC0832 DAC0832是采用CMOS工艺制成的单片直流输出型8 位数 模转换器 管脚说明 DI0 DI7 数据输入线 TLL电平 ILE 数据锁存允许控制信号输入线 高电平有效 CS 片选信号输入线 低电平有效 WR1 为输入寄存器的写选通信号 XFER 数据传送控制信号输入线 低电平有效 WR2 为DAC寄存器写选通输入线 Iout1 电流输出线 当输入全为1时Iout1最大 Iout2 电流输出线 其值与Iout1之和为一常数 Rfb 反馈信号输入线 芯片内部有反馈电阻 Vcc 电源输入线 5v 15v Vref 基准电压输入线 10v 10v AGND 模拟地 摸拟信号和基准电源的参考地 DGND 数字地 两种地线在基准电源处共地比较好 7 7 程序流程图程序流程图 7 8 8 算法及其分析算法及其分析 ORG 0000H LJMP START ORG 0030H START MOV DPTR 0FEFFH 启动D A转换 MOV A 00H 送初值OOH LOOP MOVX DPTR A INC A LCALL DELAY CJNE A 0FFH LOOP 判断是否为FFH 不是则继续到LOOP 否则往下 执行 SJMP LOOP DELAY 延时程序 MOV R3 11 MOV 31H R3 D1 NOP NOP NOP NOP NOP NOP NOP NOP 8 DJNZ R3 D1 MOV R3 31H RET END 1 程序每循环一次 A加1 因此实际上锯齿波的上升边是由小阶梯构成的 但由于阶梯很小 所以宏观上看就如图中所画的先行增长锯齿波 2 可通过循环程序段的机器周期数 计算出锯齿波的周期 并可根据需要 通过延时的方法来改变波形周期 若要改变锯齿波的频率 可在AJMP MM指令前 加入延迟程序即可 延时较短时可用NOP指令实现 本程序就是如此 需要延 时较长时 可以使用一个延长子程序 延迟时间不同 波形周期不同 锯齿波的斜 率就不同 3 通过A加1 可得到正向的锯齿波 反之A减1可得到负向的锯齿波 4 如果程序中A的变化范围是0 255 就可以得到满幅度的锯齿波 如要求 得到非满幅锯齿波 可通过计算求的数字量的处置和终值 然后在程序中通过置初 值和终值的方法实现 9 9 仿真结果及叙述仿真结果及叙述 通过keil生成的 hex文件进行电路的仿真 在第一次仿真出现了波形显示器 但是后来却怎么都仿真不出来 以为是软件出现了问题 可是在别的同学的电脑上 实验了一下发现还是显示不出结果 于是重新创建工程以及电路的仿真 经过几次 的实践才发现原来是在显示出结果之后我的操作不是停止仿真 而是把波形显示器 关掉了 所以再次打开的时候就不会出现仿真结果 9 10 10 解决问题以及心得体会解决问题以及心得体会 开始的时候由于没有经验 不知如何下手 所以就在网上搜一些相关资料来看 尽管有许多的设计方案 可是总感觉自己还是有许多的东西弄不太清楚 于是就请 教同学 他常做一些设计 有一些经验 经过他的解释分析各方案之后 再重新翻 看单片机课本 决定采用以书上的例题格式的基本程序算法 这样可以降低一些选 仿真元件的难度 初次设计应切合自己的水平 用8031需要扩展ROM 这样还要 进行存储器扩展 而且现在8031实际中已经基本上不再使用 实际用的AT89C51 芯片有ROM 这样用起来比较方便 我感觉程序应该不大 片内ROM应该够用的 我以为这些做好了 构思也有了 写程序应该是相对容易的 而且keil在以前 也是有用过的 但是在Proteus仿真部分出现了问题 没有接触过这类软件 开始 很多都不会 找元件都找不到 不知道名称 于是去实验室请教比较熟悉这方面的 同学 在同学的帮助下 同时通过网上的相关资料的查询和学习 终于画出的电 路图 通过keil生成的 hex文件 把程序和仿真电路联系起来 最终得出了想要的 结果 虽然这次仿真可能会存在一些小小的瑕疵 但是这是和同学讨论的最终结果 毕竟这次是我的第一个设计器件 尽管经历了不少的艰辛 但给我积累了一点设计 的经验 最后也有点小小的成就感 后面的路还很长 我还得努力 11 11 参考文献参考文献 1 童诗白 华成英 模拟电子技术基础 M 北京 高等教育出版社 2003 345 362 2 潘永雄 沙河 刘向阳 电子线路C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论