|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:
|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.