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.

Junebug users - fun little diag program for ya

Status
Not open for further replies.

futz

Active Member
Technological Arts always used to pre-program their Motorola boards with simple little test programs. That way, when you unpacked it and hooked it up it would be able to do something right away.

So I started writing one for the Junebug 18F1320. It's simple polled RS232 at present and doesn't test absolutely everything on the board yet, as I don't have some components installed yet. I expect to have my trimpots this week, and I think I have one of those IR sensors somewhere in a junkbox. When those parts are installed I'll finish the program, as well as make it more interrupt-driven (not that it really matters in this program, but it's a nicer way to do it).

**broken link removed**

Here's a pic of the RS232 hookup. That's a Techno Arts RS232 ComStamp doing the level shifting on the breadboard. Of course any level shifter will do. **broken link removed**. Sparkfun Electronics. Acroname.

The display to the right on the breadboard and all the parts to the left are not connected at present. They're just leftovers from a previous project.
junebug 002_wb_sm.jpg
Here it is with code slightly modified for display on a **broken link removed**
junebug008_wb_sm.jpg
Oh ya! It runs at 9600 baud, 8N1 for now, so set up your terminal accordingly.
 
Last edited:
Very nice work. :)
PICkit has a nifty terminal program, catch is you can't use it and the ICD at the same time.
**broken link removed**
 
Looks like someones having fun :)

Here's something you might like...

Convert ASCII to upper case (untested)
Code:
;* main - poll rs232 for menu commands and branch accordingly
loop    call    rs_recv            ;wait for a char
    andlw    b'00111111'        ; convert to upper case
    movwf    char            ;save the char for later
The 18F compare and skip command
Code:
cont07  movlw   "0"
    cpfseq   char            ;is it '0'?                   
    goto     cont08        ;no, continue
 
Last edited:
blueroomelectronics said:
Looks like someones having fun :)
Oh ya.

Convert ASCII to upper case (untested)
Code:
;* main - poll rs232 for menu commands and branch accordingly
loop    call    rs_recv            ;wait for a char
    andlw    b'00111111'        ; convert to upper case
    movwf    char            ;save the char for later
Well duh! I should have thought of that. Just do it once. Most of that menu code is from a few years back when I did this on a 16f628. Time to clean it up.

The 18F compare and skip command
Good. Saves another line.
 
Well, here's a 2 page (8.5x11) PIC 18F' Instruction Set Summary 'pdf' file I created several years ago, if you're interested.

I found it handy to pin the sheets onto the cork board directly in front of my desk when I was starting out with the 18F' devices.

I also have a 1 page 11x17 version if you or anyone would like it...

Have fun, Mike
 

Attachments

  • PIC 18F Instruction Summary (8x11).zip
    32.9 KB · Views: 306
Here's a Edit *NOT* working ASCII upper case converter from this site, might work for 16F chips http://www.retards.org/library/technology/electronics/pic/projects/pic_src/snippet.htm
Code:
;* main - poll rs232 for menu commands and branch accordingly
loop    call    rs_recv        ; wait for a char
UpCase  addlw   255 - "z"     ; Get the High limit
       addlw   "z" - "a" + 1     ; Add Lower Limit to Set Carry
    btfss   STATUS, C      ; If Carry Set, then Lower Case
       addlw   h'20'           ; Carry NOT Set, Restore Character
      addlw   "A"        ; add 'A' to restore the Character
    movwf    char        ; save the char for later
 
Last edited:
blueroomelectronics said:
Convert ASCII to upper case (untested)
Code:
;* main - poll rs232 for menu commands and branch accordingly
loop    call    rs_recv            ;wait for a char
    andlw    b'00111111'        ; convert to upper case
    movwf    char            ;save the char for later
Almost correct (you did say "untested"). You actually have to clear bit5 to capitalize, not bit6. :)

But that kills numbers, so you have to add another line to keep them intact, like this
Code:
loop	call	rs_recv			;wait for a char
	movwf	numr			;save as numeral
	andlw	b'01011111'		;convert to upper case
	movwf	char			;save as uppercase char
and then test letters against char and numbers against numr. Or you could do a test at the start and only clear bit 5 on letters.

**broken link removed**
 
Last edited:
This appears to work
Code:
    movwf    char        ; save the char for later
    sublw   "a" -1          ;
    btfss   STATUS, C       ;
    bcf     char, 5            ; convert a-z to upper case
 
Interrupt receive version posted to same rar. This version runs at 57600 - 8/N/1. Just download from the same link as before. Both versions are in the rar. The file for this version is 'int_diag'.
 
Mike said:
Well, here's a 2 page (8.5x11) PIC 18F' Instruction Set Summary 'pdf' file I created several years ago, if you're interested.

I found it handy to pin the sheets onto the cork board directly in front of my desk when I was starting out with the 18F' devices.

I also have a 1 page 11x17 version if you or anyone would like it...

Have fun, Mike

Have one for the 16f series?
 
Mike said:
Well, here's a 2 page (8.5x11) PIC 18F' Instruction Set Summary 'pdf' file I created several years ago, if you're interested.

I found it handy to pin the sheets onto the cork board directly in front of my desk when I was starting out with the 18F' devices.

I also have a 1 page 11x17 version if you or anyone would like it...

Have fun, Mike

Have one for the 16f series?
 
Sure... It's a single 8.5 x 11 page just like in the Data Sheets... I think Bill (blueroom) came up with a pretty nice looking one too...
 

Attachments

  • PIC 16F Instruction Summary.pdf
    27.1 KB · Views: 503
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top