1、学 号:201114040215HEBEI UNITED UNIVERSITY单 片 机 课 程 设 计 说 明 书设计题目:简易电子密码锁学生姓名:李红辉专业班级:测控技术及仪器 2学 院:电气工程学院指导教师:曹晓华2014 年 06 月 05 日成绩评定表指导教师评语: 答 辩 成 绩: (占总成绩 60%)说明书 成 绩: (占总成绩 40%)摘 要在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们
2、对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。本课程设计介绍了基于单片机电子密码锁的设计,该设计硬件主要由AT8
3、9C52最小系统、矩阵电路、1602LCD显示电路、电源电路和报警电路等几部分组成。软件主要由C语言编程。该密码锁由单片机技术,通过矩阵电路设置、修改密码、保护密码,并由LCD显示密码输入,从而实现对密码的设置、保护。关键词: 单片机, 密码锁, 1602,最小系统,矩阵键盘单片机课程设计说明书AbstractIn daily life and work, the department of housing and security, unit documents, financial statements and some personal information to save more
4、in order to lock the ways to solve. If use the traditional mechanical key to open the lock, people often need to carry multiple keys, use very convenient, and the key missing after security is compromised. With the continuous development of science and technology, people in daily life the demand is
5、higher and higher safety insurance device. To meet the requirements of people on the use of the lock, increase its safety, use the password instead of the key combination lock arises at the historic moment. Combination lock with high safety, low cost, low power consumption, easy operation, etc.In th
6、e field of security technology to guard against, with electronic combination lock anti-theft alarm function gradually replace the traditional mechanical combination lock, overcoming the mechanical combination lock password quantity is little, the shortcomings of poor safety performance, make the com
7、bination lock both in technology and step in performance are improved greatly. With the development of large scale integrated circuit technology, especially the single chip microcomputer, appeared with the intelligent combination of the microprocessor, it besides has the function of electronic combi
8、nation lock, also introduced the intelligent management, expert analysis system, and other functions, so that the combination lock of high security, reliability, and increasingly widely used.The course design of electronic combination lock based on MCU is introduced, the design of the hardware is ma
9、inly composed of AT89C52 minimum system, matrix circuit, 1602 LCD display circuit, power circuit and alarm circuit and so on several parts. Software is mainly composed of C language programming. The combination lock by the single chip microcomputer technology, through the matrix circuit setting, cha
10、nge passwords, password protection, and by the LCD display password input, so as to realize the password Settings, protection.单片机课程设计说明书Key words: single chip microcomputer, trick lock, the 1602, the smallest system, matrix keyboard单片机课程设计说明书目 录摘 要 .IABSTRACT.II第 1 章 绪论 71.1 电子密码锁的现状与发展 .71.1.1 电子密码
11、锁的现状 .71.1.2 电子密码锁的发展 .71.2 电子密码锁的特色 .7第 2 章 电子密码锁的工作原理及总体设计82.1 电子密码锁的工作原理 .82.2 总体结构的设计 .8第 3 章 硬件系统设计 93.1 单片机最小系统和数据输入 .93.1.1 单片机最小系统 .93.1.2 矩阵键盘的设计与初始数据的输入 .113.2 数据的输出与显示 123.3 报警电路 .163.4 硬件电路图 .17第 4 章仿真与调试 194.1 程序流程.194.2 仿真结果.20总结 23参考文献 25附件单片机课程设计说明书第 1 章 绪论1.1 电子密码锁的现状和发展1.1.1 电子密码锁的
12、现状当今智能电子密码锁发展已经到了非常高的境界,由于电子元件特别是单片机应用在这几年得到空前发展,无论功能性,稳定性都比较全面,在保密方面已做到人眼识别,指纹识别,人声识别基本上电影上有的现实也有。在国外发展比较早,所以应用也比较广泛,主要在家庭装较贵重地方,银行,保险柜等应用较多,在国内这方面发展也较快,不管自己开发或是引进都有,在重要地方应用也较多,由于价钱比普通弹子锁较贵,早几年应用较少,现在越来越普及到平常化,未来的发展也会越来越被大众采用,由于它的功能、安全是弹子锁无法相比的。发展前境是非常大的。1.1.2 电子密码锁的发展现在,电子密码锁适用于各个领域,尤其在国民建设,和军事领域具
13、有突出贡献。现在的密码锁内的信息包括了数字、字符、图形图像、人体生物特征和时间等,对电子锁的要求也越来越高。电子技术必是各国发展的优先技术。1.2 电子密码锁的特色保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。误码输入保护。当输入密码多次错误时,报警系统自动启动。电子密码锁操作简单易行,一学即会。干扰码功能 在输入正确密码前可输入任意码。出门时无需其他操作,只需一次的把手动作,可机械的开启门,所以遇到火灾等应急状况下也迅速,安全的开启门。单片机课程设计说明书第 2 章 电子密码锁的工作原理
14、及总体设计2.1 电子密码锁的工作原理本设计采用 STC89C52 单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器 LCD1602 和密码存储 AT24C02 等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,组成的电子密码锁系统,能够实现:1完全正确输入四位密码的前提下,有开锁提示;2错误输入密码情况下,开锁密码错 3 次要报警,报警期间输入密码无效。3用户可以自行设定和修改密码; 2.2 电子密码
15、锁的总体框图STC89c52晶振电路矩阵键盘显示电路报警电路复位电路图 2-1 总体框图单片机课程设计说明书第三章 硬件系统设计3.1 单片机最小系统和数据输入3.1.1 单片机最小系统选用单片机作为系统的核心部件,实现控制与处理的功能。单片机具有资源丰富、速度快、编程容易等优点。利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标。本设计采用 AT89c52 单片机,89C52 是 INTEL 公司 MCS-51 系列单片机中基本的产品,它采用 ATMEL 公司可靠的 CMOS 工艺技术制
16、造的高性能 8 位单片机,属于标准的 MCS-51 的 HCMOS 产品。它结合了 CMOS 的高速和高密度技术及 CMOS的低功耗特征,它基于标准的 MCS-51 单片机体系结构和指令系统,属于 89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。89C52 内置 8 位中央处理单元、512 字节内部数据存储器 RAM、8k 片内程序存储器(ROM)32 个双向输入/输出(I/O)口、3 个 16位定时/计数器和 5 个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52 还可工作于低功耗模式,可通过两种软件选择空闲和掉电
17、模式。在空闲模式下冻结 CPU 而 RAM 定时器、串行口和中断系统维持其功能。掉电模式下,保存 RAM 数据,时钟振荡停止,同时停止芯片内其它功能。图 3-11 P0 口外接排阻单片机课程设计说明书图 3-12 最小系统电路图如图 3-12 为单片机最小系统,硬件最小系统:由电源、主板和 CPU、内存组成.在这个系统中,没有任何信号线的连接,只有电源到主板的电源连接.由于设计本电路图所使用的软件为 Protues,且电源和电源地脚为自动隐藏所以电源部分也是在其中的。如图 3-11 所示。51 单片机的 P0 端口为开漏输出,内部无上拉电阻。所以在当做普通 I/O 输出数据时,由于 V2 截止
18、,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。图 3-13单片机课程设计说明书在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。MCS-5l 系列单片机的复位引脚RST(第 9 管脚)出现 2 个机器周期以上的高电平时,单片机就执行复位操作。如果 RST 持续为高电平,单片机就处于循环复位状态。复位操作通常有两种基本形式:上电自动复位和开关复位。图 3-13 中所示的复位电路就包括了这两种复位方式。上电瞬间,电容两端电压不能突变,此时电容的负极和 RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯
19、片被复位。随之+5V 电源给电容充电,电阻上的电压逐渐减小,最后约等于 0,芯片正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使 RST 管脚出现高电平达到手动复位的效果。一般来说,只要 RST 管脚上保持 10ms 以上的高电平,就能使单片机有效的复位。图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算 RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。3.1.2 数据的输入鉴于单片机的 I/O 口的限制,本次选用矩阵键盘的输入,如下图所示:图 3-21 矩阵键盘单片机
20、课程设计说明书阵式键盘由行线和列线组成,按键位于行、列的交叉点上。当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,单片机通过检测行或列线上的电平变化可以确定哪个按键被按下。矩阵键盘不仅在连接上比单独式按键复杂,它的按键识别方法也比单独式按键复杂。矩阵键盘的检测方法有多种,常见的有:逐点扫描法、逐行扫描法、全局扫描法。在本实例中我们采用逐行扫描法来实现按键检测,其中 P3.0-P3.3 作为行线,P3.4-P3.7 作为列线。识别过程如下1、判断键盘中是否有键按下。设置所有行线为输出口,并输出低电平;设置列线为输入口,读取列线上的电平状态,只要有一列的电平为低,就表示有按
21、键按下,并且被按下的键位于电平为低的列线与 4 跟行线相交叉的 4 个按键中,若所有列线都为高电平,表示没有按键按下;2、判断被按下按键所在的位置。在确认有键按下后(进行按键消抖处理后),接下来就是确定具体哪个案件被按下,方法是:依次将每根行线设置为输出口,并输出低电平(同时剩余行线输出高电平),然后逐列检查每根列线的电平状态,若某列为低电平,则该列线与设置为输出低电平的行线交叉处的按键就是被按下的按键。3、按键位置确定后,接下来就要给矩阵键盘中的每个按键进行编号,也就是进行按键编码,程序设计中常用计算法和查表法两种方式对按键进行编码。,程序设计中常用计算法和查表法两种方式对按键进行编码。本实
22、例采用计算法编码。从上面的电路图中我们可以看到,键盘的所有行线接到了 P3.0-P3.3 口,51 单片机上电后为高电平,这是确保在没有按键按下的时候,I/O 口的电平状态始终为高电平,从而消除外界干扰。对于 51 单片机来说,我们可以将 P3.4-P3.7 口分别不同置为低电平,当有按键按下时可以比较 P3.0-P3.7 的压值,则可以得出是哪个键按下并且可以赋予相应的值。并可以读入单片机中,继续相应的操作。3.2 数据的输出和显示单片机课程设计说明书在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显
23、示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED 数码管、液晶显示器。发光管和 LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高,由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。数字式接口,液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。体积小、重量轻液晶显示器通过显示屏上的电极控制液
24、晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动 IC 上,因而耗电量比其它显示器要少得多。图 3-2 LCD1602 显示电路单片机课程设计说明书如图 3-21 所示,本次设计采用的是 LCD1602,工业字符型液晶,能够同时显示 16x02 即 32 个字符。 (16 列 2 行)注:为了表示的方便 ,后文皆以 1 表示高电平,0 表示低电平。1602 液晶也叫 1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位
25、都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义 CGRAM,显示效果也不好) 。1602LCD 是指显示的内容为 16X2,即可以显示两行,每行 16 个字符液晶模块(显示字符和数字) 。市面上字符液晶大多数是基于 HD44780 液晶芯片的,控制原理是完全相同的,因此基于 HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。1602 采用标准的 16 脚接口,其中:第 1 脚:GND 为电源地第 2 脚:VCC 接 5V 电源正极第 3 脚:V0 为液晶显示器对比度调整端,接正电源
26、时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比度) 。第 4 脚:RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令寄存器。第 5 脚:RW 为读写信号线,高电平(1)时进行读操作,电平(0)时进行写操作。第 6 脚:E(或 EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第 714 脚:D0D7 为 8 位双向数据端。第 1516 脚:空脚或背灯电源。15 脚背光正极,16 脚背光负极。特性:3.3V 或 5V 工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪
27、烁、光标闪烁、显示移位等多种功能有 80 字节显示数据存储器 DDRAM内建有 192 个 5X7 点阵的字型的字符发生器 CGROM8 个可由用户自定义的 5X7 的字符发生器 CGRAM单片机课程设计说明书1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H) ,显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A” 。在单片机编程中还可以用字符型常量或变量赋值,如A 。因
28、为 CGROM 储存的字符代码与我们 PC 中的字符代码是基本一致的,因此我们在向 DDRAM 写 C51字符代码程序时甚至可以直接用 P1=A这样的方法。PC 在编译时就把A先转换为 41H 代码了。CGROM 中字符码与字符字模关系对照表单片机课程设计说明书字符代码 0x000x0F 为用户自定义的字符图形 RAM(对于 5X8 点阵的字符,可以存放 8 组,5X10 点阵的字符,存放 4 组),就是 CGRAM 了。0x200x7F 为标准的 ASCII 码,0xA00xFF 为日文字符和希腊文字符,其余字符码(0x100x1F 及 0x800x9F)没有定义。以下是 1602 的 16
29、 进制 ASCII 码表地址:读的时候,先读左边那列,再读上面那行,如:感叹号!的 ASCII 为 0x21,字母 B 的 ASCII 为 0x42(前面加0x 表示十六进制) 。本设计将 1602 的数据/命令端接到单片机的 P1.5 端,使能端接到 P1.4 口,读写端直接接地,本次使用只用其写的功能。1602 的数据端接到单片机的 P0 端。通过程序即可将单片机从矩阵键盘读入的数据显示到1602 上面。3.3 报警电路本次设计使用的蜂鸣器作为警报装置,电路图如下:图 3-3 报警电路单片机课程设计说明书由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并
30、通过三极管放大驱动电流就能使蜂鸣器发出声音,很简单,这里就不对自激蜂鸣器进行说明了。这里只对必须用 1/2duty 的方波信号进行驱动的他激蜂鸣器进行说明。单片机驱动他激蜂鸣器的方式有两种:一种是 PWM 输出口直接驱动,另一种是利用 I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。PWM 输出口直接驱动是利用 PWM 输出口本身可以输出一定的方波来直接驱动蜂鸣器。在单片机的软件设置中有几个系统寄存器是用来设置 PWM 口的输出的,可以设置占空比、周期等等,通过设置这些寄存器产生符合蜂鸣器要求的频率的波形之后,只要打开 PWM 输出,PWM 输出口就能输出该频率的方波,这个时候利用这个波形就
31、可以驱动蜂鸣器了。比如频率为 2000Hz 的蜂鸣器的驱动,可以知道周期为 500s,这样只需要把 PWM 的周期设置为 500s,占空比电平设置为 250s,就能产生一个频率为 2000Hz 的方波,通过这个方波再利用三极管就可以去驱动这个蜂鸣器了。而利用 I/O 定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。比如为 2500Hz 的蜂鸣器的驱动,可以知道周期为 400s,这样只需要驱动蜂鸣器的 I/O 口每 200s 翻转一次电平就可以产生一个频率为 2500Hz,占空比为 1/2du
32、ty 的方波,再通过三极管放大就可以驱动这个蜂鸣器了。本次设计采用的是通过三极管来驱动蜂鸣器,并且有单片机延时产生脉冲电流来让蜂鸣器实现报警功能。3.4 硬件总体电路图本次设计采用 89c52 单片机作为主控芯片,结合矩阵键盘,蜂鸣器电路,LCD1602 显示,做成的简易密码锁设计的总电路图如下所示:单片机课程设计说明书图 3-4单片机课程设计说明书第四章 仿真与调试4.1 程序流程本次设计的总体思路为:开机后有 1602 显示电路提示输入密码,密码初始化为“0123”,然后可以通过矩阵键盘输入,并通过 1602 显示所输入的密码的内容,当密码输入 4 位后,自动进入比较函数,如果密码正确则通
33、过 1602 显示“Welcome back”,如果密码输入错误,则再次显示输入密码,并且记错一次,记错达到三次后,开始报警,并且输入无效。修改密码设置独立按键,按下后可以改密码,输入 4 位密码后自动保存,由于本设计没有用到掉电后数据不丢失的存储芯片,所以修改后只有在程序运行时有效。程序流程图如下:是否否 是否是否 图 4-1 程序流程图开始修改密码 接受新密码密码是否正确检测是否有输入密码密码锁开启错误次数相加次数是否3报警且其它输入无效单片机课程设计说明书4.2 仿真结果当开始仿真时则 1602 液晶显示为“pass word!”如下图 4-21 所示:图 4-21 仿真开始显示其中液晶
34、显示后面【1】 ,代表第几次输入。当密码输入正确时仿真结果如图 4-22:图 4-22 密码输入正确单片机课程设计说明书当密码输入错误时,则再次显示输入密码,并且液晶后面的数字显示会加1,如图 4-23 所示:图 4-23 密码输入错误时当输入密码连续错 3 次后,则会报警,如图 4-24:图 4-24 报警仿真单片机课程设计说明书当按下修改密码键的时候,液晶则会显示修改密码,并且显示你所修改的密码,如图 4-25 所示:图 4-25 修改密码仿真密码修改成功后,回到输入密码界面。单片机课程设计说明书第五章 总结通过此次课程设计,使我更加扎实的掌握了有关单片机方面的知识,在设计过程中虽然遇到了
35、一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,
36、而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了常用元件的识别和测试;熟悉了常用仪器、仪表;了解了电路的连线方法;以及如何提高电路的性能等等,掌握了焊接的方法和技术,通过查询资料,也了解了密码锁的构造及原理。我认为,在这一周的课设时间,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实践中,我们学会了很
37、多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课单片机课程设计说明书程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所
38、学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。本次设计让我认识到了,做事不能马虎,一件事的全部可能问题就出现在某一点上面。在本次课程设计中,由于时间较短,来不及搭建硬件,就使用了开发板进行程序调试,由于开发板的端口限制,矩阵键盘和液晶显示的控制有相同的端口,这就导致有些功能完成不了,例如在调试用液晶显示输入的密码时,由于同时使用的 P3.4 和 P3.5,导致了输入密码是液晶无法显示输入的东西,并且按键按下时液晶的光标也乱跑。由于我的粗心,没有仔细想这个原因
39、,就在程序的时序语句上修改,结果修改的半天也是没有进展白白的浪费了时间。后来仔细思考才发现是端口共用的结果,于是我就把液晶的端口改到别的地方去了。再调试程序,当然是符合自己的想法了。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。单片机课程设计说明书参考文献1 、郭天祥主编,51 单片机 C 语言教程,电子工业出版社。2009.12、丁元杰主编.单片微型计算机.北京:机械工业出版社.20033、李广第主编.单片机基础.北京:北京航天工业出版社.20024、单片机原理及应用,张鑫等,电子工业出版社 5、M
40、CS51 单片机应用设计,张毅刚等,哈尔滨工业大学 6、MCS51 系列单片机实用接口技术,李华等,北京航天航空大学7、PROTEL2004 电路原理图及 PCB 设计,清源科技,机械工业出版社 8、基于 MCS-51 系列单片机的通用控制模块的研究,曹卫芳,山东科技大学,9、单片机应用技术选编,何立民,北京航空航天大学出版社,2000单片机课程设计说明书附录程序代码:主程序(密码锁.c ):#include #define uc unsigned char#define ui unsigned int#include “key.c“#include “yejing.c“#include“he
41、ad.h“sbit beep=P23;sbit key=P20;uc code table1=“pass word!“;uc table4=0,1,2,3 ; /密码uc table2=“Welcom back!“;uc table4=“ALARM!“;uc table5=“chang mima!“;uc m,ronum,flag,mitu,miro;void chushi()write_zhiling(0x80+2);for(m=0;m=3)write_zhiling(0x01); /错误超过三次,警报write_zhiling(0x80+4);for(m=0;m6;m+)write_dat
42、e(table4m);delay(5);alrm(); void change() /修改密码if(b4)keyscan();else /修改成功xiugai=0;write_zhiling(0x01);csh();chushi();单片机课程设计说明书void main()csh();chushi();while(1)if(key=0) /修改密码键delay(10);if(key=0)xiugai=1; /修改判断while(!key);write_zhiling(0x01);write_zhiling(0x80+2);for(m=0;m11;m+)write_date(table5m);delay(5);write_zhiling(0x80+40);if(xiugai=0)panduan(); /对比输入密码if(xiugai=1)change(); /修改密码