Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

8051 programmer

Status
Not open for further replies.

Zordon

New Member
Does anyone know where i can find a 8051 programmer kit for an atmel chip, or near toronto.

thanks dave
 
those prices are insane i guess i made a bad choice for going with 8051 il try using a pic microcontroller.
 
Lots of programmers for 8051 systems on the web; Google is your friend
Problem is that not all programmers programms all devices so you need to select programmer according the device family you intend to use.
That's also the case with PIC's.

Check these:
**broken link removed**
http://www.sunrom.com/index.php?main_page=index&cPath=25&ssid=6e1694f7c2c51c9fc52470b6b65c5eb7


You can also skip the programmer by using FLIP
http://www.atmel.com/dyn/general/ad...=1&checkAll=1&checkAllReference=1&target=flip
 
mcs51mc said:
Lots of programmers for 8051 systems on the web; Google is your friend
Problem is that not all programmers programms all devices so you need to select programmer according the device family you intend to use.
That's also the case with PIC's.

Except almost all PIC's use the same programmer hardware, and something like the Inchworm ICD2 clone programmes 'almost' all PIC's (including future ones) - the main exceptions being the VERY, VERY, VERY old parallel programmed ones.
 
Zordon said:
those prices are insane i guess i made a bad choice for going with 8051 il try using a pic microcontroller.

Creatron Inc in Toronto (College & Spadina) carries programmers including mine for quite a few micros, PIC, Atmel, Motorola. I don't think there is any 8051 stuff though.
 
Nigel Goodwin said:
Except almost all PIC's use the same programmer hardware, and something like the Inchworm ICD2 clone programmes 'almost' all PIC's (including future ones) - the main exceptions being the VERY, VERY, VERY old parallel programmed ones.
Can you then please explain why I read several threads overhere stating that PIC x can while PIC y can't be programmed with programmer ABC?
If one programmer can program all PIC's why is there a list of "supported controllers" with each programmer?
Correct me if I'm wrong but Inchworm is for 16F and 18F, so what about 10F, 12F and 14F?
 
In the dark ages PICs used a parallel programming setup (16C54) and only the PICStart would still program those.

