Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

89c51 interfacing lcd c code

Status
Not open for further replies.

comsis

Newbie level 2
Joined
Dec 3, 2010
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,296
plz give me c code for lcd interfacing 8951 microcontroller
 

just search google, so many available
 

which LCD & what are the decoders you r using in LCD?
 

just add"lcd.h" and configure lcd port
/**lcd.h*/

#ifndef LCD_H
#define LCD_H

#include <REG51.h>
#include <intrins.h>
#include "Delay.h"

/**
* Hardware LCD display port assignment.
* Adjust \b LCD_PORT to match hardware.
* \hideinitializer
*/
#define LCD_PORT P1

#define INST_REG 0 // LCD instruction register
#define DATA_REG 1 // LCD data register
#define LINE1_ADDR 0x00 // Start of line 1 in the DD-Ram
#define LINE2_ADDR 0x40 // Start of line 2 in the DD-Ram
#define CLEAR_DISPLAY 0x01 // LCD display clear command


/*****************************************************************************
*
* Global Variable Declarations
*
*****************************************************************************/
sbit E = LCD_PORT^4; // LCD I/O enable pin 6
sbit RS = LCD_PORT^5; // LCD I/O register select pin 4
sbit RW = LCD_PORT^6; // LCD I/O R/W select pin 5
sbit SPKR = LCD_PORT^7; // Speaker output


/*****************************************************************************
*
* Macro Definitions
*
*****************************************************************************/

/**
* Sets lcd cursor position.
* \param address The address to move cursor to as an \b unsigned \b char.
* \return -
* \hideinitializer
*/
#define LCD_SET_ADDR(address) (lcd_wr_reg(INST_REG, (address) | 0x80))

/**
* Gets lcd cursor position.
* \param -
* \return The address of the cursor as an \b unsigned \b char.
* \hideinitializer
*/
#define LCD_GET_ADDR() (lcd_rd_reg(INST_REG) & 0x7f)


/*****************************************************************************
*
* Public Function Prototypes
*
*****************************************************************************/

// extern char putchar(char c); // defined in stdio.h
extern void lcd_wr_reg(bit reg, unsigned char inst);
extern unsigned char lcd_rd_reg(bit reg);

/**
* Lcd module initialisation function.
* Initialises hardware and the HD44780 LCD display controller for 4 bit
* operation.
* \param -
* \return -
*/
extern void lcd_init(void);

/**
* Lcd module audible alert.
* Generates a variable length tone suitable for keyboard feedback and
* ^g bell alerts.
* \param count The number of on/ off cycles to emit as an \b unsigned \b char.
* \return -
*/
extern void lcd_beep(unsigned char count);
extern void lcd_clear(void);

#endif

/** @} */
/*lcd.c*/
#include "Lcd.h"

/*****************************************************************************
*
* Private Function Prototypes
*
*****************************************************************************/
static void lcd_clock_E(void);
static void lcd_backspace(void);
static void lcd_clear(void);
static void lcd_scroll_up(void);

/*****************************************************************************
*
* Private Function Implementation
*
*****************************************************************************/

/*****************************************************************************
*
* lcd_clock_E()
*
*****************************************************************************/
static void lcd_clock_E(void)
{
E = 1;
delay_ms(0); // delay > 100us
delay_ms(0);
delay_ms(0);
E = 0;
}

/*****************************************************************************
*
* lcd_wr_reg()
*
*****************************************************************************/
void lcd_wr_reg(bit reg, unsigned char inst)
{
RS = reg; // Select instruction or data register
RW = 0; // Select write operation
LCD_PORT &= 0xF0; // Clear port data
LCD_PORT |= inst >> 4; // Send D7..D4 to lcd
lcd_clock_E();
LCD_PORT &= 0xF0; // Clear port data
LCD_PORT |= inst & 0x0F; // Send D3..D0 to lcd
lcd_clock_E();
LCD_PORT |= 0x0F; // Set low nibble for input
// Prevent damage
}

