Thursday, January 21, 2010

PICMe EVB Kit

PICMe Evaluation Board(ASTI-DOST Copyright-2008)


Objectives:
1) To Familiarize with the use of PICMe
2) To be able to use PICMe in Microcontroller embedded applications
2) To post a support of using PICMe EVB.


Introductions:

PICMe™ OVERVIEW

A)Product Features:

The PICMe™ Microcontroller Starter Kit is designed to give electronic enthusiasts an initial application material in their prototyping and laboratory needs. The board supports the PIC16F877A in the 40-pin DIP package. These controllers have a program memory built on Flash technology which provides fast erasing and reprogramming, thus allowing a quick debugging or error checking. The PICMe™ Microcontroller Starter Kit has the following main features:

Powerful MCU
10-bit, 8-channel Analog-to-Digital (A/D) Converter. Synchronous Serial Port (SSP) with SPI™ (Master mode) and I2C™ (Master/Slave mode) Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) with 9-bit address Up to 8K x 14 words of Flash Program Memory, up to 368 x 8 bytes of Data Memory (RAM), up to 256 x 8 bytes of EEPROM Data Memory Has 33 input/output (I/O) pins. Pocket Size

The PICMe™ Microcontroller board has a compact size of 3.7” x 1.65” that includes all the electronic components used Dual Function Header. The I/O pins can be accessed easily via the dual function headers, which can act as sockets or pins that can be mounted on a breadboard or on any prototyping board.

Ease of Reprogramming
No external programmer is required for the boot loader. The PICMe™ Microcontroller Starter Kit has a pre-installed PIC boot loader located in the PIC's memory area. The PIC boot loader initializes the system to enable reprogramming of PIC microcontrollers without the need for a chip programmer, a device used to transfer the compiled program from the computer into the microcontroller memory. It utilizes the self-programming features of the PIC microcontroller, which allows in-circuit reprogramming and downloading of codes.

B)Package contents:

The PICMe™ Microcontroller Starter Kit should contain the following materials:
a. PICMe™ Microcontroller Board with PIC16F877A Microcontroller
b. CD containing the software tools, sample program codes and support documentations
c. Serial cable (RS-232 data cable)
d. AC-DC power supply adapter (optional)
e. Portable case

C)Board Layout:

D)Components & Descriptions:
PIC16F877A Has up to 8Kx14 words of In-System Programmable Flash memory with up to 256x8 bytes of EEPROM and up to 368x8 bytes of Internal RAM
RJ11 Serial Input Interfaced on board through a RS232 driver/receiver pin-compatible level converter chip. Flash PIC microcontroller units like the one in the development kit can be programmed by connecting it to RS232 in the appropriate COM port of the computer and using the provided boot loader application.
DC power jack (J2) Used to connected to the power adapter and interfaced with an on-board regulator
Power Regulator (U3) Allows power inputs from 100-240V to an output of 12V (1.0A) towards the board
Red LED (D10) Connected to the power regulator, which indicates if the power is on
Potentiometer (POT) A 5k trimmer resistor to control an analog signal input interfaced on thPin 2 (PIN A0) of the PIC6F877A
microchip.
Reset Switch Attached to the Master Clear/Reset Input or Pin 1 of the PIC microcontroller
Push-Button Switch 1 (SW1)Connected to Pin 32 (PIN B0) of the microcontroller and used for handling interrupts
Push-Button Switch 2(SW2) Connected to Pin 8 (PIN E0) of the microcontroller and used for making control inputs
Jumper Header (J3) If the header is shorted or the Jumper is inserted, then the PIC microcontroller can output signals to the yellow LEDs. Otherwise, Port D is open as parallel slave port for external interfacing.
2-Pin Header (J4) Provided by the power regulator with +5V DC output at 250mA and GND
6-Pin Header (Port A) A bidirectional I/O port connected to Pin 2 (PIN A0) to Pin 7 (PIN A5) of the microcontroller. PIN A0 is an analog input interfaced with the potentiometer While the other pins can be interfaced with other analog inputs and as well with clock/timer.
8-Pin Header (Port B) A bidirectional I/O port connected to Pin 33 (PIN B0) to Pin 40 (PIN B7) of the microcontroller. PIN B0 is connected to Push-button Switch 1 (SW1) to test its capability to handle interrupts. While the rest of the pins can be accessed as interrupt-on-change pins or in-circuit debugger pins.
8-Pin Header (Port C) A bi-directional port connected from Pins 15,16,17,18, 23 and 24 (PIN C0 to PIN C5) of the microcontroller respectively. Pin 25 (PIN C6) and Pin 26 (PIN C7) are used for USART Asynchronous Transmit and Receive respectively. These two pins are currently dedicated and set-up for the Starter Kit and Computer serial communication such as the downloader and HyperTeminal.
8-Pin Header (Port D)Also a bidirectional port interfaced to the 8 yellow LEDs and a jumper header. This port is either used for outputting values on the LEDs or as parallel slave port.
3-Pin Header (Port E) Pin 8 (PIN E0) is connected to Push-button Switch 2 (SW2) which “read” control inputs, while Pin 9 (PIN
E1) and Pin 10 (PIN E2) are defined as “control” and “select” controls. These three pins can also beused as parallel slave port or analog inputs.
8 Yellow LEDs All of which are I/O controlled by Port D and are jumper selectable
XTAL A 20 MHz crystal located on the clock socket under the PIC16F877A microchip and is used as the external clock of the microcontroller
100 Mils (0.1”) centered headers Provide a more accessible or simple connection to the processor special function pins and I/O
ICD2 Pins for In Circuit Debugger


