




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式课程设计 第 1 页 共 23 页 目录目录 摘 要 3 ABSTRACT 4 一 系统基本方案选择与论证 5 1 1 单片机芯片的选择方案与论证 5 1 2 时钟芯片选择 5 1 3 显示模块的选择 5 二 系统硬件设计与实现 6 2 1 系统总体框图 6 2 2 主控单元和按键部分设计 7 2 3 LCD1602 显示模块 8 2 4 DS1302 时钟部分 9 1 工作原理 10 2 DS1302 的控制字节 10 3 数据输入输出 I O 11 4 DS1302 的寄存器 11 三 系统软件设计与实现 12 3 1 系统总体软件流程图 12 3 2 LCD1602 部分 12 3 3 DS1302 部分 13 3 4 按键处理子程序 14 3 5 定时器部分 15 四 设计心得 16 五 参考文献 17 嵌入式课程设计 第 2 页 共 23 页 教师评阅 教师评阅 设计思路正确 仿真结果正确可信 设计成果符合要求 设计报告规范 设计过程原始记录 元件参数 原理图 计算等 符合要求 设计分析总结全面 评 分 摘摘 要要 随着经济的腾飞 科技的发展 信息起着越来越重要的作用 计算机 网 络和嵌入式等信息技术在各个领域的应用也愈来愈广泛 尤其是嵌入式技术 在如今办 公生活领域 随处可见各种嵌入式设备 如手表 微波炉 录像机 汽车等 都使用嵌入式系统 21 世纪 是信息化的时代 是科学技术日新月异 时代 随着科技的不断进步与更新 以及人们对智能时代的向往 嵌入式技术 将迎来属于它的春天 本文以电子万年历为例 采用 AT89C51 作为主控芯片 选择 DS1302 作为时 钟芯片 利用 LCD1302 液晶作为显示器件为主要部件 实现了以时间 年份 星期的实时显示功能 并可对其进行修改保存 关键词 嵌入式 电子万年历 AT89C51 嵌入式课程设计 第 3 页 共 23 页 ABSTRACT With the rapid economic growth technological development information plays an increasingly important role Computers networks and embedded in various fields such as information technology applications are increasingly widespread especially in embedded technology In today s office the public areas of life you can see a variety of embedded devices such as watches microwaves VCRs cars etc all use embedded systems 21st century is the era of information technology is the era of science and technology As technology continues to progress and updates as well as people s desire for smart era embedded technology will usher in a part of its spring In this paper electronic calendar for example using AT89C51 as the master chip select DS1302 clock chip as using LCD1302 as a display piece for the main components Implementation of a time year week real time display function and can be modified to save Keywords Embedded Electronic calendar AT89C51 嵌入式课程设计 第 4 页 共 23 页 一 一 系统基本方案选择与论证系统基本方案选择与论证 1 1 单片机芯片的选择方案与论证单片机芯片的选择方案与论证 AT89C51 是一种带 4K 字节 FLASH 存储器 FPEROM Flash Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS 8 位微处理器 俗 称单片机 它是一种带 2K 字节闪存可编程可擦除只读存储器的单片机 单片机 的可擦除只读存储器可以反复擦除 1000 次 该器件采用 ATMEL 高密度非易失存 储器制造技术制造 与工业标准的 MCS 51 指令集和输出管脚相兼容 由于将多 功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 AT89C51 是一种高效 微控制器 AT89C2051 是它的一种精简版本 AT89C51 单片机为很多嵌入式控制 系统提供了一种灵活性高且价廉的方案 1 2 时钟芯片选择时钟芯片选择 方案一 选择 AT89C51 单片机内部的定时器 0 或定时器 1 来提供基准的秒 信号 比如选择定时 0 的方式1 来计数 50ms 然后循环 20 次 便可提供 1 秒 的基准信号 从而实现年 月 日 时 分等 优点 采用这种方案的话 系 统外围的的器件比较少 且实现起来比较方便 成本也比较低 但是这种方案 也有其不足之处 作为万年历的设计 不仅要求简单实用 最重要的是要时间 准确 误差极小 缺点 误差比较大 且没有掉电保护的功能 也就是说在掉 电之后 需要手动再调准时间 使用上不是很方便 方案二 选择 DS1302 时钟芯片 DS1302 是 DALLAS 公司推出的涓流充电时钟芯片内含有一个实时 时钟 日 历和 31 字节静态 RAM 可通过简单的串行接口与单片机进行通信 可提供 秒 分 时 日 月 年的信息 每月的天数和闰年的天数可自动调整 可通过 AM PM 指示决定采用 24 或 12 小时格式 保持数据和时钟信息时功率小于 1mW 芯片的工作电压为 2 0 至 5 0V 提供主电源和备用电源双电源引脚 可以 对后备电源进行涓细电流充电 芯片采用串行接口方式和外部单片机进行同步 通信 数据可以每次以一个字节或多个字节形式传送时钟信号或 RAM 数据 综上所述 选择方案二 1 3 显示模块的选择显示模块的选择 方案一 选择 LED 数码管动态扫描 优点 数码管作为平时最常见的一种 嵌入式课程设计 第 5 页 共 23 页 的显示器件 原理与实现方法相对比较简单 对于显示数字来说是不错的选择 缺点 增加外围设备的负担 显得不是很直观 另外 虽说原理简单 但对于 本设计来说 实现起来稍显复杂 方案二 选择 LCD12864 液晶显示模块 LCD12864 液晶显示模块是 128 64 点阵的汉字图形型液晶显示模块 可显示汉字及图形 内置 8192 个中文汉字 16X16 点阵 128 个字符 8X16 点阵 及 64X256 点阵显示 RAM GDRAM 可 与 CPU 直接接口 提供两种界面来连接微处理机 8 位并行及串行两种连接方 式 具有多种功能 光标显示 画面移位 睡眠模式等 LCD12864 显示的信息 很大 但随之带来的就是比较复杂的程序 方案三 选择 LCD1602 液晶显示模块 LCD1602 是字符点阵系列液晶模块 它是一类专门用于显示字母 数字 符号等的点阵型液晶显示模块 分为四位 和八位数据传输方式 提供 5 7 点阵 光标和 5 10 点阵 光标的显示模式 提供 显示数据缓冲区 DDRAM 字符发生器 CGRAM CGROM 可以使用 CGRAM 来存储自 己定义的最多 8 个 5 8 点阵的图形的字模数据 程序设计相对 LCD12864 简单一 些 由于本设计要显示基本的时间信息 但又不需要显示汉字 综合考虑 选 择方案三 LCD1302 液晶显示模块 二 二 系统硬件设计与实现系统硬件设计与实现 2 1 系统总体框图系统总体框图 如图 1 所示 本设计从整体的框图上来看是比较简单的 主要包括 AT89C51 主控单片机芯片 键盘模块 液晶显示模块 时钟芯片 主控芯片 AT89C51 是整个系统的核心 接收键盘传入的信息 控制显示液晶 从 DS13202 中读取和写入数据等等一系列的操作和控制都在这里完成 键盘主要是为了纠 正时间 对时间进行修改 液晶模块则是显示时间 星期 年月日 时钟芯片 部分主要是进行计时 图 Error Error MainMain DocumentDocument Only Only 嵌入式课程设计 第 6 页 共 23 页 2 2 主控单元和按键部分设计主控单元和按键部分设计 1 主控部分 对于主控方面的设计 其实就是一个单片机的最小系统 主控芯片使用的 是 AT89C51 可降至 0Hz 的静态逻辑操作 并支持两种软件可选的节电工作模 式 空闲方式停止 CPU 的工作 但允许 RAM 定时 计数器 串行通信口及中断 系统继续工作 掉电方式保存 RAM 中的内容 但振荡器停止工作并禁止其它所 有部件工作直到下一个硬件复位 该系统主要包含两部分 时钟部分和复位电 路 下面简单介绍一下这两部分 时钟部分 单片机工作时 从取指令到译码再进行微操作 必须在时钟信 号控制下才能有序地进行 时钟电路就是为单片机工作提供基本时钟的 单片 机的时钟信号通常有两种产生方式 内部时钟方式和外部时钟方式 在本设计 中显然采取的是外部时钟的方式 选择的是 12MHz 其机器周期是 1us 也就是 说执行一条单周期指令只需要 1us 执行一条双周期指令则需要 2us 复位电路部分 无论是在单片机刚开始接上电源时 还是运行过程中发生 故障都需要复位 复位电路用于将单片机内部各电路的状态恢复到一个确定的 初始值 并从这个状态开始工作 单片机的复位条件 必须使其 RST 引脚上持续出现两个 或以上 机器周 期的高电平 2 按键部分 按键部分的主要功能是 对时间进行修改 包含三个按键和三个上拉电阻 功能键的作用是选择要改变的数据 按下增量键则是对数据在原来的基础上加 一 减量键则是相反的共能 图 Error Error MainMain DocumentDocument Only Only 嵌入式课程设计 第 7 页 共 23 页 2 3 LCD1602 显示模块显示模块 1 连接说明 LCD1602 显示器部分的电路原理以及连接方式如图 3 所示 其中 LCD1602 的 RS 端口连接在单片机的 P2 0 口 使能端连接在 P2 1 口上 数据端口 D7 至 D0 则连接在单片机的 P0 口上 2 引脚功能简介及说明 表 1 LCD1602 引脚功能 图 Error Error MainMain DocumentDocument Only Only 嵌入式课程设计 第 8 页 共 23 页 第 1 脚 VSS 为地电源 第 2 脚 VDD 接 5V 正电源 第 3 脚 VL 为液晶显示器对比度调整端 接正电源时对比度最弱 接地时对比 度最高 对比度过高时会产生 鬼影 使用时可以通过一个 10K 的电位器调 整对比度 第 4 脚 RS 为寄存器选择 高电平时选择数据寄存器 低电平时选择指令寄存 器 第 5 脚 R W 为读写信号线 高电平时进行读操作 低电平时进行写操作 当 RS 和 R W 共同为低电平时可以写入指令或者显示地址 当 RS 为低电平 R W 为 高电平时可以读忙信号 当 RS 为高电平 R W 为低电平时可以写入数据 第 6 脚 E 端为使能端 当 E 端由高电平跳变成低电平时 液晶模块执行命令 第 7 14 脚 D0 D7 为 8 位双向数据线 第 15 脚 背光源正极 第 16 脚 背光源负极 3 LCD 指令 表 2 指令表 2 4 DS1302 时钟部分时钟部分 图 Error Error MainMain DocumentDocument Only Only 嵌入式课程设计 第 9 页 共 23 页 上图示出 DS1302 电路原理图 其中 Vcc1 为后备电源 Vcc2 为主电源 在 主电源关闭的情况下 也能保持时钟的连续运行 DS1302 由 Vcc1 或 Vcc2 两者 中的较大者供电 当 Vcc2 大于 Vcc1 0 2V 时 Vcc2 给 DS1302 供电 当 Vcc2 小于 Vcc1 时 DS1302 由 Vcc1 供电 X1 和 X2 是振荡源 外接 32 KHz 晶 振 RST 是复位 片选线 通过把 RST 输入驱动置高电平来启动所有的数据传送 RST 输入有两种功能 首先 RST 接通控制逻辑 允许地址 命令序列送入移位 寄存器 其次 RST 提供终止单字节或多字节数据的传送手段 当 RST 为高电 平时 所有的数据传送被初始化 允许对 DS1302 进行操作 如果在传送过程中 RSTS 置为低电平 则会终止此次数据传送 I O 引脚变为高阻态 上电动行时 在 Vcc 大于等于 2 5V 之前 RST 必须保持低电平 中有在 SCLK 为低电平时 才能将 RST 置为高电平 I O 为串行数据输入端 双向 SCLK 始终是输入端 1 工作原理 DS1302 时钟芯片主要有寄存器 控制寄存器 振荡器 实时时钟以及 RAM 组成 为了对任何数据传送进行初始化 需要将 RST 置为高电平且将 8 位地 址和命令信息装入移位寄存器 数据在 SCLK 的上升沿沿串行输入 前 8 位指 定访问地址 命令字装入移位寄存器后 在之后的时钟周期 读操作输出数 据 写操作输入数据 时钟的个数在单字节方式下为 8 加 8 8 位地址加 8 位 数据 在多字节方式下为 8 加最多可达 248 的数据 DS1302 在每次进行读 写程序前都必须初始化 先把 SCLK 端置 0 接着把 RST 端置 1 最后才给予 SCLK 脉冲 读 写时序如下图 2 3 3 所示 表 2 1 为 DS1302 的控制字 此控制字的位 7 必须置 1 若为 0 则不能把对 DS1302 进行读写数据 对于位 6 若对程序进行读 写时 RAM 1 对时间进行 读 写时 0 位 1 至位 5 指操作单元的地址 位 0 是读 写操作位 进行 CK 读操作时 该位为 1 该位为 0 则表示进行的是写操作 控制字节总是从最低 位开始输入 输出的 表 2 2 为 DS1302 的日历 时间寄存器内容 CH 是 时钟暂停标志位 当该位为 1 时 时钟振荡器停止 DS1302 处于低功耗状态 当该位为 0 时 时钟开始运行 WP 是写保护位 在任何的对时钟和 RAM 的 写操作之前 WP 必须为 0 当 WP 为 1 时 写保护位防止对任一寄存器的 写操作 2 DS1302 的控制字节 DS1302 的控制字如表 2 1 所示 控制字节的高有效位 位 7 必须是逻 嵌入式课程设计 第 10 页 共 23 页 辑 1 如果它为 0 则不能把数据写入 DS1302 中 位 6 如果 0 则表示存取日 历时钟数据 为 1 表示存取 RAM 数据 位 5 至位 1 指示操作单元的地址 最 低有效位 位 0 如为 0 表示要进行写操作 为 1 表示进行读操作 控制字节 总是从最低位开始输出 表 3 DS1302 的控制字格式 RAM RD 1 A4 A3 A2 A1 A0 CKRW 3 数据输入输出 I O 在控制指令字输入后的下一个 SCLK 时钟的上升沿时 数据被写入 DS1302 数据输入从低位即位 0 开始 同样 在紧跟 8 位的控制指令字后的 下一个 SCLK 脉冲的下降沿读出 DS1302 的数据 读出数据时从低位 0 位到高 位 7 如下图所示 图 5 4 DS1302 的寄存器 DS1302 有 12 个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数 据位为 BCD 码形式 其日历 时间寄存器及其控制字见表 2 2 此外 DS1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄 存器及与 RAM 相关的寄存器等 时钟突发寄存器可一次性顺序读写除充电寄 存器外的所有寄存器内容 DS1302 与 RAM 相关的寄存器分为两类 一类是单 个 RAM 单元 共 31 个 每个单元组态为一个 8 位的字节 其命令控制字为 C0H FDH 其中奇数为读操作 偶数为写操作 另一类为突发方式下的 RAM 嵌入式课程设计 第 11 页 共 23 页 寄存器 此方式下可一次性读写所有的 RAM 的 31 个字节 命令控制字为 FEH 写 FFH 读 表 4 DS1302 寄存表 三 三 系统软件设计与实现系统软件设计与实现 3 1 系统总体软件流程图系统总体软件流程图 从系统的总体流程图可以看出 在整个程序设计中 主要涉及到 LCD1602 初始化 DS1302 初始话 定时器 0 的初始化以及按键的处理子程序 其实还有 一些其他的辅助程序 例如 BCD 码与十六进制之间的转换函数等 图 Error Main Document Only 嵌入式课程设计 第 12 页 共 23 页 3 2 LCD1602 部分部分 1 初始化的流程图 2 涉及到的函数 1 BCD 码与十六进制之间的转换函数 因为字符信息在 LCD1602 中是已 BCD 码的形式存储的 所以需要将十六进 制的数据转换成 BCD 码的形式 在传到液晶里去 将 BCD 转十六进制的方法 原高 4 位数据 10 低 4 位即可 反过来的方法 将十六进制数除以 10 所得整 数部分乘以 16 再加上原数据的个位即可 2 延时函数 延时函数相对比较简单 直接使用两个循环即可 3 液晶写入指令和数据函数 这两个函数的实现也是很简单的 设定相应模式 直接使用赋值语句即可 比如说写如数据的函数 先将 RS 口置一 然后将数据 赋值给数据端口 延时一段时间 拉高使能端 再延时一段时间 最后再拉低 使能端即可完成 相应的写入指令函数 也可类似操作 图 Error Main Document Only 嵌入式课程设计 第 13 页 共 23 页 3 3 DS1302 部分部分 1 初始化的流程图 2 涉及到的函数 1 1302 字节写函数 主要实现往 DS1302 中写入一个字节的数据 实现方法 首先启动读写操作 使用循环 从最低位开始 一位一位的往里写 每写一位 数据后 要制造一个时钟上升沿 这样数据采用写入 2 字节读函数 此函数的功能与写函数的正好相反 是从 DS1302 中读出一个 数据 只不过在读出的时候 是要制造一个下降沿才有效 3 液晶地址 数据读函数 在这个函数中 首先一样 得启动读写操作 然后 调用写函数写入地址 再调用读函数 读出数据即可 3 4 按键处理子程序按键处理子程序 1 功能键程序流程图 图 Error Main Document Only 图 Error Main Document Only 嵌入式课程设计 第 14 页 共 23 页 当判断到功能键按下时 使用一个延时来消去抖动 然后将标志加 1 判 断标志是否为 9 如果为 9 将其置为 1 这位做的原因是 总共需要修改的数据 只有 8 位 因此以 8 为周期 然后根据不同的标志 使用 switch case 语句来 判断需要修改的到底是哪个数据 2 增 减量键程序流程图 以增量键为例 增量键和减量键只有在功能键按下的时候才有效 其他情况不会产生任何 操作 当功能键按下的时候 程序扫描这两个按键 比如当增量键按下的时候 同样会利用以个延时来消去抖动 然后等待按键释放 按键释放后根据不同的 标志值 将相应的数据加 1 然后送至液晶显示并送至 DS1302 芯片存贮 而相 应的减量键则是一样的 3 5 定时器部分定时器部分 定时器部分主要使用的是 AT89C51 内部的定时器中断 在本设计中选定的 图 Error Main Document Only 嵌入式课程设计 第 15 页 共 23 页 定时器为定时器 0 并选择其工作方式为方式 1 设定为每隔 0 5ms 读取一次 DS1302 中的数据并送至液晶显示器显示 在中断处理程序中调用上面写好的数 据读取函数即可 四 四 设计心得设计心得 五 五 参考文献参考文献 1 徐敏 等 单片机原理及其应用 M 北京 机械工业出版社 2012 2 郑锋 等 51 单片机典型应用开发范例大全 M 北京 中国铁道出版社 2011 3 赵建领 等 精通 51 单片机开发技术与应用实例 M 北京 电子工业出版 社 2012 4 戴佳 等 51 单片机 C 语言应用程序设计实例精讲 M 北京 电子工业出 版社 2006 5 郭天祥 新概念 51 单片机 C 语言教程 M 北京 电子工业出版社 2009 嵌入式课程设计 第 16 页 共 23 页 附录 附录 主要程序代码 include define uint unsigned int define uchar unsigned char 初始设置 uchar Second Minute Hour Date Month Year week 0 定义时间等变量 define one 0 x80 第一行的初始位置 define two 0 xc0 第二行的初始位置 sbit RS 1602 P2 0 1602RS 端 sbit E 1602 P2 1 1602 使能端 sbit IO 1302 P2 4 1302I O 端 sbit CLK 1302 P2 3 1302 时钟端 sbit RST 1302 P2 2 1302 复位端 sbit key mode P1 0 功能按键 sbit key up P1 1 增量键 sbit key down P1 2 减量键 sbit ACC0 ACC 0 sbit ACC7 ACC 7 uchar code tab1 20 week 液晶第一行默认显示数据 uchar code tab2 液晶第二行默认显示数据 函数声明 void init 定时器 0 初始化 uchar BCD Decimal uchar bcd BCD 转 16 进制数 uchar Dec BCD uchar Dec 16 进制数转 BCD void delay uint xms 延时函数 write 1602com uchar com 液晶写入指令函数 write 1602dat uchar dat 液晶写入数据函数 void write hms uchar add uchar dat 1602 写时分秒 void write ymd uchar add uchar dat 1602 写年月日 void write week uchar week 1602 写星期函数 lcd init 液晶初始化函数 void write byte uchar dat 1302 字节写 uchar read byte 1302 字节读 void write 1302 uchar add uchar dat 1302 地址写 uchar read 1302 uchar add 1302 地址读 void ds1302 init 1302 初始化 void keyscan 按键处理子程序 主函数 main lcd init ds1302 init init while 1 keyscan 定时器 0 初始化 void init TMOD 0 x01 定时器 0 16 位定时器模式 TH0 0 xFF TL0 0 x06 EA 1 总中断使能 ET0 1 定时器 0 中断使能 TR0 1 定时器 0 启动 BCD 转 16 进制数 uchar BCD Decimal uchar bcd uchar Decimal Decimal bcd 4 高 4 位移到低 4 位 return Decimal Decimal 10 bcd 原高 4 位数据 10 低 4 位 16 进制数转 BCD uchar Dec BCD uchar Dec uchar BCD BCD Dec 10 16 Dec 10 return BCD 嵌入式课程设计 第 17 页 共 23 页 延时函数 void delay uint xms uint i j for i xms i 0 i for j 100 j 0 j 液晶 1602 写入 液晶写入指令函数 write 1602com uchar com RS 1602 0 置 RS 为 0 写入命令 P0 com 送入数据 delay 1 E 1602 1 拉高使能端 为写操作做准备 delay 1 E 1602 0 完成高脉冲 液晶写入数据函数 write 1602dat uchar dat RS 1602 1 置 RS 为 1 写入数据 P0 dat 送入数据 delay 1 E 1602 1 拉高使能端 delay 1 E 1602 0 完成高脉冲 1602 写时 分 秒 void write hms uchar add uchar dat uchar gw sw gw dat 10 分出个位数据 sw dat 10 分出十位数据 write 1602com two add 在第一行对应位置显示 write 1602dat 0 x30 sw write 1602dat 0 x30 gw 1602 写年 月 日 void write ymd uchar add uchar dat uchar gw sw gw dat 10 分出个位数据 sw dat 10 分出十位数据 write 1602com one add 在第二行对应位置显示 write 1602dat 0 x30 sw write 1602dat 0 x30 gw 1602 写星期函数 void write week uchar week write 1602com one 0 x0f write 1602dat 0 x30 week 1 液晶初始化函数 lcd init uchar kk write 1602com 0 x38 设置液晶工作模式 采用 8 位数据显示 两 行显示 write 1602com 0 x0c 开显示 不显示光标 write 1602com 0 x06 整屏不移动 指针自动加一 write 1602com 0 x01 write 1602com one 第一行字符写入的位置 for kk 0 kk 16 kk write 1602dat tab1 kk write 1602com two 4 第二行字符写入的位置 空 4 位 for kk 0 kk0 kk 8 位数据 IO 1302 ACC0 先传送数据低位 CLK 1302 0 CLK 1302 1 上升沿输入数据 ACC ACC 1 右移位 下次接着取低位 1302 字节读 uchar read byte uchar kk 嵌入式课程设计 第 18 页 共 23 页 RST 1302 1 启动读写操作 for kk 8 kk 0 kk ACC7 IO 1302 先读入数据低位 CLK 1302 1 CLK 1302 0 下降沿输出数据 ACC ACC 1 右移位 下次接着取 return ACC 1302 地址 数据写 void write 1302 uchar add uchar dat RST 1302 0 CLK 1302 0 RST 1302 1 启动读写操作 write byte add 写地址 write byte dat 写数据 CLK 1302 1 RST 1302 0 禁止读写操作 1302 地址 数据读 uchar read 1302 uchar add uchar temp RST 1302 0 CLK 1302 0 RST 1302 1 启动读写操作 write byte add 写地址 temp read byte 读数据 CLK 1302 1 RST 1302 0 禁止读写操作 return temp 1302 初始化 void ds1302 init RST 1302 0 禁止读写操作 CLK 1302 0 时钟为低 write 1302 0 x80 Second 0 x00 允许写 按键处理子程序 void keyscan uchar key1n 功能键按下次数 if key mode 0 key mode 为功能键 delay 5 延时去抖动 if key mode 0 功能键确认按下 while key mode 等待按键释放 key1n 功能键按下次数加一 if key1n 9 为 9 时 调为 1 只允许取值 1 8 key1n 1 switch key1n 功能键按键次数不同实现不同操作 case 1 时调整秒 TR0 0 关闭定时器 write 1602com two 0 x0b 写入光标 位置 即秒所在的位置 write 1602com 0 x0f 设置光标 为闪烁 write 1302 0 x8e 0 x00 允许写 write 1302 0 x80 0 x80 Dec BCD Secon d Second break case 2 write 1602com two 8 break Minute 闪烁 case 3 write 1602com two 5 break Hour 闪烁 case 4 write 1602com one 0 x0f break week 闪 烁 case 5 write 1602com one 0 x09 break Date 闪烁 case 6 write 1602com one 0 x06 break Month 闪 烁 case 7 write 1602com one 0 x03 break Year 闪烁 case 8 write 1602com 0 x0c 设置光标不闪烁 嵌入式课程设计 第 19 页 共 23 页 write 1302 0 x80 0 x00 Dec BCD Secon d Second write 1302 0 x8e 0 x80 禁止写 TR0 1 打开定时器 break if key1n 0 当 key mode 按下以后 再按以下键才有效 if key up 0 上调键 delay 5 延时去抖动 if key up 0 上调键确认按下 while key up 等待按键释放 switch key1n 功能键按键次数不同实现不同操作 case 1 Second 秒加 1 if Second 60 加到 60 时调为 0 Second 0 write hms 0 x0a Second 显示新的 秒数 write 1302 0 x80 0 x80 Dec BCD Secon d 写入新的秒数 write 1602com two 0 x0b 因指针自 动加一 要写回原位置 break case 2 Minute 分钟加 1 if Minute 60 加到 60 时调为 0 Minute 0 write hms 7 Minute 显示新的分钟 write 1302 0 x82 Dec BCD Minute 写入新的分钟 write 1602com two 8 光标在原位闪 烁 break case 3 Hour 小时加 1 if Hour 24 加到 24 时调为 0 Hour 0 write hms 4 Hour 显示新的小时 write 1302 0 x84 Dec BCD Hour 写入新的小时 write 1602com two 5 光标在原位闪 烁 break case 4 week 星期加 1 if week 9 加到 8 时调为 1 week 2 write week week 显示新的星期 write 1302 0 x8a week 写入新的星期 write 1602com one 0 x0f 光标在原位 闪烁 break case 5 Date 日期加 1 if Date 32 加到 32 时调为 1 Date 1 write ymd 8 Date 显示新的日期 write 1302 0 x86 Dec BCD Date 写 入新的日期 write 1602com one 9 光标在原位闪 烁 break case 6 Month 月份加 1 if Month 13 加到 13 时调为 1 Month 1 write ymd 5 Month 显示新的 月份 write 1302 0 x88 Dec BCD Month 写入新的月份 write 1602com one 6 光标在原位闪 烁 break case 7 Year 年加 1 if Year 100 加到 100 时调为 0 嵌入式课程设计 第 20 页 共 23 页 Year 0 write ymd 2 Year 显示新的年份 write 1302 0 x8c Dec BCD Year 写 入新的年份 write 1602com one 3 光标在原位闪 烁 break if key down 0 下调键 delay 5 延时去抖动 if key down 0 下调键确认按下 while key down 等待按键释放 switch key1n 功能键按键次数不同实现不同操 作 case 1 Second 秒减 1 if Second 1 减为 1 时 调为 59 Second 59 write hms 0 x0a Se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理沟通与礼仪
- 贵州省毕节市金沙县2025-2026学年高三上学期开学检测语文试题及参考答案
- 放管服培训课件
- 四川省江油市六校2026届化学九年级第一学期期中质量跟踪监视试题含解析
- 江西省上饶市广丰区2026届化学九年级第一学期期中经典试题含解析
- 湖北省武汉市武昌区八校2026届化学九上期中考试试题含解析
- 2026届浙江省金华市国际实验学校九上化学期中复习检测试题含解析
- 2026届贵州省安顺市名校化学九上期中调研模拟试题含解析
- 2026届湖北省咸宁市名校九年级化学第一学期期中考试模拟试题含解析
- 2026届吉林省长春二道区七校联考化学九上期末质量跟踪监视模拟试题含解析
- 2025四川蜀道养护集团有限公司招聘15人考试参考题库及答案解析
- 股权转让担保责任及权益保护合同
- 1 学习伴我成长(教学设计)-2024-2025学年统编版(2024)道德与法治三年级上册
- 2025年安全工程师《安全生产管理》考前模拟卷(一)
- 2024年青海省行政执法资格考试备考题库及答案(题型)
- 2025-2026学年第一学期校园“1530”安全教育记录表
- 2025年注册安全工程师考试(初级)安全生产法律法规试卷及答案
- 支付终端管理办法
- 公共艺术-音乐篇(中职公共艺术)完整版全套教学课件
- 开发基于多模态大模型的CST2差异化评课模型及其应用案例
- 人教版3到6年级单词表打印版(小学必背单词3000打印版)
评论
0/150
提交评论