CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

No output shows in LCD for PIC18F8722

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
Zulhafiz



Joined: 11 Apr 2013
Posts: 2
Location: Cyberjaya, Malaysia

View user's profile Send private message

No output shows in LCD for PIC18F8722
PostPosted: Thu Apr 11, 2013 1:45 am     Reply with quote

Hi guys... I am beginner in CCS Programming and PIC18F8722 and C Programming...

I have Everboard Development Kit for PIC18F8722 and I need to design ADC in which can shows the output LCD.

I read in CCS forum and found flex_lcd.c file. I try modified that code to suit any available pin in that PIC development kit which connect to LCD 16x2.

The available pin in that development kit is A1, A2, B0, B1, B2, C0, C1, C2, C3, C4, C5, F1, F2, F3, F4, F5, F6, F7, G0, G3, H4, H5, H6, H7, J4, J5, J7 and J6.

My problem is, the output of the LCD shows nothing. My mind is stuck right now since last 3 weeks just thinking to solve this problem.

Anyone experts can help me..?? Crying or Very sad

This is code for flex_lcd.c which already post by others:
http://www.ccsinfo.com/forum/viewtopic.php?t=24661
Code:
// flex_lcd.c

 // These pins are for the Microchip PicDem2-Plus board,
 // which is what I used to test the driver.  Change these
 // pins to fit your own board.

 #define LCD_DB4  PIN_F0
 #define LCD_DB5  PIN_F1
 #define LCD_DB6  PIN_F2
 #define LCD_DB7  PIN_F3

 #define LCD_RS   PIN_F4
 #define LCD_RW   PIN_F5
 #define LCD_E    PIN_F6

 // If you only want a 6-pin interface to your LCD, then
 // connect the R/W pin on the LCD to ground, and comment
 // out the following line.

 //#define USE_LCD_RW   1     



Main Programme, LCD_Test.c:

Code:
#include <18f8722.h>
#fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP,
#use delay(clock = 20000000)

#include "flex_lcd.c"

//============================
void main()
{
lcd_init();              // Initialize the LCD

lcd_putc("\fHello World\n");
lcd_putc("Line Number 2");

while(1);
}


I don't now what to do. Crying or Very sad
ckielstra



Joined: 18 Mar 2004
Posts: 3680
Location: The Netherlands

View user's profile Send private message

PostPosted: Thu Apr 11, 2013 4:16 am     Reply with quote

ALWAYS: post your compiler version.

Can you post a link to more information about your hardware? When I search for Everboard I can't find it.

always start a new project with the most simple program you can think of: a blinking LED. This confirms many parts of your hardware are working and running at the correct frequency.
Your current setup will fail to run the blinking LED program.

What is your clock frequency? You specified 20MHz, but that is wrong for the XT fuse setting. So: use XT fuse and maximum of 4MHz, or use HS fuse for frequencies 4MHz to 25MHz.
Zulhafiz



Joined: 11 Apr 2013
Posts: 2
Location: Cyberjaya, Malaysia

View user's profile Send private message

PostPosted: Thu Apr 11, 2013 8:58 pm     Reply with quote

Hi Ckielstra.. Thanks a lot for reply.. Very Happy

I use CCS PCWHD Compiler version v4.130.

Actually there are no information of this kit. This kit just use for learning purpose. It use PIC18F8722 as main chip.

here is link to the photo of this Development kit:



Also schematic picture for this board:



As you stated, I actually already do Programming to light the LED which already build in that kit. I also success do a programming which counting decimal 1 to 99 using dual 7 segment.

Here is C program to light the Green LED which is already connect to Pin RA5 in PIC18F8722.
Code:
#include <18f8722.h>
#device ICD=TRUE
#fuses HS,NOLVP,NOWDT
#use delay (clock=20000000)

#define GREEN_LED PIN_A5
void main(){
      while (TRUE){
            output_low (GREEN_LED);
            delay_ms (1000);
            output_high (GREEN_LED);
            delay_ms (1000);
      }
}


For the counting decimal 1 to 99, here is the code:

Code:
#include <18f8722.h>
#fuses HS,NOLVP,NOWDT
#use delay(clock=20000000)

#define GREEN_LED PIN_A5
#define YELLOW_LED PIN_B4
#define RED_LED PIN_B5

byte CONST LED_MAP[10] =
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};

void display_number( int n) {
   output_f(LED_MAP[n/10]);
   output_low(PIN_C0);
   delay_ms(4);
   output_high(PIN_C0);
   output_f(LED_MAP[n%10]);
   output_low(PIN_C1);
   delay_ms(4);
   output_high(PIN_C1);
}

void main() {
   int count=1,i;
   
   while(TRUE) {
      for(i=0;i<=200;i++)
         display_number(count);
      count = (count==99) ? 1 : count+1;
   }
}

Also, this is the link for the connection for Dual 7 Segment to PIC18F8722 Pin.



In this Kit, it is already use 20MHz Xtal.

Is anybody experts with PIC can give any suggestion about coding for ADC with LCD .

I cannot solve it my own... So sad... Sad Sad Sad
Ttelmah



Joined: 11 Mar 2010
Posts: 19539

View user's profile Send private message

PostPosted: Fri Apr 12, 2013 3:43 am     Reply with quote

Serious comment 1. Your connections for the LED, risk damaging the chip. No current limiting resistors. The chip will be overheating, and could damage the port pins you use.

Now, the way to work, is slowly. Think about the connections:
1) Have you got the R/W pin on the LCD connected to ground?.
2) Is the ground and the power supply connected to the LCD?.
3) What have you got connected to Vee on the LCD?.
I suspect the latter is the problem.

LCD's require a contrast control voltage. without this connected, they generally display nothing. Some modern LCD's allow this to be connected to GND, and work. However most LCD's require a small voltage of about 0.4v on this pin. Hence it is common to use a pot to feed this. Some LCD's require a -ve voltage here. You need to get this right.

4) Triple check the data connection to the LCD. Remember it is D4 to D7 that are used, not D0 to D3. It is a fairly common error to get these wrong.

5) Add smoothing close to the LCD.

Best Wishes
ckielstra



Joined: 18 Mar 2004
Posts: 3680
Location: The Netherlands

View user's profile Send private message

PostPosted: Fri Apr 12, 2013 4:17 am     Reply with quote

The development Kit you are using is supplied by CCS, not by Everboard (whatever that company might be):
http://www.ccsinfo.com/product_info.php?products_id=18F8722kit
temtronic



Joined: 01 Jul 2010
Posts: 9243
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Fri Apr 12, 2013 5:51 am     Reply with quote

general comment..
Buy a roll of 10 conductor, 22 ga, solid wire. It'll have all 10 colours ! Makes wiring breadboards a lot easier. Having just 1 colour (white in your case) very easy to miswire 1 or 2 connections...
Even some 'telephone' cable is better (4 colours,R,G,B,Y).

hth
jay
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group