GETTING STARTED

A)Hardware Setup:



B)Using PICMe™ DSM:
The PICMe™ DSM (Downloader and Serial Monitor) is a software program that can be used to easily download the code compiled in the PIC Compiler directly into the MCU and also serves as a communication tool between the MCU and PC.
System Installation
• Look for the folder PICDSM Setup and copy it from the CD onto your PC.
• Click setup icon and this will display the PICMe™ DSM window.



C)Using PIC Downloader:

1. Run the program PICDSM.exe. Select the Downloader tab.

2. Locate the desired HEX file through the Browse button.

3. Set the Port number. The default setting of the Port is COM1.

4. Set the Baud Rate to 57600.

5. Click the Download button to start downloading the file. Click Cancel button if you want to
stop the activity.



D)Using the PICMe™ Serial Monitor:

1. Run the program PICDSMv1.exe. Select the Serial Monitor tab.



2. Set the correct Port settings before attempting to connect with the serial communication port of the device. The default setting of the Port is COM1. Set the Baud Rate at which data is being sent. The baud rate setting of the Serial Monitor must match the baud bate setting of the device which is set by the program. Set the Parity, Data Bits, Stop Bits, and Handshaking method accordingly to match the requirements of the device. The default values are none, 8,1 and none respectively.

3. Click the Connect/Disconnect button to connect/disconnect to the device.



4. In the Receive area, check the desired format (ASCII or HEX format) of the received data.
The Clear button is used to clear the window.

5. In the Transmit area, enter the specific data to be sent. Check the As HEX tab when
sending HEX-formatted data.

6. Click the Send button to transmit the data to the microcontroller.




USING CCS COMPILER

1. Run the compiler by opening pcw.exe.

2. Create a new file and save it as blinker.c.




3. Enter the C program below onto the source code template window.(CCS Sample
Program)




4. Run the program: Compile->Build
All -> Compile

5. Locate for the blinker.hex




CCS SAMPLE PROGRAM

D)LED SWITCH ON & OFF

#include <16f877a.h> //Initialization
#include
#fuses HS, NOWDT, NOPROTECT, NOLVP
#use delay (clock=20000000)
#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7)

void
main()

{ //Start of Main Program
int8 a=0x00; //Set variable a to 0

delay_ms(500);
printf ("\nIf you can read this message,");
printf (" you are using the PICMe Starter Kit properly!\n"); //Confirmation
while (1) { start of main loop
output_d(0x00); //Turn off LEDs
delay_ms(500); //for 0.5sec
output_d(a); //Turn on LEDs
delay_ms(500); //for 0.5s
if (!input(PIN_B0)) //if SW1 is pressed for a while
{
printf("\n value of a: %X\n",a); //display value of a in hex format
}
while(!input(PIN_B0)); //stop while SW1 is pressed
{a++; //Increment a}
if(a>=0xFF)
{a=0;}
}// end of main loop
} //End of program

_________________________________________________________

PICMe Testing

a)Test source code(test_877A.c)
_________________________________________________________
//this is a test program to check the PICMe board and the serial communication


#include <16f877a.h>
#fuses HS,NOWDT,NOPROTECT,NOBROWNOUT, NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=PIN_C6, rcv=PIN_C7) //serial communication

void main()
{
int i;
delay_ms(2000);
output_d(0);
i=128;

printf("\nPICMe Ready OK!\n");
printf("press any key and click send...\n\r");

output_high(PIN_D7);

getc();
printf("\nyou can now see the LEDs in motion!\n\r");
printf("\n...toggle DTR if you want to reset the program or press RESET button!\n");

while(1) //running light
{
output_d(i);
delay_ms(100);
if(shift_right(&i,1,0)==1) i=128;
}

}
____________________________________________________


b)Test Hex file(test_877A.hex)
____________________________________________________
:1000000000308A00CB2800000A108A100A118207EB
:100010000A345034493443344D3465342034523436
:10002000653461346434793420344F344B342134B2
:100030000A3400340A108A100A11820770347234AC
:10004000653473347334203461346E34793420343D
:100050006B3465347934203461346E346434203444
:1000600063346C34693463346B34203473346534F2
:100070006E3464342E342E342E340A340D3400346D
:100080000A108A100A1182070A3479346F347534E1
:100090002034633461346E3420346E346F347734FA
:1000A00020347334653465342034743468346534F2
:1000B00020344C34453444347334203469346E3441
:1000C00020346D346F34743469346F346E342134B9
:1000D0000A340D3400340A108A100A1182070A34D7
:1000E0002E342E342E3474346F34673467346C34C9
:1000F0006534203444345434523420346934663402
:10010000203479346F3475342034773461346E346C
:100110007434203474346F3420347234653473345E
:100120006534743420347434683465342034703465
:1001300072346F346734723461346D3420346F3408
:100140007234203470347234653473347334203430
:100150005234453453344534543420346234753485
:10016000743474346F346E3421340A3400342330E0
:100170008400831300080319CA280630F800F70129
:10018000F70BC028F80BBF287B30F700F70BC62809
:10019000800BBD280034840183131F308305813018
:1001A00083169900A6309800903083129800831629
:1001B0001F149F141F159F1107309C0008308312D5
:1001C000A200FA30A300B720A20BE1288316880111
:1001D000831288018030A100A20122080420A20A13
:1001E000F70077080C1EF228990011302202031D37
:1001F000ED28A20122081A20A20AF70077080C1E97
:10020000FF28990021302202031DFA288316881343
:10021000831288178C1E0A291A08A201220840207E
:10022000A20AF70077080C1E132999002630220233
:10023000031D0E29A20122086B20A20AF7007708ED
:100240000C1E2029990047302202031D1B2983160A
:1002500088018312210888006430A300B7200310AE
:0E026000A10C031C35298030A1002729630062
:02400E00323F3F
:00000001FF
;PIC16F877A
____________________________________________________