Yep the Inchworm and every other ICD2 clone can program almost any 5V Flash based PIC (You DON'T want to use the OTP CMOS PICs as a hobbiest anyway)
Some ICD2 clones have buffered I/O and can program 3.3V PICs like the 24F & 33F PICs too (the Inchworm cannot as it uses simple non buffered I/O)

And yes it can program the 10F, 12F and even some 33F chips (5V ones) (not 14C000 as it's a CMOS OTP chip and very specialized, not even listed in MPLAB anymore) Also the 17C chips are ancient and not supported. But that still leaves you with about a hundred left to choose from.
 
Last edited:
mcs51mc said:
Can you then please explain why I read several threads overhere stating that PIC x can while PIC y can't be programmed with programmer ABC?

Basically it's down to the supporting software for the programmer - NOT the programmer itself, but as the ICD2 is supported directly by MicroChip (and so are it's clones like the Inchworm) it's updated regularly by MicroChip.

If one programmer can program all PIC's why is there a list of "supported controllers" with each programmer?

See above!.

Correct me if I'm wrong but Inchworm is for 16F and 18F, so what about 10F, 12F and 14F?

Yes you're wrong :D
 
which 8051 device?

Zordon said:
Does anyone know where i can find a 8051 programmer kit for an atmel chip, or near toronto.

thanks dave

What is the device? Can you be more specific?

If its an 89S series atmel or any other ISP device, you can probably build the cable yourself. There are lots of diagrams and info just about everywhere. DO a Google search.
 
The device is a Atmel AT89C2051 Microcontroller and i am trying to build this clock https://www.rentron.com/at89c205.htm

ive got it put together just need it programmed what i intend to do with this circuit after i learn how to code is to have a light come on 15 min before the buzzer to try and simulate a sunrise to help wake me up. also its for school

dave
 
Ahh so it's a clock you want. I've built this kit with clock builders and 7 segment folks in mind. It even has a 32768Hz crystal (same as the 1307 uses) for accurate timekeeping. It doesn't have a battery backup but it does have a nice bright LED display. It's called the Dragonfly. It's got the I2C pins on the USER connector if you want to add I2C devices like the DS1307 on an external PCB. And if you wanted battery backup it should be possible to add a SuperCap and a power loss sensor with little effort. (the 16F886 can switch to low power mode and keep the 32KHz crystal running till power is restored)

If you really want to use a DS1307 and LCD like the rentron clock then the Unicorn kit can handle it. You cut three traces under the I2C socket (they're designed for this) and add a 32768Hz crystal & a 3V battery to the three pins beside the socket, put a 1307 in the socket and you've got a clock. The programmer is the inexpensive Inchworm+

They have all those kits and more on display at Creatron Inc on College.

The schematics for all the kits are on my site if you're curious.

I've just got the Dragonfly running as a clock beside my bed. Those Super Red LEDs are quite bright too!

PS both kits have USER I/O ports and RS485 communications hardware.

Dragonfly LED
**broken link removed**
Unicorn LCD
**broken link removed**
 
Last edited:
Easiest one here

I did this one:

**broken link removed**

they even have a single layer board layout on their site.

OR

you can just switch to 89S2051 and use ISP programmer built for $3 in parts.
I am sure the same code would work with little or NO modifications.

Good Luck
 
blueroomelectronics said:
Doesn't he still need a preprogrammed 89C2051 for that programmer?
Yes he does, wonder where John got his ?
Using "BlowIt" sofftware and the parrallel PC port should also work. Plenty of sites on this one... ...
 
thanks for all your help guys, i've decided to go with pic because my boss just gave me a programmer for it, so if theres any pic experts what will replace the atmel chip?

blueroomelectronics i definetly wish i checked this forum before starting this project your clocks look good. and i am interested in the dragonfly clock but for my project a need a buzzer.
 
Dragonfly has five free output pins, any would be suitable for a small buzzer. Easy to add a driver transistor for a large buzzer or relay.

I go to Creatron on a regular basis, if you wanted to meet me there sometime for a demo no problem.

I've got basic clock HH:MM.SS software testing on it now. Got to clean up the code but here's a peek.
Code:
;** Dragonfly Clock HH:MM.SS uses the 32768Hz crystal with flashing colon
           list     p=16F886
    include <p16F886.inc>
        __CONFIG _CONFIG1, _DEBUG_ON & _WDT_OFF & _LVP_OFF & _INTOSCIO
        errorlevel      -302,-305       
        cblock  0x20
        Digit:6
        Jiffy                   ; 1/256 second timebase        
        HalfSec
        Minutes
        Hours
        DigSel                  ; which digit 0-5 (left to right)
        Tens
        Ones
        endc

#define Rst4022 PORTC,5
#define Clk4022 PORTC,2

    org     0
        nop
        goto    Init
        org     4
        goto    _512
_Seg    addwf   PCL
        dt      b'00111111'     ; "0"   
        dt      b'00000110'     ; "1"   
        dt      b'10011011'     ; "2"   
        dt      b'10001111'     ; "3"   
        dt      b'10100110'     ; "4"   
        dt      b'10101101'     ; "5"   
        dt      b'10111101'     ; "6"   
        dt      b'00000111'     ; "7"   
        dt      b'10111111'     ; "8"   
        dt      b'10101111'     ; "9"   
        
_512    incfsz  Jiffy           ; 1/512 second refresh clock
        goto    _DoDisp
_Sec    incf    HalfSec         ; .5 second increments
        movlw   .119
        subwf   HalfSec,w
        bnc     _UpSec     
        clrf    HalfSec         ; zero the half seconds
_Min    incf    Minutes         ; 0-59 minutes
        movlw   .59           
        subwf   Minutes,w
        bnc     _UpMin
        clrf    Minutes
_Hrs    incf    Hours         
        movlw   .23
        subwf   Hours,w
        skpnc
        clrf    Hours           ; 0-23 hours
_UpHrs  movlw   Digit
        addlw   .1
        movwf   FSR
        incf    Hours,w         ; 1-24 hours
        call    _DecBCD
        decf    Tens,w
        skpnz
        clrf    Digit           ; blank lead digit (tens of hours)
_UpMin  movlw   Digit           ; point to seconds (ones)   
        addlw   .3
        movwf   FSR             ; 
        movfw   Minutes
        call    _DecBCD
        btfsc   Digit+2,7       ; digit 3 dp / G transpose
        bsf     Digit+2,6
        bcf     Digit+2,7       
_UpSec  movlw   Digit           ; point to seconds (ones)
        addlw   .5  
        movwf   FSR             ;
        clrc                    ; make sure carry is clear 
        rrf     HalfSec,W       ;
        call    _DecBCD
        btfsc   Digit+5,7       ; digit 6 dp / G transpose
        bsf     Digit+5,6
        bcf     Digit+5,7
_Colon  bsf     Digit+3,6       ; turn on digit 4 colon
        bcf     Digit+1,6
        bcf     Digit+2,7
        btfsc   HalfSec,0
        goto    _DoDisp
        bsf     Digit+1,6
        bsf     Digit+2,7
;*** refresh each digit 512 times per second
_DoDisp clrf    PORTB           ; blank display ABCDEF
        movlw   b'00111111'
        andwf   PORTA           ; blank display dp G
        incf    DigSel          ; increment to 6 then reset
        movlw   .6              ; W = 6 (number of digits)
        subwf   DigSel,w        ; is DigSel < 6
        bnc     _disp           ; yes then proceed normally     
_reset  bsf     Rst4022         ; no then reset the 4022 counter (1)
        clrf    DigSel          ; clear the digit count
        bcf     Rst4022         ; enable the 4022 counter
_disp   bsf     Clk4022         ; 4022 latch on rising edge
        movlw   Digit
        addwf   DigSel,w
        movwf   FSR             ; point to display charater
        movfw   INDF
        movwf   PORTB
        andlw   b'11000000'     ; mask off low six bits
        iorwf   PORTA           ; segment G on (normal)
        bcf     Clk4022
        bcf     PIR1,CCP1IF     ; clear the interrupt flag
        retfie
;*** Decimal to BCD enter with byte 0-99 returns Ones
_DecBCD movwf   Ones
        clrf    Tens   
_10s    incf    Tens   
        movlw    .10             ; load the constant 10
        subwf    Ones,f        ; subtract 10 and save result
        bc     _10s             ; check if answer negative
        movlw   .10
        addwf   Ones,w          ; W = Ones + 10
        call    _Seg            ; get the
        movwf   INDF            ; save ones to display
        decf    FSR             ; next digit Tens (left)
        decf    Tens,W          ; W = Tens -1
        call    _Seg            ; convert to seven segment         
        movwf   INDF            ; save tens to display
        return

Init    movlw   b'00001011'     ; osc on, sync,           
        movwf   T1CON           ; enable external OSC on TMR1
        movlw    low(.64-1)      ; 32768 / 512
        movwf    CCPR1L
        movlw    high(.64-1)
        movwf    CCPR1H
        movlw   b'00001011'     ; special CCP timer compare & reset
        movwf   CCP1CON
        banksel ANSEL           ;B3
        clrf    ANSEL           ;B3 all ports digital
        banksel TRISA           ;B1
        movlw   b'00011111'
        movwf   TRISA           ;B1 LED1
        movlw   b'11000000'
        movwf   TRISB
        movlw   b'11011011'
        movwf   TRISC
bsf    PIE1,CCP1IE     ;B1 enable CCP1 interupt
        bcf     STATUS, RP0     ;B0
        movlw   b'11111011'     ; clock low and reset high
        movwf   PORTC           ; 4022 clock low & Reset high
        clrf    DigSel
        movlw   .119            ; cause clock to overflow on reset
        movwf   HalfSec
        movlw   .59
        movwf   Minutes
        movlw   .10             ; start the clock at 11:59:59
        movwf   Hours
        movlw   b'11000000'     ; Enable GIE PIE
        movwf   INTCON
        bcf     Rst4022         ; enable the 4022
  
Loop    goto    $
        
    end
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top