【文件属性】:
文件名称:1602驱动代码C
文件大小:3KB
文件格式:C
更新时间:2017-09-17 10:24:40
1602
#include //51敵湔恅璃
#include
#include"1602.h"
/****************晊奀滲杅************************/
void delay1(int ms)
{ //晊奀赽最唗
int i;
while(ms--)
{
for(i = 0; i< 250; i++)
{
_nop_(); //諾硒俴
_nop_();
_nop_();
_nop_();
}
}
}
/****************耜疆滲杅************************/
BOOL lcd_bz()
{
BOOL result;
LCD_RS = 0;
LCD_RW = 1;
LCD_EP = 1;
_nop_();
_nop_();
_nop_();
_nop_();
result = (BOOL)(P0 & 0x80); //潰聆P0郔詢弇岆瘁峈1
LCD_EP = 0;
return result;//殿隙耜疆賦彆
}
/****************迡韜鍔滲杅************************/
void lcd_wcmd_8bit(int cmd)
{ // 迡硌鍔杅擂善LCD
while(lcd_bz());
LCD_RS = 0;
LCD_RW = 0;
LCD_EP = 0;
_nop_();
_nop_();
P0 = cmd; //蔚詢4弇弇硌鍔籵徹P0諳換跤1602
_nop_();
_nop_(); //蚚衾莉汜珨跺闕喳遵僅
_nop_();
_nop_();
LCD_EP = 1;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP = 0;
}
void lcd_wcmd(int cmd)
{ // 迡硌鍔杅擂善LCD
while(lcd_bz());
LCD_RS = 0;
LCD_RW = 0;
LCD_EP = 0;
_nop_();
_nop_();
P0 = cmd; //蔚詢4弇弇硌鍔籵徹P0諳換跤1602
_nop_();
_nop_(); //蚚衾莉汜珨跺闕喳遵僅
_nop_();
_nop_();
LCD_EP = 1;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP = 0;
P0 = (cmd&0x0f)<<4; //蔚腴4弇硌鍔籵徹P0諳換跤1602
_nop_();
_nop_(); //蚚衾莉汜珨跺闕喳遵僅
_nop_();
_nop_();
LCD_EP = 1;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP = 0;
}
void lcd_pos(BYTE pos)
{ //扢隅珆尨弇离
lcd_wcmd(pos | 0x80);
}
/****************迡杅擂滲杅************************/
void lcd_wdat(BYTE dat)
{ //迡趼睫珆尨杅擂善LCD
while(lcd_bz());
LCD_RS = 1;
LCD_RW = 0;
LCD_EP = 0;
P0 = dat ; //蔚詢4弇杅擂籵徹P0諳換跤1602
_nop_();
_nop_(); //蚚衾莉汜珨跺闕喳遵僅
_nop_();
_nop_();
LCD_EP = 1;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP = 0;
LCD_RS = 1;
LCD_RW = 0;
LCD_EP = 0;
_nop_();
_nop_();
_nop_();
_nop_();
P0 = (dat&0x0f)<<4; //蔚腴4弇弇杅擂籵徹P0諳換跤1602
_nop_();
_nop_(); //蚚衾莉汜珨跺闕喳遵僅
_nop_();
_nop_();
LCD_EP = 1;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP = 0;
}
void lcd_init() //LCD場宎趙扢隅
{
lcd_wcmd_8bit(0x38); //16*2珆尨ㄛ5*7萸淝ㄛ8弇杅擂
delay1(1);
lcd_wcmd_8bit(0x38); //16*2珆尨ㄛ5*7萸淝ㄛ8弇杅擂
delay1(1);
lcd_wcmd_8bit(0x28); //16*2珆尨ㄛ5*7萸淝ㄛ8弇杅擂
delay1(1);
lcd_wcmd(0x28);
delay1(1);
lcd_wcmd(0x0c); //珆尨羲ㄛ壽嫖梓
delay1(1);
lcd_wcmd(0x02); //珆尨羲ㄛ壽嫖梓
delay1(1);
lcd_wcmd(0x01); //壺LCD腔珆尨囀
delay1(1);
/* lcd_wcmd(0x38); //16*2珆尨ㄛ5*7萸淝ㄛ8弇杅擂
delay(1);
lcd_wcmd(0x08); //珆尨羲ㄛ壽嫖梓
delay(1);
// lcd_wcmd(0x04); //痄雄嫖梓
delay(1);
lcd_wcmd(0x02); // 4弇恁寁
delay(1);
lcd_wcmd(0x01); //壺LCD腔珆尨囀
delay(1); */
}