Department of Electronic and Telecommunication Engineering

ENTC

PIC Microcontrollers

This is a repository of documents prepared by ENTC community targeting a non-specialized audience.

Content is added with no warranty stated/ implied; hoping that it would be of use. Comments, suggestions and constructive criticisms can be directed to info @ ent.mrt.ac.lk

Micro-controllers for day-to-day life (Sinhala Medium)

Adapted from material prepared for a distance learining course | Course introduction[299 KB] | Summary (I) to (X)[361 KB]

  1. Introduction to Microcontrollers[606 KB]
  2. Internal Architecture
    1. I/O Ports Fetch, Decode, and Execute[386 KB]
    2. Controlling and processing unit[190 KB]
  3. Softwares used for Programming Microcontrollers
    1. Compilers and Integrated Development Environments[390 KB]
    2. How to build your own JDM Programmer (I)[839 KB]
    3. How to build your own JDM Programmer (II)[516 KB]
    4. Hardware needed for Programming[453 KB]
    5. Program using ICPROG Software[615 KB]
  4. Build your first microcontroller based circuit
    1. Typical microcontroller assembly circuit diagram[472 KB]
    2. Special Function registers of the Microcontroller PIC16F84A[408 KB]
    3. Creating your first assembly code[343 KB]
    4. How to write assembly code in MPLAB[865 KB]
    5. More on MPLAB[550 KB]
    6. How to simulate using MPLAB SIM[1.08 MB]
  5. LED Pattern generators
    1. Assembly code for driving 8 LEDs (I)[340 KB]
    2. Assembly code for driving 8 LEDs (II)[374 KB]
    3. Driving 40 LEDs using PORT multiplexing (8x5)[416 KB]
    4. How to display a Character using 8x5 LED matrix[388 KB]
  6. Seven Segment Displays
    1. Driving segments using PORT-B I/O[367 KB]
    2. Basic counter circuit (I)[388 KB]
    3. 0 – 100 up counter using two SSD (I)[420 KB]
    4. 0 – 100 up counter using two SSD (II)[28.3 KB]
    5. Usage of interrupts[361 KB]
    6. Practical usage of Interrupts[376 KB]
    7. External Interrupts[409 KB]
  7. Connecting a microcontroller with the PC
    1. PC Serial port overview[532 KB]
    2. Logic level translation using MAX 232 IC[386 KB]
    3. Assembly code for controlling USART module (I)[367 KB]
    4. Assembly code for controlling USART module (II)[363 KB]
  8. Analog to Digital conversion
    1. Temperature Logger using LM35[357 KB]
    2. Importance of Quantization error and Sampling rate[355 KB]
    3. PIC16F877A ADCON0 and ADCON1register[485 KB]
    4. A/D, show results using SSD[364 KB]
    5. Assembly code for A/D conversion (I)[371 KB]
    6. Assembly code for A/D conversion (II)[77.4 KB]
    7. Send A/D converted data through RS-232[372 KB]
  9. Liquid Crystal Displays
    1. Types of LCDs[420 KB]
    2. Running a LCD module using PIC16F84A (I)[493 KB]
    3. Running a LCD module using PIC16F84A (II)[475 KB]
    4. Running a LCD module using PIC16F84A (III)[369 KB]
  10. Number representations
    1. Introduction to Binary, Octal and Hex number systems[124 KB]
    2. Logic gates and Boolean algebra[371 KB]
    3. Boolean algebra and Registers[374 KB]
    4. Communication using Ascii codes[381 KB]
  11. DC Motor controlling
    1. Controlling a DC motor using H-Bridge IC L298[362 KB]
    2. Control rotation speed, rotation direction using Microcontroller[366 KB]
    3. Connecting the DC motor controller to PC[69 KB]
    4. DC motor control according to the user press buttons[581 KB]
    5. Pulse Width Modulation (PWM)[401 KB]
    6. Calculating the DC Motor rotation speed (RPM)[270 KB]
    7. Dynamic control using feedback loops[495 KB]
  12. Remote controllersnumbering>
    1. The electromagnetic spectrum[528 KB]
    2. Infrared remote controllers[368 KB]
    3. IR Sensors[157 KB]
    4. How to capture the IR receiver signal using Microcontroller[725 KB]
    5. Decoding IR Signals (I)[342 KB]
    6. Decoding IR Signals (II)[55.6 KB]
    7. Decoding IR Signal algorithm[122 KB]
  13. Data transfer between digital circuits
    1. Serial Peripheral Interface (I)[64.9 KB]
    2. Serial Peripheral Interface (II)[60 KB]
    3. Nokia 3310 LCD Driving using SPI (I)[126 KB]
    4. Nokia 3310 LCD Driving using SPI (II)[182 KB]
    5. Connecting a Nokia 3310 LCD to PIC16F877A[506 KB]
    6. Assembly code for LCD driving (I)[68.3 KB]
    7. Assembly code for LCD driving (II)[58.4 KB]
    8. Sinhala characters in a Nokia 3310 LCD[87.3 KB]
    9. Animation effects with Nokia 3310 LCD[75.5 KB]
  14. How to use high level languages
    1. Introduction[70.1 KB]
    2. C code for blinking a LED[406 KB]
    3. C code for driving 8 LEDs (I)[415 KB]
    4. Driving 40 LEDs using PORT multiplexing (8x5) (I)[701 KB]
    5. Driving 40 LEDs using PORT multiplexing (8x5) (II)[38.5 KB]
    6. Driving segments using PORT-B I/O[398 KB]
    7. Basic counter circuit[84.7 KB]
    8. 0 – 100 up counter using two SSD[395 KB]
    9. Practical usage of Interrupts[397 KB]
    10. External Interrupts[270 KB]
    11. Connecting a microcontroller with the PC[112 KB]
    12. Driving Liquid Cristal Displays[430 KB]
    13. End of uC Series[59.8 KB]
  15. Global Positioning System (GPS)
    1. Introduction to Global Positioning[368 KB]
    2. GPS Receivers[159 KB]
    3. GPS Errors[83.3 KB]
    4. Differential GPS[147 KB]