101213_16F883_EE_Test01.ASM


1
;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''  16 F883  '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
2
;''''''''''''''''''''''''''''''''''' 28.06.2010 '''''''''''''''''''''''''''''''''''''''''''''''''
3
;'''' PORTA 8-Bit Ausgang '''''''''BORTB 8-BIT Eingang '''''''''''''''''''''
4
;'' PORTC Bit 0-5 Ausgang Bit 6 (TX) -Eingang BIT7 (RX) -Eingang ''' 
5
;''''''''''''''''''''''''''''''100620 16F883  EUSART_TEST_01.asm '''''''''''''''''''''''''
6
list p=16F883
7
#include <p16F883.inc>
8
9
__config _CONFIG1, _DEBUG_ON & _LVP_OFF &_FCMEN_OFF  &_IESO_OFF &_BOR_OFF & _CPD_OFF & _CP_OFF &_MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
10
__config _CONFIG2, _WRT_OFF &_BOR21V
11
;vorstehende Konfiguration kein Memory Schreibschutz
12
; 
13
 
14
  
15
;
16
    ERRORLEVEL -302
17
start  
18
;-----------------------------------
19
  BANKSEL PORTA     ;B0
20
  CLRF PORTA       ;Init PORTA
21
22
  BANKSEL  ANSEL    ;B3selektion Analog oder Digital
23
  CLRF    ANSEL    ;alle RA <7:0> digital
24
25
  BANKSEL TRISA     ;B1
26
  movlw  b'00000000'  ;PortA komplett alsAusg
27
  MOVWF TRISA     ;B1
28
;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
29
30
  BANKSEL   PORTB   ;B0
31
  CLRF     PORTB   ;Init PORTB
32
33
  BANKSEL  ANSELH
34
  CLRF    ANSELH;bcf  ANSELH,ANS8-  ;bcf  ANSELH,ANS13
35
  BANKSEL TRISB     ;B1
36
  movlw  b'00000000'    ;PortB komplett als Ausgang
37
  MOVWF TRISB     ;B1
38
;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
39
  BANKSEL PORTC     ;B0
40
  CLRF PORTC       ;Init PORTC
41
42
  BANKSEL TRISC     ;B1
43
  movlw  b'00000000'  ;PortC  Ausgang
44
  MOVWF TRISC     ;B1
45
46
ZOut  equ  20h
47
VZZ    equ  21H
48
ZX1    equ  22H
49
XFLAG  equ  23H
50
 DATA_EE_ADDR  equ  24h
51
 DATA_EE_DATA  equ  25h
52
;-----------------------------------
53
  BANKSEL  PORTA
54
55
;''''''''''''''''''''''''''''''' bis hier von WG '''''''''''''''''''''''''''''''''''''''''
56
57
58
    movlw  d'1'
59
    call    OSZI_16F883
60
61
62
63
loop         ; Arbeits-Schleife 
64
65
      ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
66
67
movlw  0x04
68
movwf  DATA_EE_ADDR  ;absolute Schreibadresse
69
;
70
movlw  0x33
71
movwf  DATA_EE_DATA  ;Dateninhalt
72
73
call    EE_16F883
74
call    EElesen
75
call    Stop
76
goto  loop
77
       ;  
78
;++++++++++++++++++++++++++++++++++++++++++++++
79
EElesen
80
      Banksel  EEADR              
81
      MOVLW    0x03            ; ich möchte die EEPROM-Zelle Nr. 03h auslesen
82
      MOVWF    EEADR       ; dazu schreibe ich die Adresse 03h in EEADR
83
      Banksel   EECON1            
84
      BCF        EECON1, EEPGD   ; ich möchte aus dem Daten-Speicher lesen
85
      BSF        EECON1, RD      ; EEPROM Leseprozess starten
86
      Banksel    EEDATA              
87
      MOVF      EEDATA, W       ; Die Daten der EEPROM Zelle nach W kopieren 
88
  Banksel    PORTC
89
  movwf    PORTC
90
return
91
;++++++++++++++++++++++++++++++++++++++++++++++++++++
92
Stop
93
  goto  Stop
94
;++++++++++++++++++++++++++++++++++++++++++++++++++++
95
96
EE_16F883
97
;lesen 16F883
98
BANKSEL EEADR ;
99
  MOVLW   DATA_EE_ADDR ;
100
  MOVWF   EEADR ;Data Memory Address to write
101
  MOVLW   DATA_EE_DATA ;
102
  MOVWF   EEDAT ;Data Memory Value to write
103
  BANKSEL   EECON1 ;
104
  BCF     EECON1, EEPGD ;Point to DATA memory
105
  BSF     EECON1, WREN ;Enable writes
106
  BCF     INTCON, GIE ;Disable INTs.
107
  BTFSC     INTCON, GIE ;SEE AN576
108
  GOTO     $-2
109
  MOVLW   0x55 ;
110
  MOVWF   EECON2 ;Write 55h
111
  MOVLW   0xAA ;
112
  MOVWF   EECON2 ;Write AAh
113
  BSF     EECON1, WR ;Set WR bit to begin write
114
  BSF    INTCON, GIE ;Enable INTs.
115
  ;SLEEP ;Wait for interrupt to signal write complete
116
  BCF     EECON1, WREN ;Disable writes
117
  BCF     STATUS, RP0 ;Bank 0
118
  BCF     STATUS, RP1
119
  Return
120
;+++++++++++++++++++++++++++++++++++++++++++++++++++
121
122
123
;
124
;''''''''''''''''  1 MHz '''''''''''''''''''''''''''''''''
125
OSZI_16F883
126
MHz1  
127
  ;bcf      OSCCON,7    ;-------
128
  bsf      OSCCON,6    ;IRCF2=1
129
  bcf      OSCCON,5    ;IRCF1=0
130
  bcf      OSCCON,4    ;IRCF0=0+
131
  bsf      OSCCON,3    ;OSTS
132
  bcf      OSCCON,2    ;HTS
133
  bcf      OSCCON,1    ;LTS
134
  bsf      OSCCON,0    ;SCS
135
  ; bei Bedarf Testschleife
136
  ;movf    OSCCON,w
137
  BANKSEL  PORTA    ;Bank 0
138
  ;movwf    PORTB
139
  ;call  Stop
140
return 
141
142
143
;'''''''''''''''''''''''''''''' BEI BEDARF AKTIVIEREN ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
144
;voreingestellte Daten für den EEPROM ab der Zelle 00h
145
       org H'2100'            ; Adresse des EEPROM für den Brenner
146
       de B'10000001'    ; 0
147
       de B'01000010'    ; 1
148
  ;de B'11000011'          ; 2
149
;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
150
  
151
152
153
154
155
156
157
                  
158
              END