MPASM 02.15 Released EXPT11B.ASM 3-10-2002 18:49:51 PAGE 1 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00001 ;Expt11b.asm 00002 ;Project: Whistle-On Whistle-Off 00003 ;List P = 16F84 00004 ;#include 00005 ;__CONFIG 1Bh    ;_CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC 00006 00007 0000 00008 ORG 00 ;Start of memory for program. 0000 1683 00009 SETUP BSF 03,5 ;Go to Bank 1 0001 0186 00010 CLRF 06 ;Make all port B output 0002 3002 00011 MOVLW 02 ;Load W with 0000 0010 0003 0085 00012 MOVWF 05 ;Make RA1 input 0004 1283 00013 BCF 03,5 ;Go to Bank 0 - the program memory area. 0005 019F 00014 CLRF 1F ;Clear flag file 0006 0185 00015 CLRF 05 ;Clear the display 0007 0186 00016 CLRF 06 ;Clear the display 0008 2824 00017 GOTO MAIN 00018 0009 0000 00019 DELAY NOP ; Create 1mS delay 000A 0B9A 00020 DECFSZ 1A,1 000B 2809 00021 GOTO DELAY 000C 0008 00022 RETURN 00023 000D 3040 00024 DELAY1 MOVLW 40H 000E 009B 00025 MOVWF 1B 000F 0B9A 00026 DELAYA DECFSZ 1A,1 0010 280F 00027 GOTO DELAYA 0011 0B9B 00028 DECFSZ 1B,1 0012 280F 00029 GOTO DELAYA 0013 0008 00030 RETURN 00031 0014 101F 00032 LOOK BCF 1F,0 ;Clear the "whistle" flag 0015 3040 00033 MOVLW 040H ;Number of loops 0016 008E 00034 MOVWF 0E ;Loops file 0017 018C 00035 CLRF 0CH ;Holds the LOW count 0018 2009 00036 LOOK1 CALL DELAY 0019 1885 00037 BTFSC 05,1 001A 281C 00038 GOTO LOOK2 001B 0A8C 00039 INCF 0CH,1 ;LOW detected 001C 0B8E 00040 LOOK2 DECFSZ 0E,1 001D 2818 00041 GOTO LOOK1 001E 3018 00042 MOVLW 18H 001F 020C 00043 SUBWF 0CH,0 0020 1C03 00044 BTFSS 03,0 ;Test Carry flag. If set C=more than 10h 0021 0008 00045 RETURN 0022 141F 00046 BSF 1F,0 ;Whistle detected 0023 0008 00047 RETURN 00048 0024 2014 00049 MAIN CALL LOOK 0025 1C1F 00050 BTFSS 1F,0 0026 2824 00051 GOTO MAIN ;No whistle 0027 3004 00052 MOVLW 04 ;Whistle - turn on display 0028 0085 00053 MOVWF 05 MPASM 02.15 Released EXPT11B.ASM 3-10-2002 18:49:51 PAGE 2 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0029 200D 00054 MAIN1 CALL DELAY1 002A 2014 00055 CALL LOOK 002B 181F 00056 BTFSC 1F,0 002C 2829 00057 GOTO MAIN1 ;whistle 002D 200D 00058 MAIN2 CALL DELAY1 002E 2014 00059 CALL LOOK 002F 1C1F 00060 BTFSS 1F,0 0030 282D 00061 GOTO MAIN2 ;No whistle 0031 3000 00062 MOVLW 00 ;Whistle - turn off display 0032 0085 00063 MOVWF 05 0033 200D 00064 MAIN3 CALL DELAY1 0034 2014 00065 CALL LOOK 0035 181F 00066 BTFSC 1F,0 0036 2833 00067 GOTO MAIN3 ;whistle 0037 2824 00068 GOTO MAIN ;no whistle 00069 00070 END ;Tells assembler end of program MPASM 02.15 Released EXPT11B.ASM 3-10-2002 18:49:51 PAGE 3 SYMBOL TABLE LABEL VALUE DELAY 00000009 DELAY1 0000000D DELAYA 0000000F LOOK 00000014 LOOK1 00000018 LOOK2 0000001C MAIN 00000024 MAIN1 00000029 MAIN2 0000002D MAIN3 00000033 SETUP 00000000 __16F84 00000001 MEMORY USAGE MAP ('X' = Used, '-' = Unused) 0000 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXX-------- All other memory blocks unused. Program Memory Words Used: 56 Program Memory Words Free: 968 Errors : 0 Warnings : 0 reported, 0 suppressed Messages : 0 reported, 0 suppressed