毕业设计(论文)基于AT89C51单片机的电子万年历设计_第1页
毕业设计(论文)基于AT89C51单片机的电子万年历设计_第2页
毕业设计(论文)基于AT89C51单片机的电子万年历设计_第3页
毕业设计(论文)基于AT89C51单片机的电子万年历设计_第4页
毕业设计(论文)基于AT89C51单片机的电子万年历设计_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、黑龙江东方学院黑龙江东方学院 本本 科科 生生 毕毕 业业 论论 文(设文(设 计)计) 电子万年历 学 部 计算机科学与电气工程 专 业 计算机科学 姓 名 学 号 班 级 07 级 1 班 指导教师 答辩日期 2011 年 5 月 14 日 黑黑龙龙江江东东方方学学院院本本科科生生毕毕业业论论文文(设设计计)评评语语(一一) 姓名 专业 班级 计算机科学 07 级 1 班 总成绩 毕业论文(设计)题目:电子万年历 答辩成绩 答 辩 委 员 会 评 语 主任签字: 年 月 日 答辩委员会成员签字 学部 毕业 论文 (设 计) 领导 小组 意见 组长签字: 年 月 日 学部公章 黑黑龙龙江江东

2、东方方学学院院本本科科生生毕毕业业论论文文(设设计计)评评语语(二二) 姓名学号专业班级计算机科学 07 级 1 班 毕业论文(设计)题目:电子万年历 指导教师成绩 指 导 教 师 评 语 指导教师签字: 年 月 日 黑黑龙龙江江东东方方学学院院本本科科生生毕毕业业论论文文(设设计计)评评语语(三三) 姓名学号专业班级计算机科学 07 级 1 班 毕业论文(设计)题目:电子万年历 评阅教师成绩 评 阅 教 师 评 语 评阅教师签字: 年 月 日 黑黑龙龙江江东东方方学学院院本本科科生生毕毕业业论论文文(设设计计)任任务务书书 姓名学号专业班级计算机科学 07 级 1 班 毕业论文(设计)题目:

3、 电子万年历 毕业论文(设计)的立题依据 电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、 日、周日、时、分、秒进行计时,对于数字电子万年历采用直观的数字显示,可以同时显示 年、月、日、周日、时,还具有时间校准等功能 主要内容及要求 主要内容是实现 int 中断 ,实现 rb 电平变化中断 要求是实现数码管 模块的多功能显示演示 进度安排 2010 年 9 月 20 日 选题 2010 年 9 月 21 日2011 年 5 月 13 日 接受指导教师的指导 2010 年 9 月 21 日2010 年 9 月 30 日拟定论文大纲 2010 年 10 月 1 日201

4、0 年 10 月 31 日搜集、查阅、整理相关资料 2011 年 3 月 1 日2011 年 3 月 28 日初稿形成 2011 年 3 月 29 日2011 年 4 月 5 日 初稿审定 2011 年 4 月 6 日2011 年 4 月 10 日 第一次修改 2011 年 4 月 11 日2011 年 4 月 14 日 第一次审定 2011 年 4 月 15 日2011 年 4 月 20 日 第二次修改 2011 年 4 月 21 日2011 年 5 月 4 日 定稿 2011 年 5 月 5 日2011 年 5 月 13 日 论文评阅小组评审论文(设计) 2011 年 5 月 14 日 毕

5、业论文(设计)答辩 学生签字: 指导教师签字: 年 月 日 电子万年历的设计电子万年历的设计 摘 要 随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研 究、创新。为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、 星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有 读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋 势,具有广阔的市场前景。 该电子万年历主要采用 at89c51 单片机作为主控核心,由 ds1302 时钟芯片提供时 钟、led 动态扫描显示屏显示。at89c51 单片机是由 atmel 公司推

6、出的,功耗小,电压 可选用 46v 电压供电;ds1302 时钟芯片是美国 dallas 公司推出的具有涓细电流充 电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时, 还具有闰年补偿等多种功能,而且 ds1302 的使用寿命长,误差小;数字显示是采用的 led 液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。 此外,该电子万年历还具有时间校准等功能。 关键词:时钟电路; ds1302;led 动态扫描; at89c51;max7219 perpetual calendar abstract with the society, science an

7、d technology, mankind learned that time, from the view of the sun, to the present electronic clock pendulum clock, continuous research and innovation. observation time in the same time, be able to understand other human beings is closely related to information, such as temperature, week, date and so

8、 on, the birth of the electronic calendar, and it set the time, date, week and temperature-in-one, with easy to read, intuitive display functional diversity, and many other advantages of simple circuit with the electronic instrumentation of the development trend of the. market prospects are broad th

