📄 93c46-0003.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 + -