MPASM SAMPLE PROGRAM
____________________________________________________
LIST p=16F877A
#include p16f877a.inc ;include file with config bit definitions
__config 0x3F3A
;Set oscillator to HS,
;_XT_OSC & _WDT_OFF & _LVP_OFF
;watchdog time off,
;low-voltage prog. off

;---------General Purpos Register /Declarations of Variables--------------
;----------------------------------------------------------------------------------------
cblock 0x20 ; General Purpose Register
count ;used in looping routines
count1 ;used in delay routine
counta ;used in delay routine
countb ;used in delay routine
tmp1 ;temporary storage
endc
;-------------------------------------------------------------------------
STATUS equ 0x03 ; assign register addresses
PORTD equ 0x08
TRISD equ 0x88

org 0x03 ;load program starting at memory address 0x03
movlw 0x00 ;set-up program counter
movwf 0xA
goto INIT
nop
INIT clrf 0x04 ; clear indirect addressing register

;-----------------------------START of the Program--------------------------------
START bsf STATUS, 5 ; select Bank 1
clrf TRISD ;set Port D to output
bcf STATUS, 5 ;select Bank 0


Main ;Main Loop
movlw 0xff
movwf PORTD ;output 0xff to Port D
Call Delay1Sec ; wait for atleast 1 second.
movlw 0x00
movwf PORTD ;output 0xff to Port D
goto Main ;continuous loop
;----------------------------------------------------------------------------------

;------------------------------Delay for 1 second ---------------------------
Delay1Sec
call Delay250
call Delay250
call Delay250
call Delay250
Return

Delay255 movlw 0xff ;delay 255mS
goto d0
Delay250 movlw d'250' ;delay 250mS
goto d0
Delay100 movlw d'100' ;delay 100mS
goto d0
Delay50 movlw d'50' ;delay 50mS
goto d0
Delay20 movlw d'20' ;delay 20mS
goto d0
Delay10 movlw d'10' ;delay 10mS
goto d0
Delay1 movlw d'1' ;delay 1mS
goto d0
Delay5 movlw 0x05 ;delay 5ms
d0 movwf count1
d1 movlw 0xE7
movwf counta
movlw 0x04
movwf countb
Delay_0 decfsz counta, f
goto 2
decfsz countb, f
goto Delay_0
decfsz count1 ,f
goto d1
retlw 0x00
;------------------------- Delay for 1 second --------------------------
;------------------------------------------------------------------------------
sleep
END ;end of program
____________________________________________________

Acknowledgments:

ASTI-Embedded Groups
Art Becker-Technical expertise and assistance