9、e main use of the electronic calendar at89c51 single-chip microcomputer as the main core, provided by the ds1302 clock chip clock, ds18b20 the temperature chip acquisition transition temperature, led display shows the dynamic scan. at89c51 single- chip microcomputer is introduced by atmel corporatio

10、n, a small power consumption, voltage can be selected 4 6v power supply voltage; ds1302 clock chip is introduced dallas fine with trickle charge function of current low-power real-time clock chip, which can of the year, month, day, week, hour, minute, second for time, also has multiple functions, su

11、ch as a leap year compensation, and long life of the ds1302, a small error; ds18b20 temperature chip is a digital temperature sensor with a measurement accuracy high, a simple circuit to connect the characteristics of such sensors only need a data cable for data transmission; digital led display is

12、used to display lcd screen, can display year, month, day, week, hour, minute, second and temperature, etc. information. in addition, the electronic calendar is also a time-calibration functions. keywords:clock circuit; ds1302; led dynamic scanning; at89c51; max7219 目录 摘 要.i abstract.ii 第 1 章 绪论.1 1.

13、1 背景知识介绍.1 1.2 课题任务及要求.2 第 2 章 万年历时钟设计方案.3 2.1 简述设计思路.3 2.2 构成框图.3 第 3 章 硬件电路设计.4 3.1 单片机的选择.4 3.1.1 单片机选择论证.4 3.1.2 单片机参数介绍.4 3.2 时钟功能的实现 .7 3.3复位电路.8 3.4 时间调整电路 .10 3.5 时间显示电路.10 3.5.1 扫描方式.10 3.5.2 led 数码管的选择.12 3.5.3 显示电路的整体实现.13 第 4 章 系统程序设计与软件仿真.14 4.1 主程序的设计 .14 4.2 程序代码 .16 4.3 仿真实验 .17 第 5

14、章 pcb 板制作与调试 .18 5.1 原理图的绘制与 pcb 的制作.18 5.1.1 原理图的绘制.18 5.1.2 pcb 的绘制.19 5.2 元件安装焊接.20 5.3 系统的调试.21 结论.23 参考文献.24 附 录 a .25 附 录 b .26 附 录 c .27 致 谢.35 万年历的设计万年历的设计 第 1 章 绪论 1.1 背景知识介绍 随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字 计时的消费需求也是越来越多。 二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表 业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机

15、械振荡频率源使钟 表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。 第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表 的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万 年历),使计时产品的走时日差从分级缩小到 1/600 万秒,从原有传统指针计时的方 式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、 星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此, 电子万年历的出现带来了钟表计时业界跨跃性的进步 我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使

16、 万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。商家生 产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其 更加的具有市场。 本设计为软件,硬件相结合的一组设计。在软件设计过程中,应对硬件部分有相 关了解,这样有助于对设计题目的更深了解,有助于软件设计。基本的要了解一些主 要器件的基本功能和作用。 除了采用集成化的时钟芯片外,还有采用 mcu 的方案,利用 at89 系列单片微机制 成万年历电路,采用软件和硬件结合的方法,控制 led 数码管输出,分别用来显示年、 月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独 特,可

17、靠。at89c51 是由 atmel 公司推出的一种小型单片机。95 年出现在中国市场。其 主要特点为采用 flash 存贮器技术,降低了制造成本,其软件、硬件与 mcs-51 完全兼 容,可以很快被中国广大用户接受。 本文介绍了基于 at89c51 单片机设计的电子万年历。 首先我们在绪论中简单介绍了单片机的发展与其在中低端领域中的优势以及课题 的开发意义;接着介绍了 at89c51 单片机的硬件结构和本毕业设计所要外扩的 led 显 示及其驱动方法,并在此基础上实现了万年历基本电路的设计;然后使用单片机汇编 语言进行万年历程序的设计,程序采用模块化结构,使得逻辑关系简单明了,维护方 便。

18、1.2 课题任务及要求 本作品电子万年历用led数码管显示阳历年、月、日、星期、时、分、秒功能,并 能准确计算闰年闰月的显示。通过按键开关实现调时的功能,能调时,断电有实时时 钟。 第 2 章 万年历设计方案 2.1 简述设计思路 通过一段时间对专业书籍及多种设计方案的研究机分析,我采用了比较常用的 at89c51 作为核心控制芯片,用 c 语言进行编程来满足设计的要求。用 led 数码管来 实现年、月、日, 时、分、秒的显示,在时、分、秒之间各有 2 个 led 发光二极管来作 为时间分隔符每秒随秒位闪烁一次,直观且具有美感,通过 3 个按钮开关可以在日期与 时间间切换和对时钟进行调整,其他

