You are on page 1of 7

INCLUDE reg_52.

pdf

STD EQU P3.0 ;DTMF OUTPUT Q3 Q2 Q1 Q0 EQU EQU EQU EQU P3.1 P3.2 P3.3 P3.4

RING

EQU

P3.5

DIS_A DIS_B DIS_C DIS_D DIS_E DIS_F DIS_G

EQU EQU EQU EQU EQU EQU EQU

P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6

DSEG ORG 20H

; This is internal data memory ; Bit adressable memory

DTMF: DS 1 D0 BIT DTMF.0 D1 D2 D3 CSEG BIT BIT BIT DTMF.1 DTMF.2 DTMF.3

; Code begins here

;---------==========----------==========---------=========--------; PROCESSOR INTERRUPT AND RESET VECTORS

;---------==========----------==========---------=========--------ORG 00H ; Reset

MOV SP,#60H MOV R2,#15H CALL DISP SETB STD ;Display - symbol on display ;Make STD pin as input

TOP:

JNB STD,$

;wait for new data

CALL READ MOV R2,DTMF CALL DISP JB STD,$ AJMP TOP

;Read Data

;Display Dialled Data ;Wait until the key is released ;Repeat the function

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; READ DTMF TONES

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% READ: MOV DTMF,#00H SETB Q0 SETB Q1 SETB Q2 SETB Q3 JNB Q0,VB1 SETB D0 VB1: JNB Q1,VB2

SETB D1 VB2: JNB Q2,VB3

SETB D2 VB3: JNB Q3,VB4

SETB D3 VB4: RET

;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 7 SEGMENT DISPLAY ROUTINE

;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DISP: CJNE R2,#00H,AAS1 CLR DIS_A CLR DIS_B CLR DIS_C CLR DIS_D CLR DIS_E CLR DIS_F SETB DIS_G RET AAS1: CJNE R2,#01H,AS2

CLR DIS_B CLR DIS_C SETB DIS_A SETB DIS_D SETB DIS_E SETB DIS_F SETB DIS_G

RET AS2: CJNE R2,#02H,AS3

CLR DIS_A CLR DIS_B CLR DIS_D CLR DIS_E CLR DIS_G SETB DIS_C SETB DIS_F RET AS3: CJNE R2,#03H,AS4

CLR DIS_A CLR DIS_B CLR DIS_C CLR DIS_D CLR DIS_G SETB DIS_E SETB DIS_F RET AS4: CJNE R2,#04H,AS5

CLR DIS_B CLR DIS_C CLR DIS_F CLR DIS_G SETB DIS_A SETB DIS_D SETB DIS_E

RET AS5: CJNE R2,#05H,AS6

CLR DIS_A CLR DIS_C CLR DIS_D CLR DIS_F CLR DIS_G SETB DIS_B SETB DIS_E RET AS6: CJNE R2,#06H,AS7

CLR DIS_A CLR DIS_C CLR DIS_D CLR DIS_E CLR DIS_F CLR DIS_G SETB DIS_B RET AS7: CJNE R2,#07H,AS8

CLR DIS_A CLR DIS_B CLR DIS_C SETB DIS_D SETB DIS_E SETB DIS_F SETB DIS_G

RET AS8: CJNE R2,#08H,AS9

CLR DIS_A CLR DIS_B CLR DIS_C CLR DIS_D CLR DIS_E CLR DIS_F CLR DIS_G RET AS9: CJNE R2,#09H,AS10

CLR DIS_A CLR DIS_B CLR DIS_C CLR DIS_D CLR DIS_F CLR DIS_G SETB DIS_E RET AS10: CJNE R2,#15H,AS11 ;symbol for -

SETB DIS_A SETB DIS_B SETB DIS_C SETB DIS_D SETB DIS_E SETB DIS_F CLR DIS_G

RET AS11: CJNE R2,#16H,AS12 SETB DIS_A SETB DIS_B SETB DIS_C SETB DIS_D SETB DIS_E SETB DIS_F SETB DIS_G RET AS12: RET ;********************************************************** END ;switch off all disp

You might also like