基于51单片机定时闹钟设计_第1页
基于51单片机定时闹钟设计_第2页
基于51单片机定时闹钟设计_第3页
基于51单片机定时闹钟设计_第4页
基于51单片机定时闹钟设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、系别:机 电 系专业:电 信 0901学 生 姓 名:课程设计题目:基于 51 单片机定时闹钟设计起迄日期:6 月 4 日 6 月 17日课程设计地点:教学实验楼B502 楼指导教师:下达任务书日期2012 年 6 月 4 日摘要设计目的要求 设计实现方案 系统总框图 原理及工作过程说明 元器件功能说明 单片机 液晶显示器 3 其他重要元件 软件设计 程序流程图 4 源代码 5 系统仿真 心得体会 7 参考文献 错误!未定义书签。 摘要本设计师定时闹钟的设计,由单片机 芯 片 和 、显示器,辅以必要的的电路,构成一个单片机定时闹钟。电子钟可采用数字电路实现,也可以采用单片机来完成。显示“时”,

2、“分”,闪动来做秒计数,定时时间到能发出警报声或者启动继电 器, 从而控制电器的启停。现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。在这次设计中主要是用来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。关键字:定时闹钟 : , , , , , , , , , , , , ; ; , , : 设计目的要求1)本次课程设计应达到的目的:1 、综合运用相关课程中所学到的理论知

3、识去独立完成某一设计课题;2、通过查阅手册和相关文献资料,培养学生独立分析和解决问题的能力;3、进一步熟悉单片机和常用接口电路,加深对专业知识和理论知识学习的认识和理解;4、学会电路的安装与调试;5、进一步熟悉电子仪器的正确使用;6、学会撰写课程设计的总结报告;7、培养严肃认真的工作作风和严谨的科学态度。2 )设计要求使用 单 片 机 结 合 字 符 型 显示器设计一个简易的定时闹钟 时 钟 , 若 选择有背光显示的模块,在夜晚或黑暗的场合中也可使用。定时闹钟的基本功能如下:显示格式为“时时:分分”。 由闪动来做秒计数表示。一旦时间到则发出声响,同时继电器启动,可以扩充控制家电开启和关闭。程序

4、执行后工作指示灯闪动,表示程序开始执行,显示“:”,按下 操作键动作如下:( )设置现在的时间。( )显示闹钟设置的时间。( )设置闹铃的时间。( ) 闹铃 的状态设置,设置为时连续三次发出“哗”的一声,设 置为 发出“哗”的一声。设置当前时间或闹铃时间如下。( )时调整。( )分调整。 ) 设置完成。本项目的难点在于( ) 闹铃时间到时,发出一阵声响,按下本键可以停止声响。个按键每个都具有两个功能,以最终实现菜单化的输入功能。采 实现方案 系 统 总 框图 原理图 原理及工作过程说明( )定时闹钟的基本功能如下:( )使用 液晶显示器来显示现在的时间。( )程序执行之后显示“ : : ” ;

5、并且 闪烁,表示开始已经计时。( c)由LED 闪动来做秒计数表示。( )按键功能如下:按键设置现在的时间和时调整;按键显示闹钟设置的时间和分调整;按键 设置闹铃的时间和设置完成;按键闹铃 的状 态设 置, 设置为时连续三次发出“哗”的一声,设置为发出“哗”的一声和闹铃时间到时,发出一阵声响,按下本 键 可以停止声响。()调整计时器时间如下:按下 键,然后按 调整小时, 调整分钟,按下 表示时间设置完成。()调整闹钟时间设置如下:再次按下 开始闹中设置, 下一行显示“ : : ”按下 设置小时,按一下 设置分钟,再次按下 设置完成,并且设置时间消失,当再次按一下时 “ : : 再次显示并马上消

6、失。按一下 关闭闹钟,再次按下打开闹钟。 元器件功能说 单 片机本设计的核心硬件就是芯片,这里选择了 , 是 一 种 带 字节闪烁可编程可擦除只读存储器( ) 的 低 电 压 , 高 性 能 位微处理器,俗称单片机。该器件采用 高 密 度 非 易失存储器制造技术制造,与工业标准的指令集和输出管脚相兼容。由于将多功能位和闪烁存储器组合在单个芯片中,的 是一 种高 效微控制 器, 为 很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 引脚图 引 脚 功 能 说明 口: 口为一个位漏级开路双向 口,每脚可吸收 门电流。当 口的 管脚时,被定义为高阻输入。 能够用于外部程序数据存储器,它可以被定义为

7、数地址的第八位。在 编程时,口作为原码输入口,当 进行校验时, 输 外部必须被拉高。口:口是一个内部提供上拉电阻的位双向 口 , 口 缓 冲 器 能 接 收 输 出 门 口: 口为一个内部上拉电阻的位双向 口, 口缓冲器可接收,输出个 门电流,当 口被写“ ”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作 为口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。口当用于位地址外部数据存储器进行存取时,口输出地址的高八位。在给”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, 口输出其特殊功能寄存器的内容。口在编程和校验时接收高八位地址信号和控制信号。 口: 口管脚是个带内部

