?? lcddriver.h
字號:
#include <intrins.h>
#define dataport P0
//Port Definitions**********************************************************
sbit lcd_rs = P2^0;
sbit lcd_rw = P2^1;
sbit lcd_en = P2^2;
unsigned char lcd_wait(void)
{
lcd_rs=0;
lcd_rw=1;
_nop_();
lcd_en=1;
_nop_();
//while(dataport&0x80);//在用Proteus仿真時,注意用屏蔽此語句,在調用gotoxy()時,會進入死循環,
//可能在寫該控制字時,該模塊沒有返回寫入完備命令,即dataport&0x80==0x80
//實際硬件時打開此語句
lcd_en=0;
return dataport;
}
void write_instruction(unsigned char input)
{
lcd_en=0;
lcd_rs=0;
lcd_rw=0;
_nop_();
dataport=input;
_nop_();//注意順序
lcd_en=1;
_nop_();//注意順序
lcd_en=0;
_nop_();
lcd_wait();
}
void write_data(unsigned char input)
{
lcd_en=0;
lcd_rs=1;
lcd_rw=0;
_nop_();
dataport=input;
_nop_();//注意順序
lcd_en=1;
_nop_();//注意順序
lcd_en=0;
_nop_();
lcd_wait();
}
//移動光標或屏幕************************************************************
/*
#define 0x02 0x02
#define LCD_SCREEN 0x08
#define LCD_LEFT 0x00
#define LCD_RIGHT 0x04
void LCD_Move(unsigned char object, unsigned char direction)
{
if(object==0x02)
lcd_instruction(lcd_command,0x10|direction);
if(object==LCD_SCREEN)
lcd_instruction(lcd_command,0x18|direction);
}
*/
//初始化LCD************************************************************
void lcd_initial()
{
lcd_en=0;
write_instruction(0x38); //8位數據端口,2行顯示,5*7點陣
write_instruction(0x38);
write_instruction(0x0e);
write_instruction(0x01);
write_instruction(0x06);
}
//************************************************************************
//void cursor_flash(uchar a,uchar b)
//{
//write_instruction(0x80+a*0x40+b);
//write_instruction(0x14);
//write_instruction(0x0f);
//write_instruction(0x80+a*0x40+b);
//}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -