基于凌阳单片机的电子时钟的设计.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于凌阳单片机的电子时钟的设计

目 录 一 摘要 2 二 引言 3 三 系统设计 5 3.1 方案论证 5 3.1.1 Lcd显示模块 5 3.1.2 语音模块(A/D) 5 3.1.4 Led模块 5 3.1.5 触键唤醒模块 6 3.2 硬件设计 6 3.2.1 Lcd的电路 7 3.2.2 Led电路 8 3.2.3 按键电路 9 3.2.4 语音电路(A/D) 9 3.2.5 电源电路 10 3.3 软件设计及流程图(主要是主程序及Led部分) 11 3.3.1 系统主体(main.c) 11 3.3.2 Led程序: 15 3.3.3 语音播报及AD(由刘沭负责) 16 3.3.4 lcd(由吴大鹏负责) 16 四 总结及心得体会 16 参考文献: 17 一 摘要 介绍一下单片机和凌阳61单片机 二 引言 电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。在城市的主要营业场所、车站、码头等公共场所使用LCD数字电子钟已经成为一种时尚。但目前市场上各式各样的LCD数字电子钟大多数用全硬件电路实现,电路结构复杂,功率损耗大等缺点。因此有必要对数字电子钟进行改进本设计基于单片机技术原理,以作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个LCD多功能数字时钟系统。该时钟系统主要由时钟模块、模块、模块、液晶显示模块、键盘控制模块组成。系统具有简单清晰的操作界面,能够准确显示时间可随时进行时间调整低压微功耗平板型结构被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳) 显示信息量大(因为像素可以做得很小) 无电磁辐射(对人体安全,利于信息必威体育官网网址) 按键采用凌阳61板上提供的三个按键,接口电路如下: 3.3 软件设计及流程图 软件部分由三个部分组成:主程序部分、2Hz时基中断部分、1KHz时基中断部分,主程序部分主要负责初始化LCD和显示界面,2Hz时基中断部分负责时间的计数,1KHz时基中断部分负责按键的扫描,下面是这三个程序的流程图: 2.2.1程序流程图: 主程序(main.c)由王瑞和吴勃庆负责编写,王鹏和赵红负责LCD以及中断模块 3.3.2 Lcd和中断程序: F_SPLC501_Initial_IO://LCD对应IO口设置程序,作用是把Lcd对应的IO口设置为输出 push r1 to [sp] r1 = [P_IO_Data_Di] r1 |= M_IO_DATA_MASK [P_IO_Data_Di] = r1//设置对应的数据口为输出 r1 = [P_IO_Data_A] r1 |= M_IO_DATA_MASK [P_IO_Data_A] = r1//设置对应的数据口为悬浮输出 r1 = [P_IO_Data_B] r1 |= M_IO_DATA_MASK [P_IO_Data_D] = r1 r1 = [P_IO_Ctrl_Di] r1 |= (M_IO_EP+M_IO_AO+M_IO_RW+M_IO_CS) [P_IO_Ctrl_Di] = r1//设置对应的控制口为输出 r1 = [P_IO_Ctrl_A] r1 |= (M_IO_EP+M_IO_AO+M_IO_RW+M_IO_CS) [P_IO_Ctrl_A] = r1//设置对应的控制口为悬浮输出 r1 = [P_IO_Ctrl_B] r1 |= ~(M_IO_EP+M_IO_AO+M_IO_RW+M_IO_CS) [P_IO_Ctrl_D] = r1 pop r1 from [sp] retf F_SPLC501_Write_Com://单片机向LCD写指令 push r2,r3 to [sp]//入栈保护 push r5 to [sp] r2 = [P_IO_Ctrl_B] //得到IOB口的状态 r2 = ~(M_IO_EP+M_IO_CS) //EP、CS变低电平 [P_IO_Ctrl_B] = r2 r2 = [P_IO_Ctrl_B] r2 = ~(M_IO_AO+M_IO_RW) [P_IO_Ctrl_B] = r2 //AO、RW变低电平 .ifdef DATA_PORT_HIGHT r1 = r1 lsl 4 r1 = r1 lsl 4 .endif r3 = [P_IO_Data_B] r3 = ~M_IO_DATA_MASK r1 = M_IO_DATA_MASK r1 = r1+r3 [P_IO_Data] = r

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档