/*****************************************************************************
*
* lcd_rd_reg()
*
*****************************************************************************/
unsigned char lcd_rd_reg(bit reg)
{
unsigned char value;

LCD_PORT |= 0x0F; // Set low nibble for input
RS = reg; // Select instruction or data register
RW = 1; // Select read operation
delay_ms(0); // Wait 40 ns minimum
E = 1; // Enable output
delay_ms(0); // Wait 160 ns minimum
value = LCD_PORT << 4; // Retrieve D7..D4
E = 0; // Disable output
delay_ms(0); // Wait 230 ns minimum
E = 1; // Enable output
delay_ms(0); // Wait 160 ns minimum
value |= LCD_PORT & 0x0F; // Retrieve D3..D0
E = 0; // Disable output
RW = 0; // Prevent damage

return(value);
}

/*****************************************************************************
*
* lcd_backspace()
*
*****************************************************************************/
static void lcd_backspace(void)
{
unsigned char addr;

addr = LCD_GET_ADDR();

if ((addr != 0x00) && (addr != 0x40))
{
LCD_SET_ADDR(addr - 1);
}
}

/*****************************************************************************
*
* lcd_clear()
*
*****************************************************************************/
static void lcd_clear(void)
{
lcd_wr_reg(INST_REG, CLEAR_DISPLAY);

delay_ms(2); // Wait more than 1.64ms
}

/*****************************************************************************
*
* lcd_scroll_up()
*
*****************************************************************************/
static void lcd_scroll_up(void)
{
unsigned char i;
unsigned char c;

for(i = LINE1_ADDR; i < 0x28; i++)
{
LCD_SET_ADDR(i + LINE2_ADDR);
c = lcd_rd_reg(DATA_REG);
LCD_SET_ADDR(i + LINE2_ADDR);
lcd_wr_reg(DATA_REG, ' ');
LCD_SET_ADDR(i);
lcd_wr_reg(DATA_REG, c);
}
LCD_SET_ADDR(LINE2_ADDR);
}


/*****************************************************************************
*
* Public Function Implementation
*
*****************************************************************************/

/*****************************************************************************
*
* init_lcd()
*
*****************************************************************************/
void lcd_init(void)
{
delay_ms(15); // Wait more than 15ms
LCD_PORT = 0x03; // Startup Sequence
lcd_clock_E();
delay_ms(5); // Wait more than 4.1ms
lcd_clock_E();
delay_ms(1); // Wait more than 0.1ms
lcd_clock_E();
LCD_PORT = 0x02;
lcd_clock_E();
delay_ms(1); // Wait more than 0.1ms

lcd_wr_reg(INST_REG,0x28); // Function Set
// DL=0 4bit, N=1 2Line, F=0 5x7

lcd_wr_reg(INST_REG,0x0c); // Display on/off control
// D=1 Disp on, C=0 Curs off, B=0 Blink off

lcd_wr_reg(INST_REG,0x06); // Entry Mode Set
// I/D=1 Increment, S=0 No shift

lcd_wr_reg(INST_REG,0x01); // Clear Display

delay_ms(2); // Wait more than 1.64ms

}

/*****************************************************************************
*
* putchar()
*
*****************************************************************************/
char putchar(char c)
{
switch(c)
{
case '\n': // Newline
{
if (LCD_GET_ADDR() >= LINE2_ADDR) // already in line 2 ?
{
lcd_scroll_up();
}
LCD_SET_ADDR(LINE2_ADDR);
break;
}
case '\a': // Bell (alert)
{
lcd_beep(50);
break;
}
case '\b': // Backspace
{
lcd_backspace();
break;
}
case '\f': // Form feed
{
lcd_clear();
break;
}
default:
{
lcd_wr_reg(DATA_REG, c);
}
}
return (c);
}

/*****************************************************************************
*
* lcd_beep()
*
*****************************************************************************/
void lcd_beep(unsigned char count)
{
for (count; count > 0; count--)
{
SPKR = 1;
delay_ms(1);
SPKR = 0;
delay_ms(1);
}
}