19、外接电路还有晶振电路、复位电路等等 2.2 构成框图 本设计用 at89c51 作为核心控制部分,外接晶振电路与复位电路,p3 口接三个按 钮开关作为时间调整部分,以 led 数码管作为显示部分,p0 口控制数码管段选部分, p1 口和 p2 口控制数码管位选部分。如图 2-1 所示: 图 2-1 总体系统框图 晶振电路 单片机 at89c51 数码管 段选部分 复位电路 时间调整 电路 数码管 位选部分 led 数码管 管 第 3 章 硬件电路设计 3.1 单片机的选择 3.1.1 单片机选择论证 方案一:采用传统的 at89c51 作为电机的控制核心。单片机算术运算功能强, 软件编程灵活、

20、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗 低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。 方案二:采用 ftc10f04 单片机,还带有非易失性 flash 程序存储器。它是一种高 性能、低功耗的 8 位 cmos 微处理芯片,市场应用最多。其主要特点如下:8kb flash rom,可以擦除 1000 次以上,数据保存 10 年。 由于本系统对 cpu 运算速度要求很高,需要执行很复杂的运算,方案一成本比 较低,适合做设计,方案二运算速度高,性能好,所以两种方案都有可取之处。选用 方案一作为主方案,方案二作为备用方案。 3.1.2 单片机参数介绍 我选用了比

21、较常用且功能强大的 at89c51 单片机,下面我来详细介绍该芯片的参 数与功能: at89c51 是由美国 atmel 公司生产的至今为止世界上最新型的高性能八位单片机。 该芯片采用 flash 存储技术,内部具有 2kb 字节快闪存存储器,采用 dip 封装,是目 前在中小系统中应用最为普及的单片机2。 (1)at89c51 的功能描述 at89c51 是一种低损耗、高性能、cmos 八位微处理器,片内有 4k 字节的在线可重 复编程、快速擦除快速写入程序的存储器,能重复写入/擦除 1000 次,数据保存时间 为十年。它与 mca-51 系列单片机在指令系统和引脚上完全兼容,不仅可完全代替

22、 mcs-51 系列单片机,而且能使系统具有许多 mcs-51 系列产品没有的功能。 at89c51 可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性, 降低系统的成本。只要程序长度小于 4k,四个 i/o 口全部提供给用户。可用 5v 电压 编程,而且擦写时间仅需 10 毫秒,仅为 8751/87c51 的擦除时间的百分之一,与 8751/87c51 的 12v 电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔 下芯片,适合许多嵌入式控制领域。工作电压范围(2.7v6v),全静态工作,工作频 率宽在 0hz24mhz 之间,比 8751/87c51 等 51 系列的

23、6mhz12mhz 更具有灵活性,系 统能快能慢。at89c51 芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加 密手段,能完全保证程序或系统不被仿制。p0 口是三态双向口,通称数据总线口,因 为只有该口能直接用于对外部存储器的读/写操作。 (2)at89c51 引脚功能 at89c51 单片机为 40 引脚芯片如图 3-1 所示,在本设计中,主要用到 p0 口、p2 口、 p1.0 口及 p3.0、p3.1、p3.2 口。 图 3-1 at89c51 引脚图 at89s51 具有 pdip,tqfp 和 plcc 三种封装形式。上图就是 pdip 封装的引脚排列, 有 40 个引脚,

24、32 个外部双向输入/输出(i/o)端口;具有两个 16 位可编程定时器; 中断系统是具有 6 个中断源、5 个中断矢量、2 级中断优先级的中断结构;震荡器频率 0 到 33mhz,因此我们在此选用 12mhz 的晶振是比较合理的;具有片内看门狗定时器; 具有断电标志 pof 等等。 p0 口可作为通用 i/o 口,但须外接上拉电阻;作为输出口,每各引脚可吸收 8 各 ttl 的灌电流。作为输入时,首先应将引脚置 1。p0 也可用做访问外部程序存储器和 数据存储器时的低 8 位地址/数据总线的复用线。在该模式下,p0 口含有内部上拉电 阻。在 flash 编程时,p0 口接收代码字节数据;在编

25、程效验时,p0 口输出代码字节数 据(需要外接上拉电阻)。 p1 口:8 位、双向 i/0 口,内部含有上拉电阻。 p1 口可作普通 i/o 口。输出缓冲器可驱动四个 ttl 负载;用作输入时,先将引脚 置 1,由片内上拉电阻将其抬到高电平。p1 口的引脚可由外部负载拉到低电平,通过 上拉电阻提供电流。 在 flash 并行编程和校验时,p1 口可输入低字节地址。在串行编程和效验时, p1.5/mo-si,p1.6/miso 和 p1.7/sck 分别是串行数据输入、输出和移位脉冲引脚。 p2 口:具有内部上拉电阻的 8 位双向 i/o 口。 p2 口用做输出口时,可驱动 4 各 ttl 负载