8、上拉电阻的双向 口, 可接收输出个 门电流。当 口写入“ ”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉 为低电平, 口将输出电流( )这是由于上拉的缘故。 口也可作为 的一些特殊功能口,如下所示: 口管脚备选功能 (串行输入口) (串行输出口) (外部中断 ) (外部中断) (记时器外部输入) (记时器外部输入) (外部数据存储器写选通) (外部数据存储器读选通) 口同时为闪烁编程和编程校验接收一些控制信号。 :复位输入。当振荡器复位器件时,要保持 脚两个机器周期的高电平时间。 :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 编程期间,此引脚用于输入

9、编程脉冲。在平时, 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 。因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 脉冲。 如想禁止 的输出可在 地址上置。此时, 只有在执行 , 指令是 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 禁止,置位无效。:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次 有效。但在访问外部数据存储器时,这两次有效的 信号将不出现。 :当 保持低电平时,则在此期间外部程序存储器( ),不管是否有内部程序存储器。注意加密方式时, 将内部锁定为 ;当 端保持高电平时, 此

10、间内部程序存储器。在 编程期间,此引脚也用于施加 编程电源( ) 。 :反向振荡放大器的输入及内部时钟工作电路的输入。 :来自反向振荡器的输出。 液 晶 显 示器 引 脚图 引脚图 功 能 说明图 引脚图说明第脚:为地电源。第脚:接 正电源。第 脚: 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 的电位器调整对比度。第 脚: 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 脚: 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 和 共 同为低电平时可以写入指令或者显示地址,当 为低电平 为高电平时可以

11、读忙信号,当 为高电平 为低电平时可以写入数据。第 脚:端为使能端,当端由高电平跳变成低电平时,液晶模块执行命令。第 脚 : 为 位双向数据线。第脚:背光源正极。第脚:背光源负极。 内置了 、 和 。 就是显示数据 ,用来寄存待显示的字符代码。共 个字节,其地址和屏幕的对应关系如下表:也就是说想要在LCD1602 屏幕的第一行第一列显示一个A 字 ,就要向DDRAM的 00H 地址写入“A”字的代码就行了。但具体的写入是要按LCD 模块的指令格式来进行的,后面我会说到的。那么一行可有40 个地址呀?是的,在1602 中我们就用前16 个就行了。第二行也一样用前16 个地址。1602 液晶模块内

12、部的控制器共有11 条控制指令,如表10-14所示:指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/ 关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址写10数 到 C G R AM 或 DDR AM )1要写的数据内容 0从11数C G R AM 或 DDR AM 读1读出的数据内容 1表 :控制命令表液晶模块的读写操作、屏

13、幕和光标的操作都是通过指令编程来实现的。(说明:为高电平、为低电平)指令 :清显示,指令码 , 光标复位到地址 位置。指令 :光标复位,光标返回到地址 。指令:光标和显示模式设置:光标移动方向,高电平右移,低电平左移:屏幕上所 有文字是否左移或者右移。高电平表示有效,低电平则无效。指令:显示开关控制。:控制整体显示的开与关,高电平表示开显示,低电平表示关显示:控制光标的开与关,高电平表示有光标,低电平表示无光标:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令 :光标或显示移位 :高电平时移动显示的文字,低电平时移动光标。指令:功能设置命令:高电平时为位总线,低电平时为位总线:低电平时为单行显

14、示,高电平时双行显示:低电平时显示的点阵字符,高电平时显示 的 点 阵字符。指令 :字符发生器 地址设置。指令 : 地址设置。指令 :读忙信号和光标地址 :为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令:写数据。指令 :读数据。与 相兼容的芯片时序表如下:输入RS=L, R/W=H , E=H输出D0 D7= 状态字输入RS=L, R/W=L , D0 D7= 指令码,E= 高脉冲输出无输入RS=H , R/W=H , E=H输出D0 D7= 数据输入RS=H , R/W=L , D0 D7= 数据,E= 高脉冲输出无读写操作时序如图 和 所示:图 10-5

15、6 写操作时序 其 他 重 要 元件 独立式键盘的接口电路:在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。这时,可将每个按键接在一根 接口线上,这种方式的连接称为独立式键盘。每个独立式按键单独占有一根 接口线,每根 接口线的工作状态不会影响到其他 接口线。这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根 接口线, 接口线浪费较大。故只在按键数量不多时采用这种按键电路。在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时, 接口线有确定的高电平。当 接口内部有上拉电阻时,外电路可以不配置上拉电阻。键盘软件设计本次课程设计实验程序中,用单片机的外部中断定时器来