/** @} */
 

Attachments

  • LCD_DELAY_I2C MODULE.rar
    277.6 KB · Views: 136

just add"lcd.h" and configure lcd port
/**lcd.h*/

#ifndef LCD_H
#define LCD_H

#include <REG51.h>
#include <intrins.h>
#include "Delay.h"
.....................................................

** @} */

Such a big and complex program for a simple requirement......................

COMSIS....... when you ask for help please tell the complete specification of your requirement such as Type of lcd (16*2,8*2,......)
your lcd config need (8 bit or 4 bit) etc so that it is easy for everyone to help you quickly rather than asking you more and more questions to find out your requirement

---------- Post added at 16:42 ---------- Previous post was at 16:39 ----------

these programs are already put in some threads earlier. do a search in this forum for your requirement and last if you dont find it then start a new thread
 

I am professional LCD engineer for some years and I have a lot of LCD Program and LCD datasheet. If any worldwide friends needed, I would like to email you as soon as possible. Pls. email me firstly. Thanks. My Email address is Ken@e-shinedisplay.com www.e-shinedisplay.com

---------- Post added at 20:53 ---------- Previous post was at 20:49 ----------

#include pic.h
#define RS RC0
#define RW RC1
#define E RC2
#define PSB RC3
#define RST RC4
PORTD=DATA;
unsigned char COUNT3,COUNT2,COUNT1,COUNT,LCD_X,LCD_Y,LCD_DATA1,LCD_DATA2,LCD_DATA,F3,R1,F0;
const unsigned char TU_TAB1[]={
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xF0,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x18,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0xFF,0xDC,0x00,0x01,
0x80,0x00,0x1F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0xFF,0xBC,0x00,0x01,
0x80,0x00,0x30,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x01,0x7F,0xFF,0xB8,0x00,0x01,
0x80,0x00,0x30,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x01,0x7F,0xFF,0x78,0x00,0x01,
0x80,0x00,0x19,0xFF,0xFE,0xC0,0x00,0x00,0x00,0x00,0x02,0xFF,0xFF,0x70,0x00,0x01,
0x80,0x00,0x18,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,0xFF,0xFE,0xF0,0x00,0x01,
0x80,0x00,0x0C,0x01,0xFF,0x60,0x00,0x00,0x00,0x00,0x05,0xFF,0xFE,0xE0,0x00,0x01,
0x80,0x00,0x0C,0x7F,0xD0,0x20,0x00,0x00,0x00,0x00,0x05,0xFF,0xFD,0xE0,0x00,0x01,
0x80,0x00,0x06,0x00,0x0F,0xB0,0x00,0x00,0x00,0x00,0x0B,0xFF,0xFD,0xC0,0x00,0x01,
0x80,0x00,0x06,0x03,0xFC,0x10,0x00,0x00,0x00,0x00,0x0B,0xFF,0xFB,0xC0,0x00,0x01,
0x80,0x00,0x03,0x1F,0x00,0x18,0x00,0x00,0x00,0x00,0x17,0xFF,0xFB,0x80,0x00,0x01,
0x80,0x00,0x03,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x17,0xFF,0xF7,0x80,0x00,0x01,
0x80,0x00,0x01,0x80,0x00,0x0C,0x00,0x00,0x00,0x00,0x17,0xFF,0xF7,0x00,0x00,0x01,
0x80,0x00,0x01,0x80,0x00,0x04,0x00,0x00,0x00,0x00,0x09,0xFF,0xEF,0x00,0x00,0x01,
0x80,0x00,0x00,0xC0,0x00,0xF6,0x00,0x00,0x00,0x00,0x06,0x7F,0xEE,0x00,0x00,0x01,
0x80,0x00,0x00,0xC0,0x03,0xC2,0x00,0x00,0x00,0x00,0x01,0x9F,0xDE,0x00,0x00,0x01,
0x80,0x00,0x00,0x60,0x00,0x3B,0x00,0x00,0x00,0x00,0x00,0x67,0xDF,0x00,0x00,0x01,
0x80,0x00,0x00,0x60,0x00,0xE3,0x00,0x00,0x00,0x00,0x00,0x19,0xBF,0x00,0x00,0x01,
0x80,0x00,0x00,0x30,0x03,0x8E,0x00,0x00,0x00,0x00,0x00,0x06,0x3F,0x00,0x00,0x01,
0x80,0x00,0x00,0x30,0x06,0x3C,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x00,0x00,0x01,
0x80,0x00,0x00,0x18,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x01,
0x80,0x00,0x00,0x18,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x0F,0x7F,0x80,0x00,0x01,
0x80,0x00,0x00,0x0C,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x1F,0xC0,0x00,0x01,
0x80,0x00,0x00,0x0C,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x07,0xE0,0x00,0x01,
0x80,0x00,0x00,0x06,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x1F,0xE0,0x00,0x01,
0x80,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x3F,0xC0,0x00,0x01,
0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0xFF,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFC,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x05,0x40,0x88,0x04,0x01,0x08,0x00,0x00,0x0A,0x81,0x10,0x04,0x00,0x20,0x01,
0x80,0x79,0x21,0x08,0x02,0x21,0x49,0x00,0x00,0xF2,0x42,0x10,0x04,0x47,0x10,0x01,
0x80,0x09,0x07,0xDF,0x7F,0xF7,0xAA,0x00,0x00,0x12,0x0F,0xBE,0x7F,0xE5,0xFE,0x01,
0x80,0x7F,0xF4,0x51,0x08,0x81,0x2C,0x00,0x00,0xFF,0xE8,0xA2,0x44,0x47,0x00,0x01,
0x80,0x09,0x04,0x61,0x08,0x81,0x7F,0x00,0x00,0x12,0x08,0xC2,0x7F,0xC5,0x4A,0x01,
0x80,0x0B,0x24,0x51,0x08,0x83,0x81,0x00,0x00,0x16,0x48,0xA2,0x44,0x45,0x6A,0x01,
0x80,0x1D,0x47,0xC9,0x05,0x05,0x01,0x00,0x00,0x3A,0x8F,0x92,0x44,0x47,0x52,0x01,
0x80,0x68,0x84,0x49,0x05,0x05,0x7F,0x00,0x00,0xD1,0x08,0x92,0x7F,0xC5,0x6A,0x01,
0x80,0x09,0x94,0x41,0x02,0x01,0x01,0x00,0x00,0x13,0x28,0x82,0x44,0x05,0x4A,0x01,
0x80,0x0E,0x57,0xC1,0x0D,0x81,0x01,0x00,0x00,0x1C,0xAF,0x82,0x04,0x29,0x42,0x01,
0x80,0x38,0x34,0x4E,0x70,0x71,0x7F,0x00,0x00,0x70,0x68,0x9C,0x03,0xEB,0x7E,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};

