summaryrefslogtreecommitdiff
path: root/165/CH17/EX17.1/ex17_1.sce
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)