交通与汽车工程学院单片机课程设计方案_第1页
交通与汽车工程学院单片机课程设计方案_第2页
交通与汽车工程学院单片机课程设计方案_第3页
交通与汽车工程学院单片机课程设计方案_第4页
交通与汽车工程学院单片机课程设计方案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、交通与汽车工程学院单片机课程设计方案1.1 问题的提出随着人类科技文明的发展, 人们对于时钟的要求在不断地提高。 时钟已不仅仅被看成 一种用来显示时间的工具, 在很多实际应用中它还需要能够实现更多其它的功能。 高精度、 多功能、小体积、低功耗,是现代时钟发展的趋势。在这种趋势下,时钟的数字化、多功 能化已经成为现代时钟生产研究的主导设计方向。 本文正是基于这种设计方向, 以单片机 为控制核心,设计制作一个多功能的数字时钟。本设计基于单片机技术原理,以单片机芯片 AT89C51作为核心控制器,通过硬件 电路的制作以及软件程序的编制, 设计制作出一个多功能数字时钟系统。 该时钟系统主要 由时钟模块

2、、 数码管显示模块、 键盘控制模块以及信号提示模块组成。 系统具有简单清晰 的操作界面,可随时进行时间调整。同时,该时钟系统还具有功耗小、成本低的特点,具 有很强的实用性。 由于系统所用元器件较少, 单片机所被占用的 I/O 口不多, 因此系统具 有一定的可扩展性。1.2 任务与分析本次设计的系统的控制中心是 89C51 单片机。首先,在 Protel 软件环境中进行硬件 电路图的设计。然后在 8051 软件环境中进行系统的软件编程,并进行程序源文件的编译 和调试,最后生成 .hex文件。此.hex 文件是硬件电路运行实现的源代码来源。把 .hex 文件 加载到 AT89C51单片机芯片,然后

3、在 Proteus 软件环境中运行硬件电路,时钟的日期就可 以正常显示了。本设计的系统主要由 :AT89C51 为中央处理芯片,用于数据处理,初值设定。时钟芯 片 DS1302 是本例的核心模块,由他提供时钟信息并由 LED 显示,用汇编语言进行编程。 本系统可以分为以下 4 大模块:1、AT89C51模块:用于数据处理,和外围的时钟芯片通信,并控制时钟传输过程, 采集时间信息并予以处理。2、DS1302 模块:实时显示可以通过软件编程来实现,但这种方法需要编制的程序 复杂,代码多,且单片机软件开销大, 时间信息也不容易长期保存。 而采用时钟芯片 DS1302 可以避免这些问题,它可以长期保存

4、此信息,因此本例中我们使用此芯片来实现此系统。3、数码管显示模块: 显示模块采用普通的共阳 LED 数码管, 此模块用于实时的显示 时间信息。4、程序:包括单片机控制时钟芯片的接口程序 (实现单片机和时钟芯片之间的数据传 输过程)和数码管显示程序。2 系统方案设计2.1 系统设计方案通过查阅相关资料,设计初期共有 3 个方案供我选择,分别是: ( 1)采用 89C2051 单片机组成的系统;(2)采用 89C51单片机, 8155 芯片组成的系统;(3)采用 89C51 单 片机, DS1302实时时钟芯片组成的系统。(1)采用 89C2051 单片机组成的系统此系统的硬件部分主要是由 89C

5、2051单片机, 74LS48芯片,ULN2003 芯片所组成。 该系统硬件结构简单,但是单片机的 I/O 接口太少,不足以实现多种功能,软件设计部 分,程序冗长而复杂,易产生混淆。(2)采用 89C51单片机, 8155芯片组成的系统这个方案采用 89C51单片机,8155芯片,LED 显示器,4*4 键盘来组成系统的硬件。 该系统采用的是单片机部的定时 /计数器进行中断定时,配合软件延时实现时,分,秒的 计时。但这样的话,程序复杂化,时间信息也不容易长期保存。(3)采用 89C51 单片, DS1302 实时时钟芯片组成的系统此方案在硬件部分采用了 89C51单片机, DS13O2时钟芯片

