Getting started with Nuvoton W78E052D microcontroller (Tutorial - 1)
1. Why to use Nuvoton W78E052D?
2. Downloading the required tools
3. Making the circuit
4. Creating new project in keil 5
5. Type the c program to blink led and generate hex file
6. Upload hex file using Nuvoton's ISP-ICP utility
7. Video tutorial
1. Why to use Nuvoton W78E052D ?
Four 8-bit bi-directional port (P0, P1, P2, P3)
Pin and instruction-sets compatible with MCS-51
Wide supply voltage of 2.4 to 5.5V
8 sources 4 level interrupt capability
Three 16 bit timer/counters
8KB of flash memory
64KB program memory address space
64KB data memory address space
256 bytes of on chip scratch pad RAM
One full duplex serial port
watchdog timer
Buit-in power management with idle mode and power down mode
Code protection
![]() |
Fig 1 - Pin diagram |
2. Downloading the required tools
![]() |
Fig 2 - Nuvoton's download site |
![]() |
Fig 3 - Keil download site |
3. Making the circuit
Sr no |
Component |
Quantity |
1. |
Nuvoton W78E052D DIP , 40 pin |
1 |
2. |
Crystal oscillator 16MHz |
1 |
3. |
Capacitor 47Pf |
2 |
4. |
Capacitor 10uf |
1 |
5. |
Resistor 10K |
2 |
6. |
Push button switch |
1 |
7. |
LED Red 5mm |
1 |
8. |
Resistor 470ohm |
1 |
9. |
FT232RL USB to TTL module |
1 |
10. |
USB cable for TTL |
1 |
11. |
5V DC power supply (SMPS) |
1 |
Depending on how you are going to make the circuit. You may need some jumper wires
(male to female) , Breadboard and single core breadboard wires. Purchase accordingly.
![]() |
Fig 4 - Circuit diagram |
4. Creating new project in keil 5
![]() |
Fig 5 - new project |
![]() |
Fig 6 - save project |
Step 3 - Expand “Software packs” >> Select “Nuvoton 8051 Devices”
![]() |
Fig 7 - Add Nuvoton 8051 devices |
![]() |
Fig 8 - Select W78E052 part no |
![]() |
Fig 9 - Add startup file to project folder |
![]() |
Fig 10 - Add new items to source group |
![]() |
Fig 11 - Add C file |
![]() |
Fig 12 - Option for Target 1 |
![]() |
Fig 13 - Set crystal frequency to 16MHz |
![]() |
Fig 14 - Create hex file |
Now, we are ready, to type our basic C program to blink a led.
5. Type the c program to blink led and generate hex file
![]() |
Fig 15 - C program to blink led |
6. Upload hex file using Nuvoton's ISP-ICP utility
Step 2 – Open Nuvoton’s ISP ICP utility. Select “ISP by COM Port”. Select the COM Port. It will show up if the USB to TTL module is detected. Then select the proper part no, in our case it’s “W78E(I)052D”. Refer the below given Image.
![]() |
Fig 17 - Select com port and part no |
Step 3 – Click on “Load File” >> Browse to the path where the HEX file is stored >> click on HEX file >> Click on “open”
![]() |
Fig 18 - load Hex file |
![]() |
Fig 19 - 8051 detected, blue progress bar |
Step 5 - If hex file is uploaded successfully then the pop up will appear as shown in image below. Click on “OK” the board will reset and code will start running.
![]() |
Fig 20 - "chip successfully updated" pop up |
7. Video tutorial
If you found this blog useful and want to support me, then you can donate me. The money you give will be used to make more advance electronics projects and setting up better lab.
I am trying to replicate the setup shown in your blog using the same Nuvoton microcontroller, crystal oscillator, and ceramic capacitors. I’ve followed the connections as closely as possible, but my board is not functioning as expected.
ReplyDeleteI repeatedly get the error ' Chip Not Ready ' when attempting to program the microcontroller using a CP2102 USB to TTL module.
I measured the voltage from the CP2102 module, and it correctly outputs 5V. However, the voltage at the LED connected to P0.1 is only 0.16V to 0.27V (less than 1V), which is insufficient for proper operation. I’ve verified the connections and checked them with a multimeter, but I cannot determine what might be causing this behavior.
Could you help identify the potential issue and suggest troubleshooting steps?