Академический Документы
Профессиональный Документы
Культура Документы
Q1
stepper vs servo
www.festo.com/net/hu_hu/SupportPortal/Downloads/10446
http://www.ni.com/white-paper/3656/en/
stepper motor control
https://electrosome.com/stepper-motor-pic-microcontroller/
servo motor control
https://electrosome.com/interfacing-servo-motor-with-8051-using-keil-c/
Q2
(a)
ADC
http://www.ti.com/product/ads8528
http://www.ti.com/product/adc0848
http://www.ti.com/product/ads1602
DAC
http://www.ti.com/product/dac0808
http://www.ti.com/product/dac7725
http://www.ti.com/product/dac8760
(b)
R-2R DAC
link (http://en.wikipedia.org/wiki/Resistor_ladder#R2R_resistor_ladder_network_.28digital_to_analog_conversion.2C_or_DAC.29)
Answer:
(C)
Vref = 16V
10V
Vref
V in
Digital
output
V out
8 lines
P1
P2
8 lines
Digital
input
ADC
DAC
CS
RD
WR
int
P3.7
P3.6
P3.5
P3.4
8051
P2
P3.1
P3.2
P3.3
8 lines
7 seg. Display
(Digit1)
7 seg. Display
(Digit2)
7 seg. Display
(Digit0)
(d)
Start
To get 10V Output voltage from
DAC
Set P2 = 160D
Configure ADC
CS = 0
WR = change form low to high
Check INT
(from ADC)
no
If INT = 0
yes
CS =0;
RD = from high to low
Copy Port1 to
Accumulator
Multiply
Accumulator by 2D
If no. of digits to be
displayed = 0?
Select seven
segment display
pattern form lookup
table
Switch on relevant
transistor
(e)
Q2 e- ADC
PAGE 1
00B7
00B6
00B5
00B4
00B3
00B2
00B1
0000 7590FF
0003 75A07F
0006 900064
0009
000B
000D
000F
0011
0014
0016
0018
C2B7
D2B6
C2B5
D2B5
30B4FD
C2B7
C2B6
E590
001A 75F002
001D A4
001E
0021
0022
0023
0025
0028
unit
0029
002A
75F064
84
FA
E5F0
75F00A
84
posotion
F9
A8F0
002C
002E
002F
0031
0033
C2B3
EA
1162
F580
1152
0035 75807F
0038 1152
003A
003B
003D
003F
0041
0043
E9
D2B3
C2B2
1162
F580
1152
0045
0046
0048
004A
004C
004E
E8
D2B2
C2B1
1162
F580
1152
0050 80B7
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
BIT P3.3
BIT P3.2
BIT P3.1
ORG
MOV
MOV
MOV
0h
P1, #0FFh
P2, #07Fh
DPTR,#Table
CLR
SETB
CLR
SETB
JNB
CLR
CLR
MOV
CS1
RD1
WR1
WR1
INT, Wait
CS1
RD1
A, P1
;CS =0
;RD =1
;MOV
;DIV
MOV
MUL
B, #10D
AB
B, #2D
AB
;load 10 to B
;devide A by 10
;load 2 to B
;multiply A by 2
MOV
DIV
MOV
MOV
MOV
DIV
B,#100D
AB
R2, A
A, B
B, #10D
AB
;load 100 to B
MOV
MOV
R1, A
R0, B
CLR
MOV
ACALL
MOV
ACALL
D3
A,R2
Display
P0,A
Delay
MOV
ACALL
P0,#01111111B
Delay
MOV
SETB
CLR
ACALL
MOV
ACALL
A,R1
D3
D2
Display
P0, A
Delay
;load
;turn
;turn
;load
MOV
SETB
CLR
ACALL
MOV
ACALL
A,R0
D2
D1
Display
P0,A
Delay
SJMP
Main
Main:
Wait:
65
Delay:
66
MOV
TH0, #0F8h
67
MOV
TL0, #030h
68
SETB
TR0
69
JNB
TF0,$
70
CLR
TR0
71
CLR
TF0
72
RET
73
74
Display:
0062 93
75
MOVC
A,@A+DPTR
0063 22
76
RET
77
78
Table:
0064 C0
79
DB
0C0h
;zero
0065 F9
80
DB
0F9h
;one
0066 A4
81
DB
0A4h
;two
0067 B0
82
DB
0B0h
;three
0068 99
83
DB
099h
;four
0069 92
84
DB
092h
;five
006A 82
85
DB
082h
;six
006B F8
86
DB
0F8h
;seven
006C 80
87
DB
080h
;eight
006D 98
88
DB
098h
;nine
89
90
END
ASSEMBLY COMPLETE, NO ERRORS FOUND, NO WARNINGS
0052
0055
0058
005A
005D
005F
0061
;2ms delay
758CF8
758A30
D28C
308DFD
C28C
C28D
22
Q3
(a)
(
(
(
( )
)
)
)
(b)
This ALP is for x =2 (2ms delay), change the delay time(R1, R2, R3 values)according to your x value.
q3b
PAGE 1
0000
0003
0006
0009
000B
758920
758DFD
759850
D28E
90002C
000E
000F
0010
0012
0013
0015
E4
93
1117
A3
111F
80F7
0017
0019
001C
001E
F599
3099FD
C299
22
001F
0021
0023
0025
0027
0029
002B
7B1A
7A0A
7906
D9FE
DAFA
DBF6
22
002C 40524D4F56
202B353030
3030
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
ORG
MOV
MOV
MOV
SETB
MOV
0h
TMOD,#20H
TH1,#0FDH
SCON,#50H
TR1
DPTR,#MYDATA
CLR
MOVC
ACALL
INC
ACALL
SJMP
A
A,@a+dptr
SEND
DPTR
DELAY
Main
;timer 1, mode 2
;9600 baud rate
;8-bit, 1 stop, REN enabled
;start timer 1
Main:
;get the character
;next one
;call 2ms delay
END
Q4
(a)
WDT
http://www.embedded.com/electronics-blogs/beginner-s-corner/4023849/Introduction-to-Watchdog-Timers
(b)
PWM freq = 40kHz
6.25
18.75
25us