Difference between revisions of "Arduino/C3/Digital-Logic-Design-with-Arduino/English-timed"

From Script | Spoken-Tutorial
Jump to: navigation, search
(Created page with " {| border=1 | '''Time''' | '''Narration''' |- |00:01 |Welcome to the''' Spoken Tutorial''' on '''Digital Logic Design with Arduino. ''' |- |00:07 |In this tutorial, we wi...")
 
 
Line 10: Line 10:
 
|-
 
|-
 
|00:07
 
|00:07
|In this tutorial, we will learn to: Implement and verify the '''AND, OR '''and''' XOR operations''' in '''assembly'''.
+
|In this tutorial, we will learn to: implement and verify the '''AND, OR '''and''' XOR operations''' in '''assembly''',
  
 
|-
 
|-
 
|00:17
 
|00:17
| Implement and verify simple '''Combinational Logic'''.
+
| implement and verify simple '''Combinational Logic'''.
  
 
|-
 
|-
 
|00:21
 
|00:21
|To follow this tutorial, you should have basic knowledge of:
+
|To follow this tutorial, you should have basic knowledge of electronics and '''Assembly''' language.
 
+
'''Electronics '''and '''Assembly language'''
+
  
 
|-
 
|-
Line 28: Line 26:
 
|-
 
|-
 
|00:38
 
|00:38
|And '''Ubuntu Linux '''operating system version 14.04
+
|and '''Ubuntu Linux operating system''' version 14.04.
  
 
|-
 
|-
 
|00:44
 
|00:44
|We also require some external devices such as: '''Breadboard'''
+
|We also require some external devices such as:  
 +
'''Breadboard''',
  
 
|-
 
|-
 
|00:51
 
|00:51
| '''Arduino UNO Board'''
+
| '''Arduino UNO Board''',
  
 
|-
 
|-
 
|00:54
 
|00:54
| '''Seven Segment Display'''
+
| '''Seven Segment Display''',
  
 
|-
 
|-
 
|00:57
 
|00:57
| '''220-ohm Resistor'''
+
| '''220-ohm Resistor''',
  
 
|-
 
|-
 
|01:00
 
|01:00
| '''Decoder (7447 IC) '''and  '''Jumper Wires'''
+
| '''Decoder (7447 IC) '''and   
 +
'''Jumper Wires'''.
  
 
|-
 
|-
 
|01:07
 
|01:07
|We will use the same circuit setup as we did for the '''decoder''' in the earlier tutorial.
+
|We will use the same circuit setup as we did for the '''decoder''', in the earlier tutorial.
  
 
|-
 
|-
Line 60: Line 60:
 
|-
 
|-
 
|01:17
 
|01:17
|Now we will write an '''assembly program''' to verify the''' logical AND operations'''.
+
|Now, we will write an '''assembly program''' to verify the''' logical AND operations'''.
  
 
|-
 
|-
Line 68: Line 68:
 
|-
 
|-
 
|01:29
 
|01:29
|'''m328Pdef.inc''' file and the source code are available in the code files link of this tutorial.
+
|'''m328Pdef.inc''' file and the '''source code''' are available in the '''code files''' link of this tutorial.
  
 
|-
 
|-
Line 96: Line 96:
 
|-
 
|-
 
|02:26
 
|02:26
|This line of code calls the '''loop '''named '''loopw'''.  
+
|This line of '''code''' calls the '''loop '''named '''loopw'''.  
  
 
|-
 
|-
Line 116: Line 116:
 
|-
 
|-
 
|03:05
 
|03:05
|I’ll save the code as '''boolean.asm''' in the '''home slash spoken slash Assembly''' folder.
+
|I’ll '''save''' the '''code''' as '''boolean.asm''' in the '''home slash spoken slash Assembly''' folder.
  
 
|-
 
|-
Line 124: Line 124:
 
|-
 
|-
 
|03:18
 
|03:18
|Go to the folder where '''boolean.asm '''file is saved. Type, '''avra boolean.asm''' and press '''Enter'''.
+
|Go to the folder where '''boolean.asm '''file is saved. Type: '''avra space boolean.asm''' and press '''Enter'''.
  
 
|-
 
