Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aqu se pretende disear el hardware y el software necesario para producir una onda
seno con un microcontrolador PIC16F877 de Microchip y un conversor digital / anlogo
DAC0808 de National Semiconductor, como se ve en la figura.
R1
0R1
U1
13
14
1
2
3
4
5
6
7
8
9
10
OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV
DAC1
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4/SS
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RE0/AN5/RD
RC2/CCP1
RE1/AN6/WR
RC3/SCK/SCL
RE2/AN7/CS
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
D0
D1
D2
D3
D4
D5
D6
D7
LE
VOUT
VREF+
VREF-
B1
5.1V
DAC_8
19
20
21
22
27
28
29
30
PIC16F877
Figura 1.
Dado que con el conversor DAC0808 no es posible producir voltajes negativos vamos a
producir la onda seno montada sobre un nivel DC de dos voltios, dicha onda se generar
con una frecuencia de 100 Hz, con una frecuencia de muestreo de 10.000
muestras/segundo. La amplitud de la onda seno ser de 2 voltios de tal forma que la
ecuacin analtica ser:
V(n) = 2*sin(2*pi*100*n/10000) + 2
de donde la frecuencia digital ser
f = 100/10000 = 1/100
de donde el periodo mnimo de esta seno es N = 100.
Es decir, necesitamos generar una tabla de 100 valores los cuales pueden ser obtenidos
con el siguiente programa en Matlab:
n = 0:99
v = 2*sin(2*pi*n/100)+2 %estos 100 valores se muestran en tabla 1-1
2
3.1756
3.9021
3.9021
3.1756
2.0000
0.8244
0.0979
0.0979
0.8244
2.1256
3.2748
3.9372
3.8596
3.0717
1.8744
0.7252
0.0628
0.1404
0.9283
2.2507
3.3691
3.9646
3.8097
2.9635
1.7493
0.6309
0.0354
0.1903
1.0365
2.3748
3.4579
3.9842
3.7526
2.8516
1.6252
0.5421
0.0158
0.2474
1.1484
2.4974
3.5410
3.9961
3.6887
2.7362
1.5026
0.4590
0.0039
0.3113
1.2638
2.6180
3.6180
4.0000
3.6180
2.6180
1.3820
0.3820
0
0.3820
1.3820
2.7362
3.6887
3.9961
3.5410
2.4974
1.2638
0.3113
0.0039
0.4590
1.5026
2.8516
3.7526
3.9842
3.4579
2.3748
1.1484
0.2474
0.0158
0.5421
1.6252
2.9635
3.8097
3.9646
3.3691
2.2507
1.0365
0.1903
0.0354
0.6309
1.7493
3.0717
3.8596
3.9372
3.2748
2.1256
0.9283
0.1404
0.0628
0.7252
1.8744
106
164
197
193
154
94
36
3
7
46
113
168
198
190
148
87
32
2
10
52
119
173
199
188
143
81
27
1
12
57
125
177
200
184
137
75
23
0
16
63
131
181
200
181
131
69
19
0
19
69
137
184
200
177
125
63
16
0
23
75
143
188
199
173
119
57
12
1
27
81
148
190
198
168
113
52
10
2
32
87
154
193
197
164
106
46
7
3
36
94
2
equ
equ
equ
equ
equ
equ
equ
5
6
7
2
0
4
2
equ
equ
equ
equ
equ
30h
31h
32h
43h
44h
3
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
H'0FCF'
H'1FDF'
EQU H'2FEF'
H'3FFF'
H'37FF'
H'3FFF'
EQU H'3FFF'
EQU H'3DFF'
H'3EFF'
H'3FFF'
H'3FFF'
H'3F7F'
H'3FFF'
H'3FBF'
H'3FFF'
H'3FF7'
H'3FFF'
H'3FFB'
H'3FFC'
H'3FFD'
H'3FFE'
H'3FFF'
movlw
movwf
nop
nop
nop
decfsz
goto
return
d'15'
45h
45h,1
repite
;*******************************************************************************
;EL SIGUIENTE CODIGO ARMA LOS DATOS DE LA TABLA
;********************************************************************************
tabla
ADDWF
pcl,1
RETLW .100
RETLW.106
RETLW.113
RETLW.119
RETLW.125
RETLW.131
RETLW.137
RETLW .143
RETLW.148
RETLW.154
RETLW.159
RETLW.164
4
RETLW.168
RETLW.173
RETLW .177
RETLW.181
RETLW.184
RETLW.188
RETLW.190
RETLW.193
RETLW.195
RETLW .197
RETLW.198
RETLW.199
RETLW.200
RETLW.200
RETLW.200
RETLW.199
RETLW .198
RETLW.197
RETLW.195
RETLW.193
RETLW.190
RETLW.188
RETLW.184
RETLW .181
RETLW.177
RETLW.173
RETLW.168
RETLW.164
RETLW.159
RETLW.154
RETLW .148
RETLW.143
RETLW.137
RETLW.131
RETLW.125
RETLW.119
RETLW.113
RETLW .106
RETLW.100
RETLW.94
RETLW.87
RETLW.81
RETLW.75
RETLW.69
RETLW .63
RETLW.57
RETLW.52
RETLW.46
RETLW.41
RETLW.36
RETLW.32
RETLW .27
RETLW.23
RETLW.19
RETLW.16
RETLW.12
RETLW.10
RETLW.7
5
RETLW .5
RETLW.3
RETLW.2
RETLW.1
RETLW.0
RETLW.0
RETLW.0
RETLW .1
RETLW.2
RETLW.3
RETLW.5
RETLW.7
RETLW.10
RETLW.12
RETLW .16
RETLW.19
RETLW.23
RETLW.27
RETLW.32
RETLW.36
RETLW.41
RETLW .46
RETLW.52
RETLW.57
RETLW.63
RETLW.69
RETLW.75
RETLW.81
RETLW .87
RETLW.94
inicio
ciclo
clrf
bsf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
bcf
status
status,rp0
b'11111111'
trisa
b'00000000'
trisb
b'11111111'
trisc
b'11111111'
trisd
b'11101111'
trise
b'00000010'
adcon1
status,rp0
clrf
cuenta
movf
call
movwf
call
incf
movlw
xorwf
btfss
goto
goto
cuenta,0
tabla
ptob
retardo
cuenta,1
d'100'
cuenta,0
status,z
ciclo
inicio
;puerto A entradas
;puerto B salidas
;puerto C entradas
;puerto D entradas
;puerto E entradas
;
;pasar al banco 0
end