problem, help ??

General discussion on mikroC PRO for 8051.
Post Reply
Author
Message
energetichiddenboy
Posts: 7
Joined: 12 Sep 2012 13:55

problem, help ??

#1 Post by energetichiddenboy » 12 Sep 2012 14:22

I think Mikro C compiler have problem,
device: AT89C52;
prequency: 12MH;

When i write C code in Mikro C, it successful compile, but when i simulate on Proteus, it run but have wrong answer
:

program:
//khai bao cac bien toan cuc
sbit en at P3_5_bit;
sbit rw at P2_7_bit;
sbit rs at P2_6_bit;
sfr data1 at P0;

unsigned char code xau1[] = "truong dhhh vietnam";
unsigned char code xau2[] = "8051 visual lcd";

// khai bao cac ham

void ktht(void);
void delay(void);
void ktlcd(void);
void ghilenh(unsigned char lenh);
void ghidulieu(unsigned char dulieu);
void w2lcd(unsigned char x);
void guixau2lcd(unsigned char code *p);
void hienthi(void);

// dinh nghia cac ham
void delay(unsigned int n)
{
unsigned int i;
unsigned int j;
for(i = 0; i < n; i++)
{
for(j = 0; j <100;j++)
{
;// ngoi choi
}
}
}

void w2lcd(unsigned char x)
{
rw =0;
data1 = x;
en =1;
en = 0;
delay(100);
}
void ghilenh(unsigned char lenh)
{
rs = 0;
w2lcd(lenh);
}
void ghidulieu(unsigned char dulieu)
{
rs = 1;
w2lcd(dulieu);
}

void ktlcd(void)
{
ghilenh(0x30);
ghilenh(0x30);
ghilenh(0x30);
// 8 bit,2 dong, font 5x7

ghilenh(0x38);

// bat hien thi, an con tro

ghilenh(0x0C);

// xoa man hinh

ghilenh(0x01);
}

void ktht(void)
{
en = 0;
ktlcd();
}
void ghixau2lcd(unsigned char code *p)
{
unsigned char i = 0;
while( p != 0)
{
ghidulieu(p);
i++;
delay(200);
}
}
void hienthi(void)
{
// dich con tro den vi tri thu 2 hang thu nhat
ghilenh(0x81);
ghixau2lcd(xau1);

// dich con tro den dau dong thu 2
ghilenh(0xC0);
ghixau2lcd(xau2);
}



// chuong trinh chinh

void main(void)
{
ktht();
hienthi();
while(1);

}

but when i write same this code in keilC it run very well, I think your compiler have problem:
my program in Keil C:

#include <REGX52.H>


//khai bao cac bien toan cuc
//khai bao cac bien toan cuc
sbit en = P3^5;
sbit rw = P2^7;
sbit rs = P2^6;
sfr data1 = 0x80;

unsigned char code xau1[] = " truong dhhh vn";
unsigned char code xau2[] = "8051 visual lcd";

// khai bao cac ham

void ktht(void); // ham kiem tra he thong
void delay(void); // ham tao tre
void ktlcd(void); // ham kiem tra lcd
void ghilenh(unsigned char lenh); // ham ghi lenh
void ghidulieu(unsigned char dulieu); // ham ghi du lieu
void w2lcd(unsigned char x); // ham set rs, rw
void guixau2lcd(unsigned char code *p); // gui xau >> lcd
void hienthi(void); // hien thi

// dinh nghia cac ham
void delay1(unsigned int i)
{
for(i = 0; i < 10000;i++)
{
; // ngoi choi
}

}

void w2lcd(unsigned char x)
{
rw =0;
data1 = x;
en =1;
en = 0;
delay1(1000);
}
void ghilenh(unsigned char lenh)
{
rs = 0;
w2lcd(lenh);
}
void ghidulieu(unsigned char dulieu)
{
rs = 1;
w2lcd(dulieu);
}

void ktlcd(void)
{
ghilenh(0x30);
ghilenh(0x30);
ghilenh(0x30);
// 8 bit,2 dong, font 5x7

ghilenh(0x38);

// bat hien thi, an con tro

ghilenh(0x0C);

// xoa man hinh

ghilenh(0x01);
}

void ktht(void)
{
en = 0;
ktlcd();
}

void ghixau2lcd(unsigned char code *p)
{
unsigned char i = 0;
while( p != 0)
{
ghidulieu(p);
i++;
delay1(2000);
}
}

void hienthi(void)
{
// dich con tro den vi tri thu 2 hang thu nhat
ghilenh(0x81);
ghixau2lcd(xau1);

// dich con tro den dau dong thu 2
ghilenh(0xC0);
ghixau2lcd(xau2);
}



// chuong trinh chinh

void main(void)
{
while(1)
{
ktht();
hienthi();
delay1(100000);
}
}

and another problem: when I use MikroC's LCD library, but it not work when I simulate in Proteus., I asked my teacher, he tried 1 hour to wrote his code and conected with hardware but not work,
can anybody help?

User avatar
filip
mikroElektronika team
Posts: 11874
Joined: 25 Jan 2008 09:56

Re: problem, help ??

#2 Post by filip » 14 Sep 2012 10:30

Hi,

I believe that you have the same conversation here :
http://www.mikroe.com/forum/viewtopic.p ... 01#p196301

Regards,
Filip.

energetichiddenboy
Posts: 7
Joined: 12 Sep 2012 13:55

Re: problem, help ??

#3 Post by energetichiddenboy » 14 Sep 2012 16:40

yes, I'm a new member, I sent my post 2 times,
sorry, i will notice with my posts in future!

Post Reply

Return to “mikroC PRO for 8051 General”