数理与信息工程学院.doc_第1页
数理与信息工程学院.doc_第2页
数理与信息工程学院.doc_第3页
数理与信息工程学院.doc_第4页
数理与信息工程学院.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

数理与信息工程学院单片机原理及应用期末课程设计基于单片机的电子密码锁 数理与信息工程学院单片机原理及应用期末课程设计 题 目: 基于单片机的电子密码锁 专 业: 计算机科学与技术(专升本) 班 级: 计算机061班 姓 名: 尤莉娜 学 号: 06191117 指导老师: 余 水 宝 成 绩: ( 2008.6 )目 录第1节 引 言31.1 电子锁的概况31.2 电子锁的设计方案3第2节 电子锁的主要硬件电路设计52.1 电子锁的概述52.2 电子锁的部分电路介绍72.2.1键盘电路72.2.2显示电路72.2.3控制电路82.2.4 主要外围电路(振荡电路)82.3单片机及主要元器件介绍82.3.1 89C51单片机92.3.2 BCD七段译码器102.3.3 74138集成译码器112.3.4 数码管112.3.5 93C4612第3节 电子锁的软件设计143.1 电子锁的主程序设计143.2 键盘程序设计223.3 显示程序设计233.4 93C46的程序设计23第4节 结束语25参考文献26基于单片机的电子密码锁数理与信息工程学院 06计算机专升本 尤莉娜指导教师:余水宝 第1节 引 言随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。在安全技术防范领域,具有防盗报警功能的电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步,使偷盗者很难有机可乘。如:宾馆、办公大楼、仓库、保险柜等由于人员的变动比较大,开锁的钥匙也不再是只有一人拥有,容易造成丢失。购得新居的家庭,由于装修施工等入住时也要把原有的锁胆更换,况且钥匙随身携带也诸多不便。这样机械锁就暴露了一个弱点,人们迫切的需要一种理想的,安全的锁,这样随之就产生了密码锁的概念,随着技术的发展电子密码锁就成了密码锁中的主流。而机电一体化的电子密码锁其功能大大超过弹子锁,且能更安全可靠。所以比起弹子锁,电子密码锁有着无比的优越性。1.1 电子锁的概况 电子密码锁不仅仅在一个行业中被应用,它在各行各业中都应用的比较广泛.例如在机动车领域,最有名的是上海新卫电子设备公司开发的一百亿电子密码锁为有车组带来了福音,这种密码锁装在机动车里不用担心车被偷,外人即使进入汽车启动车,只要密码不对,发动机也会在15秒内自动熄火.还有,电子密码锁在高级宾馆,甚至监狱中使用都十分安全和便利.所以电子密码锁在现在起了一个主导的作用,给了人们很大的安全和方便,从而结束了钥匙带给人们的不便和烦恼。本设计是用单片机设计的,单片机是智能仪器、计算机外部设备、生产过程控制的控制核心。在大多数应用中,被控对象都是大功率的执行部件,功率接口技术已是单片机应用中的一项关键技术。本设计主要是利用单片机AT89C51,AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性 ,在设计程序时可反复修改原程序、编译、并烧写到单片机里面。这样可以在制作过程中更加的方便设计者,可以减低成本1。1.2 电子锁的设计方案(1) 硬件方案本设计的主芯片用到89C51,其P1口接键盘,用来密码的输入和一些功能键的输入,P0口接显示接口,在这个口上接上7448和74LS138两块芯片就能满足用一个口开控制段选和位选的信号,如果用一个口来控制段选,再用其他口来控制位选,这样可能导致单片机的接口不够;P2.0接一个发光二极管,用来判断输入的密码是否正确;P3口接外围串行EEPROM9346用来存储密码,来保证断电后仍有密码可用,EEPROM的应用特性有:采用+5V电压清除EEPROM时通常不需要设置单独的清除操作,而是在写入的过程中自动清除即可。但目前清除的时间较长,约需10ms左右,故要有足够的写入时间。EEPROM大多是并行总线传输的,但也有采用串行传输数据的EEPROM,这种EEPROM具有体积小、成本低、电路连接简单、占用系统地址线少和数据少的优点,采用的就是串行的EEPROM存储器;再则就是一些外围电路,如外部复位电路和振荡电路。图1-1就是硬件的原理方框图。图1-1 硬件原理方框图 89C51(2) 软件方案此次设计要求如下:(1) 开始后,显示器显示“000000”,密码由TABLE读取,“221582”为内定密码,或由EEPROM93C46读取密码。只要输入此密码便可开门,这样可预防万一停电时密码改变或未设定密码的新产品,无密码可用。(2) 按“#”,清除显示器为“000000”。(3) 更改密码时,先键入新号码再按“*”,即可建立新密码,并存入30H35H的地址(8571)及EEPROM93C46的0103地址处。(4) 键入号码,再按“D”开门键,若号码与密码相符,则开门,否则显示器会消除为“000000”。(5) 按住“C”,既可显示密码,放开则显示“000000”。方案主要就是密码的输入、显示和比较,所以程序在键盘和显示上占了很大的比重,硬件电路上加了EEPROM93C46,这也是程序上的一个重点,因为在断电后,密码就要从这里读出来的。 第2节 电子锁的主要硬件电路设计2.1 电子锁的概述电子密码锁是一种数字系统的应用,数字系统是指离散或数字化表示的,具有信号存储,信号处理和信号传输功能的逻辑系统。由于设计方法的千差万别,电子密码锁的结构也是不同的,但是大体结构类似,下图给出密码锁的一般结构模型.一般由输入部件,存储器,信号处理部件,输出部件四部分组成。图2-1 密码锁的结构模型输入部件:从系统外获得相关的信息进行前端信号处理供系统使用。存储器:用于存放供系统使用的数字信息。信号处理部件:根据系统功能的要求,由各部件的工作状况对系统输入,存储,信号处理和输出部件进行相应的协调,控制和信息处理工作.此处主要是指运用比较器判断输入的密码与预置的密码是否相同,同时做出相应的信号输出。输出部件:把系统中所处理的各种信息传到下一级系统的接口或者本级负载。而此次设计主要是键盘、控制、显示三部分组成。先是键盘输入通过程序的转换一路控制锁一路通过两块集成块的转化,输出到数码管,从而显示出密码。本设计的电路原理图如下图所示:图2-2 电子锁的电路原理图2.2 电子锁的部分电路介绍2.2.1键盘电路 键盘采用的是4*4的矩阵式,它接单片机的P1口,其设计如下图: 图2-3 键盘电路设计图在键盘的设计时一开始选用的是大的按键,但是考虑到PCB板的大小,后来选用的是小的按键,可以节省覆铜板。按键的八个接口分别接P1口的八位(如上图所示),在按键前,我先给P1口置F7H,当第一行上有键按下的时候, 对应列位输出低电平,反之无键按下为高电平。相同方法扫描各列,反复循环,直到有键按下。2.2.2显示电路显示电路选用了共阴极数码管,在设计时用7448来提供段选,用74LS138提供位选,这样可以节省单片机端口。具体电路图如下:图2-4 显示电路设计图段选的信号和位选的信号都由P0口提供,P0口的前四位接7448的A,B,C,D四位,由它把单片机输出的十进制转换成数码管能显示的字型码。P0口的后面三位接38译码器的A,B,C,通过译码器,输出的数据可以作为数码管的位选,使数码管一个一个的点亮,从而达到动态显示的要求。2.2.3控制电路这部分是整个设计的核心所在,主要运用了单片机,所有信号的处理都通过控制部分输出,在加上93C46,能使断电后仍有密码可以读取。如下图就是93C46与单片机的接法。图2-5 93C46与单片机的接法芯片的1,2,3,4脚分别接单片机的17(RD),16(WR),15(T1),14(T0)。有关这块芯片的应用会在元器件的介绍中详细介绍它的工作原理,这里不再详细介绍。2.2.4 主要外围电路(振荡电路)电路里采用的是12MHz的晶振,则周期为:T=1/(12*106)Hz*1/12=1us有关电路如下图:图2-6 振荡电路设计图 XTAL1(19脚):接外部晶体的一端。在片内它是振荡电路反向放大器的输入端。在采用外部时钟,对于HMOS单片机,该端引脚必须接地,对于CHMOS单片机,此引脚作为驱动端2。XTAL2(18脚):接外部晶体的另一端。在片内它是一个振荡电路反向放大电路的输出端,振荡电路的频率是晶体振荡频率。若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬空2。这部分的电路十分简单,Y1是外接在18、19脚的一个振荡器。C1、C2瓷片电容与Y1振荡器组成振荡电路。2.3单片机及主要元器件介绍2.3.1 89C51单片机这次方案设计的89C51单片机采用的是PDIP的封装形式,PDIP是塑料双列直插式封装。PDIP封装具有很多特点,适合在PCB(印刷电路板)上穿孔焊接,操作方便。比TO型封装易于对PCB布线,芯片面积与封装面积之间的比值较大,故体积也较大。89C51是一块高性能单片机,因为受到引脚数目的限制,所以不少引脚具有第二功能3,下面说明这些引脚的名称和功能。89C51引脚图如图所示图2-7 89C51引脚图89C51引脚的功能分类:(1)基本引脚:电源VCC、VSS,时钟XTAL2、XTAL1和复位RST3。(2)并行扩展总线:数据总线P0口,地址总线P0口(低8位)、P2口(高8位)控制总线ALE、PSEN、EA3。(3)串行通信总线:发送口TXD和接收口RXD3。(4)I/O端:P1口为普通I/O口,P3口可复用作普通I/O口,P0、P2不作并行口时也可作普通I/O口3。ATMEL 89系列单片机是以8031核构成的,所以,它和8031系列单片机是兼容的系列。这个系列对于以8031为基础的系统来说,是十分容易进行取代和构造的3。89C51与80C51完全兼容,内部框图如图:图2-8 MCS51系列单片机内部结构原理图2.3.2 BCD七段译码器七段字形译码器的功能是把“8421”二十进制代码成对应于数码管的七个字段信号,驱动数码管显示出相应的十进制数码。译码器的每一个输出端代表了输入变量相应的一个最小值,而任何逻辑函数又都可以变换成最小项之和的表达式,因此可以利用译码器和门电路来实现任何逻辑函数4。如图7448的功能表。表21 7448的功能表2.3.3 74138集成译码器表2-2 74LS138功能表 图2-9 74LS138逻辑图该译码器为3线8线译码器,由逻辑图可知,该译码器有3个输入A,B,C,它们共有8种状态的组合,即译8个输出信号Y0Y7。较其他译码器,该译码器的主要特点是,设置了G1、G2A和G2B3个使能输入端。由功能表可知,对于正逻辑,当G1,且G2A和G2B均为0时,译码器处于工作状态。2.3.4 数码管数码管在工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间,还可以用来显示比赛的比分等,具有显示醒目、直观的优点。数码管分为七段来显示,它是由A、B、C、D、E、F、G七段组成,所以人们称它为七段数码管。数码管又可以分为共阳极和共阴极,它的显示方式又有静态和动态显示,来满足不同的实际情况。图2-10 七段LED字形码2.3.5 93C46 表2-3 93C46引脚作用表CS芯片选择SK时钟DI串行数据输入DO串行数据输出GND接地ORG选择位VCC+5V图2-11 93C46逻辑图表2-4 93C46串行EEPROM指令格式选择指令起始位操作数地址数据64*16128*864*16128*8读READ110A5A0A6A0清除ERASE111A5A0A6A0写WRITE101A5A0A6A0D15D0D7D0写使能EWEN1001111写禁止EWDS1000000芯片清除ERAL1001010芯片写入WRAL1000101D15D0D7D0说明:(1)64*16和128*8分别是指ORG为HI和LO时的情况。(2)读(READ):当下达10指令后,将使地址()的数据在SK=HI时由DO输出。(3)写(WRITE):在写数据前,必须先下达写使能(EWEN)指令,然后再下达01指令后,当SK为HI时,会把数据嘛写入指定的地址();而DO=0时,表示还在进行烧写,烧写完成后,DO会转为HI;写入动作完成后,必须再下达写禁止(EWDS)指令。(4)清除(ERASE):下达清除指令11,会将地址()的数据清除。(5)写使能(EWEN):下达0011指令后,才可进行写入(WRITE)的动作。(6)写禁止(EWDS):下达0000指令后,才可重复进行写入(WRITE)的动作。(7)芯片清除(ERAL):下达0010指令后,全部禁止。(8)芯片写入(WRAL):下达0001指令后,全部写入“0”。第3节 电子锁的软件设计软件的设计主要是对程序的设计。要求密码在断电后也不消失,在设计时把密码存在EEPROM93C46中,程序主要包括显示和键盘程序,再加上延时等一些子程序,就是一个完整的程序。接下来详细介绍下部分程序。3.1 电子锁的主程序设计 (1)电子锁的流程图 开始初始化 93C46是否存密码 Y N在TABEL中取密码放在30H-35H,清除显示器存放地址36H-3BH取密码在30H-35H调用显示是否按键 N Y消除抖动是否按A,B Y 调用显示 N是否按#显示清0存入36H-3BH Y是否按C N N是否按D是否按* N N放开否比较密码 Y Y Y设置密码显示密码开门写入93C46 N 图3-1 主程序流程图 (2) 电子锁的主要程序READ EQU 0 ;93C46读 WRITE EQU 2 ;93C46写 EWEN EQU 4 ;93C46写使能 EWDS EQU 6 ;93C46写禁止 FLG0 EQU 21H.0 ;标志位 CS EQU P3.7 ;93C46引脚 CLK EQU P3.6 DI EQU P3.5 DO EQU P3.4 ADR46 EQU 20H ;93C46的地址RAM ORG 00H MOV SP,#60H ;堆栈 SETB P2.0 MOV P3,#10H ;清除93C46 CS=0,CLK=0,DI=0,DO=1 MOV ADR46,#00H ;读93C46 00地址的数据 MOV A,#READ ;93C46读 LCALL TO9346 MOV 3EH,3CH ;存入(3EH) MOV A,3EH ;判断是否为01,不是则表示未存有密码 CJNE A,#01H,A2 SETB FLG0 ;是则设标志位为1,表示存有密码 MOV R2,#03H ;将93C46 01,02,03地址的六个数字存入30H-35H MOV R0,#35H MOV ADR46,#01 A1:MOV A,#READ ;93C46读 LCALL TO9346 MOV R0,3CH DEC R0MOV R0,3DHDEC R0 INC ADR46 DJNZ R2,A1 LJMP START A2:CLR FLG0 ;设标志位为0 MOV R7,#10H ;TABLE的密码指针值 MOV R6,#06 ;六个密码 MOV R1,#35H ;密码存放地址L1: MOV A,R7 ;到TABLE取密码 MOV DPTR,#TABLE MOVC A,A+DPTR MOV R1,A ;存入30H-35H的RAM地址 DEC R1 ;下一个密码地址 INC R7 ;取下一个密码 DJNZ R6,L1START:SETB P2.0 ; P2.0置1 MOV R4,#06 ;清除显示器存放地址36H-3BH MOV R0,#36HCLEAR:MOV R0,#00H INC R0 DJNZ R4,CLEAR L2:MOV R3,#0F7H ;扫描指针初值(P13=0) MOV R1,#0 ;取码指针 L3:MOV A,R3 ;扫描指针载入累加器 MOV P1,A ;输出至P1扫描 MOV A,P1 ;读入P1值 MOV R4,A ;存入R4,以判断按钮是否放开 SETB C MOV R5,#04H ;扫描P14-P17 L4:RLC A JNC KEYIN ;有按则C=0 INC R1 ;没按则指针加1 DJNZ R5,L4 LCALL DISP ;调用显示子程序 MOV A,R3 ;载入扫描指针 SETB C RRC A ;扫描下一行 MOV R3,A ;存入扫描指针寄存器 JC L3 LJMP L2KEYIN: MOV A,R1 XRL A,#0BH ;是否按“C” JZ X3 ;是则显示密码 MOV A,R1 XRL A,#0FH ;是否按“D” JZ X4 ;是则比较密码,正确则开门 MOV R7,#10 ;消除抖动 D1: MOV R6,#248 DJNZ R6,$ DJNZ R7,D1D2: MOV A,P1 XRL A,R4 ;按钮是否放开? JZ D2 MOV A,R1 ;载入按键指针 MOV DPTR,#TABLE MOVC A,A+DPTR MOV R7,A ;取到按键值暂存R7 XRL A,#0AH ;是否按“*” JZ SET0 ;是则设定密码 MOV A,R7 XRL A,#0BH ;是否按“#” JZ START ;是则清除 MOV A,R7 XRL A,#0CH ;“A”未设定 JZ L2 MOV A,R7 XRL A,#0DH ;“B”未设定 JZ L2 MOV A,R7 ;不是则载入按键值 XCH A,36H XCH A,37H XCH A,38H XCH A,39H XCH A,3AH XCH A,3BH CALL DISP ;调用显示子程序 LJMP L2 X3:LJMP DISP2 X4:LJMP COMP DISP:MOV R0,#3BH ;按键显示器地址指针 DISP1:MOV A,R0 ;载入D6显示值 ADD A,#50H ;加上D6 74LS138的扫描值 MOV P0,A ;输出至P0显示D6 LCALL DELAY ;扫描延时 DEC R0 MOV A,R0 ADD A,#40H MOV P0,A LCALL DELAY DEC R0 MOV A,R0 ADD A,#30H MOV P0,A LCALL DELAY DEC R0 MOV A,R0 ADD A,#20H MOV P0,A LCALL DELAY DEC R0 MOV A,R0 ADD A,#10H MOV P0,A LCALL DELAY DEC R0 MOV A,R0 ADD A,#00H MOV P0,A LCALL DELAY RET SET0:MOV R2,#06H ;六个密码 MOV R0,#36H ;按键显示地址 MOV R1,#30H ;密码存放地址 E1:MOVX A,R0 XCH A,R1 ;显示值存入密码地址 INC R0 INC R1 DJNZ R2,E1 JB FLG0,E3 ;判断标志位是否为1,是则跳至E3 MOV ADR46,#00 ;不是则93C46 00地址写入01H MOV A,#EWEN LCALL TO9346 MOV 3CH,#01H MOV 3DH,#00H MOV A,#WRITE LCALL TO9346 MOV A,#EWDS LCALL TO9346 E3:MOV R0,#35H ;将30H-35H密码值存入93C46 01-03地址 MOV ADR46,#01H MOV R2,#03 E4:MOV A,#EWEN ;93C46写使能 LCALL TO9346 MOV 3CH,R0 ;密码存入3CH DEC R0 ;下一个密码存入3DH MOV 3DH,R0 MOV A,#WRITE ;93C46写 LCALL TO9346 MOV A,#EWDS ;93C46写禁止 LCALL TO9346 DEC R0 ;写入下一组密码 INC ADR46 DJNZ R2,E4 LCALL DELAY ;延时 E2:LJMP START COMP:MOV R1,#3BH ;按键显示地址 MOV R0,#35H ;密码存放地址 MOV R2,#06H C1:MOVX A,R1 ;按键值与密码值比较 XRL A,R0 JNZ C3 ;不同则清除 DEC R1 ;相同则比较下一个码 DEC R0 DJNZ R2,C1 MOV A,#0FEH ;令锁动作 CLR P2.0 MOV R2,#200 ;延时 C2:MOV R6,#248 DJNZ R6,$ DJNZ R2,C2 C3:LJMP STARTDISP2: MOV R0,#35H ;密码存放地址 LCALL DISP1 ;调用显示子程序 MOV A,P1 ;“C”是否放开,没有则继续显示 XRL A,R4 JZ DISP2 LCALL DELAY ;是则清除 LJMP START DELAY:MOV R7,#03 ;显示器扫描时间 D3:MOV R6,#248 DJNZ R6,$ DJNZ R7,D3 RETTO9346:SETB CS ;93C46 CS=1 SETB DI ;DI=1 SETB CLK ;CLK=1 LCALL DELAY1 ;启动位 CLR CLK ;CLK=0 LCALL DELAY2 MOV DPTR,#JPTBL46 JMP A+DPTR ;依ACC值跳至相关地址JPTBL46:AJMP SREAD ;读 AJMP SWRITE ;写 AJMP SEWEN ;写使能 AJMP SEWDS ;写禁止 SREAD:MOV A,ADR46 ;载入93C46地址 ADD A,#80H ;10操作码 LCALL SDT46 ;读入地址DI LCALL RDT46 ;读出数据DO,存入3CH MOV 3CH,A LCALL RDT46 ;读出数据DO,存入3DH MOV 3DH,A LJMP EX9346 SWRITE:MOV A,ADR46 ;载入93C46地址 ADD A,#40H ;01操作码 LCALL SDT46 ;读入地址 MOV A,3CH ;写入3CH的数据 LCALL SDT46 MOV A,3DH ;写入3DH的数据 LCALL SDT46 LJMP EX9346 SEWEN:MOV A,#30H ;写使能操作码0011 LCALL SDT46 LJMP EX9346 SEWDS:CLR A ;写禁止操作码0000 LCALL SDT46 EX9346:CLR CS ;CS=0 RET SDT46:MOV 22H,#8 ;左移8次 SD1:RLC A MOV DI,C ;从DI读入 SETB CLK LCALL DELAY1 CLR CLK LCALL DELAY2 DJNZ 22H,SD1 RET RDT46:MOV 22H,#8 ;左移8次 RD1:SETB CLK LCALL DELAY1 CLR CLK LCALL DELAY2 MOV C,DO ;从DO读出 RLC A DJNZ 22H,RD1 RET DELAY1:MOV R7,#0FH DJNZ R7,$ RET DELAY2:MOV R7,#8FH DJNZ R7,$ RET TABLE:DB 01H,02H,03H,0CH ;键盘值 DB 04H,05H,06H,0DH DB 07H,08H,09H,0EH DB 0AH,00H,0BH,0FH DB 02H,02H,01H,05H,08H,02H ;内定密码值 END3.2键盘程序设计键盘是通过接口电路与单片机的P1口相连。CPU可以采用查询或是中断方式了解有无键输入并查找是哪个键被按下,我在设计时是使用查询的方式,这样理解起来更加方便,通过指令执行该键的功能程序,执行完又返回到原始状态5。 键输入接口与软件之间的主要问题是如何消除键的抖动,我们可以采用两中方法去键的抖动,一种是硬件 ,一种是软件。硬件上采用的是键输出端加R-S触发器或单稳态电路构成去抖动电路。软件上采用的措施是:在检测到有键按下时,执行一个延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持为闭合状态电平,则确认键处于闭合状态,从而去除了抖动的影响5。本次设计同样也运用了消除键抖动: MOV R7,#10 ;消除抖动 D1:MOV R6,#248 DJNZ R6,$ DJNZ R7,D1 D2:MOV A,P1 XRL A,R4 ;按钮是否放开 JZ D2而任何一组按键或键盘都要通过I/O口线查询按键的开关状态。根据不同的键盘结构,采用不同的编码方法。但无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值。 MOV DPTR,#TABLEMOVC A, A+DPTR 0102030C0405060D0708090E0A000B0F如下图就是键盘的编码设计:表3-1 键盘设计 表3-2 编码设计123A456B789C*0#D因此,一个完善的键盘控制程序应能完成下述任务:(1)测有无键按下;(2)有键按下后,在无硬件去抖动电路的情况下,应用软件延时方法除去抖动影响;(3)有可靠的逻辑持续处理办法,如N键锁定,即只处理一个键,其间任何按下又松开的键不产生影响,不管一次按键持续有多长时间,仅执行一次按键功能程序;(4)确定的键号以满足指定的要求。3.3显示程序设计显示是通过数码管完成的,而它可分为静态和动态两种,设计中是采用了动态显示。这种工作方式是分时轮流选通数码管的公共端,使得各个数码管轮流导通,即各数码管是由脉冲电流导电的(导通时间一般为1ms)。当所有数码管依次显示一遍后,软件控制循环,使每位显示器分时点亮。这种方式不但能提高数码管的发光效率,并且由于各个数码管的字段线是并联使用的,因而大大简化了硬件电路。各个数码管虽然是分时轮流通电,但由于发光数码管具有余辉特性及人眼具有视觉暂留作有,所以适当选取循环扫描频率时,看上去所有数码管是同时点亮的,察觉不出有闪耀现象。不过对于这种方式数码管不宜太多,否则每个数码管所分配到实际导通的时间会太少,使得亮度不足。通常采用动态显示字形码输出及位选信号输出应经过驱动后再与数码管相连7。在设计中是通过LS138芯片与数码管间的联系来完成载入和显示的,先载入显示值,在通过LS138扫描输出到P0口显示,在这里举D6示值为例子,程序如下: MOV A,3BH ;载入D6的显示值 ADD A,#50H ;加上D1 74L38扫描 MOV P0,A ;输出至P0显示D1 LCALL DELAY ;扫描延时其他的显示值都是同样的道理,按照这样的程序显示出来的。上面所讲到的程序在附件里都有详细的说明。3.4 93C46的程序设计有关这块集成块在运用的一些注意情况在上面已经介绍得很详细了,这里不再介绍,下面就一个子程序说明一下: 93C46的读操作: SREAD:MOV A,ADR46 ;载入93C46地

温馨提示

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

评论

0/150

提交评论