|-
Line 132: Line 132:
 
|-
 
|-
 
|03:34
 
|03:34
|Let us clear the screen.
+
|Let us clear the '''screen'''.
  
 
|-
 
|-
 
|03:36
 
|03:36
|Next we need to upload the code to the '''Arduino'''.
+
|Next, we need to upload the code to the '''Arduino'''.
  
 
|-
 
|-
 
|03:41
 
|03:41
|For this, type '''avrdude space hyphen p space atmega328p space hyphen c space arduino space hyphen b space 115200 space hyphen capital P space forward slash dev forward slash ttyACM0 space hyphen capital U space flash colon wcolon boolean dot hex'''
+
|For this, type: '''avrdude space hyphen p space atmega328p space hyphen c space arduino space hyphen b space 115200 space hyphen capital P space forward slash dev forward slash ttyACM0 space hyphen capital U space flash colon w colon boolean dot hex'''
  
 
and press''' Enter.'''
 
and press''' Enter.'''
Line 146: Line 146:
 
|-
 
|-
 
|04:17
 
|04:17
|Now you can see that''' '''the digit '''one '''on the '''seven segment display '''is glowing.
+
|Now, you can see that the digit '''one''' on the '''seven segment display '''is glowing.
  
 
|-
 
|-
Line 226: Line 226:
 
|-
 
|-
 
|06:27
 
|06:27
|These values are used to restore the '''original registers '''after performing '''operations. '''
+
|These values are used to restore the original '''registers '''after performing operations.  
  
 
|-
 
|-
 
|06:35
 
|06:35
|The '''comp subroutine '''is used to find the '''complement '''of a '''variable'''.  
+
|The ''''comp' subroutine '''is used to find the '''complement '''of a '''variable'''.  
  
 
|-
 
|-
Line 254: Line 254:
 
|-
 
|-
 
|07:24
 
|07:24
|The '''reload subroutine '''reloads the values '''r0, r1, r2, r3, r4, r5, r6 '''and '''r7 '''from its copies.
+
|The ''''reload' subroutine '''reloads the values '''r0, r1, r2, r3, r4, r5, r6 '''and '''r7 '''from its copies.
  
 
|-
 
|-
Line 302: Line 302:
 
|-
 
|-
 
|08:46
 
|08:46
|Save the code as '''combination.asm''' in the '''home slash spoken slash Assembly''' folder.
+
|'''Save''' the code as '''combination.asm''' in the '''home slash spoken slash Assembly''' folder.
  
 
|-
 
|-
Line 310: Line 310:
 
|-
 
|-
 
|08:58
 
|08:58
|Type, '''avra space combination.asm''' and press '''Enter'''.
+
|Type: '''avra space combination.asm''' and press '''Enter'''.
  
 
|-
 
|-
Line 316: Line 316:
 
|This will assemble the code and create a file '''combination.hex'''.
 
|This will assemble the code and create a file '''combination.hex'''.
  
Let us clear the terminal
+
Let us clear the terminal.
  
 
|-
 
|-
 
|09:14
 
|09:14
| To upload, press the up arrow to get the previous command.  
+
| To upload, press the up arrow to get the previous '''command'''.  
  
 
|-
 
|-
 
|09:19
 
|09:19
| Now change the filename as shown and press Enter.
+
| Now change the filename as shown and press '''Enter'''.
  
 
|-
 
|-
 
|09:26
 
|09:26
|Now you can verify the '''truth table''' with the output shown on the seven-segment display.
+
|Now you can verify the '''truth table''' with the output shown on the '''seven-segment display'''.
  
 
|-
 
|-
Line 344: Line 344:
 
|-
 
|-
 
|09:52
 
|09:52
|In this tutorial, we learnt to: Implement and verify the '''AND, OR '''and''' XOR''' operations in '''assembly'''.
+
|In this tutorial, we learnt to: implement and verify the '''AND, OR '''and''' XOR''' operations in '''assembly''',
  
 
|-
 
|-
 
|10:01
 