26、;用做输入口时,先将引脚置 1,由内 部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外部输出电 流。 cpu 访问外部 16 位地址的存储器时,p2 口提供高 8 位地址。当 cpu 用 8 位地址寻 址外部存储时,p2 口为 p2 特殊功能寄存器的内容。 在 flash 并行编程和校验时,p2 口可输入高字节地址和某些控制信号。 p3 口:具有内部上拉电阻的 8 位双向口。 p3 口用做输出口时,输出缓冲器可吸收 4 各 ttl 的灌电流;用做输入口时,首先 将引脚置 1,由内部上拉电阻抬位高电平。若外部的负载是低电平,则通过内部上拉 电阻向输出电流。 在与 flash 并

27、行编程和校验时,p3 口可输入某些控制信号。p3 口除了通用 i/o 口 功能外,还有替代功能如表 3-1 所示。 表 3-1 p3 口的第二功能 端口引脚各个功能 p3.0rxd(串行口输入端) p3.1txd(串行口输出端) p3.2int0(外部中断 0 请求输入端,低电平有效) p3.3int1(外部中断 1 请求输入端,低电平有效) p3.4t0(定时/计数器 0 计数脉冲输入端) p3.5t1(定时/计数器 1 计数脉冲输入端) p3.6wr(外部数据存储器写选通信号输出端,低电平有效) p3.7rd(外部数据存储器读选通信号输出端,低电平有效) 3.2 时钟功能的实现 方案一:采

28、用实时时钟芯片。 实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据 的更新每秒自动进行一次,不需程序干预。计算机可通过中断或查询方式读取计时数 据进行显示,因此计时功能的实现无需占用 cpu 的时间,程序简单。此外,实时时钟 芯片多数带有锂电池做后备电源,具备永不停止的计时功能;具有可编程方波输出功 能,可用做实时测控系统的采样信号等;有的实时时钟芯片内部还带有非易失性 ram,可用来存放需长期保存但有时也需变更的数据。由于功能完善,精度高,软件程 序设计相对简单,且计时不占用 cpu 时间,因此,在工业实时测控系统中多采用这一 类专用芯片来实现实时时钟功能。 方案二:软

29、件控制。 利用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计 时及秒表计时。该方案节省硬件成本,且能使设计者对单片机的指令系统能有更深入 的了解,从而掌握单片机应用技术 mcs-51 汇编语言程序设计方法,因此,本系统设计 采用此种软件控制方法来实现计时。而由于 atmel 公司的 at89c51 单片机是低功耗的 具有 4kb 在线可编程 flash 存储器的单片机。它与通用 80c51 系列单片机的指令系和 引脚兼容。片内的 flash 可允许在线重新编程,也可使用通用非易失性存储器编程。 它将通用 cpu 和在线可编程 flash 集成在一个芯片上,形成了功能强大、

30、使用灵活和 具有较高性能价格比的微控制器。它的功能强大,而且也较容易购买3。 总结:我所要实现的功能通过单片机编程就可以达到,不需要额外的时钟芯片来 增加成本,并使外围电路更加简单明了。 3.3复位电路 目前为止,单片机复位电路主要有四种类型:(1)微分型复位电路;(2)积 分型复位电路;(3)比较器型复位电路;(4)看门狗型复位电路。我列举了 2 种方 案进行比较: 方案一:采用手动复位,该方法线路简单。在系统运行过程中,有时可能需要 对系统进行复位,以避免对硬件经常加电或断电而造成的伤害,我们可以采用手动复 位的方式。如图 3-2 所示。 图 3-2 手动上电复位电路 方案二:阻容上电自动

31、复位电路,这种电路线路也简单,它利用电容上电压不能 突变而是按指数规律上升或下降的特性,产生所需的复位脉冲。优点:使用最为普遍 且成本低廉的复位电路。如图3-3 所示。 + c1 22uf r1 1k gnd +5v vcc rst/vpd vss mcs-51 r2 200 + c1 22uf r1 1k gnd +5v vcc rst/vpd vss mcs-51 。 图 3-3 自动复位电路 总结:这两种方案对我的设计影响其实差别不大,根据我的电路所需要的就是选 取最简单的电路即可,显然方案二元件和电路更加简单,所用原件更少,所花成本更 少 3.4 时间调整电路 我采用了独立式按键设计,

