(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[Category:8051_tutorials]]
 
[[Category:8051_tutorials]]
The Explore Ultra PIC Kit comes with all the things required, not just for this experiment but for the entire series. And even if you think of migrating to PIC or Arduino, you'll have breakout boards that fit on to this, hence we believe it is a great investment for learning hands on Embedded Systems. The kit is fully open source, you may use the schematics, the design files and all of the source code and build something cool on your own. And when you do that do not forget to share with us what you've done. We would be happy to see you building something cool.
+
The Explore Ultra 8051 Kit comes with all the things required, not just for this experiment but for the entire series. The base board is fully open, no peripheral is directly connected to the MCU breakout board. You may connect any peripheral to any port/pin you wish. The kit is fully open source, you may use the schematics, the design files and all of the source code and build something cool on your own. And when you do that do not forget to share with us what you've done. We would be happy to see you building something cool.
  
[[File:0Ultra one.PNG]]
+
[[File:0ultra 8051.png]]
  
The latest version of Ultra PIC dev kit is modular  in both hardware and software.  The kit comprises of the Ultra One Base Board and PIC breakout board as the main components.
+
The story of the Ultra Kit does not end here, we have even made the code libraries for all major 8-bit microcontrollers modular. It means you can simple upgrade or even switch your project to a different microcontroller/architecture without changing your application code. The kit ships with all the additional stuff mentioned below to get you started; kickstart your embedded development. What are you waiting for?  
 
+
The PIC breakout board comes with 16F877A, however  you may use any other 40 pin PIC MCUs like the 18F4550.  The 16F877A comes with a UART bootloader hence no external programmer is required.
+
 
+
The Ultra One baseboard can additionally be used with  several AVR, 8051 and Arduino Microcontrollers, we beleive this kit to is a solid gate way to Embedded Systems. This is not it, even the USB to Serial Convertor on board is moduler, you can take it off and use it any of the other projects. The base board is fully open, no peripheral is directly connected to the MCU breakout board. You may connect any peripheral to any port/pin you wish.
+
 
+
The newer version also supports 128x64 Graphics display as well as 128x64 OLED display. The story of the Ultra Kit does not end here, we have even made the code libraries for all major 8 bit microcontrollers modular. It means you can simple upgrade or even switch your project to a different microcontroller/architecture without changing your application code. The kit ships with all the additional stuff mentioned below to get you started; kickstart you're embedded development. What are you waiting for?  
+
  
 
Kit Contents:
 
Kit Contents:
 
Explore ULTRA PIC Development Board with following Modules, ICs and Interfaces:
 
Explore ULTRA PIC Development Board with following Modules, ICs and Interfaces:
#DS1307 RTC.
+
#USB Communication with CP2102
#24C16 EEPROM
+
#Eight 5mm LEDs
#Micro SD
+
#Eight Switches in DIP package
 +
#LCD 16x2
 
#Four Seven Segment Displays
 
#Four Seven Segment Displays
#Eight  LEDs
+
#ADC 0808 with 555 timer for sampling frequency
#4 x 4 Keypad
+
#POT for ADC
#Temperature Sensor LM35
+
#Light Sensor(LDR).
#LDR
+
#Temperature sensor(LM35).
#Buzzer
+
#Two Relays for Switching AC devices.
#L293D Motor Driver.
+
#4x4 Keypad.
#Two Relays.
+
#L293D Motor Driver for DC and Stepper Motors.
#Eight DIP switches.
+
#DS1307 based Real Time Clock.
#Breakout for 20X4 character LCD.
+
#AT2404 EEPROM.
#Breakout for 128X64 LCD.
+
#USB cable.
#Breakout for OLED.
+
#Power Adapter
#Breakout for Zigbee.
+
#Single wire female connectors. <br><br>
 +
 
 +
=Supported Controllers=
 +
{| class="table table-striped table-hover table-condensed table-bordered"
 +
|-class="info"
 +
!Controller || Flashing Software || External Programmer || Comments
 +
|-
 +
|At89s52|| XploreFlash/ProgIsp  || UsbAsp Programmer ||IC is cheap and easily available but needs external programmer 
 +
|-class="active"                                                               
 +
|P89v519d2|| Flash Magic  || Not required, uses on board USB ||NXP has stopped manufacturing the IC and only the stock items are being sold.
 +
|-                                                           
 +
|SST8951RD2|| Easy ISP || Not required, uses on board USB ||IC is good but the programming software is not stable, doesn't save the configuration, needs manual reset and many other problems.
 +
|-class="active"                                                               
 +
|w78e052d || Nuvoton ISP  || Not required, uses on board USB  ||IC is cheap and good GUI for flasing the code. FLashing hex file takes less time compared to all   
 +
|}<br><br>
 +
 
  
 