82 comments:

  1. The PICMe Microcontroller Starter Kit is an excellent way to get started with Microcontrollers. It contains all the hardware you need, and is well designed. It is P1,250 from Alexan.

    The output and power pins are available from headers that extend from under the board. While they won't plug into a breadboard, you can plug them into female headers, soldered to a prototype board, such as Alexan's PC201 and PC401.

    The PICMe is not a traditional programmer, like a PICKit 2, or serial or parallel programmer. Rather, the PICMe uses a serial input, via a RS-232 to TTL level voltage converter, into a serial connection built into the PIC16F887A microcontroller. The 877A has bootloader software programmed into it, which allows you to program via a serial port, using the enclosed software.

    You can still write programs, using assembly language, or C, and load the compiled hex files into the PICMe via the software loader that comes with the kit. This is actually a very fast and easy way to download your program into the 877A. The only problem is if the bootloader software on the 877A gets erased, or overwritten, or somehow becomes unavailable to the loading software. I'll cover this in the next message.

    My favorite book about learning PIC microcontrollers is 123 PIC Microcontroller Experiments for the Evil Genius. There are, of course, many other books.

    I recommend PIC microcontrollers for your introduction to the topic. ATMEL, Pickaxe, Arduino, and others, all have their benefits, but I have enjoyed the widespread support, not to mention availability, of PIC microcontrollers. The Microchip web site has an absolutely astonishing amount of free and open support available, including free C compilers, integrated development system, and so on. You can use these programs to write and compile your PICMe project, the use the PICMe software to load the program to the 877A.

    ReplyDelete
  2. The PICMe Kit contains a MIcrochip PIC16F877A microcontroller, with a pre-programmed bootloaer installed. The problem ism this bootloader can get out of whack. This happened to me, and several other people. The fix is simple, but requires a traditional programmer, like the PCIKit 2 from MIcrochip, available from RS Components. The cost of the PICKit 2 is around P3,000. I hope you know a friend who has one.

    A current 877A bootloader file is available via a link at www.microchip.com -- the link sends you to a confusing 3rd party site where eventually you will find the downloadable files.

    The file you eventualy will find is a bootloader for a PIC16F877A microcontroller, using a 20 MHz crystal, and running at 38,400 baud. You want the (legacy) HEX file. While the readme file suggests you recompile the software, I got error messages using the latest MPLAB compiler, so I just tried the hex file, and it worked great.

    Unfortunately, you have to remove the 977A from the PICMe Kit to program it. While the ICD header looks like it has the correct pins to use a PICKit 2 to program the 877A in place, you will fail for two reasons.

    The obvious reason is that the ICD and ICSP headers use different pins. While it is easy to make an adapter, that won't work, either, since you will then get a VPP error from the PICKit 2. That's because the VDD power supply on the PICMe Kit has to be isolated from the MCLR pin, by either a 470 ohm resistor, or a Schottky diode. The simple solution is to remove the 877A from the PICMe Kit and place it on a breadboard. You then only need 5 wires from the PICKit 2 to the 877A, and you can quickly program the bootloader into the PIC.

    Here's a hint: Just use short lengths of #22 solid wire to connect between the PICKit 2 and the breadboard/877A.

    Then you can put the 877A back into the PICMe and your serial loader software will once again work just fine.

    Here's a final hint: The schematic I got with my PICMe Kit has incorrect pin assignments for the 877A. So be sure to download am 877A datasheet -- if you don't know where to get datasheets, just Google "877A datasheet."

    ReplyDelete
  3. Thank you very much Art
    for your comments and suggestions.

    I will write here some of my experiments with
    PICMe and some applications too.

    Again ,Thanks

    E^3

    ReplyDelete
  4. The 8 LEDs on the PICMe Kit are connected to Port D of the 877A. If you want to use PORT D for some other experiments, you must remove Jumper J3, just above LED D7, to disconnect the LEDs. Take off the jumper, then reattach it to either one of the two pins of J3, so that you don't lose it. You can reconnect the jumper any time you want to use the LEDs again.

    Just in case your friends aren't impressed that you put so much work into simply lighting a LED, you can tell them that this is just a symbolic act. Instead of a LED, you can just as easily be controlling a motor, fan, heater, lamp, or any other electrical device. The LED is there as an aid to developing your application, and is certainly not the end product.

    ReplyDelete
  5. What I have found to be the most fun so far is connecting a 7 segment LED to a PIC, and then sequencing the digits 0 through 9. The Evil Genius book shows how to do this (for a different PIC, but you should be able to figure out how to modify the circuit and software by now). The IO Port pins on the 877A have just enough capability (official terms are sink or source) to run a single 7 segment LED without any external components, such as resistors or transistors. If you want to use multiple 7 segment displays, then you need to add additional components. I recommend getting a common cathode 7 segment display.

    You can also drive a 16X2 LCD (126 character x 2 line liquid crystal display) directly from a PIC. You can pick one up for about P500 at Alexan. Add P1,000 more if you want a backlight version.

    The inexpensive small keypad that Alexan sells is a non-matrix type.

    You can get datasheets for just about every part on the web -- just Google them.

    ReplyDelete
  6. Well, that is for a help for me,

    THanks Art you have done a good job,

    I will soon post some photos and videos here.

    just a moment

    Again, thanks

    E^3

    ReplyDelete
  7. Wow, I sure made a lot of typos. Sorry 'bout that.

    In the message above, a 16x2 LCD has 16 characters x 2 lines. A more expensive graphics LCD has 128x64 pixels (not lines), but those are for later, after you have more experience with the 16x2 version.

    I like the LCDs that have 16 pins in a single row, as it's easy to solder a male header to them, and then insert the LCD into a breadboard. The LCD that Alexan sells uses the common Hitachi onboard LCD driver. Pins 15 & 16 at one end would normally be for the backlight, which their less expensive LCD doesn't have. The rest of the pins then go in the opposite direction (1 to 14, as opposed to 14 to 1).

    It is common to use the LCD in 4 bit mode, as opposed to 8 bit mode, in order to save on using IO pins on your PIC. There is a virtually insignificant speed penalty in doing this. But you can try it both ways, and see which one you like. It's no problem if you have extra PIC pins to spare.

    For the 7 segment LED experiment above, the Evil Genius book only showed how to go from 0 to 9. But, since we are all master programmers, we also want the hex digits, too. Thus, you will have a lot of fun figuring how what A through F would look like on a 7 segment display, how to code them, and then how to modify the book's software to do what you want. The source code is online, that that makes it easier on you.

    The Evil Genius book was written when only the Microchip PICKit 1 was available. It is way different from the PICKit 2. The most noticeable difference is how LEDs are connected on the demo board. They are attached across two IO Pins, as opposed to being connected from a single IO pin to ground. So, you have to modify the software to take this into account. Honest, it is not that hard.
    The evil genius book has slightly different schematics than I am used to. I like a dot where wires connect. In the Evil Genius book, wires that connect just connect, without the traditional dot, and if they don't connect, then they are broken, when transiting other wires on the schematic.

    There is also occasionally some different header information from the old way things were done as opposed to the new software you will be using now. Just compile your program and see what errors you get. In some cases you will be able to figure out things easily enough -- often you just delete some commands that are no longer necessary.

    Tools: The two most important ones are a pair of electronic needle nose pliers, and a pair of wire cutters. The absolute best needle nose pliers are the Ungar 378M from Alexan at P375. They have light blue/green handles. Otherwise you can struggle by with any pliers less than 5", but you will thank me for years to come if you get the Ungar. For wire cutters, the small flat adjustable ones with yellow plastic handles, from ACE Hardware, are the best type. The big monster ones with bolt cutters and "crimpers" are for working on jeepneys. And they don't strip wire as fine as the #22 solid wire you need to do breadboard work.

    ReplyDelete
  8. Hi!,

    I'd copied the PICMe CD's document here ,trying to revise some HowTos.

    Thanks

    E^3

    ReplyDelete
  9. I have a PICMe board. i have problems programming it with other programs. the test program here and the one included in the cd works fine. but when i tried programming the sample program in the user's manual, it cannot be programmed into the microcontroller. i use MPLAB and compiled the sample assembly program. the programming software of the PICMe indicates that the hex code was downloaded properly. but the circuit does not function. the LEDs that are supposed to be blinking stay turned off.
    I will appreciate any advise or suggestions. please email me at ronrausa@gmail.com

    thanks...

    ReplyDelete
  10. Hello arjuman,

    Can you please tell us, what particular applications?

    You can just post the code here and we'll try to solve it.

    Thanks

    E^3

    ReplyDelete
  11. greetings!

    below is the sample code in the users manual that came with the PICMe Module. the program is supposed to turn on and off the LEDs connected at PORT D of the PICMe Module.

    I compiled the code using MPLAB and it compiled successfully without errors. It also downloaded fine using the PICDSM application.

    However, the PICMe module did not function as specified for the program, "blinking LEDs".

    We have 4 PICMe Modules all purchased at Alexan-Manila. Each having the same results.

    I hope you can help. Can I also request for some other sample assembly codes?

    thank you very much.


    LIST p=16F877A
    #include p16f877a.inc ;include file with config bit definitions
    __config 0x3F3A;_XT_OSC & _WDT_OFF & _LVP_OFF ;Set oscillator to HS,
    ;watchdog time off,
    ;low-voltage prog. off
    STATUS equ 0x03 ; assign register addresses
    PORTD equ 0x08
    TRISD equ 0x88
    org 0x03 ;load program starting at memory address 0x03
    movlw 0x00 ;set-up program counter
    movwf 0xA
    goto INIT
    nop
    INIT clrf 0x04 ; clear indirect addressing register

    START bsf STATUS, 5 ; select Bank 1
    clrf TRISD ;set Port D to output
    bcf STATUS, 5 ;select Bank 0
    movlw 0xff
    movwf PORTD ;output 0xff to Port D
    goto START ;continuous loop
    sleep
    end ;end of program

    ReplyDelete
    Replies
    1. I've got the same results right now. Have you solved this problem? Can you me?

      Delete
    2. Hi SIr,

      Yep, just read the next reply(below).


      Thanks

      E^3

      Delete
  12. Ok , well to try to check that code and give you some assembly program.

    Bytheway , why are you using an assembly code rather assembly language?

    There are some options like: SDCC or Hi-Tech C?

    Regards and thanks

    E^3

    ReplyDelete
  13. LIST p=16F877A
    #include p16f877a.inc ;include file with config bit definitions
    __config 0x3F3A;_XT_OSC & _WDT_OFF & _LVP_OFF ;Set oscillator to HS,
    ;watchdog time off,
    ;low-voltage prog. off

    ;---------General Purpos Register /Declarations of Variables--------------
    ;-------------------------------------------------------------------------
    cblock 0x20 ; General Purpose Register
    count ;used in looping routines

    count1 ;used in delay routine

    counta ;used in delay routine

    countb ;used in delay routine

    tmp1 ;temporary storage
    endc
    ;-------------------------------------------------------------------------

    STATUS equ 0x03 ; assign register addresses
    PORTD equ 0x08
    TRISD equ 0x88

    org 0x03 ;load program starting at memory address 0x03
    movlw 0x00 ;set-up program counter
    movwf 0xA
    goto INIT
    nop

    INIT clrf 0x04 ; clear indirect addressing register

    ;------------START of the Program

    START bsf STATUS, 5 ; select Bank 1
    clrf TRISD ;set Port D to output
    bcf STATUS, 5 ;select Bank 0


    Main ;
    movlw 0xff
    movwf PORTD ;output 0xff to Port D

    Call Delay1Sec ; wait for atleast 1 seconds.

    movlw 0x00
    movwf PORTD ;output 0xff to Port D

    goto Main ;continuous loop

    ;-------------------------------------------------------------------
    ;---------------------Delay for 1 second ---------------------------


    Delay1Sec call Delay250

    call Delay250

    call Delay250

    call Delay250

    Return



    Delay255 movlw 0xff ;delay 255mS

    goto d0

    Delay250 movlw d'250' ;delay 250mS

    goto d0

    Delay100 movlw d'100' ;delay 100mS

    goto d0

    Delay50 movlw d'50' ;delay 50mS

    goto d0

    Delay20 movlw d'20' ;delay 20mS

    goto d0

    Delay10 movlw d'10' ;delay 10mS

    goto d0

    Delay1 movlw d'1' ;delay 1mS

    goto d0

    Delay5 movlw 0x05 ;delay 5ms

    d0 movwf count1

    d1 movlw 0xE7

    movwf counta

    movlw 0x04

    movwf countb

    Delay_0 decfsz counta, f

    goto $+2

    decfsz countb, f

    goto Delay_0

    decfsz count1 ,f

    goto d1

    retlw 0x00
    ;------------------ Delay for 1 second --------------------------
    ;-------------------------------------------------------------------

    sleep

    END ;end of program

    ReplyDelete
  14. Hello,

    I'd seen that the code need a 255 value then delay(1 seconds) and 00 value(8bits) signals to be fed on port D

    Note:
    just check out for the typo.

    Thanks

    E^3

    ReplyDelete
  15. The code is from the user manual of the PICMe. I have been doing self study on PIC programming mainly the 16f84a.

    I'm an engineering instructor thus it is best to start with assembly language when teaching microcontroller programming.

    thanks...

    ReplyDelete
  16. Thanks for the help. I will test the code you gave and i will inform you on the result.

    ReplyDelete
  17. Hi Sir ,

    Please check the code i'd written above "MPASM SAMPLE PROGRAM".

    Thanks

    ReplyDelete
  18. Hi Sir,

    If you want to prolong the delay , just add another delay functions.

    Call Delay1Sec
    Call Delay1Sec
    Call Delay1Sec ; and you have 3s delay


    Thanks

    ReplyDelete
  19. "A current 877A bootloader file is available via a link at www.microchip.com -- the link sends you to a confusing 3rd party site where eventually you will find the downloadable files."

    Hi,

    Any chance you could post that link from where you got the bootloader that worked for you? I've tried several replacements but could not get any to work with Picme's PICDSM.

    Thanks
    Ron

    ReplyDelete
  20. Hi Ron,

    Good Day.

    Actually we had tweaked PICMe's bootloader
    available at microchip.Anyway, I'll try to find that bootloader code;just post your dummy e-mail where I can send you the file.


    Thanks

    E^3

    ReplyDelete
  21. Cool, Thanks.

    Please send it to me at desolder@gmail.com.

    ReplyDelete
  22. Hello Ron,


    I'd found some PIC16F87XA (ok for 877A) and had tried it to PICMe -it works!

    Download link:
    http://www.microchipc.com/PIC16bootload/PIC16F87xA_bootloader_v9-40.zip

    Download Site:
    http://www.microchipc.com/PIC16bootload/#DownloadWindows

    Note *
    1) You can use PICMe software to load it
    2) Or you can use thier inclued loader too.
    3) Still looking for that boatloaders of ours
    in the archive(and e-mail it to you)

    Hope you can do it now.


    Thanks.

    E^3

    ReplyDelete
  23. We've been using Tinybootloader as a replacement but this would be so much easier to work with.

    Thanks!

    ReplyDelete
  24. Hi Ron,

    You can feed us info anytime;we hope that
    ASTI- Embedded Team would be able to release the USB PICMe version soon.

    You're welcome.

    E^3

    ReplyDelete
  25. Hi, Hope you could help me. I've been playing with PICMe for a week now. I was able make the LEDs light up :) using Proton IDE.

    While searching for the compiler where I feel most comfortable, I found a copy of MikroBasic for PIC, but after compiling and loading up the HEX file thru PICDSM without errors, it did not work. Can you help me figure it out? Is it compatibility issue?

    Thanks

    ReplyDelete
  26. Hello Mike,

    Well, you can use PICMe to any compiler be it
    C/C++ ,Basic ,Pascal base compiler.

    PICMe has its own boot loader (a sort like OS) pre-embedded after you bought in in Alexan;which it is able to run the compiled program (*.hex for PIC16F877).So this is the same to all the available PIC16F877a evaluation board-and there is no such incompatibility issues .

    So,I would assume that you were using the Serial port and our PICMe Software(program loader)

    Using Micro Basic:
    1)You can test the LED on port D(light/blink)
    2) You can also use a simple print "Hello" and fed it to the PICMe txt display(used for debugging).

    Hope this steps can help you.

    Bytheway,
    Next month, you can visit here(Blog) for my release of PICMe in Linux and maybe our our Filipino C/C++ version embedded compiler for a family of PIC.

    http://cobecoballes-program.blogspot.com/2010/07/picme-in-linux.html

    Thanks Brother


    E^3

    ReplyDelete
  27. good evening, i was using picMe starter kit, kaya lng ngkaron ng time na "no bootloader foun". me magagawa po ba para maayos ulit ung program download nito. i need it badly

    ReplyDelete
  28. Hello Folks,

    Good evening.

    Yes we can do some trick about it.

    Here is the download link for boot loader:
    http://www.microchipc.com/PIC16bootload/PIC16F87xA_bootloader_v9-40.zip

    You may choose your PIC programmer loader
    1) [A]-If you have the PICDEM (Evaluatin board) you can load it into the chip(PIC16F877a)
    [B]-Connect to the ICD2 jumper setting

    2) DIY pic pogrammer (JDM)
    http://www.k9spud.com/jdm/

    Note:** there are a lot of JDM circuit you are able to find on the net

    Thanks

    E^3

    ReplyDelete
  29. Hi,
    Do you have the schematic diagram for the PICMe?
    Thanks.

    ReplyDelete
  30. Hello Brother,

    Yes , I do have, but please send me first your e-mail
    so I can send it.

    Thanks.

    E^3

    ReplyDelete
  31. Hello!

    I am interested in this PICMe that is why I bought it. Unfortunately, the CD is not working.

    Can you please send me the files that is on the CD bundled in the pack. jwdawal@yahoo.com

    Thanks!

    ReplyDelete
  32. Hello Sir jwdawal,

    Just a questions ,as I am searching for that compiled doc of PICMe ;Which files do you want?
    1) CD
    2) C program
    3) Assembly program
    4) Schematic?

    Maybe I have some of those files archive in my e-mail ,but if you want the program (source code in C /Assembly is written in this blog :see it above ) you can copy and paste it right away.

    Thanks

    E^3

    ReplyDelete
  33. Thanks for the reply Sir!

    Actually, I cannot open the CD that is included in the package so I think I will be needing ALL the files that is in the CD. :D

    Hope you still have those files. Thanks again!

    -jwdawal

    ReplyDelete
  34. Hello jwdawal,

    I have sent you the files, just let me know if I missed some of it.

    Thanks

    E^3

    ReplyDelete
  35. saan ba ako makakadownload ng installer ng picMe microcontroller starter kit?

    ReplyDelete
  36. Hi. My name is Eteny, I am into astronomy. I am currently working on a stepper motor that requires precise motion control, to be used for a telescope circuity.

    I also have this PICME controller sold in Alexan, and I think this could be very useful for my application. Is there any chance you could walk me through the installation?

    Thanks!

    Eteny
    etenyworks@yahoo.com

    my astronomy web site
    http://eteny.wordpress.com

    ReplyDelete
  37. Hi Sir Eteny ,

    Good Day and Welcome to my Techno blog.

    I think we are working at the same University, If I may right , you can call me via local 2864.

    Thanks

    E^3

    ReplyDelete
  38. @Anonymous

    Actually ,the kit includes a CD that contains
    software tools and technical document.

    Thanks.

    E^3

    ReplyDelete
  39. Sir,baka pwede po makahingi ng kopya nung laman nung cd. :)

    ayaw na kasing basahin nung cd ko eh. salamat po :)

    --jrnogi--
    jrnogi17@gmail.com

    ReplyDelete
  40. Hi jrnogi,

    Just sent you the files.

    Regards

    E^3

    ReplyDelete
  41. heloo can you send me some picme code using ccs compiler.I have purchased your picme and i want some new code.please e-mail me at fred3x17@gmail.com

    ReplyDelete
  42. i want a led light code using ccs..

    ReplyDelete
  43. Hi Fred,

    Good Afternoon,

    Please cut and paste the above "CCS SAMPLE PROGRAM" s-code , you can also modify it.

    Hope it will help you in programming the PICMe EVB,

    Thanks

    E^3

    ReplyDelete
  44. Good day.

    Bumili po ko ng PICMe Starter Kit sa Alexan. Gumawa ko ng sarili kong program. The problem is, kapag iniloload ko na sya sa PIC, ung sequence na pi-nrogram ko for LED ayaw lumabas.

    Also, ung setup ko for C compiler is corrupted.

    Hope you can help me with this.

    Thanks.

    ReplyDelete
    Replies
    1. Hi Sir,

      Good Day.

      First, you need to run the sample program (cut and paste) and if it's working.

      Second , try your own program. By the way what is your compiler , you can download , either CCS or Hi-Tech C . Then try some of their example too.

      Last, if it won't work , then just post here what you're doing , so that I can help you .


      Thanks

      E^3

      Delete
  45. hi sir E^3

    can you send me the schematic diagram for the PICMe?
    mail: mannou.45@gmail.com
    Thanks.

    ReplyDelete
    Replies
    1. Hi Sir Mannou,

      Ok no problem.

      Welcome

      E^3

      Delete
  46. sinubukan ko yung MPASM SAMPLE PROGRAM. ayaw nyang gumana. patulong naman po

    ReplyDelete
    Replies
    1. Hello Bro,

      Good Morning..

      You can cut and paste the hex file if you want to test the device

      Can you please post what errors did get?

      So that we can check the bug if-ever ..

      Thanks

      E^3

      Delete
  47. Good morning Poh E^3, saan po pwiding makabili ng PICME kit at magkano ito? bigyan nyo po sana ako ng Telephone #..thanks poh

    ReplyDelete
  48. Hi Bro,

    You can buy PICMe board to any Alexan Store outlet.

    1) Delta-> Visayas Avenue. Quezon City
    2) SM Mega Mall
    3) Raun,Quiapo Metro Manila

    Website:
    http://www.alexan.com.ph/

    Thanks


    E^3

    ReplyDelete
    Replies
    1. RE:Bro

      Applicable bah ang Visual Basic 2008 dito sa PICME? at Kaya ba Niyang ma Control ang Dalawang motor na 24 volts namely; Stepper and Wiper, i will wait for your reply thanks poh...from davao city

      Delete
    2. Hi Sir,

      Yep, you can interface VB 2008 in PICMe, just use the serial COM project component( activeX or OCX-DLL) of the VB compiler. Controlling stepper motors requires a high current power transistors ex: (1) IRF650 or its equivalent series; (2) L298 IC driver and (3) lastly for such wiper you can try relays.

      Hope this helps

      Thanks

      E^3

      Delete
    3. This comment has been removed by the author.

      Delete
  49. good morning!
    Sir can u give me a sample or a code through serial com, kasi parallel port po kasi ang lagi kong ginagamit eh...thanks po in advance..

    ReplyDelete
  50. Hello Vince,

    You may try this link..
    http://www.ontrak.net/serialport.htm

    Hope this helps-cheers!

    E^3

    ReplyDelete
  51. Hi sir! I'm Patrick, a ECE student.
    can you please send me a copy of the content of the installation CD?
    I think i have problem with my DVD drive. :((
    too bad. i cant use the microcontroller starter kit that I've just bought.
    My email is patrick_0411@yahoo.com
    thank you! :)

    ReplyDelete
    Replies
    1. Hi Patrick.

      Good Day.

      Below is the link of the important sources in the PICMe setup

      https://code.google.com/p/hi-techno-barrio/downloads/detail?name=PICME-Source.zip&can=2&q=

      Cheers!


      E^3

      Delete
  52. You're welcome Patrick..

    Just search "Hi-Techno Barrio" in google for some technical articles.


    Cheers!

    E^3

    ReplyDelete
  53. Hello! Nakabili po ako ng DOST Starter Kit na to.. Nung una successful yung upload namen ng mga programs using ccs compiler pero di naglaon bagka-problema..Ask ko po, bakit "no bootloader found" po? which dati indi naman.. ano po kaya naging problema? di naman po namen inalis yung pic sa programmer..

    Pls help po.. Thank u..

    ReplyDelete
  54. Hi Rennel,

    1) Please check the following COM, Baudrate setting and the correct path of your hex file.

    2) Try to have a quick press in the reset button before loading the hex file.

    3) Check if the PIC16F877a is still not damaged ,by running your previous program

    4) You must have PIC programmer (ICD2 /JDM) to load a new boot loader.


    Hope this helps,cheers!

    E^3


    ReplyDelete
  55. hi! is there's anyone had a copy of the source code of PICMe Loader in Visual Basic 6?

    TIA

    ReplyDelete
    Replies
    1. Hi Sir,

      Good Day.

      I'd already uploaded those files in google code.

      https://code.google.com/p/hi-techno-barrio/downloads/detail?name=PICME-Source.zip&can=2&q=

      Cheers!

      -E^3

      Delete
  56. Good day sir!
    tanong ko lang po, bakit nag iinvalid com port no. pag click nung download sa PICDSM? e tama naman po yungport na pinili ko kung nasan ung cable ng pic. pa help po. thanks!

    ReplyDelete
  57. Hi Sir Camara,

    Good Day.

    1) You can install PICDSM in the other PC, just to check its COM port is working.

    2) You may double check the com ports that are accessible in your PC-so you have the other options of checking it.

    3) You can check it again using other built-in software which is the hyperterminal.

    Hope this helps.


    Cheers!


    E^3

    ReplyDelete
  58. Good day sir!

    Sir do you have another link other than the link below?
    https://code.google.com/p/hi-techno-barrio/downloads/detail?name=PICME-Source.zip&can=2&q=

    I can't download the file it says "Virus detected"

    thank you in advance

    RJ, ECE Student

    ReplyDelete
    Replies

    1. Hi RJ.

      Good Day bro..

      Actually you can download it using another media downloader ,perhaps you have that virus restrictions in your PC so you may reconfigure it or try another one.

      Cheers!

      -E^3

      Delete
    2. Good day sir!
      na download ko na po using another media downloader.
      Thank you po sir.

      More Power!

      RJ

      Delete
    3. Hi RJ,

      Good to hear that it helps you.

      Just have some time to read some post in my blog or you may subscribe to it...

      Thanks

      E^3

      Delete
  59. can you post a pic downloader & rs232 monitor file link for download?
    my cd is damage and i cannot program my pic anymore..
    please help.

    ReplyDelete
    Replies
    1. Hi Sir,

      Here is the link of PICMe sources
      https://code.google.com/p/hi-techno-barrio/downloads/detail?name=PICME-Source.zip&can=2&q=

      Cheers!

      -E^3

      Delete
  60. Hi, can you give me sample codes for the lights. please. i will really appreciate it. thanks! in advance!

    ReplyDelete
  61. Hi bro,

    please run this code ..thanks

    D)LED SWITCH ON & OFF
    ============================================================

    #include <16f877a.h> //Initialization
    #include
    #fuses HS, NOWDT, NOPROTECT, NOLVP
    #use delay (clock=20000000)
    #use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7)

    void main()
    { //Start of Main Program
    int8 a=0x00; //Set variable a to 0

    delay_ms(500);
    printf ("\nIf you can read this message,");
    printf (" you are using the PICMe Starter Kit properly!\n"); //Confirmation
    while (1) { start of main loop
    output_d(0x00); //Turn off LEDs
    delay_ms(500); //for 0.5sec
    output_d(a); //Turn on LEDs
    delay_ms(500); //for 0.5s
    if (!input(PIN_B0)) //if SW1 is pressed for a while
    {
    printf("\n value of a: %X\n",a); //display value of a in hex format
    }
    while(!input(PIN_B0)); //stop while SW1 is pressed
    {a++; //Increment a}
    if(a>=0xFF)
    {a=0;}
    }// end of main loop
    } //End of program


    ==========================================================

    Thanks

    -E^3

    ReplyDelete
  62. Good day sir, ask ko lang po kung pano po ung connection sa ICD2 para makapaglagay ng panibagong bootloader, at pwede dn po ba na gamitin ung mismong PICMe para mailagay ung bootloader? salamat po in advance

    ReplyDelete
  63. Hi Sir Cristobal,

    You can see the "ICD2" mark in the PICMe board , connect its pin to the programmer/debugger. You must have PIC programmer (ICD2 /JDM DIY are available in the internet) to load a new boot loader.

    Here is the link of PICMe sources https://code.google.com/p/hi-techno-barrio/downloads/detail?name=PICME-Source.zip&can=2&q=

    Cheers!

    -E^3

    ReplyDelete
  64. Hi sir, Im having a problem with PICme, I know I did my program right because I already use it before and it works.. It is strange that when I tried it now, the power indicator(Red LED) lights on, but the 8 yellow LEDs doesnt light up even if I use a very simple program lighting one LED, I already use five PIC16f778a...what probably is the problem sir? Thanks in advance, hope you could help me

    ReplyDelete
  65. Bro tagal ko n gusto paturo syo pero d mo pa ko turuan gang ngayon

    ReplyDelete
    Replies
    1. Hi Sir ,


      Ikaw itong expert dyan eh.

      Mag pa burger ka nga -heheh


      e^3

      Delete