在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2855|回复: 2

[求助]周立功7289的编程

[复制链接]
发表于 2005-4-1 14:45:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
  我用51系列的单片机,用周立功7289来作键盘显示电路.但我的程序只能让LED显示我发送去的指令,无法让LED显示所按的键的编号.
  一下时我用的程序,求高手指点.

BIT_CNT    DATA    30H
      DELAY1     DATA    31H
     DECIMAL    DATA    32H
      REC_BUF    DATA    20H
     SEND_BUF   DATA    21H
DELAY      DATA    22H
      CS         BIT     P0.1
     CLK        BIT     P0.2
      DIO        BIT     P0.3
     KEY        BIT     P0.4

ORG    0000H
     AJMP   RESET

ORG    0060H
RESET:

  SETB   CS
   SETB  KEY
   SETB  DIO
MOV  DELAY,#25              ;延时
MOV  DELAY1,#100
RST_DELAY1:

     DJNZ  DELAY1,RST_DELAY1
     DJNZ  DELAY,RST_DELAY1
     MOV  SEND_BUF,#10100100B       ;初始化
     CALL  SEND
     SETB  CS
MAIN_LP:

     JB   KEY,MAIN_LP
     MOV   SEND_BUF,#00010101B     ;有按键时,读键盘
     CALL   SEND
     CALL   RECEIVE                   ;
     SETB  CS
     MOV   B,#10                   ;10进制转换
     MOV   A,REC_BUF
     DIV   AB
     MOV   DECIMAL,A
     MOV   SEND_BUF,#10100001B       ;左移2次
     CALL   SEND
     SETB   CS
     MOV   SEND_BUF,#10100001B
     CALL   SEND
     SETB   CS
     MOV   SEND_BUF,#10000001B       ;下载数据并译码
     CALL   SEND
     MOV   SEND_BUF,DECIMAL          ;发送十位显示
    CALL   SEND
     SETB   CS
     MOV   SEND_BUF,#10000000B       ;下载数据并译码
     CALL   SEND
    MOV   SEND_BUF,B                ;发送个位显示
     CALL   SEND
     SETB   CS
   
MAIN_LP2:

     JNB   KEY,MAIN_LP2               ;等按键松开
     AJMP   MAIN_LP

;-----------------------------------------
;发送一个字节到zlg7289A,高位在前.
;-----------------------------------------
SEND:

     MOV   BIT_CNT,#8                ;发送8位
     CLR   CS
     CALL   LONG_DELAY                 ;延时50us

SEND_LP:
     MOV   A,SEND_BUF
     RLC   A
     MOV   SEND_BUF,A
     MOV   DIO,C
     NOP
     NOP
     SETB   CLK
     CALL   SHORT_DELAY             ;延时10us
     CLR   CLK
     CALL   SHORT_DELAY             ;延时10us
     DJNZ   BIT_CNT,SEND_LP
     CLR   DIO
RET
;-------------------------------------
;接受一个字节从zlg7289A,高位在前.
;-------------------------------------
RECEIVE:

    MOV   BIT_CNT,#8               ;发送8位
SETB   DIO
CALL   LONG_DELAY               ;延时50us
RECEIVE_LP:

SETB   CLK
     CALL   SHORT_DELAY              ;延时10us
     MOV   C,DIO                    
     MOV   A,REC_BUF
     RLC   A
     MOV   REC_BUF,A
     CLR   CLK
     CALL   SHORT_DELAY              ;延时10us
     DJNZ   BIT_CNT,RECEIVE_LP
     CLR   DIO
     RET
LONG_DELAY:
     
MOV   DELAY,#25
DJNZ   DELAY,$
     RET
SHORT_DELAY:

     MOV   DELAY,#5
     DJNZ   DELAY,$
     RET
发表于 2015-11-22 22:18:46 | 显示全部楼层
周立功7289的编程
发表于 2015-12-12 23:50:49 | 显示全部楼层
謝謝分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 22:06 , Processed in 0.016574 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表