6、, 74LS47芯片, LED 显示器,几个按键。该系统的最大特点是采用了新的芯片即 DS1302。在功能上进行了 扩充,并且使得硬件连线显得较为简单,在软件部分,程序显得层次分明。最后确定设计采用第 3 方案,即 系统是由 89C51 单片机,74LS164芯片, DS1302时钟芯片, LED 显示器组成2.2 系统总体框图图1 系统总体框图当程序启动后,程序进入初始化阶段。单片机将从 DS1302 时钟芯片中读出年,月, 日,时,分,秒,。并且经过显示缓存后送入 LED 显示器进行显示。当需要调整日期和时 间时,按下“调日历”键,进入调整年、月、日。首先“年”的两位数码管闪烁显示,表 示

7、在调整“年”状态,按“加一”键调整到期望的年,再按“调日历”键确认“年” ,同 时进入调整“月”状态。同理,月和日的调整方法也是一样。调整时间也是同样的道理。 闹钟的设置则是当按下闹钟键后,时分秒的显示不变,并且小时部分闪烁,按“加一”键 调整到期望的闹钟时间后,再按“闹钟”键确认小时,同时进入调整分钟的状态。调整好 后再按下“闹钟”键确认,返回正常显示,当到达设定时间时,蜂鸣器响。3 系统硬件电路设计3.1 89C51 单片机AT89C51 是 一 种 带 4K 字 节 闪 烁 可 编 程 可 擦 除 只 读 存 储 器 ( FPEROMFalsh Programmable and Eras

8、able Read Only Memor)y 的低电压,高性能 CMOS 8 位微处理器, 俗称单片机。 AT89C2051是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机。单片 机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制 造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89C51是一种高效微控制器, AT89C2051 是它的一种精简版本。 AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉 的方案。图 2 89C51 单片机引

9、脚图89C51 单片机与早期 Intel 的 8051/8751/8031 芯片的外部引脚和指令系统完全兼容, 只不过用 Flash ROM 替代了 ROM/EPROM 而已 3 。89C51单片机部结构如图所示。图 3 89C51 单片机部结构示意图各引脚的功能如下:VCC:供电电压。GND:接地。P0口: P0口为一个 8位漏级开路双向 I/O口,每脚可吸收 8TTL 门电流。当 P1口 的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部程序数据存储器,它可以被 定义为数据 /地址的第八位。在 FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校 3验时, P0

10、输出原码,此时 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口当用于外部程 序存储器

11、或 16 位地址外部数据存储器进行存取时, P2口输出地址的高八位。 在给出地址 “ 1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。 P2 口在 FLASH编程和校验时接收高八位地址信号和控制信号P3口:P3口管脚是 8个带部上拉电阻的双向 I/O 口,可接收输出 4个 TTL门电流。 当 P3口写入“ 1”后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为 低电平, P3口将输出电流( ILL )这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时, 要保持 RST 脚两个机器周期的高电平时间。ALE/PROG :当访问外部存

12、储器时,地址锁存允许的输出电平用于锁存地址的地位 字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时, ALE 端以不变的频率周 期输出正脉冲信号, 此频率为振荡器频率的 1/6 。因此它可用作对外部输出的脉冲或用于 定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想 禁止 ALE 的输出可在 SFR 8EH地址上置 0。此时, ALE 只有在执行 MOVX ,MOVC 指 令是 ALE 才起作用。另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止, 置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器

13、周 期两次 /PSEN有效。但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。/EA :当/EA保持低电平时, 则在此期间 CPU只访问外部程序存储器 (0000H-FFFFH), 不管是否有部程序存储器。 注意加密方式 1时,/EA 将部锁定为 RESET;当/EA端保持高 电平时,则执行部程序存储器中的程序。 在 FLASH编程期间, 此引脚也用于施加 12V编程 电源( VPP)。XTAL1 :反向振荡放大器的输入及部时钟工作电路的输入。XTAL2 :来自反向振荡器的输出。写出其它硬件芯片的介绍! !4 系统软件设计4.1 proteus 软件环境介绍本系统的硬件设计首先

