
毕业设计
题目 基于单片机的电子锁设计
选题性质: 设计□报告□其他
院 系 电子工程学院
专 业 电子信息工程技术
班 级 11 级 (2) 班
学 号 **********
学生姓名 蔡 韬
指导教师 王 芳 莉
教务处制
年 月 日
2014 届 电子工程 学院
毕业设计选题审批单
年级 2011 专业 电子信息工程技术 班级 2班
| 学生姓名 | 蔡韬 | 学 号 | 1120090245 | |
| 选题 | 基于单片机的电子锁 | 选题性质 | 设计□报告□其他 | |
| 选题论证: 电子锁具,它也是以51系列单片机(ATC51)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值、接收传感器送来的报警信号、发送数据等功能。 单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,最多可输入三次;如果三次都不正确,则单片机通过通信线路向智能监控器报警。单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给智能监控器,同时将接收来自传感器接口的报警信息也发送给智能监控器,作为智能化分析的依据。 | ||||
| 指导教师初审意见: 签 名: 年 月 日 | ||||
| 毕业设计工作领导小组审批意见: 签 名: 年 月 日 | ||||
毕业设计开题报告及进度要求
年级 2011 班级 2班
| 学生姓名 | 蔡韬 | 学 号 | 1120090245 |
| 指导教师 | 王芳莉 | 选题性质 | 设计□报告□其他 |
| 选题 | 基于单片机的电子锁设计 | ||
| 选题的目的和意义: 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以ATC51芯片为核心,辅以必要的电路,设计了一个简易的电子锁。 电子钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及很多的公共场所,为人们生活,财产安全提供的方便,但随着时代的发展,人们已不能满足电子锁单纯的锁的功能,希望出现一些新的功能,例如防盗报警等。而这些都是以基于单片机为基础的电子锁实现的。因此,研究实用电子锁及其扩展应用,有着非常现实的意义,具有很大的实用价值。在此项目的设计过程中需要综合运用所学的模拟电子技术、数字电子技术、单片机原理及应用等课程的知识。掌握实用电子锁的设计、组装与调试方法,利用现代的单片机等新电子技术以及现代的设计手段,系统地培养了综合设计、操作调试、故障处理的能力,达到综合素质以及创新能力的提高。 | |||
| 选题研究的主要内容和技术方案: 一、主要内容 1.设计要求 2.方案论证 3.系统设计 ⑴硬件设计 ⑵软件设计 二、主要技术方案 1.收集、查阅相关技术资料,消化吸收,融会贯通,形成多种方案,设想、并分析选择出较合理的方案 2.对方案进行分析对比作出选择,选择最优的进行设计。 3.用protel绘出工作原理图,设计出程序流程框图。 4.运用软件工程设计理论及面向对象软件设计方法进行需求分析和详细设计。采用标准化程度高、程序可移植性好的语言,以使所开发的软件将来能够移植到不同的硬件环境下运行。并在仿真软件下进行仿真调试。 5.用统一标准的格式书写源程序清单,改进程序的可读性。 | |||
| 毕业设计工作时间 | 2013年 7月 8日 至 2013年 9月 15 日 | |
| 毕业设计工作日程安排 | ||
| 时间段 | 工作内容 | |
| 7.08 | 选题、制定任务、开题 | |
| 7.08-7.15 | 下达任务书、收集所需资料 | |
| 7.16-8.15 | 基本完成初稿 | |
| 8.16-8.30 | 完成二稿 | |
| 8.31-9.14 | 完成三稿 | |
| 9.15 | 定稿 | |
| 指导教师意见:
| ||
| 成果要求:
签字: 年 月 日 | ||
随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。
本设计以单片机ATC51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。而且采用键盘输入的电子密码锁具有较高的优势。采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。测试结果表明,本系统各项功能已达到本设计的所有要求。本密码锁具有设计方法合理,简单易行,成本低,安全实用,保密性强,灵活性高等特点,具有一定的推广价值。
关键字: 单片机、密码锁、单片机设计、电子锁
绪 论
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。锁是置于可启闭的器物上,用以关住某个确定的空间范围或某种器具的,必须以钥匙或暗码打开的扣件。锁具发展到现在已有若干年的历史了,人们对它的结构、机理也研究得很透彻,因此,不用钥匙就能打开的方法和工具也层出不穷。现代人类文明社会里,由于社会中各种矛盾冲突十分剧烈,人们的思想道德观念,价值观念,文化修养水平等差异,群众中良莠不齐,善良的人们能够自觉规范自已的行为,“非礼不为”,虽无钥匙亦不会乱闯。然而,那些毫无道德观念的盗贼却想方设法利用高科技手段撬门开锁,使广大居民防不胜防。为什么会出现这种情况呢?因为传统锁具都存在致命的弱点:(1)锁芯采用常见的铜、铝、锌等材料,抵抗不了强力破坏;(2)锁具制作工艺,技术落后,无法阻止技术手段的开启。
目前,市场上很多国内外的锁具,实际上都不具备真正的防盗功能。在惯偷面前,两根钢丝或几件简单的工具就可以把这些锁打开,有的惯偷甚至公开扬言:“没有我打不开的锁。”其实,不是他们多高明,而是一般锁具技术原理太过简单。面对这一残酷的现状,新时代提出了锁具必须的迫切的要求。
单片机,它是把处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口 (I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC 卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了,且容易升级改善。同样,本次在电子锁的设计过程中也用到了单片机。
本文从经济实用的角度出发,采用ATC51单机,研制了一款具有防盗自动报警功能的电子密码锁。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。
(1)系统设置4位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码由用户自己设定,在开锁状态下,用户可自行修改密码。
(3)具有自动报警功能。自动报警分现场报警和远程报警两种。现场报警由扬声器发出报警声。
(4)两种情况下可报警:一是密码输入错误3次,则报警;二是非正常开门,如破门而入的情况,可通过系统的红外监视装置监测,同时报警,保证了系统的安全性。系统工作时,用户通过按键输入4位密码,单片机将输入密码与设定密码进行比较,若密码正确,则发出开锁信号,将门打开,系统不报警;若密码不正确,则有相应的指示灯闪动,并要求重新输入密码,重新输入密码的次数不能超过3次,若3次输入的密码都不正确,则发出报警信号。
第1章 密码锁设计方案
1.1系统功能
(1)系统设置4位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码由用户自己设定,在开锁状态下,用户可自行修改密码。
(3)具有自动报警功能。自动报警分现场报警和远程报警两种。现场报警由扬声器发出报警声。
(4)两种情况下可报警:一是密码输入错误3次,则报警;二是非正常开门,如破门而入的情况,可通过系统的红外监视装置监测,同时报警,保证了系统的安全性。系统工作时,用户通过按键输入4位密码,单片机将输入密码与设定密码进行比较,若密码正确,则发出开锁信号,将门打开,系统不报警;若密码不正确,则有相应的指示灯闪动,并要求重新输入密码,重新输入密码的次数不能超过3次,若3次输入的密码都不正确,则发出报警信号。
1.2 方案选择
1.2.1 方案一
数字密码锁电路方案一方框图如图1.1所示
图1.1 数字密码锁电路方案
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设9个用户输入键,其中只有4个是有效的密码输入键,其他都是干扰按键,若按下干扰按键,键盘输入电路自动清零,原输入密码无效,需重新输入;如果用户输入密码的时间超过10秒(一般不会超过10秒,特殊情况客户可自行修改时间),电路将报警80秒,若电路连续报警3次,键盘锁定5分钟,防止他人非法操作电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
1.2.2 方案二
采用以单片机为核心的控制方案二如图1.2所示:采用以ATC51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能[1]。其原理如图1.2所示。
C51
单片机
矩阵
键盘
控制
输入错误锁定键盘
延时报警控制电路
AT24C02掉电存储
指示电路
串口显示电路
图1.2 单片机控制方案
比较以上两种设计方案,单片机方案有较大的活动空间,根据生活所需,其能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,保密性能也好,所以我们采用后一种方案。
1.3 设计思路
本方案采用的是以ATC51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能[2]。
设计思路如下:
输入密码用矩形键盘,包括数字键和功能键。
LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。
用发光二极管代替开锁的电路,发光表示开锁。
输入密码错误次数超过3次,系统报警。
打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。
按“C”键,清除显示器为“000000”。
欲重新设定密码,先输入密码在案“*”。
输入密码,再按“D”键。若密码与设定密码相同,则开门。否则显示器清为“000000”。
软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。
第2章 硬件电路设计
2.1 键盘电路设计
使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法[3]。其原理如图2.1所示
图2.1 矩阵键盘
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
对照图2.1所示的4×4键盘,说明线反转个工作原理[5]。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。
判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。具体的功能设计如表2.1
表2.1 按键说明
| 按 键 | 键 名 | 功 能 说 明 |
| 1-9键 | 数 字 键 | 输 入 密 码 |
| * 键 | 重 设 密 码 键 | 设 定 新 密 码 |
| D键 | 确 定 键 | 比 较 密 码 |
| # 键 | 清 除 键 | 使 显 示 器 清 零 |
本系统设计的显示电路是为了给使用者以提示而设置的。本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能[4]。显示电路的电路原理图如图2.2所示。
用P0.0—P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED的七段显示;而P0.4—P0.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。通过软件实现数字和位控制。
图2.2 LED显示电路
用74LS247可以控制输出什么字型。74LS247的逻辑功能表如表2.2
表2.2 74LS247的逻辑功能表
用74LS138控制位循环显示,其逻辑功能表如表2.3
表2.3 74LS138逻辑功能表
| C | B | A | Y1 | Y2 | Y0 | Y3 | Y4 | Y5 | Y6 | Y7 |
| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | |
| 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
| 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如2.3所示。当P2.0口输出低电平时,二极管发光,表示开锁[6]。如图2.3所示
图2.3 开锁电路
2.4 报警电路
图2.4报警电路
报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图2.4所示。当C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,C51输出为电平时,蜂鸣器则不发声。
第3章 软件设计
3.1 软件设计思路
电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,系统报警。
密码的设定,在此程序中密码是固定40H—45H 中,假设预设的密码为"123456"共6位密码。
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。
3.2 各子程序设计
3.2.1 键盘扫描子程序
键盘扫描流程图如图3.1
图3.1 键盘扫描流程图
键盘扫描子程序如下:
L2: MOV R3,#0F7H
MOV R1,#00H
L3: MOV A,R3
MOV P1,A
MOV A,P1
MOV R4,A
SETB C
MOV R5,#04H
L4: RLC A
JNC KEYIN
INC R1
DJNZ R5,L4
CALL DISP
MOV A,R3
SETB C
RRC A
MOV R3,A
JC L3
JMP L2
3.2.2 LED显示子程序
LED显示流程图如图3.2
图3.2 LED显示流程图
LED显示子程序如下:
DISP:MOV R0,#45H
DISP1: MOV A,@R0
ADD A,#50H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#40H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#30H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#20H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#10H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#00H
MOV P0,A
CALL DELAY
RET
3.2.3 密码比较和报警程序
密码比较和报警流程图如3.3
图3.3 密码比较和报警流程
密码比较和报警程序如下:
COMP: MOV R1,#45H
MOV R0,#35H
MOV R2,#06H
C1: MOV A,@R1
XRL A,@R0
JNZ C3
DEC R1
DEC R0
DJNZ R2,C1
CLR P2.0
MOV R2,#200
C2: MOV R6,#248
DJNZ R6,$
DJNZ R2,C2
C3: INC R5
MOV A,R5
MOV R5,A
CJNE R5 ,#03H,C4
CLR P2.1
MOV R5,#00H
C4: JMP START
第4章 系统调试
4.1仿真效果
本次调试采用Protues软件仿真。首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试[7]。
依次按下1,2,3,4,5,6后,LED显示如图4.1:
图4.1 LED显示
4.2密码验证
按下确定键后,二极管灯亮,表示正确开门密码,身份验证通过,打开门锁。如图4.2:
图4.2 密码验证电路
总 结
毕业设计是培养学生综合运用所学知识,对所学知识的一种检验,也是对自己能力的提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,我明白了学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。
回顾做毕业设计的过程,至今我仍感慨颇多,真是万事开头难,的确,从选题到定稿,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,也让同学之间的感情更进了一步,于此同时还可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次毕业设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,通过这次毕业设计之后,使我受益匪浅,一定把以前所学过的知识重新温故。
这次毕业设计终于顺利完成了,对我而言,知识上的收获,精神上的丰收,让我很高兴。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。
参考文献
[1]王迎旭主编·《单片机原理及应用》·北京·机械工业出版社·2001
[2]周慈航主编·《单片机应用程序设计技术》·北京·航空航天大学出版社· 2001
[3]刘进峰主编·《电子制作实训》·中国劳动社会保障出版社·2006
[4]张洪润主编·《单片机应用技术教程》·北京·清华大学出版社·1997
[5]张友汉主编·《电子线路设计应用手册子》·福建·科学技术出版社版社
[6]董孝昌主编·《单片机原理与应用》·大连·东北财经大学出版社·2004
[7]陈爱弟主编·《Protues实用培训教程》·北京·人民邮电出版社·2000
附录1 源程序清单
ORG 00H
MOV R5,#00H
MOV R7,#00H
DJNZ R7,$
MOV R7,#10H
MOV R6,#06H
MOV R1,#35H
L1: MOV A,R7
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV @R1,A
DEC R1
INC R7
DJNZ R6,L1
START: ORL P2,#0FFH
MOV R4,#06H
MOV R0,#40H
CLEAR: MOV @R0,#00H
INC R0
DJNZ R4,CLEAR
L2: MOV R3,#0F7H
MOV R1,#00H
L3: MOV A,R3
MOV P1,A
MOV A,P1
MOV R4,A
SETB C
MOV R5,#04H
L4: RLC A
JNC KEYIN
INC R1
DJNZ R5,L4
CALL DISP
MOV A,R3
SETB C
RRC A
MOV R3,A
JC L3
JMP L2
KEYIN: MOV A,R1
XRL A,#0BH
JZ X3
MOV A,R1
XRL A,#0FH
JZ X4
MOV R7,#10
D1: MOV R6,#24
DJNZ R6,$
DJNZ R7,D1
D2: MOV A,P1
XRL A,R4
JZ D2
MOV A,R1
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV R7,A
XRL A,#0AH
JZ SET0
MOV A,R7
XRL A,#0BH
JZ START
MOV A,R7
XRL A,#0CH
JZ L2
MOV A,R7
XRL A,#0DH
JZ L2
MOV A,R7
XCH A,40H
XCH A,41H
XCH A,42H
XCH A,43H
XCH A,44H
XCH A,45H
CALL DISP
JMP L2
X3: JMP DISP2
X4: JMP COMP
DISP:MOV R0,#45H
DISP1: MOV A,@R0
ADD A,#50H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#40H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#30H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#20H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#10H
MOV P0,A
CALL DELAY
DEC R0
MOV A,@R0
ADD A,#00H
MOV P0,A
CALL DELAY
RET
SET0: MOV R2,#06H
MOV R0,#40H
MOV R1,#30H
E1: MOV A,@R0
XCH A,@R1
INC R0
INC R1
DJNZ R2,E1
CALL DELAY
E2: JMP START
COMP: MOV R1,#45H
MOV R0,#35H
MOV R2,#06H
C1: MOV A,@R1
XRL A,@R0
JNZ C3
DEC R1
DEC R0
DJNZ R2,C1
CLR P2.0
MOV R2,#200
C2: MOV R6,#248
DJNZ R6,$
DJNZ R2,C2
C3: INC R5
MOV A,R5
MOV R5,A
CJNE R5 ,#03H,C4
CLR P2.1
MOV R5,#00H
C4: JMP START
DISP2: MOV R0,#35H
CALL DISP
MOV A,P1
XRL A,R4
JZ DISP2
CALL DELAY
JMP START
DELAY: MOV R7,#C3
D3: MOV R6,#248
DJNZ R7,D3
RET
ORG 300H
TABLE: DB 01H 02H 03H 0CH
DB 04H 05H 06H 0DH
DB 07H 08H 09H 0EH
DB 0AH 00H 0BH 0FH
DB 01H 02H 03H 04H 05H 06H
END
附录2 硬件原理图