|10:01
| Implement and verify simple '''Combinational Logic'''.
+
| implement and verify simple '''Combinational Logic'''.
  
 
|-
 
|-
 
|10:05
 
|10:05
|The video at the following link summarizes the Spoken Tutorial project.
+
|The video at the following link summarizes the '''Spoken Tutorial''' project.
  
 
Please download and watch it.
 
Please download and watch it.
Line 358: Line 358:
 
|-
 
|-
 
| 10:13
 
| 10:13
| The''' Spoken Tutorial Project''' Team conducts workshops and gives certificates.
+
| The''' Spoken Tutorial Project''' team conducts workshops and gives certificates.
  
 
For more details, please write to us.
 
For more details, please write to us.
Line 368: Line 368:
 
|-
 
|-
 
|10:27
 
|10:27
| Spoken Tutorial project is funded by NMEICT, MHRD, Government of India.
+
| Spoken Tutorial project is funded by '''NMEICT, MHRD''', Government of India.
  
 
More information on this mission is available at this link.
 
More information on this mission is available at this link.
Line 374: Line 374:
 
|-
 
|-
 
|10:38
 
|10:38
|This tutorial has been contributed by FOSSEE and Spoken Tutorial Project, '''IIT Bombay'''.  
+
|This tutorial has been contributed by '''FOSSEE''' and '''Spoken Tutorial Project, '''IIT Bombay''''''.  
  
This is Priya from IIT Bombay signing off. Thanks for watching.
+
This is Priya from '''IIT Bombay''', signing off. Thanks for watching.
  
 
|}
 
|}

Latest revision as of 14:49, 26 October 2018

Time Narration
00:01 Welcome to the Spoken Tutorial on Digital Logic Design with Arduino.
00:07 In this tutorial, we will learn to: implement and verify the AND, OR and XOR operations in assembly,
00:17 implement and verify simple Combinational Logic.
00:21 To follow this tutorial, you should have basic knowledge of electronics and Assembly language.
00:31 To record this tutorial, I am using: Arduino UNO Board
00:38 and Ubuntu Linux operating system version 14.04.
00:44 We also require some external devices such as:

Breadboard,

00:51 Arduino UNO Board,
00:54 Seven Segment Display,
00:57 220-ohm Resistor,
01:00 Decoder (7447 IC) and

Jumper Wires.

01:07 We will use the same circuit setup as we did for the decoder, in the earlier tutorial.
01:14 Let us see the live connection setup.
01:17 Now, we will write an assembly program to verify the logical AND operations.
01:24 Open any text editor and type the following program.
01:29 m328Pdef.inc file and the source code are available in the code files link of this tutorial.
01:38 You can download and use it.
01:41 The highlighted code configures pins 2, 3, 4 and 5 of the Arduino as output pins.
01:49 We are considering only the first bit of r16 and r17 for our boolean operations. Here, both are 1.
02:00 This line performs bitwise AND operation on the bits of r16 and r17. The result is stored in r16.
02:12 The rest of the program takes care of displaying this output.
02:17 The LSB of r16 has our result. This has to be shifted by two positions to the left.
02:26 This line of code calls the loop named loopw.
02:31 This loop takes care of shifting the LSB of r16 twice.
02:38 The value in r16 is sent to PORTD. This displays either 0 or 1 on the Seven segment display.
02:48 Here, contents of r16 are left shifted once. Then the value of r20 is decremented by 1.
02:58 If the value of r20 is not equal to zero, the loop is repeated again.
03:05 I’ll save the code as boolean.asm in the home slash spoken slash Assembly folder.
03:15 Switch to the terminal.
03:18 Go to the folder where boolean.asm file is saved. Type: avra space boolean.asm and press Enter.
03:29 This will assemble the code and create a file boolean.hex.
03:34 Let us clear the screen.
03:36 Next, we need to upload the code to the Arduino.
03:41 For this, type: avrdude space hyphen p space atmega328p space hyphen c space arduino space hyphen b space 115200 space hyphen capital P space forward slash dev forward slash ttyACM0 space hyphen capital U space flash colon w colon boolean dot hex

and press Enter.