=Driver Installation=
 
=Driver Installation=
Line 35: Line 45:
  
 
=Software Setup=
 
=Software Setup=
*Compiler Installation: Download and Install the MPlabx IDE and x8 compiler.
+
*Compiler Installation: Download and Install the Keil software [https://github.com/ExploreEmbedded/Keil4_For_8051/archive/master.zip from this link].
*Check [[PIC Software Setup|this tutorial]] for setting up the project to generate the .hex file.
+
*Check [[Keil Setup For 8051|this tutorial]] for setting up the Keil project to generate the .hex file.
*Check this tutorial for [[Flashing Hex File Using Pickit2|Uploading Hex File Using Pickit2.]]
+
*Check [[Xplore Flash for At89s52|this tutorial]] for Uploading Hex File Using Xplore Flash for AT89S52.
*Check this tutorial for [[Uploading Hex File Using Ds30 Bootloader|Uploading Hex File Using Ds30 Bootloader.]]
+
*Check [[NuvoTon ISP For 8051|this tutorial]] for Uploading Hex File Using Nuvoton ISP..
  
 
=Complete Board Test=
 
=Complete Board Test=
The board is shipped with test software loaded in the controller. Connect the board to the System, Open the [https://github.com/ExploreEmbedded/terminalSoftware/archive/master.zip Serial Terminal] and reset the Controller. Follow the below procedure to test all the peripherals.
+
<font color="red"> The board is shipped with test software loaded in the controller. Connect the board to the System, Open the [https://github.com/ExploreEmbedded/terminalSoftware/archive/master.zip Serial Terminal], Set the baud rate to 9600 and reset the Controller. Below Test menu will appear, Select the required peripheral and follow the below procedure to test all the peripherals.</font>
 +
[[File:8051 TestMenu.png ]]
  
 
===GPIO Test===
 
===GPIO Test===
Connect the LED's, Buzzer and Relays to any of the port pins and observe the Led Blink, Buzzer-Beep and Relay-Chattering .
+
Connect the LED's, Buzzer and Relays to any of the port pins and observe the Led Blink, Buzzer-Beep, and Relay-Chattering .
 
<b>*Note:</b>The Rx,Tx pins will not blink as they are controlled by CP2102(Usb2Serial).
 
<b>*Note:</b>The Rx,Tx pins will not blink as they are controlled by CP2102(Usb2Serial).
[[File:PIC GPIO Testing.png]]<br><br>
+
[[File:GpioTest.png]]<br>
 +
[[File:8051 GPIO Testing.png]]<br><br>
  
  
Line 55: Line 67:
 
!RS || RW || EN || D0  || D1  || D2  || D3  || D4 || D5 || D6 || D7
 
!RS || RW || EN || D0  || D1  || D2  || D3  || D4 || D5 || D6 || D7
 
|-
 
|-
|PB_0 || PB_1 || PB_2 || PD_0 || PD_1 || PD_2 || PD_3 || PD_4 || PD_5 || PD_6 || PD_7
+
|P0_0 || P0_1 || P0_2 || P2_0 || P2_1 || P2_2 || P2_3 || P2_4 || P2_5 || P2_6 || P2_7
 
|}
 
|}
<br>
+
[[File:Lcd8bit.png]]<br>
[[File:PIC LCD 8-bit Test.png]]<br><br>
+
[[File:8051 LCD 8-bit Test.png]]<br><br>
  
  
Line 67: Line 79:
 
!RS || RW || EN || D0  || D1  || D2  || D3  || D4 || D5 || D6 || D7
 
!RS || RW || EN || D0  || D1  || D2  || D3  || D4 || D5 || D6 || D7
 
|-
 
|-
|PB_0 || PB_1 || PB_2 || P_NC || P_NC || P_NC || P_NC || PD_4 || PD_5 || PD_6 || PD_7
+
|P0_0 || P0_1 || P0_2 || P_NC || P_NC || P_NC || P_NC || P2_4 || P2_5 || P2_6 || P2_7
 
|}
 
|}
 
*P_NC: Pin Not Connected
 
*P_NC: Pin Not Connected
<br>
+
[[File:Lcd4bitTestCode.png]]<br>
[[File:PIC LCD 4-bit Test.png]]<br><br>
+
[[File:8051 LCD 4-bit Test.png]]<br><br>
  
 
===Seven Segment Test===
 
===Seven Segment Test===
Line 79: Line 91:
 
!Seg1|| Seg2 || Seg3 || Seg4 || a  || b  || c || d || e || f || g || h
 
!Seg1|| Seg2 || Seg3 || Seg4 || a  || b  || c || d || e || f || g || h
 
