1、课程设计基于 51 单片机设计的密码保险柜摘 要本 文 以 AT89 C52 单 片 机 为 核 心 器 件 , 结 合 按 键 电 路 、 LED 显 示 电 路 、 报 警 指 示 电 路 和 电 机 驱 动 电 路 构 成 , 利 用 单 片 机 灵 活 的 编 程 设 计 和 丰 富 的 I/O 端 口 , 及 其 控 制 的 准 确 性 通 过 软 件 程 序 来 控 制 整 个 系 统 实 现 电 子 密 码 保 险 柜 的 基 本 功 能 ,其 主 要 具 有 的 功 能 : 密 码 通 过 键 盘 输 入 ,若 密 码 正 确 ,则 将 电 机 转 动 ;密 码 输 入 错 误
2、 ,蜂 鸣 器 将 报 警 提 示 ;用 户 可 以 自 由 设 定 密 码 ,密 码 保 险 柜 具 有 设 计 方 法 合 理 ,简 单 易 行 成 本 低 ,安 全 实 用 等 特 点 ,具 有 一 定 的 推 广 价 值 。关 键 词 : AT8 9 C52 单 片 机 ; 报 警 电 路 ; 直 流 电 机 ; 数 码 管目 录第 1 章 绪 论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。1
3、 . 1 系 统 的 开 发 背 景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。1 . 2 系 统 的 开 发 意 义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。1 . 3 系 统 开 发 目 标 . . . . . . . . . . . . . . . . .
4、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。1 . 4 本 章 小 结2第 2 章 方 案 选 择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。2 . 1 总 体 方 案 论 证 选 择32 . 2 显 示 模 块 的 选 择32 . 3 键 盘 模 块 的 选 择32 . 4 直 流 电 机 模 块 的 选 择
5、42 . 5 本 章 小 结4第 3 章 硬 件 设 计53 . 1 系 统 硬 件 设 计 与 组 成53 . 1 . 1 主 控 模 块63 . 1 . 2 指 示 报 警 模 块73 . 1 . 3 光 电 报 警 模 块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。3 . 1 . 4 直 流 电 机 模 块113 . 1 . 5 键 盘 接 口 模 块113 . 1 . 6 数 码 管 显 示 模 块113 . 2 设 计
6、 程 序123 . 3 硬 件 明 细 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。第 4 章 软 件 设 计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。4 . 1 模 块 规 划 . . . . . . . . . . . .
7、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。4 . 2 系 统 程 序 设 计 流 程 图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。4 . 3 设 计 程 序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8、. . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。第 5 章 系 统 调 试165 . 1 PROTEUS 仿 真 调 试165 . 2 调 试 结 果175 . 3 结 果 分 析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。5 . 4 本 章 小 结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9、 . . . . . . . . . . . . . . . . . . . . . 错 误 ! 未 定 义 书 签 。结 论 与 体 会18参 考 文 献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 错 误 ! 未 定 义 书 签 。附 录 120附 录 221第 一 章绪 论1. 1 系统的开发背景据有关资料介绍,电子密码保险柜的研究从 20 世纪 30 年代就开始了,在 一些特殊场所早就有所应用。但当时多半是配合机械锁
10、一起作用且存在着诸如体 积较大,成本较高,可靠性较低等缺点一时难以普及。20 世纪 80 年代后,随 着信息技术、集成电路、半导体技术的发展,电子密码保险柜的设计也取得了快 速的进步。目前,在西方发达国家,电子密码保险柜技术相对先进,种类齐全,电子密 码柜已被广泛应用于安全处所,而我国在此点上这稍有落后。现今常见的密码锁设计主要有两种方案,一种是中规模集成电路控制的方 案,另一种是单片机控制的方案。对于采用集成电路控制的方案,其中的编码电 子保险柜电路分为编码电路、控制电路、复位电路、解码电路、防盗报警电路、 门铃电路,而电子保险柜主要由输入元件、电路(包括电源)以及锁体三部分组成。 显然此种
11、方案的物理实现结构较为复杂且重新设置密码、输入密码的操作过程也 会给用户带来一定的不方便;而利用单片机控制的方案,由于单片机灵活的编程 设计和丰富的 I/O 端口,及其控制的准确性,不但能实现基本的密码锁功能, 还能添加掉电存储、声光提示甚至添加遥控控制功能,但其也有一定的局限性, 就在于其控制原理的复杂以及要求设计人员具有更加良好的程序设计能力,调试 较为繁琐,否则程序一旦跑飞将造成意想不到的损失1. 2 系统开发的意义随着人们生活水平的提高,日常生活和工作中的住宅与部门的安全防范、单 位的文件档案、财务报表以及一些个人资料的保存等一系列安全防盗问题变的尤 其突出。传统的机械由于其构造的简单
12、,被撬的事件屡见不鲜,且人们常需携带 多把钥匙, 使用极不方便, 一旦钥匙丢失安全性即大打折扣。随着科学技术的不 断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的1使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码保险柜因具有安全性高、成本低、功耗低、易操作等优点,受到了广大用户的青睐。1. 3 系统开发的目标本课题的主要任务是熟悉掌握 51 系列单片机的编程方法,学习应用 Proteus 软件进行单片机应用系统设计与仿真。设计一款简易电子密码保险柜, 设计以单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁, 必须通过键盘输入正确的密码才能打开,密
13、码输入错误会有报警。密码可以由用 户自己设定,锁打开后才能修改密码。修改密码时会有小灯提示。1. 4 本章小结在日常生活和工作中,住宅与部门的安全防范,单位的文件档案财务报表以 及一些个人资料的保存多以加锁的办法解决。在以前科技不发达的年代,只能用 传统的机械锁,使用极其不方便。随着科技的不断发展,人们需要防盗的东西越 来越多,因此人们对安全性的要求越来越高。电子保险柜的出现,满足了人们对 安全性的要求,同时对于机械保险柜更方便,灵活。2第 二 章方 案 选 择2. 1 总体方案论证与选择 密码锁可以采用数字电路来实现,也可以采用单片机来完成。 方案一:采用数字电路来实现,所设计的电路相当复杂
14、,大概需要十几片数字集 成块,其功能主要依赖于数字电路的各功能模块的组合来实现,焊接的过 程比较复杂,成本也非常高。方案二:采用单片机来实现,由于其功能的实现主要通过软件编程来完成, 不仅降低了硬件电路的复杂性,而且成本也降低不少。 最终方案:采用单片机的方式来实现密码锁2. 2显示模块的选择方案一:采用数码管显示。数码管亮度高、体积小、重量轻,非常适合显示数字坚固耐用LED 是被完全的封装在环氧树脂里面,它比灯泡和荧光灯管都坚固。灯体内也 没有松动的部分,这些特点使得 LED 可以说是不易损坏的。高节能节能能源无污染即为环保。直流驱动,超低功耗(单管 0 .03 -0 .06 瓦)电光功率
15、转换接近 100 %,相同照明效果比传统光源节能 80 % 以上。寿命长LED 光源有人称它为长寿灯,意为永不熄灭的灯。固体冷光源,环氧树脂封装, 灯体内也没有松动的部分,不存在灯丝发光易烧、热沉积、光衰等缺点,使用寿 命可达 6 万到 10 万小时,比传统光源寿命长 10 倍以上。 方案二:者点阵式液晶显示器来实现显示功能,液晶显示具有功耗低、轻便防震, 不而且液晶显示有功耗低、体积小、重量轻、寿命长、不产生电磁辐射污染等优 点。界面友好清晰,操作方便。但是亮度低,价格相对你叫贵,本着节省成本的 原则。最终方案:设计选用数码管。2. 3键盘模块的选择3方案一:采用独立式按键电路,每个键单独占
16、有一根 I/O 接口线,每个 I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。但是当按键较多时占 用单片机的 I/O 口数目较多。方案二:采用阵列式键盘,此类键盘是采用行列扫描方式,当按键较多时可 以降低占用单片机的 I/O 口数目。最终方案:由于用的按键比较多,并且需要按键提供数字信息,所以选用带 有数值的薄膜 4* 4 按键模块。2. 4 直流电机模块的选择方案一:步进电机步进电机是将电脉冲信号转变为角位移或线位移的开环控 制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率 和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个 步距角。方案二
17、 普通直流驱动电机起动和调速性能好,调速范围广平滑,过载能力 较强,受电磁干扰影响小。而且价格便宜,成本底。最终方案:普通直流电机。2. 5 本章小结综上所述,本章目的主要根据题目要求来选取了该设计所需要的硬件设 备,以及设计方式的选择,它追求技术较为成熟、完备、可靠,因此本系统具有 一定的开发前景。4第 三 章硬 件 设 计3. 1 系统硬件设计及组成硬件设计是整个系统的基础,要考虑的方面很多,除了实现此设计的基本功 能以外,主要还要考虑如下几个因素:系统稳定度;器件的通用性或易选购 性;软件编程的易实现性;系统其它功能及性能指标;因此硬件设计至关重 要。现从各功能模块的实现逐个进行分析探讨
18、。在本设计中用户通过键盘输入密 码,确认后系统调用密码比较判断函数,如果密码在规定的时间内输入正确,单 片机输出开门信号开锁。如果在规定的时间内没完成密码的输入,系统则自动清 除所输入的密码,并提示重新输入。用户发现错误时,可以清除重输。密码输入 后,通过校验后了,如果密码错误则启动报警系统,初始密码由系统设定,用户 可根据自己的要求设定密码,修改密码时首先需要与旧密码匹配,如果输入旧密 码错误则系统报警并自动退出密码修改系统。启动报警,旧密码正确,则可以输 入新密码,系统设定密码为 6 位,当输入密码不为 6 位或输入的新密码不一致时密码修改失败,系统报警并自动退出密码修改状态。如果输入的新
19、密码为 6 位 并且两次输入的新密码一致则修改密码成功。键 盘 输 入复 位 电 路显 示 电 路AT8 9 C5 2报 警 电 路晶 振 电 路电 机 电 路图 31 系统设计框图53. 1. 1 主控模块AT89C52 是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes 的可 反复擦写 1000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、 非易失性存储技术制造,兼容标准 MCS51 指令系统及 AT80C52 引脚结构,芯 片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机 的 AT89C52 可为许多嵌入
20、式控制应用系统提供高性价比的解决方案。图 32 AT89C52 引脚图VCC:电源电压 5V GND:接地P0:是一组 8 位漏极开路型双向 I/O 口,也即地址/数据总线复用总线,作 为输出口用时,每位能驱动 8 个 TTL 逻辑门电路,对端口写“1”可作为高阻 抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址和 数据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,P0 口接收指 令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1:是一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级可驱动 46个 TTL 逻辑门电路。对端口写
21、“1”, 通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻, 7 个引脚被外部 信号校验期间 P1 接收低 8 位地址。P2:是一个带有内部上拉电阻的 8 位双向 I /O 口,即地址总线。P2 的输 出缓冲级可驱动 4 个 TTL 逻辑门电路。对端口写“1”, 通过内部的上拉电阻把 端口拉到高电平,此时可作输入口,作输入口使用,因为内部存在上拉电阻,某 个引脚被外部信号拉低时会输出一个电流 I 。在访问 8 位地址的外部数据存储器 时,P2 口线上的内阻在整个访问期间不改变。Fl a s h 编程或校验时,P2 也接收 高位地址和其它控制信号。P3:是
22、一组带有内部上拉电阻的 8 位双向 I /O 口。P3 口输出缓冲级可驱 动 4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并 可作为输入端口。作输入端口时,被外部拉低的 P3 口将用上拉电阻输出电流 I 。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,低电平 有效,当 AT89C52 由外部程序存储器取指令(或时,每个机器周期两次 PSEN 有 效,即输出两个脉冲。当访问外部数据存储器,要有两次有效的 PSEN信号。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。时钟电路- - 此次设计的时钟电
23、路由一个 12MHz 的晶振和两个 22PF 的陶瓷贴片电容组成。89C52 芯片内部有一个高增益反相放大器,用于构成振荡器。引线 XTAL1 和 XTAL2 分别为反向放大器的输入和输出,两端跨接石英晶体及两个电容 就可构成稳定的自激振荡器。而电容器 C1,C2 起稳定振荡频率,并对振荡频率 有微调作用,C1 和 C2 可在 20- 100PF 之间取值, 这里取 22PF。电路如图 3- 3 所示。图 3 3 时 钟 电 路7复位电路- - 手动按钮复位需要人为在复位输入端 RST 上加入高电平。一般采用的办法是在 RST 端和正电源 VCC 之间接一个按钮。当人为按下按钮时,则 VCC
24、的+5V 电平就会直接加到 RST 端。手动按钮复位的电路如所示。由于人的动作再 快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。 通常采用手动复位和上电自动复位结合,其电路如图34所示。3. 1. 2 指示报警模块图 3 4 复 位 电 路图 3 - 5说明:LED灯采用共阳极方式连接。当黄灯 D1 亮绿灯 D1 灭时,可以输入密码.8图 3- 6说明:黄灯 D1 亮,开始输入密码,每写一位数码管上显示“”。图 3- 7说明:确认后,黄灯 D1 和绿灯 D2 不亮,数码管都显示“日”,电机转动;9图 3- 8说明:输入密码少位或者输入密码错误,黄灯 D1 亮,绿灯 D2 不
25、亮,数码管显示 “F”,电机不转,同时蜂鸣器会发出报警声。图 3- 9说明:当按下修改密码键盘时,黄灯 D1 和绿灯 D2 都亮,可以进行修改密码。 3. 1. 3 光电报警器10图 3- 10 光电报警器模块说明:当光路没被遮挡时,会发出连续的报警声,且红灯亮,防止密码柜被被偷。 3. 1. 4 直流电机模块图 3- 11 流电机模块说明:当对应单片机的 IO 口输出低电平时,三极管打开,有电流通过电机,电 机转动,开锁。3. 1. 5 键盘接口模块数 码 输 入确 认修 改 密 码复 位图 312 键盘模块说明:通过 P3 口组成的 4* 4 矩阵键盘,各个键定义为 0,1,2,3,4,5
26、,6,7,8,9,A修改 密码,D复位,“* ”修改密码和密码共用确认键。3. 1. 6 数码管显示模块11图 313说明:通过 P0 口控制数码管的段选,然后用 P2 口的低六位控制数码管的位选, 从而达到数码管显示。3. 2 硬件明细名称规格数量单 片 机AT89 C521LED红 黄 绿 蓝各 1 个直 流 电 机2 v6 v1矩 阵 键 盘4 * 41电 解 电 容1 0 uf2瓷 片 电 容3 0 pf1数 码 管3 位 一 体2电 阻1 0 k, 1 k,各 2 个蜂 鸣 器5 v 有 源23. 3 本章小结主要是对硬件进行的设计硬件设计是整个系统的基础,要考虑的方面很多, 除了实
27、现此设计的基本功能以外,主要还要考虑如下几个因素:系统稳定度;器件的通用性或易选购性;软件编程的易实现性;系统其它功能及性能指 标。硬件的设计决定了产品性价比。12第 四 章软 件 设 计4. 1 模块划分 本设计软件部分要实现的功能分别为:键盘扫描,数码管显示,延时部分, 蜂鸣器报警,led 显示,直流电机。4. 1. 1 键盘扫描模块键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循 环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。 4. 1. 2 密码修改模块必须输入原来的密码才能输入你想想要的密码。 4. 1. 3 密码比较判断模块该模块的功能是将键盘输
28、入的密码与设定的密码进行比较,若密码正确, 则开锁;若不正确则调用报警模块。4. 1. 4 显示模块 该模块的功能是显示,由于是分屏显示数据,所以需要调用各显示子程序。 4. 1. 5 报警模块该模块为了保证安全性,当密码输入的次数超过 1,就会发出报警,以便 引起人们的注意。4. 2 系统程序设计流程图13图 4 - 1开 始初 始 化 密 码初 始 化 数 据 以 及 中 断 、键清 看 门 狗码码扫 描 键 盘 ,针 对 键 值 分 支Ke y =A修 改 密Ke y =D 复 位Ke y =* 确 认数 字 键 输 入 数图 4 2根据设计要求的功能,程序主要分为三部分,即: ( 1)
29、 动态显示部分;( 2) 行列键盘扫描部分;( 3) 按键功能实现部分。 按键功能实现部分融合在主程序中,根据不同的键值进行分支处理,以完成设计要求的不同控制功能;按键控制主要完成数据输入、显示刷新控制等。 程序主流程主要完成键盘扫描、键值处理,键值分支控制的任务,流程图如图 5- 2是在 I RQ4 的 1KHZ 中断中控制显示的,采用动态扫描的方式,1KHz 的时基 中断每 1ms 进一次中断,在中断中对 2ms 计数器 i 进行累加,当 i 从 0 累加 到 2 时,则刚好为 2ms ,此时更新一个位的数码管显示,并对 i 进行清零。具 体流程图 5- 3。142 ms计 数i =2更
30、新 显 示 一 位结 束图 4 - 3 1 KHz 时 基 中 断 流 程4. 3 设计程序由于程序过多,如附录所示。15第 五 章系 统 调 试5. 1 Pr ot eus 仿真调试主要用的是 I SI S 部分。Pr ot eus I SI S 是一种操作简便而又功能强大 的原理图编译工具,它运行于 Wi ndows 操作系统上,可以仿真、分析各种模拟 器件和集成电路,该软件的特点有: 实现了单片机仿真和 SPI CE 电路仿真结合。具有模拟电路仿真、数字电路 仿真、单片机及其外围电路组成的系统仿真、RS232 动态仿真、I C 调试器、SPI 调试器、键盘和 LCD 系统仿真等功能;有各
31、种虚拟仪器。如示波器、逻辑分析 仪、信号发生器等。 支持主流单片机系统的仿真。目前支持的单片机类型有 68000 系列、8051 系列、ARM 系列、AVR 系列、PI C12 系列、PI C16 系列、PI C18 系列、PI C24 系列、BSTAMP 系列、Z80 系列、HC11 系列以及各种外围芯片。 提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试 功能,同时可以观察各种变量、寄存器等的当前状态,因此在该软件仿真系统中, 也必须具有这些功能;同时支持第三方的软件编译和调试环境。如 Ke i l uVi s i on3 等软件。 具有强大的原理图绘制功能。运行 Pr o
32、t eus 的 I SI S 程序后,进入该仿真软件的主界面。在工作前,要设置 VI EW 菜单下的捕捉对齐和 s ys t em 下的颜色、图形界面大小等项目。通过工作 栏中的 P(从库中选择元件命令)命令。通过 debug 菜单的相应命令仿真程序 和电路的运行情况。Pr ot eus 提供了比较丰富的测试信号用于电路的测试。对于单片机硬件电路 和软件的调试,Pr ot eus 提供了两种方法;一种是系统总执行效果,一种是对软 件的分部调试以看具体的执行情况。 对于总体执行效果的调试方法,只需要执行 debug 菜单下的 execut e 菜单项 或 F12 快 捷 键 启 动 执 行 ,
33、用 debug 菜 单 下 的 paus e ani ma t i on 菜 单 项 或 paus e 键暂停系统的运行。16对 于 软 件 的 分 部 调 试 , 应 先 执 行debug 菜 单 下 的s t a r t /r es t a r tdebuggi ng 菜单项命令,此时可以选择 s t ep over 、s t ep i nt o 和 s t ep out 命令执行程序,执 行 的 效 果 是 单 句 执 行 、 进 入 子 程 序 执 行 和 跳 出 子 程 序 执 行 。 在 执 行 了 s t a r t /r es t a r t debuggi ng 命令后,在
34、debug 菜单的下面要出现仿真中所涉及到 的软件列表和单片机的系统资源等,可供调试时分析和查看。5. 2 调试结果将 LED数码管与单片机板 I /O接口连接,然后连接单片机与 44 键盘。再 用下载线连接单片机下载线接口与电脑接口,打开单片机电源开关,打开集成开 发环境,以 PROJ ECT 方式打开程序,或直接按 F8 将程序下载到单片机芯片中。 下载完毕后,拔掉下载线,打开电源开关 ,开机时数码管不显示,初始化 密码为“123456”,密码可以更改,并保存在 RAM 中;然后按下述步骤对硬件电路进行测试:( 1) 开机时数码管不显示。初始化密码为“123456”,密码可以更改,并保存
35、在 RAM 中。( 2) 按下“D”, 显示全部清空。( 3) 随时可以输入数值,并在 LED 数码管上实时显示,当键入一个新数值时, 原来显示的数字左移一位,并在最右边的一位上显示出新键入的键值,键值为 09。( 4) 按下“*”键,则表示确定键按下,则进行密码对比,如相符则在 LED 数码管上显示“日日日日日日”以示通过;如不符,则显示“FFFFFF”。( 6) 按下“A”键,表示要修改密码的状态。5. 3 结果分析此 设计验证了 LED板可以按照相应的给定值进行显示的功能基本达到了作为 电子密码锁的绝大部分功能,但还有许多不足和需要完善的地方。5. 4 本章小结这次的设计,我熟悉了使用
36、Pr ot eus 的技巧,学会了制作电路板的一些技巧, 并且熟悉了如何选购使用电子元器件。在设计中,我学到了如何使用 C 语言对 单片机进行编写程序,熟悉了使用 kei l 软件,并且加深了对单片机的编程技巧。 知道了仿真的的重要性。并且得到了一些经验,受益匪浅。17设计总结:总结与体会1. 通过此次试验我对 51 单片机系统开发的过程有了一定的了解。2. 在这次试验中认真的学习 C 语言,完成了设计要求和设计指标。3 . 我提出的建议是心得体会:回顾此次单片机课程设计,至今我仍感慨颇多,从理论到实现,在做设计的 这些日子里,可以说是苦多于甜,但是可以学到许多许多东西,同时不仅可以巩 固以前
37、所学过的知识,而且学到了很多书本上没有学到过的知识。51 单片机开 发的过程有了一定的了解,掌握了系统硬件设计及软件设计的设计原则、思路、 步骤。并通过不断上网查资料、到图书馆借阅图书的方式,进一步熟悉并掌握利 用这些工具来进行单片机设计的方法。通过这次的学习,我真正学到了不少东西,真正体会到了理论联系实际的重 要性。经过这次设计使我能更快更准确的掌握专业方面的理论知识同时,通过实 践,又证明了我们所学理论知识的科学性和正确性。在设计的过程中我也发现了 自己的许多不足之处,比如模电知识不扎实,还会犯一些低级的电路错误,还有 自己的 C 语言的编写能力还有待提高,做完后发现自己做的好像有点简单了
38、,不 过我相信这只是我的开始,有这个兴趣以后还会继续做一些东西。所以我准备寒 假回去补课,努力学习。尽快把数电和模电知识补过来。18参 考 文 献1 . 郭 天 祥 概 念 51 单 片 机 C 语 言 教 程 , 电 子 工 业 出 版 社 , 20 09 .12 . 张 毅 刚 主 编 . 单 片 机 原 理 及 应 用 北 京 : 高 等 教 育 出 版 社 , 2 0 1 0 .5 .3 . 周 立 功 . 单 片 机 实 验 与 实 践 M .北 京 : 北 京 航 空 航 天 大 学 出 版 社 ,2 0 0 4 .19附 录 一20附 录 二#i nc l ude uns i g
39、 ne d i nt nu m=1 0 ;/ 开 始 让 数 码 管 什 么 都 显 示bi t s e t =0 ;/ 定 义 设 置 密 码 的 位c ha r c ount =- 1 ;/ 开 始 让 COUNT=- 1 , 方 便 后 面 显 示 数 码 管s bi t Be e p=P1 2 ; /蜂 鸣 器 uns i g ne d c ha r t e mp;uns i g ne dc ha rpws 6 = 1 , 2 , 3 , 4 , 5 , 6 ;/ 原 始 密 码uns i g ne d c ha r pwx 6 ;/ 按 下 的 数 字 存 储 区bi t r i g
40、 ht f l a g ;/ 密 码 正 确 标 志 位uns i g ne d c ha r wor kbuf 6 ;uns i g ne d c ha r c ode t a bl e du =0 x 3 f , 0 x 06 , 0 x 5 b, 0 x 4 f , 0 x 66 , 0 x 6 d, 0 x 7 d, 0 x 07 , 0 x 7 f , 0 x 6 f , 0 x 00 , 0 x 40;/ 段 选 码 , 共 阴 极uns i g ne d c ha r c ode t a bl e we = 0 x f e , 0 x f d, 0 x f b, 0 x f 7
41、, 0 xe f , 0 x df;/ 位 选 码uns i g ne d i nt ke y s c a n( ) ;voi d de l a y ( uns i g ne d c ha r z )/ 延 时 , ms 级uns i g ne d c ha r y ; f or ( ; z 0 ; z - - )f or ( y =120 ; y 0 ; y - - ) ;voi d s e t pw( )/ 设 置 密 码 函 数ke y s c a n( ) ;uns i g ne d i nt ke y s c a n( )/ 键 盘 扫 描 函 数P3 =0 x f e ; t e
42、mp=P3 ;t e mp=t e mp&0 x f 0 ;i f ( t e mp! =0 x f 0 )de l a y ( 5 ) ;/ 键 盘 去 抖 , 最 好 20 ms 以 上 , 这 里 用 了 5 mst e mp=P3 ;t e mp=t e mp&0 x f 0 ; i f ( t e mp! =0 x f 0 )c ount +; /按 键 计 数 加 1 t e mp=P3 ;s wi t c h( t e mp)c a s e 0 x e e :nu m=1 ;i f ( c ount 6 ) / 六位 密 码 , 所 以 COUNT6i f ( s e t =0
43、)/ 设 置 密 码 键 没 有 按 下 时pwx c ount =nu m; /存 储 按 下 的 数 字e l s epws c ount =nu m; /设 置 密 码 键 按 下 时 , 设 置 新 密 码wor kbuf c ount =t a bl e du 11 ; / 相 应 位 的 数 码 管 显 示 - - , 不 显 示 相 应 的 数 字 , 密 码 是 保 密 的br e a k ;c a s e 0 x de :nu m=2 ;i f ( c ount 6 )/ 以 下 扫 描 键 盘 的 原 理 差 不 多 同 上i f ( s e t =0 )21pwx c ount =nu m;e l s ewor kbuf 4 =0 x 00 ;wor kbuf 5 =0 x 00 ; /. . . . . .c ount =- 1 ;/ 按pws c ount =nu m;键 计 数 复 位 为 - 1i f ( c ount 6 ) / 密wor kbuf c ount =t a bl e du 11 ;br e a k ;c a s e 0 x be :nu m=3 ;i f ( c ount 6