標(biāo)題:
51+PIC單片機(jī)兼容程序 1602液晶顯示歡迎界面
[打印本頁]
作者:
51黑芯片
時(shí)間:
2016-1-17 00:18
標(biāo)題:
51+PIC單片機(jī)兼容程序 1602液晶顯示歡迎界面
//犯的錯(cuò):在51里RW(L命令、H數(shù)據(jù))是直接焊成接地的
//∴ 少了lcd_enable(); 這一函數(shù){lcdrs = 0; lcdrw = 0; lcden = 0; delay(5); lcden = 1;}
//少了這一函數(shù)設(shè)置就無法顯示了
#define PIC //說明,如果是51,你把這句刪掉即可
#define ww //說明,如果是PIC16F877A,你把這句刪掉即可
#ifdef ww
#include<reg52.h>
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit lcdrw=P3^0; //這是個(gè)無用的定義,因?yàn)?1板直接接地,而PIC則不是
sbit dula=P2^6;
sbit wela=P2^7;
#endif
#ifdef PIC
#include <pic.h>
__CONFIG(0X3B31);
#define lcden RA3
#define lcdrs RA5
#define lcdrw RA4
#define P0 PORTD
#endif
#define uchar unsigned char
#define uint unsigned int
#ifdef ww
uchar code table[]=" hello! jasper"; //寫字符串時(shí)用“”而不是{ }了
uchar code table1[]=" xm.dabiao ";
#endif
#ifdef PIC
//奇怪了,移動(dòng)下面2行會(huì)提示,逗號(hào)錯(cuò)誤
const uchar table[]=" hello! jasper"; //寫字符串時(shí)用“”而不是{ }了
const uchar table1[]=" xm.dabiao "; //PIC的數(shù)組寫法與51的是不同的
#endif
uchar num;
void delay(uint z) //延時(shí)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
P0=date;
// delay(5);
lcdrs=1;
lcdrw=0;
lcden=0;
delay(5);
lcden=1;
}
void lcd_enable(void)
{
lcdrs = 0;
lcdrw = 0;
lcden = 0;
delay(5);
lcden = 1;
}
void init()
{
#ifdef ww
dula=0;
wela=0;
lcden=0;
#endif
#ifdef PIC
TRISA=0x00;PORTA=0XF0;
TRISD=0x00;PORTD=0XFF;
ADCON1=0X07;
RA1=1;
#endif
lcd_enable();
write_com(0x38);
lcd_enable();
write_com(0x0c);
lcd_enable();
write_com(0x06);
lcd_enable();
write_com(0x01);
lcd_enable();
// write_com(0x80);
write_com(0x80+0x10);
}
void main()
{
init();
for(num=0;num<16;num++)
{
write_data(table[num]);
delay(20);
}
write_com(0x80+0x51);
for(num=0;num<16;num++)
{
write_data(table1[num]);
delay(20);
}
for(num=0;num<16;num++)
{
write_com(0x18);
delay(160);
}
while(1);
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1