|-
 
|-
|PB_0 || PB_1 || PB_2 || PB_3 || PD_0 || PD_1 || PD_2 || PD_3 || PD_4 || PD_5 || PD_6 || PD_7
+
|P0_0 || P0_1 || P0_2 || P0_3 || P2_0 || P2_1 || P2_2 || P2_3 || P2_4 || P2_5 || P2_6 || P2_7
 
|}
 
|}
<br>
+
[[File:SevenSegmentTest.png]]<br>
[[File:PIC SevenSegment.png]]<br><br>
+
[[File:8051 SevenSegment.png]]<br><br>
  
 
===RTC Test===
 
===RTC Test===
The DS1307 RTC module will be connected I2C(SCL-RC.3,SDA-RC.4) pins as shown in below image.
+
The DS1307 RTC pins are connected to P0 (SCL-P0.6,SDA-P0.7).
[[File:PIC RTC Testing.png]]<br><br>
+
[[File:RtcEeprom.png]]<br>
 +
[[File:8051 RTC Testing.png]]<br><br>
  
 
===EEprom Test===
 
===EEprom Test===
(A-Z) is wriiten to eeprom and then read it back. Same is transmitted on UART.
+
(A-Z) is written to EEPROM and then read it back. Same is transmitted on UART.<br>
[[File:PIC Eeprom Testing.png]]<br><br>
+
The AT24cxx Eeprom pins are connected to P0 (SCL-P0.6,SDA-P0.7).
 +
[[File:RtcEeprom.png]]<br>
 +
[[File:8051 Eeprom Test.png]]<br><br>
  
 
===Adc Test===
 
===Adc Test===
Ultra Board has a Pot, LDR and a temperature sensor. ADC values from these sensors is read and transmtted on UART. Below table shows the sensor pin connection.
+
Ultra Board has a Pot, LDR and a temperature sensor. ADC values from these sensors is read and transmitted on UART. Below table shows the sensor pin connection.
 
{| class="table table-striped table-hover table-condensed table-bordered"
 
{| class="table table-striped table-hover table-condensed table-bordered"
 
|-class="info"
 
|-class="info"
!Sensor || Adc Channel || Port Pin
+
!ADC DataBus(D0:D7)|| A || B || C || ALE  || START  || EOC || OE
 
|-
 
|-
|Temperature || AN0 || RA0
+
|P2(P2_0:P2_7) || P1_0  || P1_1  || P1_2 || P1_3 || P1_4 || P1_5 || P1_6
|-       
+
|POT || AN1|| RA1
+
|-       
+
|LDR || AN2|| RA2
+
 
|}
 
|}
[[File:PIC ADC Testing.png]]<br><br>
+
[[File:Adc0809 Interafce.png]]
 +
[[File:8051 ADC Test.png]]<br><br>
  
 
===Keypad Test===
 
===Keypad Test===
Line 112: Line 124:
 
!R1  || R2  || R3  || R4  || C1  || C2  || C3  || C4
 
!R1  || R2  || R3  || R4  || C1  || C2  || C3  || C4
 
|-
 
|-
|PD_0 || PD_1 || PD_2 || PD_3 || PD_4 || PD_5 || PD_6 || PD_7
+
|P2_0 || P2_1 || P2_2 || P2_3 || P2_4 || P2_5 || P2_6 || P2_7
 
|}
 
|}
[[File:PIC Hex Keypad.png]]<br><br>
+
[[File:KeyPad.png]]<br>
 +
[[File:8051 Hex Keypad.png]]<br><br>
 +
 
 +
=Downloads=
 +
