找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2293|回复: 0
收起左侧

两个51单片机串行通信实现电子密码锁设计 附汇编源码论文与电路等资料

[复制链接]
ID:290170 发表于 2018-4-2 09:38 | 显示全部楼层 |阅读模式
资料有电路图 程序 说明操作和完整的设计论文
0.png
所有资料51hei提供下载:
基于两个单片机串行通信的电子密码锁资料.rar (4.41 MB, 下载次数: 33)



单片机作为微型计算机一个很重要的分支,应用广泛,发展迅速,已对很多领域产生了重大影响。单片机不仅在控制外围器件中有着重要的用途,其通信功能在现代控制系统中越来越显得重要。这里所说的通信是指计算机与外界的信息交换。因此,通信既包括计算机与外部设备之间,也包括计算机与计算机之间的信息交换。由于串行通信是在一根传输线上一位一位地传送信息,所以传输线少,特别适合远距离传输。串行通信技术是单片机系统开发中常用的技术之一,相对于并行通信,串行通信硬件代价低,结构简单,传输距离也比并行通行长的多。
电子密码锁的内、外部分的连接通信正可应用单片机之间的串口通信实现。外部单片机可负责外部键盘号码的采集和显示,而内部单片机主要负责密码的设置、显示、判断发送来的外部键盘输入码是否是密码和实现语音播放功能的实现。其系统框图如下:
0.jpg
    系统工作过程如下:
    加电后,显示“000000”。
    在外部键盘输入密码,数码管显示相应数字。
    输入过程中,如果不小心出现输入错误,可按“取消”键清除屏幕,取消此次输入,

0.jpg
此时显示“000000”。再次输入需要输入所有6位密码。
    在内部数码管显示外部键盘输入密码,并与预设密码比较,发出密码正确与否的提示音,密码正确的话,放光二极管点亮,表明密码锁打开。
    管理员可以使用内部键盘察看当前密码、修改密码、同时使用内部键盘也可以打开电子密码锁。也会有相应提示音提示操作。
在内、外单片机部分分别由键盘、数码显示电路。外部用4×3键盘组成0~9数字键以及“确认”、“取消”功能键。用6为7段数码管组成显示电路提示信息,方便用户可以看到显示自己输入的数字。在内部用4×4键盘组成0~9数字键以及“确认”、“取消”、“显示密码”、“设置密码”功能键。用6为7段数码管组成显示键盘密码或内部当前密码。内部单片机控制语音芯片发出相应提示音,此外要想实现此功能,要先用单片机控制好语音芯片将准备好的提示音录入语音芯片中。

