模拟量转换时间控制模拟量转换时间控制.doc

模拟量转换时间控制模拟量转换时间控制.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模拟量转换时间控制模拟量转换时间控制

桂 林 电 子 科 技 大 学 单片机最小应用系统 设 计 报 告 指导老师: 吴 兆 华 学 生: 刘 木 学 号: 092011229 机电工程学院 2010年6月 单片机最小应用系统设计报告 一、设计题目 二、设计目的 2.1设计目的要求 2.2 系统设计意义 三、系统硬件图 3.1系统的硬件电路原理图 四、程序流程图 五、系统说明与分析 5.1设计步骤 5.2 51单片机简单介绍 5.3 硬件设计过程与软件调试 5.3.1硬件设计 5.3.2 软件调试 六、源程序 七、总结 八、参考文献 单片机最小应用系统设计报告 1 设计题目 模拟量转换时间控制一 2 设计目的 2.1 设计目的要求 1.了解单片微机系统中AT89S51芯片引脚及其功能特点; 2.详细了解AT89S51内部资源; 3.掌握基于AT89S51单片机三路抢答器的电路设计方法; 4.掌握0832DA转换实现的程序控制方法; 5.掌握单片机C语言设计和分析方法; 6.学会使用并熟练掌握电路绘制软件Protel99SE(或DXP); 7.掌握电路图绘制及PCB图布线技巧。 2.2 系统设计要求 设计要求: 用89S51单片机和0832产生梯形波。波形斜边用步幅为1的线性波,幅度范围从00H到80H,水平部分用89S51的内部定时器维持。 2.3 系统设计意义 1.在系统掌握单片机相应基础知识的前提下,熟悉单片机最小应用系统的设计方法及系统设计的基本步骤。 2.完成所需单片机最小应用系统原理图设计绘制的基础上完成系统的电路图设计。 3.完成系统所需的硬件设计制作,在提高实际动手能力的基础上进一步巩固所学知识。 4.进行题目要求功能基础上的软件程序编程,会用相应软件进行程序调试和测试工作。 5.通过单片机应用系统的设计将所学的知识融会贯通,锻炼独立设计、制作和调试单片机应用系统的能力;领会单片机应用系统的软、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下坚实的基础。 3 系统硬件电路图分析与说明 3.1 系统整体方案设计 本文以AT89S51单片机为核心设计的梯形波方案是:通过单片机发出00H到80H步幅为1的数字信号通过0832转换为模拟信号即梯形波的两个斜边,在通过内部定时器使梯形波的上面保持不变,这样就可以输出一个梯形波了。其中0832出来的是电流信号所以需要加运放转换为电压信号来实现功能。 3.2 硬件电路图分析与说明 系统的硬件电路图如图3-2所示,从图中可以看到该电路主要有时钟电路、复位电路、七段数码管控制电路和LED驱动电路等组成。 图3-2系统硬件电路原理图 3.2.1复位电路设计 MCS-51的复位输入引脚RST为MCS-51提供了初始化的手段,可以使程序从指定处开始执行,在MCS-51的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作.只要RST保持高电平,则MCS-51循环复位.只有当RST由高电平变低电平以后,MCS-51才从0000H地址开始执行程序.本系统采用按键复位方式的复位电路.原理图如图3-3所示。 图3-3 复位电路 3.2.2 时钟电路 该电路主要有电容C1、C2和晶振Y1组成。其组成原理图如图3-4所示,图中XTAL1为芯片内部振荡电路的输入端,XTAL2为芯片内部振荡电路的输出端。 3-4时钟电路 3.2.3 输输出电路设计 由于0823输出的是电流信号所以我们可以通过运放将其转换为电压信号来实现功能,在输出时发现其波形为倒梯形波因此我们又加了个运放使其反向这样就能满足要求了。 四 程序流程图与源程序 4.1 程序流程图及其分析 本设计主程序流程图如图4-1所示: 图1 主程序流程图 4.2 源程序代码 #include reg52.h #define uint unsigned int uint a,b,c,d,e; void main() { while(1) { b=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET1=1; TR1=1; while(b=0b=2) { P0=128; } TR1=0; for(d=0;d=128;d++) { for(e=0;e=8;e++)

文档评论(0)

yxutcangfp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档