找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2703|回复: 0
打印 上一主题 下一主题
收起左侧

HD7279A键盘检测汇编程序

[复制链接]
跳转到指定楼层
楼主
ID:262 发表于 2014-6-10 04:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ORG  0000H
   lJMP  START                  ;检测到按键并显示
   ORG  0100H
BIT_COUNT    DATA   07FH
TIMER       DATA   07EH
TIMER1      DATA   07DH
TEN       DATA   07CH
DATA_IN     DATA   020H
DATA_OUT    DATA   021H
DAT   BIT P1.2     ;HD7279A DATA P1.2
KEY   BIT P1.3    ;HD7279A KEY P1.3
CS  BIT P1.0   ;HD7279A CS P1.4
CLK    BIT P1.1     ;HD7279A CLK P1.5
START:   MOV  SP,#2FH    ;
          MOV TIMER,#50  ; 25MS
START_DELAY: MOV  TIMER1,#255
START_DELAY1:DJNZ TIMER1,START_DELAY1
  DJNZ TIMER,START_DELAY
  MOV  P1,#70H
MOV 29H,#0A4H ; ( )复位
   CALL SEND
SETB CS   ; CS
MAIN:    mov  c,p1.4
       JC     MAIN    ;
MOV 29H,#15H ;
  CALL SEND
  CALL RECEIVE
DISP:MOV 29H,#0C8H
         ACALL SEND
     MOV 29H,28H
     ACALL SEND
     SJMP DISP
SEND:CLR P1.7
     MOV R3,#08H
     ACALL LONG
SEND_LOOP:MOV C,29H.7
          MOV P1.6,C
          SETB P1.5
          ACALL SHORT
          CLR P1.5
          ACALL SHORT
          MOV A,29H
          RL A
          MOV 29H,A
          DJNZ R3,SEND_LOOP
          CLR P1.6
          RET
;*******************************************
;  HD7279
;*******************************************
RECEIVE: MOV BIT_COUNT,#8   ; =8
SETB DAT   ; P1.2(DATA)

  CALL LONG  ;
RECEIVE_LOOP:  SETB CLK   ; CLK
   CALL SHORT  ;
MOV A,28H  ;
  RL A
  MOV 28H,A
   MOV C,DAT   ;
  MOV 28H.0,C
CLR CLK   ; CLK
  CALL SHORT
  DJNZ BIT_COUNT,RECEIVE_LOOP; 8
CLR DAT  ; DAT ( )
  RET
;*******************************************
;*******************************************
LONG: MOV  TIMER,#25    ; 50uS
DELAY_LOOP: DJNZ  TIMER,DELAY_LOOP
   RET
SHORT: MOV  TIMER,#4    ; 8uS
SHORT_LP: DJNZ TIMER,SHORT_LP
   RET
   END
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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