*Download the design files and sample codes from [https://github.com/ExploreEmbedded/8051_DevelopmentBoard this link]
 +
*Download  the Keil software from [https://github.com/ExploreEmbedded/Keil4_For_8051/archive/master.zip this link]
 +
 
 +
 
 +
Have an opinion, suggestion , question or feedback about the article let it out here!
 +
{{DISQUS}}

Latest revision as of 13:00, 22 November 2016

The Explore Ultra 8051 Kit comes with all the things required, not just for this experiment but for the entire series. The base board is fully open, no peripheral is directly connected to the MCU breakout board. You may connect any peripheral to any port/pin you wish. The kit is fully open source, you may use the schematics, the design files and all of the source code and build something cool on your own. And when you do that do not forget to share with us what you've done. We would be happy to see you building something cool.

0ultra 8051.png

The story of the Ultra Kit does not end here, we have even made the code libraries for all major 8-bit microcontrollers modular. It means you can simple upgrade or even switch your project to a different microcontroller/architecture without changing your application code. The kit ships with all the additional stuff mentioned below to get you started; kickstart your embedded development. What are you waiting for?

Kit Contents: Explore ULTRA PIC Development Board with following Modules, ICs and Interfaces:

  1. USB Communication with CP2102
  2. Eight 5mm LEDs
  3. Eight Switches in DIP package
  4. LCD 16x2
  5. Four Seven Segment Displays
  6. ADC 0808 with 555 timer for sampling frequency
  7. POT for ADC
  8. Light Sensor(LDR).
  9. Temperature sensor(LM35).
  10. Two Relays for Switching AC devices.
  11. 4x4 Keypad.
  12. L293D Motor Driver for DC and Stepper Motors.
  13. DS1307 based Real Time Clock.
  14. AT2404 EEPROM.
  15. USB cable.
  16. Power Adapter
  17. Single wire female connectors.

Supported Controllers

Controller Flashing Software External Programmer Comments
At89s52 XploreFlash/ProgIsp UsbAsp Programmer IC is cheap and easily available but needs external programmer
P89v519d2 Flash Magic Not required, uses on board USB NXP has stopped manufacturing the IC and only the stock items are being sold.
SST8951RD2 Easy ISP Not required, uses on board USB IC is good but the programming software is not stable, doesn't save the configuration, needs manual reset and many other problems.
w78e052d Nuvoton ISP Not required, uses on board USB IC is cheap and good GUI for flasing the code. FLashing hex file takes less time compared to all



Driver Installation

Software Setup

  • Compiler Installation: Download and Install the Keil software from this link.
  • Check this tutorial for setting up the Keil project to generate the .hex file.
  • Check this tutorial for Uploading Hex File Using Xplore Flash for AT89S52.
  • Check this tutorial for Uploading Hex File Using Nuvoton ISP..

Complete Board Test

The board is shipped with test software loaded in the controller. Connect the board to the System, Open the Serial Terminal, Set the baud rate to 9600 and reset the Controller. Below Test menu will appear, Select the required peripheral and follow the below procedure to test all the peripherals. 8051 TestMenu.png

GPIO Test

Connect the LED's, Buzzer and Relays to any of the port pins and observe the Led Blink, Buzzer-Beep, and Relay-Chattering . *Note:The Rx,Tx pins will not blink as they are controlled by CP2102(Usb2Serial). GpioTest.png
8051 GPIO Testing.png


LCD 8-bit Test

Below table shows the LCD 8-bit pin connection.

RS RW EN D0 D1 D2 D3 D4 D5 D6 D7
P0_0 P0_1 P0_2 P2_0 P2_1 P2_2 P2_3 P2_4 P2_5 P2_6 P2_7

Lcd8bit.png
8051 LCD 8-bit Test.png


LCD 4-bit Test

Below table shows the LCD 4-bit pin connection.

RS RW EN D0 D1 D2 D3 D4 D5 D6 D7
P0_0 P0_1 P0_2 P_NC P_NC P_NC P_NC P2_4 P2_5 P2_6 P2_7
  • P_NC: Pin Not Connected

Lcd4bitTestCode.png
8051 LCD 4-bit Test.png

Seven Segment Test

Below table shows the Seven Segment Connection.

Seg1 Seg2 Seg3 Seg4 a b c d e f g h
P0_0 P0_1 P0_2 P0_3 P2_0 P2_1 P2_2 P2_3 P2_4 P2_5 P2_6 P2_7

SevenSegmentTest.png
8051 SevenSegment.png

RTC Test

The DS1307 RTC pins are connected to P0 (SCL-P0.6,SDA-P0.7). RtcEeprom.png
8051 RTC Testing.png

EEprom Test

(A-Z) is written to EEPROM and then read it back. Same is transmitted on UART.
The AT24cxx Eeprom pins are connected to P0 (SCL-P0.6,SDA-P0.7). RtcEeprom.png
8051 Eeprom Test.png

Adc Test

Ultra Board has a Pot, LDR and a temperature sensor. ADC values from these sensors is read and transmitted on UART. Below table shows the sensor pin connection.

ADC DataBus(D0:D7) A B C ALE START EOC OE
P2(P2_0:P2_7) P1_0 P1_1 P1_2 P1_3 P1_4 P1_5 P1_6

Adc0809 Interafce.png 8051 ADC Test.png

Keypad Test

Below table shows the hex keypad Row-Col pin connection.

R1 R2 R3 R4 C1 C2 C3 C4
P2_0 P2_1 P2_2 P2_3 P2_4 P2_5 P2_6 P2_7

KeyPad.png
8051 Hex Keypad.png

Downloads

  • Download the design files and sample codes from this link
  • Download the Keil software from this link


Have an opinion, suggestion , question or feedback about the article let it out here!