51单片机数码管时钟电路的设计.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 0 广东石油化工学院 《51单片机原理与实践》课程设计报告 学 院 计算机与电子信息学院 专 业 班 级 学 号 姓 名 指导教师 课程成绩 完成日期 2010年12月27日 数码管时钟电路的设计 设计目的: 通过这次课程设计掌握单片机系统的基本设计步骤及设计思路,掌握汇编语言的用法及各种指令的含义,比较熟练的运用指令进行单片机系统的设计的,熟悉用KEIL软件进行汇编语言的汇编,以及把代码写入实验板中,观测代码结合实际的运行结果后进行调整,体会到编程的分析问题、确定算法、画程序流程图、编写程序、程序功能模块化的优点的各各步骤。 设计要求: LED数码管时钟电路采用24h计时方式,时、分、秒用六位数码管显示。该电路采用AT89C2051单片机,使用3V电池供电,只使用一个按键开关即可进入调时、省电(不显示LED数码管)和正常显示三种状态。 设计实验内容: 硬件的设计 其采用AT89C51单片机应用设计,LED显示采用动态扫描方式实现,P0口输出段码数据,P2口输出位码数据 ,P1.1、P1.2接按钮开关。为了提供LED数码管的驱动电流,采用6MHz晶振。 系统总体分析 系统主要包含四大模块:显示模块、时间计时模块、模式切换模块和模式设置模块。 显示模块:主要由主循环负责。内存中开辟了一段8字节的内存空间,用作数据显示的字符缓冲区。主循环不断将缓冲区中的字符呈现至数码管。 时间计时模块:电子钟的核心模块,记录了时间的时、分、秒信息。 模式切换模块(MODE):切换电子钟的设置模式,包括时设置、分设置、秒设置、闹铃开关设置、闹铃时设置和闹铃分设置。相关数据被设置时将闪烁显示。 模式设置模块(CONFIG):通过判断设置模式(MODE),执行相应的设置。如时、分、秒的增1以及闹铃开关的变换。 另外,主循环还负责扫描键盘,检测相应键是否被按下,若MODE键被按下则在特定单元中登记该功能,并启动定时器1,然后返回继续执行显示功能。在定时器1中断时,被登记的功能正式执行。期间用时约10ms,用以消除机械抖动。 主循环流程图大致如下: 开始 开始 键被按下 登记相应功能 数码管显示 是 否 图(一)主循环流程图 定时器1中断服务程序流程图如下: 定时器1中断 定时器1中断 logfunc = ? 执行MODE 执行CONFIG 结束 MODE CONFIG 图(二)定时器1中断服务程序流程图 系统主要程序的设计 主程序 本设计中的主程序主要负责对键盘扫描及显示数据,还包括判断是否闹钟正在活动。若键盘中的P1.6(模式键)或P1.7(设置键)被按下,登记将被执行的功能,主循环不负责功能模块的执行。若闹钟正在活动,调用蜂鸣函数。其中bPalse标识了一秒的前半秒和后半秒,是为了控制显示数据的半秒闪烁。主函数还包含初始化操作,以下省略。 loop: MOV B, ;位选通信号 MOV R0, #prebuf - 01H ;数据缓冲区 nextnum: ACALL keyscan ;扫描键盘 INC R0 MOV A, @R0 PUSH ACC MOV A, B RL A MOV B, A JB bPalse, show ORL A, dmask JNB bAlaIng, show MOV led, #0FFH ACALL beeponce 若闹铃活动,调用蜂鸣函数 DEC SP SJMP loop show: PUSH ACC ACALL displayone 在特定数码管显示数据。 DEC SP DEC SP ACALL delay CJNE R0, #prebufend, nextnum SJMP loop keyscan: JNB keym, keymode ;若切换键被按下,登记“切换”功能

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档