基于单片机的计数器设计.doc_第1页
基于单片机的计数器设计.doc_第2页
基于单片机的计数器设计.doc_第3页
基于单片机的计数器设计.doc_第4页
基于单片机的计数器设计.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

湖湖 南南 科科 技技 大大 学学 单单 片片 机机 课课 程程 设设 计计 题题 目目 基于单片机的计数器设计 姓姓 名名 李 建 雄 学学 院院 机电工程学院 专专 业业 测控技术与仪器 学学 号号 09030303 指导教师指导教师 戴 巨 川 成成 绩绩 二二一二年六月二日一二年六月二日 - 2 - 摘要摘要 本设计是根据我们所学习的单片机课程,按照课程要求进行的课程检验。单 片机技术是一个不可或缺的技术,尤其是对于我们测控技术与仪器专业来说它是 我们必须要掌握的技能之一,使我们未来工作和生活的根本。现在的社会是一个 信息科技高速发展的社会,也是一个电子技术和微机计算机迅速发展的时代,单 片机的档次和水平在不断的提高,其应用的领域和范围也越来越广,成为现代电 子系统中最重要的智能化核心部分。 随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的范围越 来越广,随之而来的竞争也越来越激烈。过硬的技术也成为众多生产厂商竞争的 焦点之一。厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的 种类。 现计数器的种类以增加到:电磁计数器、电子计数器、机械计数器(拉动 机械计数器、转动机械计数器、按动机械计数器、测长机械计数器) 、液晶计数 器等。 计数器的应用范围也遍布印刷、纺织、印染、针织、电缆、电讯、军工、轻 工、机械、开关、断路器、矿山、实行多班制的纺织行业的织布机、织带机、制 线、制带、造纸、制革、薄膜、高压开关电器产品、试验设备,印刷设备、短路 器、医疗、纺织、机械、仓库和码头的货运、行人及车辆过往的数量计数、冶金、 食品、国防、包装、配料、石油、化工、发电、机床、仪表、自动化控制等行业。 - 3 - 目目 录录 第一章第一章 系统的功能要系统的功能要 求求 44 1.1 系统设计的要求及主要内容应解决的问 题4 第二章第二章 方案方案论论 证证 44 2.1 设计方案选 择 4 2.2 设计原 理 5 第三章第三章 系统系统硬件电路设硬件电路设 计计 66 3.1 最小系统设 计 6 3.2 原理 图 - 4 - 9 3.3 电路仿 真 10 第四章第四章 系统程序系统程序设设 计计 1212 4.1 系统软件设计流程 图 12 4.2 程 序 13 第五章第五章 调试调试及性及性能能分析分析 114 4 5.1 系统性能测试与功能说 明 14 5.2 软件调试问题及解 决 14 参参 考考 文文 献献 1414 附件附件 计数器程计数器程 序序 15 - 5 - 实物电路实物电路 图图 16 第一章第一章 系统的功能要求系统的功能要求 要求: 1.整个系统有较强的抗干扰能力. 2.计数范围:0099. 3.将计数值准确显示出来. 应解决问题: 基于单片机构成的产品自动计数器研究的主要内容包括:如果构成检测电路、 MCS-51 单片机用何种方式对外部计数脉冲进行计数显示控制、LED 显示驱动模块 的选择、MCS-51 单片机的扩展。在这个设计中主要需要解决的问题便是如何提高 MCS-51 单片机的抗干扰能力以及稳定性。 第第 2 2 章章 方案论证方案论证 2.12.1 设计方案选择设计方案选择 方案一: 采用多种数字逻辑电路来实现逻辑控制、主门、门控、计数单元的设计要求, 这样设计的电路整体比较复杂,而且不宜完成发挥部分的功能要求。所以方案一 不采用。 方案二: 可以采用 FPGA 来实现逻辑控制、主门、门控、计数单元的设计要求,并且 设计方便,但由于对 FPGA 的技术原理掌握不够熟练,所以放弃方案二。 方案三: 系统采用 8051 为核心的单片机控制系统,实现原理图中的逻辑控制、主门、 - 6 - 门控、计数的设计要求 单片机计数器的方式控制寄存器 TMOD 中的 GATE 位=1 时,可以很方便的进行 INT0 引脚的外部输入信号的时间间隔测量。且单片机的控制电路很容易实现扩展, 比如语音模块、测温 I2C 模块、时钟模块、A/D 模块等。故采用方案三。 2.2 设计原理 利用 AT89S52 单片机来制作一个手动计数器,在 AT89S52 单片机的 P3.7 管 脚接一个轻触开关,作为手动计数的按钮,用单片机的 P2.0P2.7 接一个共阴 数码管,作为 0099 计数的个位数显示,用单片机的 P0.0P0.7 接一个共阴数 码管,作为 0099 计数的十位数显示; 硬件电路图如图 2-1 所示: 图 2-1 硬件电路图 系统板上硬件连线 1)把“单片机系统”区域中的 P0.0/AD0P0.7/AD7 端口用 8 芯排线连接到 “四路静态数码显示模块”区域中的任一个 ah 端口上;要求:P0.0/AD0 对应 着 a,P0.1/AD1 对应着 b,P0.7/AD7 对应着 h。 - 7 - 2)把“单片机系统”区域中的 P2.0/A8P2.7/A15 端口用 8 芯排线连接到 “四路静态数码显示模块”区域中的任一个数码管的 ah 端口上; 3)把“单片机系统”区域中的 P3.7/RD 端口用导线连接到“独立式键盘”区域 中的 SP1 端口上. 第第 3 3 章章 系统硬件电路的设计系统硬件电路的设计 3.13.1 最小系统设计 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 vcc R1 4.7k X2 CRYSTAL R2 2k C1 30pF C2 30pF vcc C3 10u 图 3-1 单片机最小系统的结构图 单片机的最小系统是由电源、复位、晶振、/EA=1 组成,下面介绍一下每一 个组成部分。 1.电源引脚 - 8 - Vcc 40 电源端; GND 20 接地端; 工作电压为 5V 2.外接晶体引脚 XTAL2 18 XTAL1 19 U1 X2 CRYSTAL C1 30pF C2 30pF C3 10u XTAL2 18 XTAL1 19 U1 19 脚悬空,18 脚为外部振荡信号 图 3-2 晶振连接的内部、外部方式图 XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振 荡器时,外部振荡信号应直接加到 XTAL1,而 XTAL2 悬空。内部方式时,时钟发 生器对振荡脉冲二分频,如晶振为 12MHz,时钟频率就为 6MHz。晶振的频率可以 在 1MHz-24MHz 内选择。电容取 30PF 左右。系统的时钟电路设计是采用的内部方 式,即利用芯片内部的振荡电路。AT89 单片机内部有一个用于构成振荡器的高增 益反相放大器。引脚 XTAL1 和 XTAL2 分别是此放大器的输入端和输出端。这个放 大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振 器以及电容 C1 和 C2 构成并联谐振电路,接在放大器的反馈回路中。对外接电容 的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳 定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为 12MHz,电容应尽可能的选择陶瓷电容,电容值约为 22F。在焊接刷电路板时, 晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地 保证震荡器稳定和可靠地工作。 3.复位 RST 9 - 9 - 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此 引腿时,将使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后 P0P3 口均置 1 引脚表现为高电平,程序计数器和特殊功能寄存器 SFR 全部清零。 当复位脚由高电平变为低电平时,芯片为 ROM 的 00H 处开始运行程序。复位是由 外部的复位电路来实现的。片内复位电路是复位引脚 RST 通过一个斯密特触 发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的 S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方 式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用 6MHz 时,C 取 22F,Rs 约为 200,Rk 约为 1K。复位操作不会对内部 RAM 有所影响。 ALE 30 EA 31 PSEN 29 RST 9 30pF R1 10k C3 10uF vcc 图 3-3 常用复位电路图 4.输入输出引脚 (1) P0 端口P0.0-P0.7 P0 是一个 8 位漏极开路型双向 I/O 端口,端口置 1(对端口写 1)时作高阻抗输入端。作为输出口时能驱动 8 个 TTL。 对内部 Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要 求外接上拉电阻。 在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低 8 位)/数 据总线,访问期间内部的上拉电阻起作用。 (2) P1 端口P1.0P1.7 P1 是一个带有内部上拉电阻的 8 位双向 I/0 端口。 输出时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入 用。 对内部 Flash 程序存储器编程时,接收低 8 位地址信息。 (3) P2 端口P2.0P2.7 P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。 - 10 - 输出时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入 用。对内部 Flash 程序存储器编程时,接收高 8 位地址和控制信息。 在访问外部程序和 16 位外部数据存储器时,P2 口送出高 8 位地址。而在访 问 8 位地址的外部数据存储器时其引脚上的内容在此期间不会改变。 (4) P3 端口P3.0P3.7P2 是一个带有内部上拉电阻的 8 位双向端口。输 出时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。 3.2 原理图原理图 - 11 - a0 a1 a3 a4 a5 a6 a7 a2 b0 b1 b2 b3 b4 b5 b6 b7 a7 a6 a5 a4 a3 a2 a1 a0 a0 a1 a2 a3 a4 a5 a6 a7 b0 b3 b4 b5 b6 b7 b2 b1 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 C1 30pF C2 30pF XTAL 12MHz R1 10k C3 10uF vcc vcc R6 10k R5 10k R4 10k R3 10k R2 10k R8 10k R7 10k R9 10k vcc R10 220 R11 220 图 3-4 电路总图 数码管的介绍数码管的介绍 在本任务中用两位数码管显示当前数值的十,个,采用动态显示方式。两位 - 12 - 数码管的相同段并联在一起,由一个 6 位 I/O(P1 口)输出字形码控制显示某一 字形,每个数码管的公共端由另外一个 I/O 口(P0 口)输出的字位码控制,即数 码管显示的字形是由单片机 I/O 口输出的字形码确定,而哪个数码管点亮是由单 片机 I/O 口输出的字位码确定的。数码管有共阴极和共阳极两种, 对于共阳数码管,字形驱动输出 0 有效,字位驱动输出 1 有效;而对于共阴 数码管则相反,即:字形驱动输出 1 有效,字位驱动输出 0 有效 数码管使用条件: a、使用电压段:根据发光颜色决定; b、小数点:根据发光颜色决定 c、使用电流:静态:总电流 80mA(每段 10mA) ;动态:平均电流 4-5mA 峰值电流 100mA 数码管使用注意事项说明: ()数码管表面不要用手触摸,不要用手去弄引角; ()焊接温度:度;焊接时间:1s ()表面有保护膜的产品,可以在使用前撕下来。 3.3 电路仿真电路仿真 在 PROTEUS 绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以 在 PROTEUS 的原理图中看到模拟的实物运行状态和过程。 用 PROTUES 软件,画出 M=99 的计数器仿真图,得到的图如下所示 - 13 - a0 a1 a3 a4 a5 a6 a7 a2 b0 b1 b2 b3 b4 b5 b6 b7 a7 a6 a5 a4 a3 a2 a1 a0 a0 a1 a2 a3 a4 a5 a6 a7 b0 b3 b4 b5 b6 b7 b2 b1 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 C1 30pF C2 30pF XTAL 12MHz R1 10k C3 10uF vcc vcc R6 10k R5 10k R4 10k R3 10k R2 10k R8 10k R7 10k R9 10k vcc R10 220 R11 220 图 3-11 仿真图 - 14 - 第四章 软件设计 程序设计内容程序设计内容 (1 单片机对按键的识别的过程处理 (2 单片机对正确识别的按键进行计数,计数满时,又从零开始计数; (3 单片机对计的数值要进行数码显示,计得的数是十进数,含有十位和个位, 我们要把十位和个位拆开分别送出这样的十位和个位数值到对应的数码管 上显示。如何拆开十位和个位我们可以把所计得的数值对 10 求余,即可 个位数字,对 10 整除,即可得到十位数字了。 (4 通过查表方式,分别显示出个位和十位数字。 4.1 系统软件设计流程图 主程序先是开始,然后赋初值,本设计采用的是动态显示,所以在赋玩初值 后显示程序不断被调用。 开始开始 初始化初始化 计数计数-(按键)(按键) 显示显示 图 4-1 主程序流程图 4.2 程序 #include unsigned char code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66, 0 x6d,0 x7d,0 x07,0 x7f,0 x6f; unsigned char Count; void delay10ms(void) unsigned char i,j; for(i=20;i0;i-) for(j=248;j0;j-); void main(void) Count=0; P0=tableCount/10; P2=tableCount%10; while(1) if(P3_7=0) delay10ms(); if(P3_7=0) Count+; if(Count=100) Count=0; P0=tableCount/10; P2=tableCount%10; while(P3_7=0); - 16 - 第五章第五章 调试及性能分析调试及性能分析 5.1 系统性能测试与功能说明 走时:默认为计数状态,显示两位数,时间会按实际时间以秒为最小单位变 化,从 0099 的计数,按复位键,重 00 开始,重新计数。 5.2 软件调试问题及解决 软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件 调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于 软件仿真器即可;后者一般需要仿真系统的支持。本次课

温馨提示

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

评论

0/150

提交评论