




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要 电子密码锁是一种通过密码输入来控制电路或是芯片工作 从而控制机械开关的 闭合 完成开锁 闭锁任务的电子产品 本设计采用单片机为主控芯片 结合外围 电路 通过编程来实现功能 本次课程设计采用现在流行的 移植方面更加灵活的 方便易懂的 C 语言 整个程序采用结构化模块化的方法 使得程序在修改方面显得 非常的方便快捷 用户想要打开锁必先通过提供的键盘输入正确的密码才能将锁打 开 如果密码输入错误 会报警 三次以上 锁定键盘 亮红灯 密码输入正确 亮绿灯 本次设计采用的硬件有 AT89C51 芯片 采用它作为运算芯片 采用中断方式判 断 4 4 矩阵键盘是否有按键按下 并核对密码 在显示方面 每输入一次数值 都 会在 LCD 上显示 使得整个设计更具有视觉性 关键词 电子密码锁 单片机 报警 目 录 第 1 章 系统总体设计 1 1 1 系统结构 1 1 2 系统组成 9 1 3 系统可行性分析 10 第 2 章 硬件电路设计 11 2 1 单片机 AT89C52 简介 11 2 2 4 4 矩阵键盘 15 2 3 1604LCD 液晶显示屏 16 2 4 发光二极管 LED 25 2 5 蜂鸣器 26 2 6 电路原理图 31 2 7 电路仿真图 32 第 3 章 软件程序设计 33 4 1 软件设计流程图 34 4 2 程序 35 参考文献 39 2 致谢 40 附录 1 PCB 封装电路图 41 附录 2 1 密码锁设计主程序 42 附录 2 2 键扫程序 47 附录 2 3 12864 显示子程序 49 附录 2 4 AT2402 存储子程序 53 第 1 章 系统总体设计 1 1 系统结构 AT89C51 液晶显示屏 蜂鸣器 LED 4 4 键盘 上拉电阻 图 1 1 系统结构图 1 2 系统组成 如图 2 1 所示系统主要由 AT89C51 1602 液晶显示器 LED 4 4 矩阵键盘 蜂鸣器电路等组成 电源 2 1 3 系统可行性分析 系统工作原理分析 使用 AT89C51 单片机 4 4 矩阵键盘 LED 1602 液晶显 示器等 矩阵键盘分别为 0 1 2 3 4 5 6 7 8 9 确认键组成 系统开始 显示 WELCOMINPUT 提示输入密码 输入密码时 LCD 显示电路显示为 当密 码输入完毕按下确认键时 对输入密码与设定的密码进行比较 若密码正确则 LCD 显示电路显示为 welcom ight open 提示绿灯亮 若密码不正确 LCD 显示电路 显示提示 worry 蜂鸣器发声 三次红灯亮 锁定键盘 可以提高系统的安全系 数 第 2 章 硬件电路设计 2 1 单片机 AT89C51 简介 AT89C51 为 ATMEL 所生产的一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可编程 Flsah 存储器 1 AT89S52 主要功能列举如下 1 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 3 2 晶片内部具时钟振荡器 传统最高工作频率可至 12MHz 3 内部程序存储器 ROM 为 8KB 4 内部数据存储器 RAM 为 256 字节 5 32 个可编程 I O 口线 6 8 个中断向量源 7 三个 16 位定时器 计数器 8 三级加密程序存储器 9 全双工 UART 串行通道 2 MCS 51 的引脚说明 MCS 51 系列单片机中的 8031 8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构 右图是它们的引脚配置 40 个引脚中 正电源和地线两根 外置石英振荡器 的时钟线两根 4 组 8 位共 32 个 I O 口 中断口线与 P3 口线复用 现在我们对这 些引脚的功能加以说明 MCS 51 的引脚说明 MCS 51 系列单片机中的 8031 8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构 右图是它们的引脚配置 40 个引脚中 正电源和地线两根 外置石英振荡器 的时钟线两根 4 组 8 位共 32 个 I O 口 中断口线与 P3 口线复用 现在我们对这 些引脚的功能加以说明 如图 2 1 2 图 2 1 2 89C51 的引脚结构 4 2 2 4 4 矩阵键盘 矩阵式键盘适用于按键数量较多的场合 由行线和列线组成 按键位于行列的 交叉点上 节省 I O 口 矩阵键盘工作原理 行线通过上拉电阻接到 5V 上 无按键 行线处于高电平 状态 有键按下 行线电平状态将由与此行线相连的列线电平决定 列线电平为低 则行线电平为低 列线电平为高 则行线电平为高 如图所示 本系统采用 4 4 矩阵键盘 前 11 个按键按顺序分别为 0 1 2 3 4 5 6 7 8 9 确认键 后面的键未定义 用户只能通过键盘输 入密码 图 3 2 4 4 矩阵键盘原理图 3 5 1602LCD 液晶显示屏 5 图 3 5 液晶屏电路原理图 3 5 1 概述 LCD 是一种利用液晶的扭曲 向列效应制成的新型显示器 它具有体积小 质量 轻 功耗低 抵制干扰能力强等优点 因而在单片机系统中被广泛应用 LCD 本身 不发光 是通过借助外界光线照射液晶材料而实现显示的被动显示器件 3 5 2 基本特性 1 低电源电压 VDD 3 0 5 5V 2 显示分辨率 128 64 点 3 内置汉字字库 提供 8192 个 16 16 点阵汉字 简繁体可选 4 内置 128 个 16 8 点阵字符 5 2MHZ 时钟频率 6 显示方式 STN 半透 正显 7 驱动方式 1 32DUTY 1 5BIAS 8 视角方向 6 点 9 背光方式 侧部高亮白色 LED 功耗仅为普通 LED 的 1 5 1 10 10 通讯方式 串行 并口可选 11 内置 DC DC 转换电路 无需外加负压 12 无需片选信号 简化软件设计 13 工作温度 0 55 存储温度 20 60 模块接口说明 注释 1 如在实际应用中仅使用串口通讯模式 可将 PSB 接固定低电平 也可以将 6 模块上的 J8 和 GND 用焊锡短接 注释 2 模块内部接有上电复位电路 因此在不需要经常复位的场合可将该端悬空 注释 3 如背光和模块共用一个电源 可以将模块上的 JA JK 用焊锡短接 3 5 3 并行接口 管脚号管脚名称电平管脚功能描述 1VSS0V 电源地 2VCC3 0 5V 电源正 3V0 对比度 亮度 调整 4 RS CS H L RS H 表示 DB7 DB0 为显示数据 RS L 表示 DB7 DB0 为显示指令数据 5R W SID H L R W H E H 数据被读到 DB7 DB0 R W L E H L DB7 DB0 的数据 被写到 IR 或 DR 6E SCLK H L 使能信号 7DB0H L 三态数据线 8DB1H L 三态数据线 9DB2H L 三态数据线 10DB3H L 三态数据线 11DB4H L 三态数据线 12DB5H L 三态数据线 13DB6H L 三态数据线 14DB7H L 三态数据线 15PSBH L H 8 位或 4 位并口方式 L 串口方式 见 注释 1 16NC 空脚 17 RESETH L 复位端 低电平有效 见注释 2 18VOUT LCD 驱动电压输出端 7 19AVDD 背光源正端 5V 见注释 3 20KVSS 背光源负端 见注释 3 注释 1 如在实际应用中仅使用并口通讯模式 可将 PSB 接固定高电平 也可以将模块上的 J8 和 VCC 用焊锡短接 注释 2 模块内部接有上电复位电路 因此在不需要经常复位的场合可将该端悬空 注释 3 如背光和模块共用一个电源 可以将模块上的 JA JK 用焊锡短接 四 模块主要硬件 构成说明 3 5 4 控制器接口信号说明 1 RS R W 的配合选择决定控制界面的 4 种模式 RSR W功能说明 00 MPU 写指令到指 令暂存器 IR 01 读出忙标志 BF 及地址记 数器 AC 的状 态 10 MPU 写入数据到 数据暂存器 DR 11 MPU 从数据暂存 器 DR 中读出 2 E 信号 E 状态执行动作结果 高 低I O 缓冲 DR配合 W 进行写数据或 指令 高DR I O 缓冲配合 R 进行读数据或 指令 低 低 高无动作 3 忙标志 BF BF 标志提供内部工作情况 BF 1 表示模块在进行内部操作 此时模块不接受外 部指令和数据 BF 0 时 模块为准备状态 随时可接受外部指令和数据 利用 STATUS 8 RD 指令 可以将 BF 读到 DB7 总线 从而检验模块之工作状态 4 字型产生 ROM CGROM 字型产生 ROM CGROM 提供 8192 个此触发器是用于模块屏幕显示开和关的控 制 DFF 1 为开显示 DISPLAY ON DDRAM 的内容就显示在屏幕上 DFF 0 为关显 示 DISPLAY OFF DFF 的状态是指令 DISPLAY ON OFF 和 RST 信号控制的 5 显示数据 RAM DDRAM 模块内部显示数据 RAM 提供 64 2 个位元组的空间 最多可控制 4 行 16 字 64 个字 的中文字型显示 当写入显示数据 RAM 时 可分别显示 CGROM 与 CGRAM 的字型 此模块可显示三种字型 分别是半角英数字型 16 8 CGRAM 字型及 CGROM 的中文字型 三种字型的选择 由在 DDRAM 中写入的编码选择 在 0000H 0006H 的编码中 其代码分别是 0000 0002 0004 0006 共 4 个 将选择 CGRAM 的 自定义字型 02H 7FH 的编码中将选择半角英数字的字型 至于 A1 以上的编码将 自动的结合下一个位元组 组成两个位元组的编码形成中文字型的编码 BIG5 A140 D75F GB A1A0 F7FFH 6 字型产生 RAM CGRAM 字型产生 RAM 提供图象定义 造字 功能 可以提供四组 16 16 点的自定义图 象空间 使用者可以将内部字型没有提供的图象字型自行定义到 CGRAM 中 便可和 CGROM 中的定义一样地通过 DDRAM 显示在屏幕中 7 地址计数器 AC 地址计数器是用来贮存 DDRAM CGRAM 之一的地址 它可由设定指令暂存器来改 变 之后只要读取或是写入 DDRAM CGRAM 的值时 地址计数器的值就会自动加一 当 RS 为 0 时而 R W 为 1 时 地址计数器的值会被读取到 DB6 DB0 中 8 光标 闪烁控制电路 此模块提供硬体光标及闪烁控制电路 由地址计数器的值来指定 DDRAM 中的光标 或闪烁位置 9 3 6 发光二极管 LED 图 3 6 二极管 LED LED 是单片机应用系统中常用的输出设备 LED 由发光二极管构成 具有结构简单 价格便宜等特点 在本次设计中用到了两个 LED 它们由引脚控制 当密码正确时 相应的引脚变为低电平从而发光 绿灯亮 错误时红灯亮 3 8 蜂鸣器 图 3 8 蜂鸣器 由于蜂鸣器使用 P1 口驱动要加上上拉电阻如图 3 8 当密码输入错误 P1 口 变为高电平从而使蜂鸣器发声 10 11 3 9 电路原理图 电路仿真图 12 第 4 章 软件程序设计 本系统软件设计由主程序 初始化程序 LCD 显示程序 键盘扫描程序组成 主要 程序设计流程图如下所示 13 4 1 软件设计流程图 14 开始 输入密码 正确否 开锁 判断按键 1 键 更改密码键 上锁 结束 输入密码 正确否 输入新密码 再次输入 一致否 修改密码 Yes No No Yes No Yes 图 4 1 软件设计流程图 4 2 具体功能软件实施 15 4 2 1 开始等待流程 系统开始一直显示提示 请输入密码 并判断有否按键 当有键按下跳出等 待 开始 显示 输入密码 判断是否 有按键 结束 No Yes 图 4 2 开始等待流程 4 2 2 密码检查功能 本系统使用数组 PASSWORD 6 存储密码 系统初始化对数组负值 PASSWORD 6 1 6 7 9 10 11 相当于键盘上的 1 2 3 4 5 6 输入密码的时 候 先将输入的每一位密码分别放置在数组 key 6 中 然后再将 key 6 与 PASSWORD 6 的每一位分别对照 若每一位都相等 密码检查通过 16 开始 输入一位密码 显示屏显示 K 6 k 0 按键为 结束 Yes No No Yes 图 4 3 密码检查 4 2 3 键盘扫描 如图 3 2 本系统使用 4 4 矩阵键盘当没有键按下时 行线和列线之间是不相 连的 若第 N 行与第 M 列的键被按下 那么第 N 行与第 M 列的线就被接通 根据上述原理 本系统的键盘扫描方法是利用 P1 口的低四位作为行扫描线 P1 口的高四位作为列回扫线 具体实施方法为 先使 P1 0 口输出低电平 P1 口其 他口输出高电平 然后对 P1 4 P1 5 P1 6 P1 7 四个口分别作判断 若此四口 都为高电平 则没有键按下 若有键按下 P1 4 P1 5 P1 6 P1 7 四个口必定有 一个口输入为低电平 再判断 P1 4 P1 5 P1 6 P1 7 哪个口为低电平则可判断 按键在哪列上 如 P1 4 P1 5 P1 6 P1 7 没有低电平 再使 P1 1 为低电平 其 他口为高电平 依次扫描下去 找到按键所在的行 再判断 P2 口的高四位哪一位 为低 便可知道键在哪一列上 键盘扫描子程序 key 如下 17 3 4 矩阵键盘输入函数 ifndef keypad h define keypad h include include include define uchar unsigned char define uint unsigned int uchar idata com1 com2 uchar key scan uchar temp uchar com P1 0 xf8 delay 5 if P1 0 xf8 com1 P1 P1 0 x0f com2 P1 P1 0 xf8 delay 5 while P1 0 xf8 temp com1 com2 while P1 while P1 18 if temp 0 xee com 0 x01 if temp 0 xed com 0 x02 if temp 0 xeb com 0 x03 if temp 0 xde com 0 x04 if temp 0 xdd com 0 x05 if temp 0 xdb com 0 x06 if temp 0 xbe com 0 x07 if temp 0 xbd com 0 x08 if temp 0 xbb com 0 x09 if temp 0 x7e com 0 x0a 10 为键值 其代码功能为清除 if temp 0 x7d com 0 x00 if temp 0 x7b com 0 x0b 其代码功能为输入密码结束并确认 即开锁 return com endif 4 2 5 修改密码 本系统设定的修改密码过程为 在输入正确的密码后 按 确认 键 此时提 示输入旧密码 请输入密码 输入正确的旧密码后 可以输入新密码 此时键入 的六位新密码将保存到数组 key 6 中 然后显示器提示再次输入 输入完毕后 第二次输入的密码将保存在 iic 6 中 然后将 key 6 中六位分别与 iic 6 中的六 位比对 若两次密码输入一直 即将新的密码 也就是 iic 6 和 iic 6 中的六位 赋值到 PASSWORD 6 中 此时修改密码工作完成 屏幕显示 密码修改成功 系 统将跳翻到开始 即提示输入密码 INPUT 19 参考文献 1 当方 微型计算机控制技术 M 中国水利水电出版社 2001 年 2 胡汉才 单片机原理及其借口技术 M 清华大学出版社 1996 年 3 赵新民 智能仪器设计基础 M 哈尔滨工业大学出版社 1999 年 4 潘新 民王 燕芳 微型计算机控制技术 M 电子工业出版社 2003 年 5 李钟实 实用电子报警器精选百例 M 北京 科技技术文献出版社 2002 年 6 陈爱弟 Protel99se 实用培训教程 M 人民邮电出版社 2000 年 7 阎石 数字电子技术基础 M 高等教育出版社 1998 年 8 童诗白 模拟电子技术基础 M 高等教育出版涉 1998 年 9 候振鹏 嵌入式 C 语言程序设计 M 北京 人民邮电出版社 2006 年 10 徐士良 C 语言程序设计教程 M 北京 人民邮电出版社 2001 年 11 Brian W Kernighan TheThe C C ProgrammingProgramming Language Language Prentice Hall PTR 1988 12 Janice Mazidi 80518051 MicrocontrollerMicrocontroller andand EmbeddedEmbedded Systems Systems Prentice Hall 1999 13 14 15 16 20 致谢 通过这次毕业设计 让我复习了很多学过的旧知识 同时锻炼了自己的动手能 力和查阅资料 尤其是解决在实际中解决排查问题的能力 1 通过这次的设计 我熟悉了使用 Protel 的技巧 学会了制作电路板的一 些技巧 并且熟悉了如何选购使用电子元器件 2 在设计中 我学到了如何使用 C 语言对单片机进行编写程序 熟悉了使 用 KEIL C 软件 并且加深了对单片机的编程技巧 3 在做这个设计的过程中 我遇到了不少的问题 这锻炼了我筛选 查阅 资料 并将理论结合到自己的设计中的能力 一步一步的排除故障原因 找到故障的原因并解决故障 4 这次的设计使我对模拟电子 数字电子知识加深了了解 尤其是在对电 路进行调试的时候 出现了很多这些方面的问题 通过对以往知识的复 习巩固 将问题解决 通过次毕业设计 将我从所学到的专业知识 基本都应用上去 感谢大学三年 来 老师对我的教育 让我对掌握了基本的专业技能 同时也感谢戴老师对我毕业 设计的指导 在此表示衷心的感谢 这次的设计有很多的不足 和市场上的产品有一定的差距 还请老师同学们提 出宝贵意见 谢谢 21 附录 1 PCB 封装电路图 22 附录 2 1 密码锁设计主程序 函数库函数 密码锁设计主程序 设 计 者 电信 0902 黄柏成 时 间 2012 年 5 月 13 日 include include include include define uchar unsigned char define uint unsigned int uchar idata key 6 0 0 0 0 0 0 uchar idata iic 6 1 1 1 0 0 0 void press uchar s uchar dat write com 0 x98 2 P1 0 xf8 保存第一位密码 while P1 0 xf8 dat key scan if dat 0 x0a write date 0 x2a s 23 P1 0 xf8 保存第二位密码 while P1 0 xf8 dat key scan if dat 0 x0a write date 0 x2a s P1 0 xf8 保存第三位密码 while P1 0 xf8 dat key scan if dat 0 x0a write date 0 x2a s P1 0 xf8 保存第四位密码 while P1 0 xf8 dat key scan if dat 0 x0a write date 0 x2a s P1 0 xf8 保存第五位密码 while P1 0 xf8 dat key scan if dat 0 x0a write date 0 x2a 24 s P1 0 xf8 保存第六位密码 while P1 0 xf8 dat key scan if dat 0 x0a write date 0 x2a do P1 0 xf8 键入 Enter 键盘继续执行下面语 句 否则等待 while P1 0 xf8 dat key scan while dat 0 x0b void Delay10ms void 延时 10ms uint i j k for i 10 i 0 i for j 4 j 0 j for k 248 k 0 k 电子密码锁主函数 void main uchar dat uchar i 0 j 0 Init 12864 for i 0 i 150 i Delay10ms 若密码不正确 循环执行 do while 25 do System 显示 请输入密码 字幕 press key if key 0 iic 0 do P1 0 xf8 键入 1 或 2 继续执行下面语句 否则等 待 while P1 0 xf8 dat key scan while dat 0 x01 if dat 1 开锁 unlock for i 0 i 100 i Delay10ms continue if dat 2 修改密码 do System press key again press iic if key 0 iic 0 修改密码成功 26 for i 0 i 100 i Delay10ms break else 修改密码不成功 重新修改 repeat for i 0 i 100 i Delay10ms while 1 else 密码不正确 重新输入密码 j if j 3 j 0 error for i 0 i 50 i Delay10ms while 1 27 附录 2 2 键扫程序 函数名 4 4 矩阵键盘输入函数 设计者 电信 0902 黄柏成 时间 2012 年 5 月 13 日 ifndef keypad h define keypad h include include include define uchar unsigned char define uint unsigned int uchar idata com1 com2 uchar key scan uchar temp uchar com P1 0 xf8 delay 5 if P1 0 xf8 com1 P1 P1 0 x0f com2 P1 P1 0 xf8 28 delay 5 while P1 0 xf8 temp com1 com2 while P1 while P1 if temp 0 xee com 0 x01 if temp 0 xed com 0 x02 if temp 0 xeb com 0 x03 if temp 0 xde com 0 x04 if temp 0 xdd com 0 x05 if temp 0 xdb com 0 x06 if temp 0 xbe com 0 x07 if temp 0 xbd com 0 x08 if temp 0 xbb com 0 x09 if temp 0 x7e com 0 x0a 10 为键值 其代码功能为清除 if temp 0 x7d com 0 x00 if temp 0 x7b com 0 x0b 其代码功能为输入密码结束并确认 即开锁 return com endif 29 附录 2 3 12864 显示子程序 函数库名称 12864 显示函数 设 计 者 电信 0902 黄柏成 时 间 2012 年 5 月 13 日 ifndef 12864 h define 12864 h include include include define uchar unsigned char define uint unsigned int define PORT P0 sbit rs P3 0 sbit rw P3 1 sbit en P3 5 驱动函数 void delay uint z uint x y for x z x 0 x for y 110 y 0 y 12864 液晶驱动 void write com uchar com 30 delay 5 rs 0 rw 0 P0 com en 1 delay 5 en 0 void write date uchar date delay 5 rs 1 rw 0 P0 date en 1 delay 5 en 0 显示函数 void display uchar y uchar x uchar p switch y case 1 write com 0 x7f x break case 2 write com 0 x8f x break case 3 write com 0 x87 x break case 4 write com 0 x97 x break default break while p write date p 31 void init clear 清屏函数 write com 0 x34 delay 5 write com 0 x30 delay 5 write com 0 x01 delay 5 write com 0 x06 delay 5 write com 0 x0c void Init 12864 初始化 显示实验名称 init clear display 1 1 湖南工学院 2012 届 display 2 1 电子密码锁设计 display 3 1 BY 电信 0902 黄柏成 display 4 1 指导老师 戴日光 void System 在显示屏上显示初始字幕 请输 入密码 init clear display 2 1 请输入密码 display 3 1 display 4 2 void error 密码错误 重新输入密码 init clear display 2 3 密码错误 display 3 2 重新输入密码 32 void true 请选择 1 开锁 2 修改密码 init clear display 1 1 请选择 display 2 1 1 开锁 display 3 1 2 修改密码 void unlock 开锁画面 init clear display 1 1 祝老师工作顺利 display 2 3 身体健康 display 3 1 祝我毕业答辩 ok display 4 1 哈哈 void again 请再次输入密码 init clear display 2 1 请再次输入密码 display 3 1 display 4 2 void repeat 密码确认错误 请重新修改密码 init clear display 2 2 密码确认错误 display 3 2 请重新修改密码 void succeed 修改密码成功 init clear display 2 3 修改密码成功 endif 33 附录 2 4 AT2402 存储子程序 函数库名称 密码保护部分 将新密码写入 IIC 器件实时保护 设 计 者 电信 0902 黄柏成 时 间 2012 年 5 月 13 ifndef 24C01 h define 24C01 h include include include define uchar unsigned char define uint unsigned int define AddWr 0 xa0 define AddRd 0 xa1 define Nop nop bit ack sbit SDA P3 4 sbit SCL P3 3 驱动程序 void Start 启动 IIC 器件 SDA 1 SCL 1 Nop Nop 34 SDA 0 Nop Nop Nop Nop SCL 0 void Stop 停止 IIC 器件 SDA 0 Nop Nop SCL 1 Nop Nop Nop Nop SDA 1 void Cack bit a 检查 IIC 器件的回复 if a 0 SDA 0 else SDA 1 Nop Nop Nop SCL 1 Nop Nop Nop Nop Nop SCL 0 35 Nop Nop void Send uchar c 向 IIC 器件发送一个字节的内容 并标志回 复位 若有回复 ack 1 uchar i for i 0 i 8 i if c else SDA 0 Nop SCL 1 Nop Nop Nop Nop Nop SCL 0 c c 1 Nop Nop SDA 1 Nop Nop SCL 1 Nop Nop Nop if SDA 1 ack 0 else ack 1 SCL 0 Nop 36 Nop bit SendB uchar s uchar Address uchar Number 向 IIC 器件发送 N 个字节 发送成功 返回 1 uchar i Start Send AddWr if ack 0 return 0 Send Address if ack 0 return 0 for i 0 i Number i Send s if ack 0 return 0 s Stop return 1 uchar Read 从 IIC 器件读一个字节的内容并返回所读的 数据 uchar temp uchar i temp 0 SDA 1 for i 0 i 8 i Nop SCL 0 Nop Nop Nop 37 Nop Nop SCL 1 Nop Nop temp temp 1 if SDA 1 temp Nop Nop SCL 0 Nop Nop return temp bit ReadB uchar s uchar Address uchar Number 从 IIC 器件读出 N 个 字节 并将所读的数据存入数组 uchar i Start Send AddWr if ack 0 return 0 Send Address if ack 0 return 0 Start Send AddRd if ack 0 return 0 for i 0 i Number i s Read Cack 0 s s Read Cack 1 Stop 38 return 1 endif袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃 芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀 薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁 蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇 蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 豫煤业安全知识培训课件
- 医用内窥镜项目可行性报告
- 中国聚酯地坪项目投资计划书
- 2025年秸秆综合利用项目可行性研究报告立项报告模板
- 2025年中国四乙基铅项目投资计划书
- 语言培训基本知识
- 市级政务云平台建设项目可行性研报告
- 2025年机电专业实习报告范文
- 中国择形催化剂项目商业计划书
- 农村村委会建设项目可行性研究报告
- 企业电气安全事故案例分析
- 固定式人字抱杆整立施工作业指导书
- 天津某钢厂高速线材主轧线设备安装方案年产万吨
- 人教版初中语文《名著导读》
- 大一统专题复习-高中历史教学资料
- YS/T 1018-2015铼粒
- GB 30526-2019烧结墙体材料和泡沫玻璃单位产品能源消耗限额
- 沟槽开挖作业安全培训
- STEAM科技研学基地方案
- 【高等数学练习题】沈阳大学专升本自考真题汇总(附答案解析)
- 合作项目管理办法
评论
0/150
提交评论