delay_ms
void delay_10us(unsigned char x)
{
while(x--);
}
void delay_ms(unsigned char cnt)
{
unsigned char i;
do {
i = 4;
do {
delay_10us(39);
} while(--i);
} while(--cnt);
}

检查是否LCD忙碌的子程序
void check_busy(void)
{
TRISD=0xff;在此处设为输入。
PORTD=0xff;
RS=0;
RW=1;
while (1)
{
NOP();NOP();NOP();
E =1;
NOP();NOP();NOP();
if (RD7==0) break;
NOP();NOP();NOP();
E =0;
}
E =0;
TRISD=0X00;还原为输出。
RC7=!RC7;
delay_ms(50);
}
数据写命令
void send_com(unsigned char command )
{
check_busy();
RS=0;
RW=0;
PORTD=command;
E =1;
NOP();
NOP();
E =0;
}
LCD初始化时的送命令
void send_com_init(unsigned char command_init )
{
RS=0;
RW=0;
PORTD=command_init;
E =1;
NOP();
NOP();
E =0;
}
写数据
void send_data(unsigned char data )
{
check_busy();
RS=1;
RW=0;
PORTD=data;
E =1;
NOP();
NOP();
E =0;
}
读数据
unsigned char read_data(void)
{
unsigned char read_data;
check_busy();
TRISD=0XFF;
RS=1;
RW=1;
E =1;
NOP();
read_data=PORTD;
E =0;
TRISD=0x00;还原为输出。
return (read_data);
}
清屏
void clear_LCD(void)
{
send_com(0x01);
send_com(0x34);
send_com(0x30);
}
LCD初始化
void initial_LCD(void)
{
PSB=1;
RST=0;Reset.
NOP();
NOP();
RST=1;
NOP();
delay_10us(10);
send_com_init(0x30);30H--基本指令操作
delay_10us(4);
send_com_init(0x0c);开显示,关光标,不闪烁。
delay_10us(10);
send_com_init(0x01);清除显示
delay_ms(10);
send_com_init(0x06);指定在资料写入或读取时,光标的移动方向,DDRAM的地址计数器(AC)加1。

}
写准备
void WR_ZB(void)
{
send_com(0x34);
send_com(LCD_Y);
send_com(LCD_X);
send_com(0x30);
}
取数送显示
void QUSHU(const unsigned char shu)
{
for (;COUNT!=0;COUNT--)
{
send_data(shu++);
delay_ms(80);
}
}
Flash
void flash(void)
{
send_com(0x08);关闭显示
delay_ms(250);
send_com(0x0c);开显示,关光标,不闪烁。
delay_ms(250);
send_com(0x08);关闭显示
delay_ms(250);
send_com(0x0c);开显示,关光标,不闪烁。
delay_ms(250);
send_com(0x08);关闭显示
delay_ms(250);
}
显示图形子程序
void PHO_DISP(const unsigned char s)
{
COUNT3=0X02;
LCD_X=0X80;
for (;COUNT3!=0;COUNT3--)
{
LCD_Y=0X80;
COUNT2=0X20;32
for (;COUNT2!=0;COUNT2--)
{
COUNT1=0X10;16
WR_ZB();
for (;COUNT1!=0;COUNT1--)
{
send_data(s++);

}
LCD_Y+=1;
}
LCD_X=0X88;
}
send_com(0x36);
send_com(0x30);
}
显示点阵子程序
void LAT_DISP(void)
{
COUNT3=0X02;
LCD_X=0X80;
for (;COUNT3!=0;COUNT--)
{
LCD_Y=0X80;
F0=0;
COUNT2=0X20;
for (;COUNT2!=0;COUNT--)
{
COUNT1=0X10;
WR_ZB();
if (F0!=0)
{
LCD_DATA=LCD_DATA2;
}
else LCD_DATA=LCD_DATA1;
for (;COUNT1!=0;COUNT1--)
{
send_data(LCD_DATA);
}
LCD_Y+=1;
F0=!F0;
}
LCD_X=0X88;
}

send_com(0x36);
send_com(0x30);
}

void main(void)
{
TRISC=0X00;
TRISD=0X00;
PORTD=0X00;
PORTC=0X00;
initial_LCD();
while (1)
{
clear_LCD();
PHO_DISP(TU_TAB1); www.e-shinedisplay.com
while (1);
}
 
Last edited by a moderator:

I am professional LCD engineer for some years and I have a lot of LCD Program and LCD datasheet. If any worldwide friends needed, I would like to email you as soon as possible. Pls. email me firstly. Thanks. My Email address is Ken@e-shinedisplay.com www.e-shinedisplay.com

---------- Post added at 20:53 ---------- Previous post was at 20:49 ----------

#include pic.h

When the thread is for 89c51, why do you want to deviate the thread by posting PIC code.
 
Last edited by a moderator:

Thanx To all............:grin:
I did it............:wink:
now i m working on temprature sensing robort
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top