32、如图 3-4 所示,独立式按键直接与单片机 i/o 口相连 构成键盘4,每个按键不会相互影响,因本系统用到的按键比较少,采用独立式键盘 不会浪费 i/o 口线,所以本系统采用独立式键盘。按键一端接地,一端接于 p3.0、p3.1、p3.2 口,并接 10k 的上拉电阻,按下开关时就会向单片机输入低电平, 触发程序跳转。按下跳转键可以开始调时,多按几次就会在秒分时,日月年之间切换, 按下+键可以调高数值,按下键可以调低数值,做到了功能齐全且元件消耗最好。 图 3-4 时间调整电路 3.5 时间显示电路 3.5.1 扫描方式 我选用 led 数码管作为显示部分的主要元件,数码管要正常显示,就要用驱

33、动电 路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式 的不同,可以分为静态式和动态式两类5。 方案一:静态显示驱动 静态显示就是显示驱动电路,具有输出锁存功能。当显示器显示某个字符时,相 应的段恒定的导通或截止,直到显示另一个字符为止。即单片机将所有要显示的数据 送出后就不再控制 led,直到下一次显示时再传送一次新的显示数据。静态显示的数 据稳定,数码管的亮度较高,占用的 cpu 时间少,程序容易,管理简单,但占用的 i/o 线资源教多。静态显示中,每一个显示器都要占用单独的具有锁存功能的 i/o 接 口,该接口用于笔划段字型代码。这样单片机只要把要显示的字形代码

34、发送到接口电 路,该字段就可以显示发送的字形。要显示新的数据时,单片机在发送新的字形码。 动态扫描方法是用其接口电路把所有显示器的 8 个笔画段 a-h 同名端连在一起,而每 一个显示器的公共极 com 各自独立的受 i/o 线控制。cpu 向字段输出口送出字形码时, 所有显示器接收到相同的字形码,但究竟是哪个显示器亮,则取决于 com 段,而这一 段是由 i/o 控制的,由单片机决定何时显示哪一位了。优点:程序简单,亮度高。缺 点:所占 i/o 口过多,不适合数目多的数码管设计课题。 方案二:动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是 将所有数码管的

35、 8 个显示笔划a,b,c,d,e,f,g,d,p的同名端连在一起,另 外为每个数码管的公共极 com 增加位选通控制电路,位选通由各自独立的 i/o 线控制, 当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会 显示出字形,取决于单片机对位选通 com 端电路的控制,所以我们只要将需要显示的 数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时 轮流控制各个数码管的的 com 端,就使各个数码管轮流受控显示,这就是动态驱动。 在轮流显示过程中,每位数码管的点亮时间为 12m,由于人的视觉暂留现象及发 光二极管的余辉效应,尽管实际上各位数码管并非同

36、时点亮,但只要扫描的速度足够 快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显 示是一样的,能够节省大量的 i/o 端口,而且功耗更低。 总结:我所要用到的数码管共有 14 位,更加适合用动态扫描。 3.5.2 led 数码管的选择 led 数码管分为共阴和共阳两种,以利用 at89c51 灌电流比较大的特点作为数码 管的位选,而段码则由上拉电阻驱动,用共阴数码管会使电路更加简单,共阴数码管 管脚图与内部结构图如图 2-5 与图 2-6 所示: 图 3-5 共阴数码管引脚 图 3-6 共阴数码管内部结构 c 语言中数码管十六进制数字型代码如表 3-2 所示。 表 32

37、 十六进制数字型代码 字型共阳极代码共阴极代码字型共阳极代码共阴极代码 0c0h3fh990h6fh 1f9h06ha88h77h 2a4h5bhb83h7ch 3b0h4fhcc6h39h 499h66hda1h5eh 592h6dhe86h79h 682h7dhf8eh71h 7f8h07h 880h7fh 怎样测量数码管引脚,分共阴和共阳:找公共共阴和公共共阳首先,我们找个电 源(3 到 5 伏)和 1 个 1k(几百的也欧的也行)的电阻,vcc 串接个电阻后和 gnd 接 在任意 2 个脚上,组合有很多,但总有一个 led 会发光的找到一个就够了,然后用 gnd 不动,vcc(串电阻)

38、逐个碰剩下的脚,如果有多个 led(一般是 8 个),那它就 是共阴的了。相反用 vcc 不动,gnd 逐个碰剩下的脚,如果有多个 led(一般是 8 个), 那它就是共阳的。也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的 负极6。 3.5.3 显示电路的整体实现 如图 3-7 所示,显示电路共包含 14 位数码管外加 4 个 led 发光二极管,数码管的 段选部分由 p0 口控制,即数码管的段选端并联与 p0 口,数码管的段控端 a、b、c、d、e、f、g、dp 分别接到 p0 口的 p0.0、p0.1、p0.2、p0.3、p0.4、p0.5、p0.6、p0.7 口线上,段选部分