14、是在 Proteus软件环境中仿真实现的。 Proteus软件是来自英国 Labcenter electronics公司的 EDA 工具软件, Proteus软件有十多年的历史,在全球广泛使 用,除了具有和其它 EDA 工具一样的原理布图、 PCB自动或人工布线及电路仿真的功能 外,其革命性的功能是,它的电路仿真是互动的。 针对微处理器的应用,还可以直接在基 于原理图的虚拟原型上编程, 并实现软件源码级的实时调试。 如果有显示及输出, 配合系 统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。 Proteus 建立了完备的电子设计开发环境,尤其重要的是 Proteus Li

15、te 可以完全免费,也可以花微 不足道的费用注册达到更好的效果 2 。Proteus是目前最好的模拟单片机外围器件的工具。可以仿真 51系列、 AVR 、PIC 等 常用的 MCU 及其外围电路(如 LCD,RAM,ROM,键盘,马达, LED,AD/DA ,部分 SPI 器件,部分 IIC 器件. )。其实 Proteus 与 multisim 比较类似,只不过它可以仿真 MCU,当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用 开发板和仿真器当然是最好选择, 可是初学者拥有它们的可能性比较小。 当然,硬件实践 还是必不可少的。在没有硬件的情况下, Proteus 能像

16、 pspice 仿真模拟 / 数字电路那样仿 真 MCU及外围电路。另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。 Proteus软件主要具有以下几个方面的特点:1、设计和仿真软件 Proteus 是一个很有用的工具,它可以帮助学生和专业人士提高他们 的模拟和数字电路的设计能力。2、它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器 件,并完成不会对真实电路造成任何损害的电路仿真操作。3、它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。4、它可以仿真目前流行的单片机,如 PICS, ATMEL-AVR, MOTOROLA, 8051等 。5、在设

17、计综合性方案中 , 还可以利用 ARES开发印制电路板。4.2 Protel 软件环境介绍Protel 印制板设计软件包是澳大利亚 protel technology 公司与 1990 年推出的电子CAD 产品,具有方便、易学、实用、快速以及高速度、高步通率的特点。它采用了分层 次下拉窗口菜单结构形式, 用户基本上不需要记背太多的键盘命令, 用鼠标点击菜单命令 就能操作, protel 有着很高的自动布线布通率。布通率是电子产 CAD 产品的一项重要指 标,它反映电子元件在电路图中连接关系有多少能在印刷版图中实现。在设计常用的单、 双面印制板时只要选择适当的元件布局和布线策略方法, prote

18、l 就可以轻易的达到 98%-100%的布通率。对于极少数不能布通的定方, protel 可以用飞线指示出来,引导用户 用手工方法连通。另外, protel 有强大的宏命令设置功能,利用宏命令功能多定义的热键1可以大大提高操作速度 。Protel 对微机的软硬件配置要求很低: cpu在 8088以上,dos2.0 以上版本,存 640kb 以上,双软件(或一个软件一个硬盘) ,单色显示器(多层板设计时最好用彩色) ,各种兼 容打印机。也能在 Windows9X平台的模拟 DOS下运行。Protel 已成为印制板设计加工方面的工业标准。 据初步统计 protel 在 CAD 的市场占有 率达 9

19、5%,成为电子产品制造业界的首选 CAD 软件。4.3 系统软件分析 (写出你编写程序前,主要要先考虑的地方) 任何一个应用系统, 它们都有着自己的硬件系统和软件系统, 少了任何一个部分都不 可能称之为一个完整的应用系统, 它们之间是相互依存的一个整体, 硬件系统是软件系统 的一个基础和前提, 为软件系统提供了一个操作平台; 而软件系统是硬件系统的灵魂, 它 对硬件系统起到扩充和完善的作用。 可想而知软件系统与硬件系统同等重要, 下面为系统 软件设计过程:(1)日历程序设计过程因为使用了时钟芯片 DS1302,日历程序只需要从 DS1302 各寄存器中读出年、周、 月、日、时、分、秒等数据,再

20、处理即可。在首次对 DS1302 进行操作之前,必须对它进 行初始化,然后从 DS1302 中读出数据,在经过处理后,送给显示缓冲单元。(2)确定数值存储地址表 3 数值存储地址表60H从 1302 中读出的秒存放的地址单元61H从 1302 中读出的分存放的地址单元62H从 1302 中读出的小时存放的地址单元63H从 1302 中读出的日期存放的地址单元64H从 1302 中读出的星期存放的地址单元65H从 1302 中读出的月份存放的地址单元66H从 1302 中读出的年份存放的地址单元4AH-4BH年份的显示缓冲单元48H-49H月份的显示缓冲单元46H-47H日期的显示缓冲单元44H

