51单片机和12864液晶显示实例——C语言
- 格式:doc
- 大小:28.00 KB
- 文档页数:3
#include
#define unchar unsigned char
#define unint unsigned int
sbit RS=P2^7;
sbit RW=P2^6;
sbit E=P2^5;
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i for(j=0;j<10;j++); } void busy() { RS=0; RW=1; E=1; P0=0xff; while((P0&0X80)==0x80); } void write_com(unchar com) { busy(); RS=0; RW=0; E=1; P0=com; delay(5); E=0; delay(5); } void write_date(unchar date) { busy(); RS=1; RW=0; E=1; P0=date; // delay(5); E=0; // delay(5); } void init() { delay(2000); write_com(0x30); //选择基本指令,选择8位数据流 delay(5); write_com(0x0c); //开显示(无游标,不反白) delay(10); write_com(0x01); //清除显示,并且设定地址指针为00H delay(500); write_com(0x06);// 设定游标移动方向 } void sendaddr(unchar n,unchar m) { switch(n) { case 1:write_com(0x80+m);break; case 2:write_com(0x90+m);break; case 3:write_com(0x88+m);break; case 4:write_com(0x98+m);break; } } void display(unchar n,unchar m,unchar *s) { sendaddr(n,m); while(*s>0) { write_date(*s); s++; delay(100); } } void main() { unchar *s; init(); s="甲:“我来了”"; display(1,0,s); s="乙:“热烈欢迎。"; delay(10000); display(2,0,s); s="。。。热烈欢迎”"; delay(10000); display(3,0,s); s="麻烦跟我去派出所"; delay(10000); display(4,0,s); delay(10000); write_com(0x01) ; s="乙“为什么?”" ; delay(10000); display(1,0,s); s="我们发现你偷税漏税。。。"; delay(10000); display(2,0,s); delay(10000); write_com(0x01) ; write_com(0x80); write_date(0x32); while(1); }