基于89C52单片机的定时开关设计毕业论文.doc_第1页
基于89C52单片机的定时开关设计毕业论文.doc_第2页
基于89C52单片机的定时开关设计毕业论文.doc_第3页
基于89C52单片机的定时开关设计毕业论文.doc_第4页
基于89C52单片机的定时开关设计毕业论文.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

聊城大学本科毕业论文 设计 基于 89C52 单片机的定时 开关设计毕业论文 目 录 前前 言言 1 1 1 1 系统硬件设计 系统硬件设计 1 1 1 1 主板与显示电路设计 2 1 2 时钟芯片接口电路 4 1 3 无线模块电路 8 2 2 系统软件设计系统软件设计 1 10 0 2 1 系统主程序流程图 10 2 2 各部分子程序流程图 11 3 3 制作调试与操作制作调试与操作 1 15 5 3 1 元器件选择及其清单 15 3 2 电路的制作与调试 16 参考文献参考文献 1717 致谢致谢 1818 附录附录 1919 聊城大学本科毕业论文 设计 1 1 1 系统硬件设计系统硬件设计 系统的硬件由 89C52 最小系统 继电器组 无线收发模块 DS12C887 时钟 芯片 LCD1602 显示器组成 系统框图如图 1 所示 STC89C52 TX 1C 实验 开发板 LCD1602 DS12C887 继电器 无线模块 图 1 系统框图 1 11 1 主板与显示电路设计主板与显示电路设计 1 1 1 主控芯片主控芯片 近几年 以单片机为核心的控制芯片 以其较高的稳定性及相对低廉的价格 迅速占领市场 而 51 系列单片机更是风靡一时 在本电路中 核心器件采用 STC89C52 单片机 STC89C52 的 40 个引脚大致可分为 4 类 电源 时钟 控制和 I O 引脚 具 体介绍如下 1 主电源引脚 2 跟 VCC Pin40 电源输入 接 5V 直流源 GND Pin20 接地线 2 外接晶振线 2 跟 ATNL1 Pin18 片内晶振电路 输入端 ATNL2 Pin19 片内晶振电路输出端 3 控制引脚线 4 跟 聊城大学本科毕业论文 设计 2 RST VPP Pin9 复位引脚 引脚上出现两个机器周期的高电平 将使单片机 复位 ALE PROG Pin30 地址锁存允许信号 PSEN Pin29 外部存储器读选 通信号 EA VPP Pin31 程序存储器的内外部选通 接低电平从外部程序存储器读指令 接高电平则从内部程序存储器读指令 4 可编程输入 输出引脚 32 跟 STC89C52 共有 4 组 8 位的可编程 I O 口 分别为 P0 P1 P2 P3 口 每个口有 8 位 8 跟引脚 共 32 跟 P0 口 Pin39 Pin32 8 位双向 I O 口线 名称 为 P0 0 P0 7 P1 口 Pin1 Pin8 8 位准双向 I O 口线 名称为 P1 0 P1 7 P2 口 Pin21 Pin28 8 位准双向 I O 口线 名称为 P2 0 P2 7 P3 口 Pin10 Pin17 8 位准双向 I O 口线 名称为 P3 0 P3 7 STC89C52 主要功能表如下 表 1 所示 表 1 STC89C52 主要功能 STC89C52 引脚图如下 图 2 所示 主要功能特性 兼容 MCS51 指令系统2 个串行中断 8K 可反复插写 Flash ROM2 个外部中断源 256 8bit 内部 RAM2 个读写中断口线 32 个双向 I O 口6 个中断源 3 个 16 为可编程定时 计数中断3 级加密位 时钟频率 0 24MHz低功耗空闲和掉电模式 可编程 UART 串行通道软件设置睡眠及唤醒功能 聊城大学本科毕业论文 设计 3 图 2 STC89C52 引脚图 STC89C52 实物图见附图 11 1 1 2 显示模块显示模块 字符型液晶显示模块是一种专门用于显示字母 数字 符号等点阵式 LCD 目前常用 16 1 16 2 20 2 40 2 等模块 本设计根据需要选择 LCD1602 型液 晶显示 LCD1602 液晶显示模块以其微功耗 体积小 显示内容丰富 超薄轻巧等诸 多优点 在各类仪表和低功耗系统中得到广泛的应用 其主要参数如下 显示容量 16 2 个字符 芯片工作电压 4 5 5 5V 工 作电流 2 0mA 5 V 模块最佳工作电压 5 0V 引脚功能说明 第 1 脚 VSS 为电源地 第 2 脚 VDD 接 5V 电源正极 第 3 脚 V0 为液晶显示器对比度调整端 接正电源时对比度最弱 接地时对比度最高 使用时通过一个 10K 的电位器调整对比度 4 第 4 脚 RS 为寄存器选择 高电平 时选择数据寄存器 低电平时选择指令寄存器 第 5 脚 RW 为读写信号线 高电 平时进行读操作 低电平时进行写操作 第 6 脚 E 或 EN 端为使能 enable 端 第 7 14 脚 D0 D7 为 8 位双向数据端 第 15 16 脚空脚或背灯电源 15 脚背 光正极 16 脚背光负极 聊城大学本科毕业论文 设计 4 LCD1602 实物图见附图 12 1 1 3 主板与显示电路主板与显示电路 见图见图 3 EA VPP 31 XTAL1 19 XTAL2 18 RST 9 P3 7 RD 17 P3 6 WR 16 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 5 T1 15 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 AD0 P0 0 39 AD1 P0 1 38 AD2 P0 2 37 AD3 P0 3 36 AD4 P0 4 35 AD5 P0 5 34 AD6 P0 6 33 AD7 P0 7 32 A8 P2 0 21 A9 P2 1 22 A10 P2 2 23 A11 P2 3 24 A12 P2 4 25 A13 P2 5 26 A14 P2 6 27 A15 P2 7 28 PSEN 29 ALE PROG 30 TXD P3 1 11 RXD P3 0 10 GND 20 VCC 40 U1 AT89C51 1 2 3 RW1 10K R1 10 0 5w 5V 5V C3 0 1uF VSS 1 VCC 2 VEE 3 RS 4 R W 5 E 6 DB0 7 DB1 8 DB2 9 DB3 10 DB4 11 DB5 12 DB6 13 DB7 14 LED 15 LED 16 LCD1 1602 4 1 2 3 4 5 6 7 8 9 RS RP 5V 5 6 5v 12 34 56 78 910 JP1 5V U2F出出出出出 12 U2A SN74HC04N 34 U2B SN74HC04N 56 U2C SN74HC04N 89 U2D SN74HC04N 1011 U2E SN74HC04N GND 7 5V 14 Y 12 A 13 U2F SN74HC04N 4 5 6 1 2 3 5V 12 X1 C1 30p C2 30p 图 3 主控与显示电路 1 2 1 2 时钟芯片接口电路时钟芯片接口电路 1 2 11 2 1 DS12C887DS12C887 芯片芯片 DS12C887 是一种新型的时钟芯片 能够进行长时间的记录 包括日历 星 期在内的时间信息 并且存储的时间信息在掉电情况下可保存 10 年之久 DS12C887 特点 可作为 IBM AT 计算机的始终和日历 与 MC146818B 和 DS1287 的管脚兼容 自带晶体振荡器和电池 可计算到 2100 年前的秒 分 小 时 星期 月 年七种日立信息并具有瑞年补偿 用二进制码或 BCD 码代表日历 和闹钟信息 有 12 小时和 24 小时两种模式 12 小时带有 AM 和 PM 提示 可选 用夏令时模式 可以应用于 MOTOROMA 和 INTEL 两种总线 数据地址总线复用 聊城大学本科毕业论文 设计 5 内建 128 字节 RAM 14 字节始终控制寄存器和 114 字节通用 RAM 可编程方波输 出 总线兼容中断 三种可编程中断 时间性中断 周期性中断 时钟更新结束 中断 引脚功能 1 MOT 总线模式选择 当此引脚接 VCC 时 选用的是 MOTOROLA 总线时序 当接地或不接时 选用的是 INTEL 总线时序 2 SQW 方 波输出 当电压低于 4 25V 时不起作用 3 周期性中断率和方波中断频率 表 2 所示 寄存器 A 的控制位 RS3RS2RS1RS0 PI 周期中断周期SQW 输出频率 0000 无无 00013 90625ms256Hz 00107 8125ms128Hz 0011122 070ms8 192KHz 0100244 141ms4 096KHz 0101488 281ms2 048KHz 0110976 5625ms1 024KHz 01111 953125ms512Hz 10003 90625ms256Hz 10017 8125ms128Hz 101015 626ms64Hz 101131 25ms32Hz 110062 5ms16Hz 1101125ms8Hz 1110250ms4Hz 1111500ms2Hz 表 2 期性中断率和方波中断频率 4 AD0 AD7 双向数据 地址复用总线 5 AS 地址锁存 ALE 6 DS Data Strobe or Read Inpur RD 当系统选择的是 INTEL 总线模式时 DS 被称作 聊城大学本科毕业论文 设计 6 RD 当他有效是表示 DS12C887 正在往总线上输出数据 RD 信号线在存储器芯片 上被称作 OE 信号线 6 R W Read Write Input WR 7 CS 片选输入 当 Vcc 低于 4 25V 时 DS12C887 从内部禁止对外部 CS 的操作 此时时钟和 RAM 都被保 护起来 8 IRQ 中断输出请求 当中断状态为和对应的中断允许位有效时 IRQ 的输出保持为底 复位和读 C 寄存器都可以清楚 IRQ 中断信号 没有中断时 IRQ 呈高阻态 其他中断源还可以挂接到中断总线上 由于 IRQ 是漏极输出 所 以不用外接上拉电阻 9 RESTE 复位 复位脚对时钟 日历 RAM 无效 系 统上电时复位脚要保持低电平 200ms 以上 DS12C887 才可以正常工作 当复位脚 为底 但 Vcc 高于 4 25V 时 以下情况发生 周期中断允许 PIE 位清零 闹钟 中断允许 AIE 位清零 更新完成中断标志 UF 位清零 中断请求状态标志 IRQF 位清零 周期中断标志 PF 位清零 当 RESET 为低时 DS12C887 不 可操作 闹钟中断标志 AF 位清零 IRQ 呈高阻态 方波输出允许 SQWE 位清零 更新完成中断允许 UIE 位清零 通常情况下把复位 RESET 和电源 Vcc 相 连 地址分布 DS12C887 的地址包括 114 字节通用 RAM 10 字节用于记录时间 日期 闹钟的 RAM 及 4 字节的控制 状态 RAM 所有的字节都可以在除以下的情 况下直接读写 寄存器 C D 为只读 寄存器 A 的第七为只读 秒字节的高位为 只读 时间 日历和闹钟区域 通过读相应的寄存器获取相应的时间 日历等信息 通过写相应的存储器设置相应的时间 日期和闹钟 时间 日历和闹钟的数据格式如表 3 所示 范围地 址功能十进制范围二进制数据范围BCD 数据范围 0 秒 0 5900 3B00 59 1 秒闹钟 0 5900 3B00 59 2 分 0 5900 3B00 59 3 分闹钟 0 5900 3B00 59 小时 12 时制 1 1201 0C AM 81 8C PM 01 12AM 81 89PM4 小时 24 时制 0 2300 1700 23 聊城大学本科毕业论文 设计 7 时闹钟 12 时制 1 1201 0C AM 81 8C PM 01 12AM 81 89PM5 时闹钟 24 时制 0 2300 1700 23 6 星期 星期天 1 1 700 0700 07 7 日期 1 3101 0F1 31 8 月份 1 1201 0C1 12 9 年 0 9900 6300 99 表 3 时间 日历和闹钟的数据格式 OXC0 OXFF 为特殊的数 如果小时闹钟为 OXC0 OXFF 表示每小时中断一次 如果小时闹钟和分闹钟都为 OXC0 OXFF 表示每分钟中断一次 如果小时闹钟 分闹钟和秒闹钟都为 OXC0 OXFF 表示每秒中断一次 非易失性 RAM 114 字节的非易失性通用 RAM 没有特殊功能 可以随时读写 寄存器 DS12C887 有四个控制寄存器 可以在任意时刻读写 UIP 更新 UIP 位用来标识芯片是否即将进行更新 当 UIP 为 1 时 表示 更新即将开始 当它为 0 时表示在至少 24us 内不会产生更新 此时 时钟 日 历和闹钟可以通过读写相应字节获得和设置 UIP 位为只读并且不受复位信号 RESET 的影响 通过把寄存器 B 中的 SET 为设置为 1 可以禁止更新并将 UIP 清 0 DS12C887 引脚图如图 4 所示 聊城大学本科毕业论文 设计 8 图 4 DS12C887 引脚图 DS12C887 实物图见附图 13 1 2 2 DS12C887 接口电路接口电路 见图 见图 5 5 EA VPP 31 XTAL1 19 XTAL2 18 RST 9 P3 7 RD 17 P3 6 WR 16 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 5 T1 15 P1 0 T2 1 P1 1 T2EX 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 AD0 P0 0 39 AD1 P0 1 38 AD2 P0 2 37 AD3 P0 3 36 AD4 P0 4 35 AD5 P0 5 34 AD6 P0 6 33 AD7 P0 7 32 A8 P2 0 21 A9 P2 1 22 A10 P2 2 23 A11 P2 3 24 A12 P2 4 25 A13 P2 5 26 A14 P2 6 27 A15 P2 7 28 PSEN 29 ALE PROG 30 TXD P3 1 11 RXD P3 0 10 GND 20 VCC 40 U AT89C52 VCC 24 AD5 9 AD4 8 AD3 7 AD2 6 AD1 5 AD0 4 AD7 11 NC 1 AD6 10 CS 13 AS 14 R W 15 RCLR 21 DS 17 NC 18 SQW 23 GND 12 IRQ 19 U DS12C887 VCC VCC INT1 INT1 图 5 时钟芯片接口电路 聊城大学本科毕业论文 设计 9 1 31 3 无线模块电路无线模块电路 1 3 11 3 1 PT2262 2272PT2262 2272 模块模块 无线数据传输广泛应用于遥控 遥测 车辆监控 门禁系统 身份识别等各 种场合 本设计根据实用性原则 一改普通单调键盘控制方式 采用调频无线发 射接收模块 安全性高 便于控制 可谓是物美价廉 本设计在主控板采用 2262 2272 模块 用调频遥控器进行调时 定时等功 能控制 在被控板采用 315M 发射接收头 操作简单 便于调试 1 3 1 PT2262 PT2272 模块 PT2262 PT2272 是一对带地址 数据编码功能的红外遥控发射 接收芯片 其中发射芯片 PT2262 将载波振荡器 编码器和发射单元集成与一身 使发射电 路变得十分简洁 接收芯片 PT2272 的数据输出位根据其后缀不同而不同 数据输出具有 暂 存 和 锁存 两种方式 方便用户使用 PT2262 PT2272 特点 CMOS 工艺制造 低功耗 外部元器件少 RC 震荡电阻 工作电压范围宽 2 6 15V 数据最多可达 6 位 地址码最多可达 531441 种 PT2262 引脚功能说明 1 Pin1 Pin6 A0 A5 地址输入端 可编成 1 0 和 高阻态 三种状态 2 Pin7 Pin8 Pin10 Pin13 A6 D0 A11 D5 地址或数据输入端 地址输入时用 Pin1 Pin6 做数据输入时只可编成 1 0 两种状态 3 Pin14 TE 发射使能端 低电平有效 4 Pin15 Pin16 OSC1 OSC2 外接震荡电阻 决定震荡的时钟频率 5 Pin17 Dout 数据输出端 编码由此脚串行输出 6 Pin9 Pin18 End Vcc 电源 输入端 PT2272 引脚功能说明 1 Pin1 Pin6 A0 A5 地址输入端 可编成 1 0 和 高阻态 三种状态 要求与 PT2262 设定的状态一致 2 Pin7 Pin8 Pin10 Pin13 D0 D5 数据输出端 分暂存和锁存两种状态 3 Pin14 DI 脉冲编码信号输入端 4 Pin15 Pin16 OSC1 OSC2 外接震荡电阻 决定 聊城大学本科毕业论文 设计 10 震荡的时钟频率 5 Pin17 VT 输出端 接收有信号时 VT 端有低电平变 为高电平 6 Pin9 Pin18 End Vcc 电源 输入端 PT2262 PT2272 引脚图如图 6 所示 图 6 PT2262 PT2272 引脚图 PT2262 PT2272 实物图见附录图 14 1 3 21 3 2 315M315M 无线收发模块无线收发模块 数据发射模块的工作频率为 315M 采用声表谐振器 SAW 稳频 频率稳定度极 高 当环境温度在 25 85 度之间变化时 频飘仅为 3ppm 度 特别适合多发 一收无线遥控及数据传输系统 声表谐振器的频率稳定度仅次于晶体 而一般的 LC 振荡器频率稳定度及一致性较差 即使采用高品质微调电容 温差变化及振 动也很难保证已调好的频点不会发生偏移 主要技术指标 通讯方式 调幅 AM 工作频率 315MHZ 433MHZ 频 率稳定度 75KHZ 发射功率 500MW 静态电流 0 1UA 发射电流 3 50MA 工作电压 DC 3 12V 接收模块的工作电压为 5 伏 静态电流 4 毫安 它为超再生接收电路 接 收灵敏度为 105dbm 接收天线最好为 25 30 厘米的导线 最好能竖立起 来 接收模块本身不带解码集成电路 因此接收电路仅是一种组件 只有应用 在具体电路中进行二次开发才能发挥应有的作用 这种设计有很多优点 它可 聊城大学本科毕业论文 设计 11 终 时 间到 送液晶 显示时间 继电器接通 继电器关 断 开始 以和各种解码电路或者单片机配合 设计电路灵活方便 主要技术指标 通讯方式 调幅 AM 工作频率 315MHZ 433MHZ 频率稳定度 200KHZ 接收灵敏度 106DBM 静态电流 5MA 工作电流 5MA 工作电压 DC 5V 输出方式 TTL 电平 315M 无线收发模块实物图见附录图 15 2 2 系统软件设计系统软件设计 本设计依托天祥电子 TX 1C 单片机实验板 采用 C 语言进行设计 在 Windows XP 系统下用 KEIL 软件调试通过 总程序包括对时钟芯片 DS12C887 的 时间读写 对液晶显示器 LCD1602 的实时显示 对按键的循环扫描及控制输出等 功能 2 12 1 系统主程序流程图系统主程序流程图 如图 7 所示的主程序主要起到导向和决策功能 各种功能的实现主要通过调 用具体的子程序 初始化 按键扫描 中断标志 Y 为 1 N N 进入 正常工作状态 Y 按键扫描 聊城大学本科毕业论文 设计 12 读时间 12C887 终止 Y 时间到 N 图 7 主程序流程 2 22 2 各部分子程序流程图各部分子程序流程图 1 初始化子程序 如图 8 所示 图 8 初始化流程 2 读 12C887 时间函数 如图 9 所示 打开中断短 断 设置液晶 设置 12C887 写入液晶固定 显示部分 结束 开始 聊城大学本科毕业论文 设计 13 开始 地址锁存 AS 置 1 输入允许 DS 置 1 读操作 R W 置位 片选 CS 清 0 写地址 AD0 AD7 AS 清 0 清地址 DS 清 0 读数据 DS AS CS 置 1 返回时间 值 图 9 读 DS12887 时间函数流程 3 1602 显示子程序 如图 10 所示 聊城大学本科毕业论文 设计 14 开始 对显示值求商对 显示值求余 写液晶命令函数 确定显示位 写液晶数据函数 商送显示十位 写液晶数据函数余 数送显示个位 结束 图 10 LCD1602 显示子程序流程 4 按键扫描判断子程序 如图 11 所示 聊城大学本科毕业论文 设计 15 开始 N 按下 S1 S1 键程序 按下 S2 按下 S3 按下 S4 进入 推出 闹钟设置 加 1 键程序 减 1 键程序 结束 NY Y N Y N N Y 图 11 按键扫描子程序流程 3 3 制作调试与操作制作调试与操作 3 13 1 元器件选择及其清单元器件选择及其清单 本设计的核心部件是由单片机读写时钟芯片以完成对继电器的开关控制 且 有液晶显示器予以输出 根据所实现功能 在元器件选择上有很大的考虑空间 以经济实用为原则 元器件清单如下 聊城大学本科毕业论文 设计 16 STC89C52 单片机1 个 DS12C887 时钟芯片1 个 PT2262 2272 模块 1 对 315M 无线收发模块 1 对 DSY2Y S 212L 双路继电器4 个 LM7805 三端稳压集成电路1 个 LCD1602 液晶显示器1 个 TX 1C 实验板 自带按键 1 块 电阻 电位器 电容 三极管若干 3 23 2 电路的制作与调试电路的制作与调试 在电路设计之初 考虑到电路之间的相互干扰作用 本设计电路板分为主控 被控两部分 两部分之间采用无线收发模块通信 而输入部分采用调频遥控器控 制 电路板在在 Windows XP 系统下用 DXP2004 绘制 具体电路见附录图 16 17 3 33 3 电路改进与扩展电路改进与扩展 本设计为简单方便 采用各芯片直接与单片机引脚相连接方式 而使单片机 所有引脚都已利用不利于其他功能的扩展 在实际使用中 因单片机 I O 口紧张 可采取引脚复用方式 以丰富设计功能 另外 在无线传输部分 因元器件资源 的限制 采用了 XL02 232AP1 微功率无线透明传输模块 使设计更加稳定但增 加了成本 目前软件设计只控制了 4 组寄存器的通断 且设计功能表述部分用发光二极 管表现 不能直接应用 在实际中 可以通过改进软件功能就能控制多组继电器 不同时间逐次的通断 以实现更多功能自动化的控制 聊城大学本科毕业论文 设计 17 参考文献参考文献 1 郭天祥编著 新概念 51 单片机 C 语言教程 M 电子工业出版社 2008 2 谭浩强编著 C 程序设计 M 清华大学出版社 2005 3 张义和 陈敌北编著 例说 8051 M 人民邮电出版社 2006 4 魏立峰 王宝兴主编 单片机原理与应用技术 M 北京大学出版社 2006 5 邱关源主编 电路 M 高等教育出版社 1999 6 童诗白 华成英主编 模拟电子技术基础 M 高等教育出版社 2001 7 阎石主编 数字电子技术基础 M 高等教育出版社 1998 8 张肃文主编 高频电子线路 M 高等教育出版社 2004 9 零点工作室 刘刚 彭荣群编著 Protel DXP 2004 SP2 原理图与 PCB 设计 M 电子工业 出版社 2007 10 英 Marty Brown 著 徐德鸿等译 Power Supply Cookbook 开关电源设计指南 M 机械 工业出版社 2006 11 魏军丞 用单片机制作的定时开关控制器 J 电子世界 2005 10 25 27 12 马俊 刘晓林 智能键盘字符输入及 LCD 显示系统设计 J 电子设计工程 2009 01 66 68 13 宏晶科技 深圳 STC89C51 数据手册 M 14 天祥电子 TX 1C 单片机实验板使用手册 M 15 Dallas Semiconductor 美国 DS12C887 Real Time Clock 数据手册 M 聊城大学本科毕业论文 设计 18 致致 谢谢 首先感谢我的导师任世杰老师 一直以来任老师不辞辛苦 经常在百忙之中 抽出时间对我进行指导 并协助我制定了详细的工作计划 督促我完成每个阶段 的工作任务 任老师不仅知识丰富且阅历广泛 通过任老师的指导 我学到的不 仅仅是知识 更多的是学到了一套行之有效的科学的研究方法 还有做人的道理 在此 谨向他表示由衷的感谢 特别感谢论文答辩委员会的诸位领导及老师能在百忙之中审阅我的论文 并 出席论文答辩会 感谢理工学院的所有老师给予我的教育 关心和帮助 此外 感谢创新实验室的各位同学在我论文设计之间 对我硬件和软件设计 的帮助 感谢他们对我无私的帮助和支持 聊城大学本科毕业论文 设计 19 附录 附录 附录一 附录一 附图 11 STC89C52 实物图 附图 12 LCD1602 实物图 附图 13 DS12C887 实物图 聊城大学本科毕业论文 设计 20 附图 14 PT2262 PT2272 实物图 附图 15 315M 收发模块 附录二 附录二 聊城大学本科毕业论文 设计 21 图 16 主控板 PCB 图 图 17 被控板 PCB 图 被控板图 聊城大学本科毕业论文 设计 22 2 部分程序清单 include define uchar unsigned char define uint unsigned int 液晶接口 sbit lcden P3 7 sbit lcdrs P3 6 sbit key1 P2 7 调试时使用 sbit key2 P2 6 sbit key3 P2 5 sbit key4 P2 4 sbit led1 P3 0 代替蜂鸣器报警 交替闪烁 sbit led2 P1 5 12C887 定义管口 sbit dscs P3 1 sbit dsas P3 3 sbit dsrw P3 4 sbit dsds P3 5 sbit dsirq P3 2 方波输出脚接中断口 触发闹钟 bit flag flag1 flag ri 0 uchar count s1num uchar miao shi fen year month week day amiao afen ashi unsigned char aadd onoff 闹钟 uchar code table0 20 uchar code table1 uchar code alarm alarm 6 聊城大学本科毕业论文 设计 23 void write ds uchar uchar uchar read ds uchar void write ds uchar uchar void nomdis void set time 时间初始化 12C887 时使用 void set RAM 延时子函数 void delay0 uint z uint x y for x z x 0 x for y 110 y 0 y void write com uchar com 写液晶命令函数 lcdrs 0 lcden 0 P0 com delay0 1 lcden 1 delay0 1 lcden 0 void write date uchar date 写液晶数据函数 lcdrs 1 lcden 0 聊城大学本科毕业论文 设计 24 P0 date delay0 1 lcden 1 delay0 1 lcden 0 void init 初始化函数 uchar num flag1 0 s1num 8 week 1 lcden 0 lcden 0 初始化 12C887 时使用 以后不必用到 write ds 0 x0A 0 x20 打开振荡器 write ds 0 x0B 0 x26 设置 24 小时模式 数据二进制格式 开启闹铃中断 set time 设置上电默认时间 set RAM write com 0 x38 1602 液晶初始化 write com 0 x0c write com 0 x06 write com 0 x01 write com 0 x80 for num 0 num 16 num 写入液晶固定部分显示 write date table0 num delay0 5 聊城大学本科毕业论文 设计 25 write com 0 x80 0 x40 for num 0 num 16 num write date table1 num delay0 5 void write sfm uchar add uchar date 1602 液晶刷新时分秒函数 uchar shi ge shi date 10 ge date 10 write com 0 x80 0 x40 add write date 0 x30 shi write date 0 x30 ge void write nyr uchar add uchar date 1602 液晶刷新年月日函数 uchar shi ge shi date 10 ge date 10 write com 0 x80 add write date 0 x30 shi write date 0 x30 ge void read alarm 聊城大学本科毕业论文 设计 26 onoff read ds 0 x33 aadd ashi read ds 0 x0e 3 aadd afen read ds 0 x0f 2 aadd amiao read ds 0 x10 2 aadd void write ds uchar add uchar date dscs 0 dsas 1 dsds 1 dsrw 1 P1 add dsas 0 dsrw 0 P1 date dsrw 1 dsas 1 dscs 1 uchar read ds uchar add uchar ds date dsas 1 dsds 1 dsrw 1 dscs 0 P1 add 聊城大学本科毕业论文 设计 27 dsas 0 dsds 0 P1 0 xff ds date P1 dsds 1 dsas 1 dscs 1 return ds date void first alarm int i uchar a1 a2 a3 onf unsigned long a b c ashi read ds 5 afen read ds 3 amiao read ds 1 shi read ds 4 fen read ds 2 miao read ds 0 for i 0 ic else s1num s1num 3 s1num 9 s1num 聊城大学本科毕业论文 设计 31 switch s1num case 1 write com 0 x80 0 x40 10 write com 0 x0f break case 2 write com 0 x80 0 x40 7 break case 3 write com 0 x80 0 x40 4 break case 4 write com 0 x80 12 break case 5 write com 0 x80 9 break case 6 write com 0 x80 6 break case 7 write com 0 x80 3 break case 9 write com 0 x80 13 break if s1num 8 flag1 1 聊城大学本科毕业论文 设计 32 if key2 0 delay0 4 if key2 0 while key2 if s1num 8 既 flag1 1 aadd aadd 9 0 aadd goto startalarm else switch s1num case 1 miao if miao 60 miao 0 write sfm 10 miao write com 0 x80 0 x40 10 break case 2 fen if fen 60 fen 0 write sfm 7 fen write com 0 x80 0 x40 7 break case 3 shi if shi 24 聊城大学本科毕业论文 设计 33 shi 0 write sfm 4 shi write com 0 x80 0 x40 4 break case 4 week if week 8 week 1 write week week write com 0 x80 12 break case 5 if month 4 month 6 month 9 month 11 if month 2 if year 4 if month 1 month 3 month 5 month 7 month 8 month 10 month 12 write nyr 6 month write com 0 x80 6 break case 7 year if year 100 year 0 write nyr 3 year write com 0 x80 3 break case 9 write ds 0 x33 aadd 0 xff write com 0 x80 13 write date O write date N write date write com 0 x80 13 break if key3 0 按键 3 按键减 delay0 4 聊城大学本科毕业论文 设计 35 if key3 0 while key3 if s1num 8 aadd aadd 0 9 aadd goto startalarm else switch s1num case 1 miao if miao 1 miao 59 write sfm 10 miao write com 0 x80 0 x40 10 break case 2 fen if fen 1 fen 59 write sfm 7 fen write com 0 x80 0 x40 7 break case 3 shi if shi 1 shi 23 write sfm 4 shi write com 0 x80 0 x40 4 聊城大学本科毕业论文 设计 36 break case 4 week if week 0 week 7 write week week write com 0 x80 12 break case 5 day if day 0 if month 4 month 6 month 9 month 11 day 30 if month 2 if month 2 if month 1 month 3 month 5 month 7 month 8 month 10 month 12 day 31 write nyr 9 day write com 0 x80 9 break case 6 month if month 0 month 12 write nyr 6 month 聊城大学本科毕业论文 设计 37 write com 0 x80 6 break case 7 year if year 1 year 99 write nyr 3 year write com 0 x80 3 break case 9 write ds 0 x33 aadd 0 x00 write com 0 x80 13 write date O write date F write date F write com 0 x80 13 break else if key4 0 delay0 4 if key4 0 while key4 if s1num 8 flag 0 write ds 0 miao write ds 2 fen write ds 4 shi write ds 6 week write ds 7 day write ds 8 month write ds 9 year first alarm else if s1num 8 read alarm miao amiao fen afen shi ashi write com 0 x01 write com 0 x80 4 for count 0 count 6 count write date alarm count write date 0 x30 aadd write com 0 x80 0 x40 write date R write date i write com 0 x80 0 x40 6 write date 聊城大学本科毕业论文 设计 39 write com 0 x80 0 x40 9 write date write com 0 x80 13 write date O if onoff 0 x00 write date F write date F else write date N write com 0 x80 0 x40 3 write sfm 4 ashi write sfm 7 afen write sfm 10 amiao else if s1num 8 write com 0 x0c flag 0 write ds 0 x0e

温馨提示

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

评论

0/150

提交评论