单片机源程序如下(汇编语言):
  1. ORG   0000H

  2. ajmp  main
  3. org   0030h

  4. main:  MOV   SP,#70
  5.       MOV   SCON,#50H
  6.       MOV   TMOD,#20H
  7.       MOV   TH1,#0F3H
  8.       SETB  TR1  
  9.       MOV   R7,#00H         ;延时
  10.       DJNZ  R7,$
  11.       MOV   R7,#10H         ;内定密码在TABLE的起始地址
  12.       MOV   R6,#06          ;内定6个密码
  13.       MOV   R1,#35H         ;6个密码分别存入35H~30H地址
  14. L1:   MOV   A,R7            ;内定密码取码指针
  15.       MOV   DPTR,#TABLE     ;数据指针指到TABLE
  16.       MOVC  A,@A+DPTR       ;至TABLE取码
  17.       MOV   @R1,A           ;存入35H~30H地址
  18.       DEC   R1              ;存下一个地址
  19.       INC   R7              ;取码指针加1
  20.       DJNZ  R6,L1
  21. START:ORL  P3,#0FFH        ;清除P2
  22.       SETB P3.2
  23.       MOV   R4,#06          ;清除显示器存放地址40H~45H的地址
  24.       MOV   R0,#40H
  25. CLEAR:MOV   @R0,#00H
  26.       INC   R0
  27.       DJNZ  R4,CLEAR

  28. L2:   MOV   R3,#0F7H        ;扫描指针初值
  29.       MOV   R1,#00H         ;键盘取码指针
  30. L3:   MOV   A,R3
  31.       MOV   P1,A
  32.       MOV   A,P1
  33.       MOV   R4,A
  34.       SETB  C
  35.       MOV   R5,#04H
  36. L4:   RLC   A
  37.       JNC   KEYIN
  38.       INC   R1
  39.       DJNZ  R5,L4
  40.       CALL  DISP
  41.       MOV   A,R3
  42.       SETB  C
  43.       RRC   A
  44.       MOV   R3,A
  45.       JC    L3
  46.       lcall LLL
  47.       JMP   L2
  48. KEYIN:MOV   A,R1
  49.       XRL   A,#0EH
  50.       JZ    X3
  51.       MOV   A,R1
  52.       XRL   A,#0FH
  53.       JZ    X4
  54.       MOV   R7,#10
  55. D1:   MOV   R6,#248
  56.       DJNZ  R6,$
  57.       DJNZ  R7,D1
  58. D2:   MOV   A,P1
  59.       XRL   A,R4
  60.       JZ    D2
  61.       MOV   A,R1
  62.       MOV   DPTR,#TABLE
  63.       MOV   R7,A
  64.       XRL   A,#0AH
  65.       JZ    SET0
  66.       MOV   A,R7
  67.       XRL   A,#0BH
  68.       JZ    START
  69.       MOV   A,R7
  70.       XRL   A,#0CH
  71.       JZ    L2
  72.       MOV   A,R7
  73.       XRL   A,#0DH
  74.       JZ    L2
  75.       MOV   A,R7
  76.       XCH   A,40H
  77.       XCH   A,41H
  78.       XCH   A,42H
  79.       XCH   A,43H
  80.       XCH   A,44H
  81.       XCH   A,45H
  82.       CALL  DISP
  83.       JMP   L2
  84. X3:   JMP   DISP2
  85. X4:   JMP   COMP
  86. DISP: MOV   R0,#45H
  87. DISP1:MOV   A,@R0
  88.       ADD   A,#50H         ;显示D6
  89.       MOV   P0,A
  90.       CALL  DELAY
  91.       DEC   R0
  92.       MOV   A,@R0          ;D5数据值加上74138扫描值
  93.       ADD   A,#40H         ;显示D5
  94.       MOV   P0,A
  95.       CALL  DELAY
  96.       DEC   R0
  97.       MOV   A,@R0          ;D4数据值加上74138扫描值
  98.       ADD   A,#30H         ;显示D4
  99.       MOV   P0,A           ;扫描延时
  100.       CALL  DELAY
  101.       DEC   R0
  102.       MOV   A,@R0          ;D3数据值加上74138扫描值
  103.       ADD   A,#20H         ;显示D3
  104.       MOV   P0,A           ;扫描延时
  105.       CALL  DELAY
  106.       DEC   R0
  107.       MOV   A,@R0          ;D2数据值加上74138扫描值
  108.       ADD   A,#10H         ;显示D2
  109.       MOV   P0,A           ;扫描延时
  110.       CALL  DELAY
  111.       DEC   R0
  112.       MOV   A,@R0          ;D1数据值加上74138扫描值
  113.       ADD   A,#00H         ;显示D1
  114.       MOV   P0,A           ;扫描延时
  115.       CALL  DELAY
  116.       RET
  117. SET0: MOV   R2,#06H
  118.       MOV   R0,#40H
  119.       MOV   R1,#30H
  120. E1:   MOV   A,@R0
  121.       XCH   A,@R1
  122.       INC   R0
  123.       INC   R1
  124.       DJNZ  R2,E1
  125.       CALL  DELAY
  126. E2:   JMP   START
  127. COMP: MOV   R1,#45H
  128.       MOV   R0,#35H
  129.       MOV   R2,#06H
  130. C1:   MOV   A,@R1
  131.       XRL   A,@R0
  132.       JNZ   C3
  133.       DEC   R1
  134.       DEC   R0
  135.       DJNZ  R2,C1
  136.       CLR   P3.2
  137.       MOV   R2,#0FFH
  138. C2:   MOV   R6,#0FFH
  139.       DJNZ  R6,$
  140.       DJNZ  R2,C2
  141. C3:   JMP   START
  142. DISP2:
  143.       MOV   R0,#35H
  144.       CALL  DISP1
  145.       MOV   A,P1
  146.       XRL   A,R4
  147.       JZ    DISP2
  148.       CALL  DELAY
  149.       JMP   START
  150. DELAY:MOV   R7,#03
  151. D3:   MOV   R6,#248
  152.       DJNZ  R6,$
  153.       DJNZ  R7,D3
  154.       RET
  155. Lll:  JBC   RI,UART
  156.       call  disp
  157.       ret
  158. UART: MOV   A,SBUF
  159.       MOV   R7,A
  160.       XRL   A,#0AH
  161.       JZ    COMPQ
  162.       AJMP COMPA
  163. COMPQ: LJMP COMP

  164. COMPA: MOV   A,R7
  165.      XRL   A,#0BH
  166. ……………………

  167. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表