基于51单片机的定时闹钟设计

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要

单片计体积小、能耗低、成本低、功能强,广泛应用于智能产品和工业自动化上。本次设计通过理论学习与应用,从而达到设计、开发单片机简单系统的目的。本次设计是一个定时闹钟,以单片机为基础,实现显示时间,能够调整时间和设定闹钟时间,并且到设定的闹钟时间可以发出报警声。

基于单片机的定时闹钟在设计时需要解决三个方面的主要问题:一是LED显示模块的驱动和编程,二是有关单片机中定时器的使用,三是如何利用单片机的按键键盘实现时钟调整时间的功能和运行模式的转化。在本设计的电路中,除了基本的单片机系统和外围电路外,还需按键键盘作控制装置,LED七段数码管作显示装置。

该定时闹钟是由AT89C52单片机控制的,可以达到以下效果:1、能够显示“时时-分分”。2、能够调整时间,设定闹钟时间。3、闹钟时间到时间到能够发出“滴滴滴”报警声。4、可以通过串口在PC上设定时间和闹钟。

关键词:单片机定时闹钟仿真

目录

1 系统设计 (1)

1.1 实验箱主要组件 (1)

1.2 系统框图及说明 (3)

1.3 系统软件设计 (3)

1.3.1 C51的编程基础 (3)

1.3.2 系统软件设图 (4)

1.3.3 部分复杂函数流程图 (5)

2 系统仿真 (6)

2.1 仿真软件 (6)

2.2 仿真结果 (7)

3 结论 (7)

3.1 本课程设计的主要特点及贡献 (7)

3.2 改善建议 (7)

3.3 自我体会 (8)

参考文献 (9)

附录 (10)

1 单片机定时闹钟程序源代码 (10)

2 仿真软件Proteus ISIS使用方法简单介绍 (20)

3.1 本课程设计的主要特点及贡献 (7)

1 系统设计

1.1 实验箱主要组件

本课程设计使用的是河海大学常州校区刘玉宏老师设计的单片机课程实验箱中的“基础型实验”部分。该部分主要由单片机最小系统,LED数码管显示部分,外部中断控制部分,独立式与行列式键盘按键输入部分,串行口通信部分,蜂鸣器与继电器等部分组成。详细电路图见图1。

图1 实验箱“基础型实验”部分电路图

单片机最小系统部分由内含FLASH ROM的STC89C52RC,EA接高电平;各并行口都加了10K的上拉电阻;晶振为11.0592M。设置了上电复位和手动复位。LED数码管显示部

分由4位一体的数码管LED1、单个数码管LED2和8个独立的发光二极管L1—L7组成,都是共阴结构并联在一起接在单片机的P0口上。LED1用于完成LED动态显示,用于本课程设计的时间显示,各个位选线为P2.4—P2.7,段码由P0口输出。行列式和独立式键盘按键输入部分主要由P2.0-P2.3为行,P2.4-P2.7为列构成的4*4行列式键盘,K20-K27构成的独立式按键构成。本课程设计中使用K20-K27构成的独立式按键,分别接在P2.0-P2.7上,当按键按下时,对应的口线输入0,同时相应的LED点亮。蜂鸣器部分采用9012三极管驱动,其基极接到RD端,当RD端为低电平时,三极管导通,蜂鸣器响,否则关断。串行口通信部分主要由USB转URAT电路构成,本课程设计中由此部分完成PC机与单片机的串行口通信,同时PC机的USB口同时承担给实验板供电的任务。

实验箱“基础型试验”其他电路部分介绍略,“基础型实验”部分实物图见图2。

图2 实验箱“基础型实验”部分实物图

1.2 系统框图及说明

本课程设计中的基于52单片机的定时闹钟系统主要由单片机最小系统模块,数码管译码和显示模块,键盘控制模块,串口通信模块,蜂鸣器模块等组成,系统框图见图3,其中箭头表示数据传送的方向。

图3 单片机定时闹钟系统框图

1.3 系统软件设计

1.3.1 C51编程基础

由于本课程设计硬件模块主要依靠刘玉宏老师设计的单片机实验箱,所以本课程设计的重点放在在定时闹钟的软件设计上。

本课程设计的系统软件设计采用C语言,C语言是一种通用的程序设计高级语言,其代码利用率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是目前使用较为广泛的单片机编程语言。使用C语言对单片机进行编程具有以下优点:(1)C51管理内部寄存器和存储器的分配,编程时,无需考虑不同存储器的寻址和数据类型等细节问题。

(2)程序由若干函数组成,具有良好的模块化结构。

(3)有丰富的子程序库可以直接使用,从而减少用户编程的工作量。

(4)C语言和汇编语言可以交叉使用,提高开发效率。

本课程设计采用的C 语言编译器为Keil C51,该编译器以其代码紧凑和使用方法方便的特点优于其他编译器。Keil C51开发单片机程序的大致步骤为:输入源程序,新建工程,工程详细设置,源程序编译到目标代码文件等。编译完成后通过少些软件和串口,可以将代码烧进单片机内部的FLASH 程序存储器内。

1.3.2 系统软件设计框图

单片机定时闹钟系统由多个函数构成,其中包括主函数,初始化函数,延时函数,键盘扫描函数等,图4为单片机定时闹钟软件系统各个函数框图。

图4 单片机定时闹钟软件系统各个函数框图

1.3.3 部分复杂函数流程图

键盘扫秒函数相对比较复杂,同时该函数也本课程设计中相对较为重要的一个函数,在设计中,我们使用到了四个按键,分别是K20、K21、K22、K23,其功能分别是,K21为调整时间/回复计时模式控制键,K20为调时/调闹钟时间模式控制按键,K22与K23分别为时间调整中加1与减1功能按键。通过四个按键的配合使用,可以完成停止计时,修改时间,显示闹钟时间,修改闹钟时间等功能。键盘扫描函数设计流程图如图5,同时图5也可以作为单片机定时闹钟实现功能操作的流程图。

图5 键盘扫描函数流程图

另外在设计中,我们增加了一个新的功能,即通过串口在PC机上设定时间和闹钟,具体由程序中的串口通信函数实现。利用PC上的串口调试助手软件向单片机一次性传送4个

相关文档
最新文档