| Item | Description | Link |
| Microcontroller | Megawin MG82F6D17AL20 (8051-based, 20-pin SSOP) | Buy Here (https://robu.in/product/megawin-mg82f6d17al20-20-ssop-microcontroller-ic/) |
| Datasheet | Official MG82F6D17 Datasheet | View PDF (https://www.megawin.com.tw/files/Download/DataSheet/8051/(EN)MG82F6D17_Datasheet_v1.02.pdf) |
| Programmer | Megawin 8051 ICE Programmer (TH065) | View Product (https://empere.in/product/megawin-8051-ice-programmer-th065/?stkn=4ac27c757459&variant=6479&srsltid=AfmBOoqonkN65XF4fyvSvtPGew_UXWXsWwgcWVkK9wHl06q6MttbuE4hruI) |
| Adapter | SOIC/SSOP to DIP-20 Pin Adapter | Buy Here (https://robu.in/product/soic-ssop-to-dip-20-pin-adapter/) |
| Soldering Iron Station | Yihua 948DB-II T12 Precision | Buy Here (https://robu.in/product/yihua-948db-ii-t12-presicion-soldering-iron-station/) |
| Soldering Flux | 10 ml flux for clean joints | Buy Here (https://robu.in/product/soldering-flux-10-ml/) |
| Solder Wire | 1.00 mm, 50 gm spool | Buy Here (https://robu.in/product/solder-wire-1-00mm-50gm/?gad_source=1&gad_campaignid=20387462343&gbraid=0AAAAADvLFWeUvessBwplHqBOHL3446b-S&gclid=Cj0KCQjwvJHIBhCgARIsAEQnWlC_xNG2vHx5DSMSIzNw5uvIfgX9W51Wmo6nyzpfi3tN_JHEBMqzOO4aAr0MEALw_wcB) |
| Male Header Pins | 2.54 mm Right Angle Header Strip | Buy Here (https://robu.in/product/2-54mm-1x40-pin-male-single-row-straight-short-header-strip-pack-of-3/?gad_source=1&gad_campaignid=17427802703&gbraid=0AAAAADvLFWeqjI8TSb7AxBY8jNc51qOVx&gclid=Cj0KCQjwvJHIBhCgARIsAEQnWlC_fOVzdQjbmBoQtfz2hhkn76E8XHqk8Qty8_Dok5QhIqOACOW1jLsaAkOeEALw_wcB) |
| Breadboard | MB102 (830 points, high quality) | Buy Here (https://robu.in/product/mb102-830-points-solderless-prototype-pcb-breadboard-high-quality/?gad_source=1&gad_campaignid=21296336107&gbraid=0AAAAADvLFWeWRNgI23eFAt0RxyS3vPfYa&gclid=Cj0KCQjwvJHIBhCgARIsAEQnWlDeBclCADFmWTg_Ji1LAzSqKvkYR4GQKheSVrpgk1D7RGb_2M_12XoaAsX9EALw_wcB) |
| Tweezer | Straight ESD-11 Precision Tweezer | Buy Here (https://robu.in/product/straight-tweezer-esd-11/) |
| Feature | Megawin MG82F6D17 | Nuvoton N76E003 | ST STM8S003 |
| Core Architecture | Enhanced 8051 | Enhanced 8051 | STM8 (Proprietary 8-bit) |
| Program Memory (Flash) | 16 KB | 18 KB | 8 KB |
| RAM | 1 KB | 1.2 KB | 1 KB |
| EEPROM / Data Flash | 512 Bytes (Emulated) | 1 KB (Emulated) | 640 Bytes (Integrated) |
| Operating Voltage | 2.4V – 5.5V | 2.4V – 5.5V | 2.95V – 5.5V |
| Clock Frequency | Up to 24 MHz | Up to 16 MHz | Up to 16 MHz |
| I/O Pins | 18 | 18 | 16 |
| ADC Channels | 8-bit × 8 channels | 12-bit × 8 channels | 10-bit × 5 channels |
| Timers | 3 × 16-bit | 3 × 16-bit | 2 × 16-bit |
| UART / SPI / I²C | Yes / Yes / Yes | Yes / Yes / Yes | Yes / Yes / Yes |
| Package Type | SSOP-20 / DIP-20 (via adapter) | TSSOP-20 / DIP-20 | TSSOP-20 / SOIC-20 |
| Programming Interface | ICP / ISP | ICP / ISP | SWIM |
| Typical Price (INR) | ₹45 – ₹55 | ₹60 – ₹75 | ₹70 – ₹85 |
MyFirstProject\
├── Source\
Code\Sample\Source
into your newly created Source folder.#include "MG82F6D17_CONFIG.h"
#define MCU_SYSCLK 12000000
#define MCU_CPUCLK (MCU_SYSCLK)
#define LED_Pin P33
/*************************************************
µS Delay Function
*************************************************/
void DelayXus(u8 xUs)
{
while(xUs!=0)
{
#if (MCU_CPUCLK>=11059200)
_nop_();
#endif
#if (MCU_CPUCLK>=14745600)
_nop_();
_nop_();
_nop_();
_nop_();
#endif
#if (MCU_CPUCLK>=16000000)
_nop_();
#endif
#if (MCU_CPUCLK>=22118400)
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
#endif
#if (MCU_CPUCLK>=24000000)
_nop_();
_nop_();
#endif
#if (MCU_CPUCLK>=29491200)
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
#endif
#if (MCU_CPUCLK>=32000000)
_nop_();
_nop_();
#endif
xUs--;
}
}
/*************************************************
mS Delay Function
*************************************************/
void DelayXms(u16 xMs)
{
while(xMs!=0)
{
DelayXus(200);
DelayXus(200);
DelayXus(200);
DelayXus(200);
DelayXus(200);
xMs--;
}
}
void main ()
{
System_Init();
while(1)
{
LED_Pin = !LED_Pin;
DelayXms(500);
}
}
#include "MG82F6D17_CONFIG.h"
#define MCU_SYSCLK 12000000
#define MCU_CPUCLK (MCU_SYSCLK)
#define LED_Pin P33
void DelayXus(u8 xUs)
{
while(xUs!=0)
{
// Frequency-based delay using NOPs
...
xUs--;
}
}
void DelayXms(u16 xMs)
{
while(xMs!=0)
{
DelayXus(200);
DelayXus(200);
DelayXus(200);
DelayXus(200);
DelayXus(200);
xMs--;
}
}
void main ()
{
System_Init(); // Initialize system registers and clock
while(1)
{
LED_Pin = !LED_Pin; // Toggle LED pin
DelayXms(500); // Wait for 500 ms
}
}
#include "MG82F6D17_CONFIG.h"
#define MCU_SYSCLK 12000000
#define MCU_CPUCLK (MCU_SYSCLK)
#define LED_Pin P33
/*************************************************
µS Dealy Function
*************************************************/
void DelayXus(u8 xUs)
{
while(xUs!=0)
{
#if (MCU_CPUCLK>=11059200)
_nop_();
#endif
#if (MCU_CPUCLK>=14745600)
_nop_();
_nop_();
_nop_();
_nop_();
#endif
#if (MCU_CPUCLK>=16000000)
_nop_();
#endif
#if (MCU_CPUCLK>=22118400)
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
#endif
#if (MCU_CPUCLK>=24000000)
_nop_();
_nop_();
#endif
#if (MCU_CPUCLK>=29491200)
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
#endif
#if (MCU_CPUCLK>=32000000)
_nop_();
_nop_();
#endif
xUs--;
}
}
/*************************************************
mS Delay Function
*************************************************/
void DelayXms(u16 xMs)
{
while(xMs!=0)
{
DelayXus(200);
DelayXus(200);
DelayXus(200);
DelayXus(200);
DelayXus(200);
xMs--;
}
}
void main ()
{
System_Init();
while(1)
{
LED_Pin=!LED_Pin;
DelayXms(500);
}
}