21、-45H小时的显示缓冲单元42H-43H分钟的显示缓冲单元40H-41H秒的显示缓冲单元58H闹钟的小时存放单元57H闹钟的分钟存放单元3)中断允许寄存器 IE在程序采用了外部中断 1 的工作方式。完成闹钟的时间输入的功能。在程序中使用了中 断允许寄存器 IE。下面介绍 IE。IED7D6D5D4D3D2D1D0IEEAESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H1、EA :中断总允许位。EA=1,CPU开放中断; EA=0,CPU 禁止所有的中断请求。2、ES:串行中断允许位。ES=1,允许串行口中断; ES=0,禁止串行口中断。3、ET1:T1 溢出中断允许位。E

22、T1=1,允许 T1中断; ET1=0,禁止 T1 中断。4、EX1:外部中断 1 允许位。EX1=1,允许外部中断 1 中断; EX1=0,禁止外部中断 1 中断。5、ET0:T0溢出中断允许位。ET0=1,允许 T0中断; ET0=0,禁止 T0 中断。6、EX0:外部中断 0 允许位。5 EX0=1,允许外部中断 0 中断; EX0=0,禁止外部中断 0 中断 。( 4) LED 动态扫描显示方式的设计1、将要显示的数据地址送至 P1 口,让 LED 接收信号。2、通过单片机 P2.0 P2.6 控制相应的 LED 位选线,本设计定义的位选线如下表所 示:表 4 位选线定义表位选线LED

23、 被选中位所代表的含义P2.0年份的高位和小时的十位P2.1年份的低位和小时的个位P2.2月份的高位和分钟的十位P2.3月份的地位和分钟的个位P2.4日的高位和秒的十位P2.5日的低位和秒的个位4.4 程序流程图1)主程序流程图图 15 主程序流程框图主程序流程图说明:因为使用了时钟芯片 DS1302,只需要从 DS1302 各寄存器中读出年、周、月、日、 时、分、秒等数据,再处理即可。程序初期,对地址单元赋初值,并且开启中断。在首次 对 DS1302进行操作之前, 必须对它进行初始化, 然后进行按键的判断, 如果按下闹钟键, 则转去处理闹钟中断的程序, 若没按下闹钟键,则再判断是否按下了调日

24、历和挑时间按键, 若按下,则转去处理相应的调整子程序, 若没按下,则正常显示当前的日期和时间。将正常显示的时间与闹钟设置的时间相对比,若相等则使蜂鸣器响,若不相等,则正常显示2)调日历子程序的流程图是是先图 16 调日历子程序流程图框图调日历子程序流程图说明:在此流程图中, 主要说明的是年份的调整方法, 之所以没有说明月份和日的调整, 因为它们的调整方法与年份如出一辙, 故此省略。 通过流程图可以看出日历的调整,通过判断调日历的按键是否按下, 以此来确定是否进入调整日历子程序。 日历的调整是由 调日历键和 +1键来共同实现的,当按下调日历键,调整的相应位闪烁,再按下 +1 键,调 整闪烁位的数

25、值, 调好后再按下调日历键, 确认刚调整位以及使下一调整位闪烁。 当全部 的日历都调整好后,再按下调日历键,返回显示部分。3)INT1 中断程序流程图图 18 中断程序流程图框图中断程序流程图说明:当按下闹钟键,则执行外部中断 1 的程序,跳至中断程序。将小时的部分闪烁,表 示要对此进行调整。按下 +1 键,对闪烁位进行调整,输入闹钟的小时时间。再按下闹钟 键,对小时位进行确认,使分钟位闪烁,再按下 +1 键进行分钟位的调整。将输入的闹钟 的小时,分钟分别放入相应的地址单元保存起来。 再次按下闹钟键, 就跳回主程序, 正常 显示。5 系统调试过程通过上面的硬件设计和软件设计过程, 设计的工作已经基本完成, 接下来的工作

温馨提示

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

评论

0/150

提交评论