⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 93c46-0003.asm

📁 基于51的DS18B20_1Wire温度控制等C,ASM源程序
💻 ASM
字号:
;*******************************************************************
;*                                                                 *
;* ME500单片机开发系统演示程序 - 读写93C46                         *
;*                                                                 *
;* 8位数码管显示 1-8  (固定方式)                                   *
;*                                                                 *
;* 将演示数据先写入93C46芯片内,再将其数据逐个读出数码管显示。     *
;*                                                                 *
;* 版本: V1.0 (2006/11/20)                                        *
;* 作者: gguoqing (Email: gguoqing@willar.com)                    *
;* 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界) *
;* 邮箱: support@willar.com                                       *
;*                                                                 *
;*【版权】Copyright(C)伟纳电子 www.willar.com  All Rights Reserved *
;*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!       *
;*                                                                 *
;*******************************************************************

;             ORG=0  8位数据存储器结构

               CS	BIT	P3.4
               SK	BIT	P3.3
               DI	BIT	P3.5
               DO	BIT	P3.6
               addr    equ  20h
               indata  equ  21h
;=================================================
                   ORG  0000H
                   LJMP  MAIN
;=================================================
MAIN:              MOV   SP,#30H
                   CLR   P3.4
                   CLR   P3.3
                   SETB  P3.5
                   SETB  P3.6
                   LCALL EWEN
                   LCALL ERASE
                   CLR   A
                   MOV   20H,A
WRITE_LP:          MOV   A,20H
                   MOV   DPTR,#TABLE1
                   MOVC  A,@A+DPTR
                   MOV   R5,A
                   MOV   R7,20H
                   LCALL WRITE
                   INC   20H
                   MOV   A,20H
                   CLR   C
                   SUBB  A,#08H
                   JC    WRITE_LP
                   LCALL EWDS
                   MOV   R0,#40H
                   CLR   A
                   MOV   20H,A
MAIN_LP:           MOV   R7,20H
                   LCALL READ
                   MOV   A,R7
                   MOV   @R0,A
                   INC  R0
                   INC   20H
                   MOV  R4,20H
                   MOV   R7,#0FAH
                   LCALL DELAYMS
                   CJNE  R4,#08H,MAIN_LP

  LEDOUT1:         MOV  R0,#40H
                   MOV  R4,#08H
                   MOV  A,#7FH

  LEDOUT2:         MOV  P0,@R0
                   MOV  P2,A
                   INC  R0
                   RR   A
                   LCALL  Delay1ms
                   DJNZ  R4,LEDOUT2
                   MOV  P2,#0FFH           ;关闭显示
                   SJMP  LEDOUT1
;===========================================================
WRITE:             MOV   indata,R5
                   mov   b,r7
                   MOV   R5,b
                   MOV   R7,#40H
                   LCALL INOP
                   MOV   R7,indata
                   LCALL SHIN
                   CLR   P3.4
                   MOV   R7,#0AH
                   LJMP  DELAYMS
;==========================================================
READ :             mov  b,r7
                   MOV   R5,b

                   MOV   R7,#80H
                   LCALL INOP
                   LCALL SHOUT
                   CLR   P3.4
                   RET
;==========================================================
EWEN:              MOV   R5,#60H
                   CLR   A
                   MOV   R7,A
                   LCALL INOP
                   CLR   P3.4
                   RET
;===========================================================
EWDS:              CLR   A
                   MOV   R5,A
                   MOV   R7,A
                   LCALL INOP
                   CLR   P3.4
                   RET
;==========================================================
ERASE:             MOV   R5,#40H
                   CLR   A
                   MOV   R7,A
                   LCALL INOP
                   MOV   R7,#1EH
                   LCALL DELAYMS
                   CLR   P3.4
                   RET
;===========================================================
INOP:              CLR   P3.3
                   SETB  P3.5
                   SETB  P3.4
                   NOP
                   NOP
                   SETB  P3.3
                   NOP
                   NOP
                   CLR   P3.3
                   MOV   A,R7
                   RLC   A
                   MOV   P3.5,C
                   SETB  P3.3
                   RLC   A
                   CLR   P3.3
                   MOV   P3.5,C
                   SETB  P3.3
                   NOP
                   NOP
                   CLR   P3.3
                   MOV   A,R5
                   RLC   A
                   MOV   R5,A
                   CLR   A
                   MOV   R7,A
INOP_LP:           MOV   A,R5
                   RLC   A
                   MOV   P3.5,C
                   SETB  P3.3
                   MOV   A,R5
                   RLC   A
                   MOV   R5,A
                   CLR   P3.3
                   INC   R7
                   CJNE  R7,#07H,INOP_LP
                   SETB  P3.5
                   RET
;==========================================================
SHIN :             CLR   A
                   MOV   R6,A
                   MOV   A,R6
                   MOV   A,R7
SHIN_LP:           RLC   A
                   MOV   P3.5,C
                   SETB  P3.3
                   NOP
                   NOP
                   CLR   P3.3
                   INC   R6
                   CJNE  R6,#08H,SHIN_LP
                   SETB  P3.5
                   RET
;==========================================================
SHOUT:             CLR   A
                   MOV   R6,A
SHOUT_LP:          SETB  P3.3
                   NOP
                   NOP
                   CLR   P3.3
                   MOV   C,P3.6
                   RLC   A
                   INC   R6
                   CJNE  R6,#08H,SHOUT_LP
                   MOV   R7,A
                   RET
;===========================================================
DELAYMS:           MOV   A,R7
                   JZ    END_DLYMS
DLY_LP1:           MOV   R6,#0B9H
DLY_LP2:           NOP
                   NOP
                   NOP
                   DJNZ  R6,DLY_LP2
                   DJNZ  R7,DLY_LP1
END_DLYMS:         RET
;=============================================================
Delay4:                ;延时0.5S子程序
                  MOV  R5,#5
 DL0:             MOV r7,#200
 DL1:             MOV r6,#250
 DL2:             DJNZ R6,DL2
                  DJNZ R7,DL1
                  DJNZ R5,DL0
                  RET

DELAY1MS:
                  MOV r7,#6
 DL3:             MOV r6,#250
 DL4:             DJNZ R6,DL4
                  DJNZ R7,DL3
                  RET
;=============================================================
TABLE:		 DB  7EH,0BDH,0DBH,0E7H,0DBH,0BDH, 7EH,0FFH
;=============================================================
TABLE1:    DB  0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H
  END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -