部分程序代码:
;***************初始化******************************************
ORG 0000H ;
AJMP MAIN
ORG 001BH
AJMP TT
ORG 30H ;
MAIN:
MOV SP,#50H
MOV R4,#02H
;****************************************************************
AGAIN:LCALL LCD_INIT ;LCD初始化
MOV A,#10H ;发0X010 XXXXXXXXXX
ACALL ISDX
SETB SS ;关片选
ACALL YS50 ;50mS延时
ACALL YS50 ;50mS延时
LCALL LCD_INIT ;LCD初始化
LCALL LCD_INIT ;LCD初始化
MOV A,#80H
LCALL LCD_CMD
MOV DPTR,#TABLE11
LCALL WRITE
MOV A,#0C0H
LCALL LCD_CMD
MOV DPTR,#TABLE12
LCALL WRITE
LCALL DELAY500MS
LCALL LCD_INIT
LCALL DELAY500MS
DJNZ R4,AGAIN ;闪烁2次
MOV R4,#02H
;****************************************************************
LCALL LCD_INIT ;LCD初始化
MOV A,#80H
LCALL LCD_CMD
MOV DPTR,#TABLE21
LCALL WRITE
MOV A,#0C0H
LCALL LCD_CMD
MOV DPTR,#TABLE22
LCALL WRITE
LCALL DELAY500MS
LCALL DELAY500MS
LCALL DELAY500MS
LCALL DELAY500MS
;***************************************************************
QQ: LCALL LCD_INIT ;LCD初始化
MOV A,#80H
LCALL LCD_CMD
MOV DPTR,#TABLE31
LCALL WRITE
MOV A,#0C0H
LCALL LCD_CMD
MOV DPTR,#TABLE32
LCALL WRITE
mov a,#00h
mov a_bit,a
mov b_bit,a
mov c_bit,a
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV P0,#0FFH
CLR EA
MAII: SETB LED ;关指示灯
ACALL DSTOP ;ISD掉电
MAS0: MOV 3AH,#200
MAS1: JB AN,MAS0 ;等按AN键PLAY/REC
DJNZ 3AH,MAS1
ACALL UP ;ISD上电
MOV 20H,#00H ;ISD低位地址
MOV 21H,#00H ;ISD高位地址
JB PR,REC ;PR=1 录音
AJMP PLAY ;PR=0 放音
;****** SETREC 16位 ************************************************
;***** 从指定地址录音10100<X A9 A8 A7 A6 A5 A4 A3 A2 A1 A0> **********
REC:
MOV A,20H ;发地址 A7-A0
ACALL ISDX
MOV A,21H ;发地址 A9-A8
SETB ACC.7
CLR ACC.6
SETB ACC.5
CLR ACC.4
CLR ACC.3
ACALL ISDX
SETB SS ;关片选
;******* REC 8位 *****************************************************
;****** 从当前地址录音10110 <X A9 A8 A7 A6 A5 A4 A3 A2 A1 A0> *********
REC1: MOV 36H,#10
REC2: ACALL YS50 ;延时录音
DJNZ 36H,REC2
MOV A,#0C0H
LCALL LCD_CMD
MOV DPTR,#TABLE_REC ;显示REC
LCALL WRITE
CLR LED ;开指示灯
MOV A,#0B0H ;发 1011 0XXX
ACALL ISDX
LCALL stlop
;***************** SETPLAY 16位 ******************************
;******* 从指定地址放音11100 <X A9 A8 A7 A6 A5 A4 A3 A2 A1 A0>********
PLAY: JNB AN,PLAY ;等待AN=1
MOV A,20H ;发地址 A7-A0
ACALL ISDX
MOV A,21H ;发地址 A9-A8
SETB ACC.7
SETB ACC.6
SETB ACC.5
CLR ACC.4
CLR ACC.3
ACALL ISDX
SETB SS ;关片选
;******************** PLAY 8位 *****************************
;********** 从当前地址放音 11110<X A9 A8 A7 A6 A5 A4 A3 A2 A1 A0>*******
PLAY1:MOV A,#0C0H
LCALL LCD_CMD
MOV DPTR,#TABLE_PLAY ;显示PLAY
LCALL WRITE
MOV IP,#00001111B ;中断优先级设定
MOV TH1,#HIGH(65536-50000)
MOV TL1,#LOW(65536-50000)
SETB EA
SETB ET1
SETB TR1 ;开中断
CLR LED ;LED开指示灯
MOV A,#0F0H ;发 11110 XXXXXXXX
ACALL ISDX ;发 << SETPLAY >>
LCALL stlop
文章评论(0条评论)
登录后参与讨论