blob: 2ea4d9ac662a75a8eeb57ece30956e1f239c0c41 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
//Example 17.1
close;
clc;
n=5; //n bit resistive divider
//LSB weight
x=2^n-1;
LSB_weight=invr(x);
printf('\nWeight assigned to the LSB = 1/%d \n',x)
printf('\nWeight assigned to 2nd LSB = 2/%d \n',x)
printf('\nWeight assigned to 3rd LSB = 4/%d \n',x)
printf('\nChange in output voltage due to channge in the LSB = 10/%d \n',x)
printf('\nChange in output voltage due to channge in 2nd LSB = 20/%d \n',x)
printf('\nChange in output voltage due to channge in 3rd LSB = 40/%d \n',x)
function [Va]=Output_Voltage(D)
V=0;
for i=0:4
a=modulo(D,10);
D=floor(D/10);
V=V+(a*10)*(2^i);
end
Va=V/x;
endfunction
//Digital input 11011
funcprot(0);
D=11011; //0 represents 0 and 1 represents 10
[Va]=Output_Voltage(D);
printf('\nOutput Voltage for Digital input of 11011 = %.2f V\n',Va)
//Digital input 10110
funcprot(0);
D=10110; //0 represents 0 and 1 represents 10
[Va]=Output_Voltage(D);
printf('\nOutput Voltage for Digital input of 11011 = %.2f V\n',Va)
|