单片机LCD实验1
代码如下:
//filename:global.h
#include
//#include
//#include
#define uchar unsigned char
#define uint unsigned int
//filename:T6963C.H
#define DATA_PORT P0
//-------------------------------------------
//
//------------------------------------------
sbit CD=P2^0;
sbit WRIT=P2^1;
sbit CE=P2^2;
//===========================================
//
//-------------------------------------------
void delay_lcd(char);
void write_data(char);
void write_text(char);
void write_com(char);
void clr_lcd(char,char,int);
void lcd_init_graph();
void lcd_init_text();
void text_out(char a);
int asc2lcd(int asc);
//--------------------------------------------
//
//--------------------------------------------
void write_data(char dat){
CD=0;
CE=0;
WRIT=0;
DATA_PORT=dat; //把数据送到P口
delay_lcd(1);
WRIT=1;
CE=1;
}
//--------------------------------------------
//
//--------------------------------------------
void write_text(char text){
CD=0;
CE=0;
WRIT=0;
DATA_PORT=text; //把数据送到P口
delay_lcd(1);
WRIT=1;
CE=1;
}
//--------------------------------------------
//
//--------------------------------------------
void write_com(char com){
CD=1;
CE=0;
WRIT=0;
DATA_PORT=com;
delay_lcd(1);
WRIT=1;
CE=1;
}
void clr_lcd(char x,char y,int length){
int i,place;
place=x*30+y;
write_data(place&0xff);
write_data(place/256);
write_com(0x24);
for(i=0;i write_data(0xff); write_com(0xb2); } //-------------------------------------------- // //-------------------------------------------- void lcd_init_graph(){ write_data(0); write_data(0); write_com(0x42); write_data(30); write_data(0); write_com(0x43); write_com(0x80); write_com(0x98); } //-------------------------------------------- // //-------------------------------------------- void lcd_init_text(){ write_data(0); write_data(0); write_com(0x40); write_data(30); write_data(0); write_com(0x41); write_com(0x84); write_com(0x94); } void cursor_on(){ write_com(0xA0); write_com(0x93); write_com(0x94); } void print_text(char x,char y,char a){ int place; place=x*30+y; write_data(place&0xff); write_data(place/256); write_com(0x24); write_com(0xb0); write_text(a); write_com(0xb2); } void text_out(char a){ write_com(0xb0); write_text(a); write_com(0xb2); } void text_location(int place){ write_data(place&0xff); write_data(place/256); write_com(0x24); } void print_string(char* str){ int i; int ch; for(i=0;str[i]!=0;i++) { ch=asc2lcd(str[i]); text_out(ch); } } //-------------------------------------------- // //-------------------------------------------- void delay_lcd(uchar t){ for(;t!=0; t--); } //=================================================== int asc2lcd(int asc){ uint r; r=asc-32; return r; } //latest revise:2010-2-11 //by:alex shoal //email:alex.shoal@gmail.com main(){ int place=5; char ch=0x00; lcd_init_text(); text_location(place); print_string("Hello,china! "); while(1); }
单片机LCD实 相关文章:
- 单片机LCD实验2(11-21)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)