39、与 p0 口之间 接上拉电阻来输入高电平与增强驱动电流,电阻的大小可影响数码管的亮度,由于我 没有外加其他驱动电路因此我选择 1k 的排阻来增加驱动能力;数码管的位选由 p1 口 和 p2 口控制,每个数码管的位控线单独占用单片机 p1 口和 p3 口一根输出口线,如果 发现数码管还是不够亮的话,可在位选端加 npn 三极管放大电流,此时要加限流电阻 以免数码管被烧。在时分秒之间我各设置了 2 个 led 做为时间分隔符来随秒位每秒闪 烁一次,更加的美观7。 图 3-7 数码管显示部分 第 4 章 系统程序设计与软件仿真 4.1 主程序的设计 系统程序主要包括主程序,读出时钟子程序和显示数据刷

40、新子程序。 程序详情请 看程序附件;主程序流程图如图 4-1 和 4-2 所示: 开始 清显示缓冲区 初始化定时计数器 赋时钟初值 开定时器 000 调整时间 数码管显示当前时钟值 图 4-1 主程序流程图 1 定时中 断 恢复初值,保 护 中断 4000 次 0.1 秒单元清 0.60 秒到 吗? 秒单元清 0,60 分到 吗? 分单元清 0,24 小时到 吗? 时单元清 0 堆栈返回 0.1 秒加 1 秒加 1 分加 1 时加 1 y y y y n n n n 图 4-1 主程序流程图 1 月加 1 并判断是否 =13? 时区单元 星期加 1,并判断是 否=7? 日加 1,并用查表方式

41、区分大、小、平、润 月是否分别为 31、30、28、29? 星期清 0 日清 0 并加 1 年加 1,并分别除以 4 及 400,如余数为 0,则为闰 年,如不为 0 则为平年, 余数放在 b 寄存器 月清 0 并且加 1 现场恢复 返回 图 4-2 主程序流程图 2 4.2 程序代码 语言是面向结构化程序设计的语言,具有结构化的控制语句,以函数作为程序 模块以实现程序的模块化语言允许直接对位、字节和地址进行操作,能实现汇编语 言的大部分功能。因此语言即具有高级语言又具有低级语言的功能,所以人们把 语言称为是中级语言。 数据类型丰富。语言除具有基本数据类型整形(int)、实型 (float 和

42、 double)、字符型(char)外,还有各种构造类型。利用这些数据类型可以实现 复杂的数据结构,如堆栈、队列、链表等,语言生成的目标代码质量高,程序执行 效率高.见附录 c。 4.3 仿真实验 经过老师的指导以及查看了许多的资料书籍,终于完成了程序的编辑,并学会了 keil c51 将 c 程序文件转变成十六进制程序语言 hex 文件。keil 软件是目前最流行开 发 mcs-51 系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 keil 即可 看出。keil 提供了包括 c 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调 试器等在内的完整开发方案,通过一个集成开发环境(u

43、vision)将这些部份组合在一 起 9。 我的仿真软件采用了 proteus 来对我的设计进行仿真,proteus(海神)的 isis 是 一款 labcenter 出品的电路分析实物仿真系统,可仿真各种电路和 ic,并支持单片机, 元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。仿真图如图 4-3 所示。 图 4-3 电路仿真图 仿真图完全达到了设计要求及预期,经过对程序的些微调整后马上进行实物的制 作。 第 5 章 pcb 板制作与调试 5.1 原理图的绘制与 pcb 的制作 5.1.1 原理图的绘制 (1)在 protel 99se 中先新建一个工程,把所需要的元件载入到文

44、档里面。 (2)画好元件库与封装库里的没有的元件原理图与封装。 (3)再按照系统电路图绘制导线,把元件连好线。 (4)通过电气检查如果没有错误,那么系统的电路图就绘制完成。 原理图如图 5-1 所示,由于默认元件库和封装库里没有我要用到的双位数码管和四位 数码管,于是我学习动手画好,我的设计线过多,为了能更准确得查看疏漏我采用了 网络标号的方式,网络标号也是越来越被专业绘图人员所采用10。 图 5-1 protel 99se 电路原理图 5.1.2 pcb 的绘制 将画好的原理图转为 pcb 图,设置好规则开始布线,由于我的连线十分复杂, 这方面花了我很大一部分精力,也使我更加了解了 prot

