Arduino/C3/Assembly-programming-through-Arduino/English-timed

From Script | Spoken-Tutorial
Revision as of 11:30, 26 October 2018 by Sandhya.np14 (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time Narration
00:01 Welcome to the spoken tutorial on Assembly programming through Arduino.
00:07 In this tutorial, we will learn to: interface a seven-segment Display to Arduino board,
00:15 write an assembly program to display a digit on seven-segment display and
00:21 display a digit on the seven segment display using 7447 IC.
00:28 To follow this tutorial, you should have basic knowledge of electronics and Assembly language'.
00:36 Refer to the Additional reading material link of this tutorial to know more about:
00:42 Arduino - Assembly code reference and Arduino ATmega328 Pin mapping.
00:50 To record this tutorial, I am using: Arduino UNO Board,
00:56 and Ubuntu Linux operating system version 14.04.
01:02 We also require some external devices such as:

Breadboard,

01:09 Arduino UNO Board,
01:12 Common Anode Seven-Segment Display,

220 ohm Resistor,

01:18 Decoder 7447 IC

and Jumper Wires.

01:25 In this experiment, we will use the common anode seven segment display.
01:31 Please refer to the basic level tutorial of this series to know more about seven segment display.
01:38 Let us see the connection circuit details.
01:46 The Dot pin of the Seven Segment Display is connected to the pin 13 of Arduino.
01:53 Any one of the COM pins is connected to the +5 Volts through a 220 ohm resistor.
02:00 Refer the pin mapping for Arduino and microcontroller.
02:05 This is the live setup of the connection.
02:09 Now, we will write an assembly program to turn on the Dot LED on the seven segment display.
02:17 We need to install an assembler AVRA and AVRDUDE.
02:23 AVRA is an assembler that will generate a hex file.
02:28 AVRDUDE is used to upload any hex file to the Arduino board.
02:34 Open the terminal by pressing Ctrl + Alt + T keys together.
02:39 To install avra and avrdude, type: sudo space apt hyphen get space install space avra space avrdude.
02:55 Enter the administrative password if prompted and press Enter.
03:01 We can see the installation process has begun.
03:05 Press 'Y' wherever there is a prompt during the installation to confirm the configuration.
03:11 Installation will take some time to complete depending upon the internet speed.
03:17 We can see that the installation has been completed successfully.

Let us clear the screen.

03:25 Now, let us connect the Arduino board to the computer.
03:29 To check the port number of Arduino, I'll type: ls space forward slash dev forward slash ttyACM asterisk.
03:41 We can see the output as forward slash dev forward slash ttyACM0.
03:49 Here, ttyACM0 represents the port number of Arduino.
03:55 You may get a different port number. Make a note of your port number.
04:00 Download m328Pdef.inc file from the Code files link of this tutorial.
04:08 We need to include this library file in the first line of the source code.
04:13 This allows the user to use Register and Bit name when writing assembly programs.
04:20 Let us write an assembly program and upload it to the microcontroller.
04:25 Open any text editor and type the following.
04:29 Semicolon represents comment statements.
04:33 These statements are ignored by the assembler and are not executed.
04:38 This line tells the assembler to include the m328Pdef.inc file.
04:45 We had downloaded this file earlier and in my computer this is the path.
04:51 Note that we have to specify the entire file path.
04:55 ldi stands for "load immediate" .
04:59 This sets pin PB5, that is digital pin 13, as output.
05:05 It tells the assembler to take a working register r16 and load a binary number into it.
05:12 This line tells the compiler to copy the contents of the register r16 into the DDRB register.
05:20 This sets all the pins to 0 volts except pin PB5 i.e digital pin 13 which is set to 5 volts.
05:30 This line copies the same binary number from our storage register r17 to PortB.
05:38 Relative jump statement executes the program in an infinite loop.
05:44 The program has to just keep running in order for the LED to remain ON.
05:50 Save the code as dot hyphen led.asm file in the home slash spoken slash Assembly folder.
05:59 This code is available in the Code files link of this tutorial as well.
06:04 You can download and use it.
06:07 Switch to the terminal.
06:10 Go to the folder where dot hyphen led.asm file is saved.
06:16 Type: avra space dot hyphen led.asm and press Enter.
06:24 This will assemble the code and create a file dot hyphen led.hex.
06:30 Let us see the dot hyphen led.hex file that is generated in the same folder.
06:37 Next, we need to upload the code to Arduino.
06:41 Switch back to the terminal.
06:44 For this, type: avrdude space hyphen p space atmega328p space hyphen c 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 dot hyphen led dot hex.
07:16 Here ttyACM0 represents the port number of Arduino.
07:22 dot hyphen led.hex is the file that is generated.

And press Enter.

07:30 Now, you can see that the Dot LED in the seven segment is glowing.
07:36 Pause the tutorial and do the below assignment.

Modify the same code to turn off the Dot LED.

07:44 Next, we will display the digit 2 on the seven segment display.
07:49 To display '2', a,b,d,e,g segments should be high and the other LEDS should be low.
07:58 Connect Pins a, b, c, d, e, f and g of the seven-segment display to pins 2, 3, 4, 5, 6, 7 and 8 of Arduino.
08:10 The two common pins are connected to positive 5 Volts through resistors.
08:17 Let us see the live connection setup.
08:21 Let us see the source code for this program.
08:24 Open any text editor and type the following code.
08:28 As seen earlier, we should first configure the pins as output first.
08:34 Then make it as high or low according to our requirement.
08:39 These two lines make the bits 2 to 7 on PORT D as output.
08:45 These two lines make bit 0 on PORT B as output.
08:50 These bits correspond to the digital pins 2 to 8 on Arduino.
08:56 Here, we are making the pins as high or low corresponding to whatever number we want to display.
09:04 In our case, it is digit two.
09:07 Here, we are writing 0100100 to digital pins 2 to 8 of Arduino.
09:16 This will make all the segments of SSD low, except c and g.
09:22 Let us save this as two.asm file.
09:27 Switch back to the terminal.

Let us clear the screen.

09:33 Type: avra space two.asm and press Enter.
09:39 To upload, press the up arrow to get the previous command.
09:44 Now, change the filename as shown and press Enter.
09:50 Now, you can see that the digit 2 in the seven segment is glowing.
09:56 Pause the tutorial and do the below assignment. Modify the above code to display any other digit from 0 to 9.
10:06 Next, we will use a Decoder to display the number 5 on the Seven Segment Display.
10:12 We are using 7447 IC.
10:16 The a complement to f complement pins of the decoder connect to the a to f pins of Seven Segment Display.
10:25 Vcc and the Ground pins of the decoder are connected to positive 5 Volts and the Ground pins of Arduino.
10:33 Connect the A, B,C,D pins of the Decoder to pins 2,3,4,5 of Arduino.
10:40 Note that this decoder is compatible only with common anode seven segment display.
10:47 Let us see the live connection setup.
10:51 The input pins of the decoder are A,B,C and D.
10:56 A being the lowest significant bit (LSB) and D being the most significant bit (MSB).
11:02 For example, the number 5 is visible on the display when the A,B,C and D inputs are as shown here.
11:10 Let us see the source code for this program.
11:13 Open any text editor and type the following code.
11:17 The first two lines make the bits 2 to 5 on PORT D as output.
11:23 This means we are making digital pins 2 to 5 in Arduino as output pins.
11:29 2 to 5 pins in the Arduino are connected to A, B, C, D pins of decoder.
11:36 The next two lines are giving input of 0101 to decoder inputs.
11:43 This will then be decoded as 5 in the seven segment display.
11:48 Save it as decoder.asm file.
11:52 Switch back to the terminal.
11:55 Type: avra space decoder.asm and press Enter.
12:02 To upload, press the up arrow to get the previous command.
12:07 Now, change the filename as shown and press Enter.
12:13 Now we can see that the digit five in the seven segment is glowing.
12:19 This brings us to the end of this tutorial. Let us summarize.
12:24 In this tutorial, we learnt to: interface a Seven-segment Display to Arduino board,
12:31 write an assembly program to display a digit on seven-segment display
12:36 and display a digit on the seven segment display using 7447 IC.
12:42 The video at the following link summarizes the Spoken Tutorial project.

Please download and watch it.

12:50 The Spoken Tutorial Project team: conducts workshops and gives certificates.

For more details, please write to us.

12:58 Please post your timed queries in this forum.
13:02 Spoken Tutorial project is funded by NMEICT, MHRD, Government of India.

More information on this mission is available at this link.

13:12 This tutorial has been contributed by FOSSEE and Spoken Tutorial Project, IIT Bombay.

This is Priya from IIT Bombay, signing off.

Thanks for joining.

Contributors and Content Editors

PoojaMoolya, Sandhya.np14