16、计时,然后通过来判断计时器和闹铃时间来使闹铃响,通过对单片机的一些端口进行扫描来判断时分秒的调整,选择计时器调时还是定时闹钟的调时以及是否闹铃。 程序流程图主程序开始初始化变量初始化 LCD初始化计时器,初始化闹铃扫描显示器更新时间数据,闹钟时间是不是到了?是否按下个按键 : 调时 :调分 :完成 : 打开闹铃 程序流程图 源代码 ; ; ; ; ; ; ; ; ; ; , ,;,;, ,; , , , , , , , , ,; : : ; :; ;,; () 延时程序 , ; ( ;)(;); ( ) 命令控制,写指令函数 ( ); ; (); ; (); ; 数据控制,写数据函数 ( )(

17、);();(); ( ) 设置时间函数()()();()() “时”设置; ; ;(); ();();();行第位(); “时”个位写入 第二();();();行第位(!); “时”十位写入 第二();()();() ( ) “分”设置; ;();(); “分”个位写入(); 第二行第位();();第二行第位(); (!); ( )();()(); “分” 十位写入 整体显示,关光标,不闪烁 定时计数器启动 ( ! ); 松开时,显示时间“时”voi d a larm (J设置闹钟时间函数while (1)(i f (key 10(de 1 ay (10); if (key 1=0)(寸”设置

18、i f (ahou r24)钟ahour=0;e 1 seahourH ahourge=ahour%l 0; ahou r sh iahou 0; wr i te_com (0x0 0 ;de 1 ay ;wr i te com (0x80+0x40+8);wr ite data ( : 7);(); (); (); ( );();();();(!); ( ) 闹钟“分”设置();()();();(); (); (); (); (); ( ) ; ( ); ();(!);()();()(); ();for (i=0; il 1; iSwrite data (nu 1 i);while Q ke

19、y3);break;/设置结束,此时L CD第二行无数据显示,只有第一行有时间显示void keyscan Q盘扫描(i f (key 10)de 1 ay (10);i f (key 10(while (! keyl) ;/ke y 1键松开后执行下一行程序time 口 ;/调用t ime ()函数,即时间设置else i f (key2=0)();()(!) ;(); (); (); ();(); (); ; ; (); (); (); (); (); ();();(;) ( ) ; 显示闹钟设置的时间();(;) ( ) ; 松开后, 只有第一行显示时间,闹钟设置时间不显示 ()();(

20、) ( ! ) ; 表示闹钟时间设置退出;();();(); (); (); (); ; (); (); (); (); (); ();();(;) ( ) ; 显示闹钟设置时间 ); 调用闹钟时间设置函数 以下进行闹铃开关的设置 ( )(); ()(!); ( ) 闹钟“ ”(;) ; 蜂鸣器发出次“哗”的响声(); ; ( ) 闹钟“ ” ; 蜂鸣器发出次“哗”的响声(); ();sound=l;void 1 c(L_i ni t 0 /IXD初始化函数(1 c de n=0;1 cdnM);wr i te_com (0x38); “设置 8 位格式,2 行,5X7 wri tjzom (

21、0x0c) ;体显示,关光标,不闪烁 wr i te com (0x06) ; /设定输入方式,增量不转移wr i tecom (0x01);青除屏幕显示de lay (2) ; wr i te_com (0x80);for (i=0; i16;(write data (table2 i) ;入显示时间数据delay (1); ( ) 初始化函数 ; ; ; ; ; ; ; ; 四个按键均未按下,(防止仿真图刚启动时,就达到闹钟时间,蜂鸣器发出响声); ; 定时计数器 、 均工作在方式; ; 计数初值为 ; ; 定时计数器 启动 ( ) 中断函数; ; ( ) 计时 次 ,即 ; ; 口电位取

22、反, 灯亮 ( ) 显示时间与闹钟设置时间完全一样且闹钟“ ” ; 口 的 电 位 置 ,继 电 器 启 动 , 外 部 灯电路导通() ; 蜂鸣器发出“哗哗哗”响声 ( ) 主函数 ( ) ; 调用 初始化函数 ( ) ; 调用 初始化函数() ( ) ; 调用扫描函数 ( ) 计时 次,即 ,以下程序为显示时间工作的程序; () ; ; ; 显示时间重置为“ : : ” ( );(); 显示时间“时”加 显示时间“分”加 显示时间“秒”加; (); (); (); (); ( ) ; ( ); ;wri te ccm (0x80+6);wri te data (tabiel hourge);delay (5); wr i t e com (0x80+5); d e 1 ay (2) ; write data (tab le 1 hour shi) ; wr i te com (0x8047);wr i t e dat a (:,);图8定时闹铃开并调定时闹钟的时间 当闹铃打开,计时时间到了定时闹铃的时间后,喇叭开始叫, 亮。 仿真结果心得体会这次课程设计一个星期,刚知道课程设计的时候感觉题目很简单,应该花很少的时间就可以完成课

温馨提示

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

评论

0/150

提交评论