45、el 99se 这个软件的功能,而且 学校 pcb 板的大小有限制最大只有 12*10cm 的板子,我的 pcb 要远大于这个数值, 所以我把原来的 pcb 分成 2 部分来完成:单片机部分与数码管显示部分,两部分通过 导线连接。如图 5-2 和 5-3 所示: 图 5-2 pcb 单片机部分 图 5-3 pcb 数码管显示部分 5.2 元件安装焊接 一、安装元件时应注意以下原则: (1)为避免因元器件发热而减弱铜箔对基板的附着力,并防止元器件的裸露部 分同印制导线短路,安装时元器件应离开面板约 12mm。 (2)装配时,应该先安装那些需要机械固定元器件,在此装置中如稳压管、中 心芯片插座。

46、(3)各种元器件的安装,应该使它们的标记(用色码或字符标注的数值,精度等)朝 上面或易于是辨认的方向,并注意标记的读书方向一致 (从左到右或从上到下)。 (4)在安装元件时应与焊接同步进行操作。 二、焊接注意的基本事项 在电子制作过程中,焊接工作是必不可少的。它不但要求将元件固定在电路板上, 而且要求焊点必须牢固、圆滑,所以焊接技术的好坏直接影响到电子制作的成功与否, 焊接时要注意以下几点: (1)焊接方法:焊接时应掌握焊接的温度和焊接的时间,使电烙铁的温度高于 焊锡的温度,但也不能太高,以烙铁头接触松香刚刚冒烟为好。焊接时间太短,焊点 的温度过低,焊点融化不充分,焊点粗糙容易造成虚焊,反之焊

47、接时间过长,焊锡容 易流淌,并且容易使元件过热损坏元件。同样地,要掌握焊接点的上锡数量,焊接点 上的焊锡数量不能太少,太少了焊接不牢,机械强度也太差。而太多容易造成外观一 大堆而内部未接通。焊锡应该刚好将焊接点上的元件引脚全部浸没,轮廓隐约可见为 好。最后,要注意烙铁和焊接点的位置,有些人在焊接时,一般将电烙铁在焊接处来 回移动或者用力挤压,这种方法是错误的。正确的方法是用电烙铁的焊锡面去接触焊 接点,这样传热面积大,焊接速度快。 (2)焊接后的检查:焊接结束后必须检查有无漏焊、虚焊以及由于焊锡流淌造 成的元件短路。虚焊较难发现,可用镊子夹住元件引脚轻轻拉动,如发现摇动应立即 补焊。 (3)对

48、于不同的器件,焊接时的具体操作一般不同:焊接一般元件时,将插好 元件的印制板焊接面朝上,左手拿焊锡丝,右手持电烙铁,把烙铁头贴着元件的引线 加热,使焊锡丝在高温下熔化,沿着引线下流动,直至充满焊孔并覆盖引线周围的金 属部分。然后撤去焊锡丝,并沿着引线向上提拉烙铁头,形成像水滴一样光亮的焊点。 焊接速度要快,一般不超过 3s,以免损坏元件;焊接晶体管等器件时,可用镊子或尖 嘴钳夹住管脚进行焊接,因镊子和钳子具有散热作用,可以保护器件;焊接集成电路 时,双列直插式集成电路块的管脚之间距离只有 25mil,焊点过大,会造成相邻管脚 短路。应采用尖头电烙铁,快速焊接。电烙铁温度不能太高,焊接时间不能太

49、长,否 则,会烧坏集成块并使印制板上的导电铜箔脱离,所以焊接时一定要特别细心11。 5.3 系统的调试 实物终于完成,调试工作也是非常重要的一个环节,它直接关系到系统能否正常 工作。经过对 pcb 板上的焊接、导线反复地检查是否有虚焊、漏焊、错焊后,开始进 入电源调试阶段。我的 vcc 采用 5v 直流稳定的电压,在开始时系统自动通过复位电 容实现开机瞬时自动复位, 现象为显示部分的数码管与 led 全部一闪而过,随后年、 月、日,时、分、秒显示正常,发现外加的 led 闪烁部分并未亮起,检查后发现有根 导线焊错了,没有检查到,于是马上修正,再次调试,发现显示部分完美运行。显示 部分已经成功。

50、接下来进入调时部分的测试,按下 k1 进入调时模式,按下 k2 键上调 数值,按下 k3 键下调数值,功能与预期一致,很幸运并没有出现各种大的意外。达 到了设计的要求与老师的预期。毕业设计实物部分完毕 结论 本设计通过软硬件的结合利用单片机实现了智能化万年历时钟的展示,它具有集 成化,智能化,高精度,高性能,高可靠性和低价格等优点,是一个值得推广的一种 方法。 通过本次设计的制作,使我深深感到自身能力的不足,也使我将学到的知识应用 到了实践中,在整个设计中我遇到许多的困难,我通过查阅数以百的图书、报刊、资 料的查询不断解决一个个难题,同时也增加了自己的知识和解决问题的能力。 同时本次设计也让我