04:17 Now, you can see that the digit one on the seven segment display is glowing.
04:23 Pause the tutorial and do the below assignment.
04:27 Modify the values of r16 and r17 to verify the rest of the truth table of AND.
04:35 Replace the keyword and in the program with or to perform logical OR operation.
04:42 Replace the keyword and in the program with xor to perform logical XOR operation.
04:49 Next, we will implement and verify few simple combinational logics.
04:55 Let us see the live connection setup. It will be the same as the previous setup.
05:02 We are going to implement these equations in our program and verify their truth table.
05:09 This is the truth table for the equations shown above.
05:14 Here W, X, Y and Z are the inputs.
05:19 A, B, C and D are the outputs. Let us consider the first row of the truth table. Thus, all the inputs will be zeros.
05:31 As per the truth table, we can expect the output as 1.
05:36 We will display the output on the seven segment display.
05:40 Let us write an assembly program to implement and verify these equations.
05:46 Open any text editor and type the following program.
05:50 Let me explain the program.
05:53 This line configures pins 2,3,4 and 5 of the Arduino as output pins.
06:00 r30 is a dummy variable for storing the output.
06:05 The values of input variables W, X, Y and Z are stored in registers r17, r18, r19 and r20 respectively.
06:16 The values of r17, r18, r19 and r20 are stored in the dummy variables r0, r1, r2 and r3.
06:27 These values are used to restore the original registers after performing operations.
06:35 The 'comp' subroutine is used to find the complement of a variable.
06:41 The complement of W, X, Y and Z are calculated and stored in r21, r22, r23 and r24 respectively.
06:52 The values of r21, r22, r23 and r24 are stored in the dummy variables r4, r5, r6 and r7.
07:04 Note that A is nothing but the complement of W.

Now, we have implemented the first equation.

07:12 Next, we perform two left shift operations and store the value in r30.

Thus, the third bit of the r30 has the value of A.

07:24 The 'reload' subroutine reloads the values r0, r1, r2, r3, r4, r5, r6 and r7 from its copies.
07:36 They might have changed during previous operations.
07:41 The logic for B is implemented and the result is stored in r0.
07:47 The value in r0 is left shifted thrice and stored in r30.
07:54 Now, the fourth bit of r30 holds the result of B.
08:00 The logic for C is implemented and the result is stored in r0.
08:06 The value in r0 is left shifted four times and stored in r30.
08:13 Now, the fifth bit of r30 holds the result of C.
08:19 The logic for D is implemented and the result is stored in r0.
08:25 The value in r0 is left shifted five times and stored in r30.
08:32 Now, the sixth bit of r30 holds the result of D.
08:38 Finally, the value stored in r30 is sent to PORTD to be displayed.
08:46 Save the code as combination.asm in the home slash spoken slash Assembly folder.
08:55 Switch to the terminal.
08:58 Type: avra space combination.asm and press Enter.
09:05 This will assemble the code and create a file combination.hex.

Let us clear the terminal.

09:14 To upload, press the up arrow to get the previous command.
09:19 Now change the filename as shown and press Enter.
09:26 Now you can verify the truth table with the output shown on the seven-segment display.
09:34 Pause the tutorial and do the below assignment.
09:38 Change the values of W, X, Y and Z and verify different rows of the truth table.
09:46 This brings us to the end of this tutorial. Let us summarize.
09:52 In this tutorial, we learnt to: implement and verify the AND, OR and XOR operations in assembly,
10:01 implement and verify simple Combinational Logic.
10:05 The video at the following link summarizes the Spoken Tutorial project.

Please download and watch it.

10:13 The Spoken Tutorial Project team conducts workshops and gives certificates.

For more details, please write to us.

10:23 Please post your timed queries in this forum.
10:27 Spoken Tutorial project is funded by NMEICT, MHRD, Government of India.

More information on this mission is available at this link.

10:38 This tutorial has been contributed by FOSSEE' and Spoken Tutorial Project, IIT Bombay'.

This is Priya from IIT Bombay, signing off. Thanks for watching.

Contributors and Content Editors

PoojaMoolya, Sandhya.np14