51、知道了仿真实验对实物制作的帮助,我早在大 4 上半学期就 开始了设计的仿真。对仿真方案做了许多地修改,而实物制作在 4 月份才开始制作, 但是得益于长期仿真的帮助,使我实物的制作一次性通过,而没有碰到其他同学各种 各样的问题,这样既减少了毕业设计的时间,也减少了元件材料的浪费。 由于本人的水平有限,设计当中,难免会有不少的缺点和不足之处,恳请指导老 师批评并改正。 总之,本次设计对我受益匪浅! 参考文献 1 潭浩强c 程序设计(第二版)清华出版社m,1999 2 袁涛等单片机 c 高级语言程序设计及其应用m,2001:6586 3 李广弟,朱月秀,冷祖单片机原理及接口技术(第三版)m北京航空大

52、学出版社 2007 4 李响初基于 mcs51 单片机的智能时钟控制系统设计j世界电子元器件,2007,(04): 5257 5 张静基于单片机数字钟的设计j办公自动化,2006,(11) :3236 6 王为青,程国钢. 单片机 keil cx51 应用开发技术m, 北京:人民邮电出版社, 2007:1233 7 李萍. at89s51 单片机原理、开发与应用实例m, 北京:中国电力出版社,2008:4598 8 周志敏,周纪海,纪爱华. led 驱动电路设计与应用m, 北京:人民邮电出版社, 2006:6877. 9 龚华生等. 元器件自学通m, 北京:电子工业出版社,2005:3162.

53、 10 钟富昭,张晨8051 单片机典型模块设计与应用m河北:人民有点出版社, 2007:112145 11 毕维峰单片机技术应用及发展方向j吉林商业高等专科学院学报,2006,(04): 109120 12、余永权等.单片机在控制系统中的应用:北京电子工业出版社,2004。 13、李华.mcs-51 系列单片机实用接口技术:北京航空航天大学出版社,2004。 14、李光飞等.单片机课程设计实例指导:北京航空航天大学出版社,2004。 15、李光飞等.单片机 c 程序设计实例指导:北京航空航天大学出版社,2005.9。 16、刘文涛等. mcs-51 单片机培训教程:电子工业出版社,2005.

54、8。 17 刘和平等编著、pic16f87x 单片机实用软件与接口技术c 语言及其应用、北京:北京航 空航天大学出版社、2002.4 18 李广弟等编著、单片机基础、北京:北京航空航天大学出版社、2001.7. 19 李荣正编著、pic 单片机原理及应用2 版、北京:北京航空航天大学出版社、2005.1 20 孙晓云主编、接口与通信技术原理与应用、北京:中国电力出版社、2007 21 wang liankuithe design of scm-51 memorizers colligation extended and its softwarej development /共阴极 unsign

55、ed char dispbitcode=0 x00,0 x21,0 x42,0 x63,0 x84,0 xa5,0 xc6,0 xe7;/管子的 选择 unsigned char dispbuf8=0,0,10,0,0,10,2,1; /16 为显示间断号符 unsigned char dispbym8=1,2,7,0,6,0,0,2; unsigned char dispbitcnt; unsigned char second; unsigned char minite; unsigned char hour; unsigned char day; unsigned char month;

56、unsigned char yearh; unsigned char yearl; unsigned int tcnt; unsigned char mstcnt; unsigned char i,j; void main(void) tmod=0 x02; /设置模式为定时器 t0 的模式 2 (8 位自动 重装计数初值的计数值) th0=0 x06; /设置计数器初值,靠 th0 存储重装的计数值 x0=256-250=6 tl0=0 x06; tr0=1; /启动 t0 et0=1; /开启定时器 t0 中断允许 ea=1; /开启中断总控制 yearh=20; yearl=6; mon

57、th=7; day=21; hour=12; /初始值为 12:00:00 while(1) if(p0_0=0) /扫描秒钟按钮 for(i=5;i0;i-) /按钮抖动消除 for(j=248;j0;j-); /计时 if(p0_0=0) second+; if(second=60) second=0; dispbuf0=second%10; dispbuf1=second/10; while(p0_0=0); if(p0_1=0) /扫描分钟按钮 for(i=5;i0;i-) for(j=248;j0;j-); if(p0_1=0) minite+; if(minite=60) minite=0; dispbuf3=minite%10; dispbuf4=minite/10; while(p0_1=0); if(p0_2=0) /扫描时钟按钮 for(i=5;i0;i-) for(j=248;j0;j-); if(p0_2=0) hour+; if(hour=24) hour=0; dispbuf6=hour%10; dispbuf7=hour/10; whil

温馨提示

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

评论

0/150

提交评论