基本程序及地址排布

基本程序及地址排布
基本程序及地址排布

第一行地址:80H 81H 82H 83H 84H 85H 86H 87H 第二行地址:90H 91H 92H 93H 94H 95H 96H 97H 第三行地址:88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 第四行地址:98H 99H 9AH 9BH 9CH 9DH 9EH 9FH

#include <>

#include <>

#define unint unsigned int

#define unchar unsigned char

sbit re=P2^0; /*数据\指令选择*/

sbit rw=P2^1; /*读\写选择*/

sbit e=P2^2; /*读\写使能*/

sbit psb=P2^7;

uchar code table[]='zhang jian wei' ;

void writecom(unchar com);

void writedat(unchar dat);

void initinal(void);

void display1();

void display2();

void display3();

//12MHZ晶振延时50微秒

void delay50us(uint t)

{

uchar j;

for(;t>0;t--)

for(j=19;j>0;j--);

}

//主函数

void main()

{

initinal();

while(1)

{

// display1();

// display2();

display3();

while(1);

}

}

//写命令

void writecom(unchar com) {

rw=0;

rs=0;

delay50us(1);

P0=com;

e=1;

delay50us(10);

e=0;

delay50us(10);

}

//写数据

void writedat(unchar dat) {

rw=0;

rs=1;

delay50us(1);

P0=dat;

e=1;

delay50us(10);

e=0;

delay50us(10);

}

//初始化

void initinal(void)

{

delay50us(2);

void writecom(0x30); delay50us(4); writecom(0x30);

delay50us(4); writecom(0x0f);

delay50us(4); writecom(0x01);

delay50us(240); writecom(0x06);

delay50us(10);

}

//ASCII显示

void display1()

{

uchar i;

uchar a;

a=0x10;

writecom(0x80);

delay50us(1);

for(i=0;i<16;i++)

{

writedat(a);

delay50us(1);

a++;

}

}

void display2()

{

uchar i;

uchar a,b;

a=0xBA;

b=0xC0;

writecom(0x80);

delay50us(1);

for(i=0;i<16;i++)

{

writedat(a);

writedat(b);

delay50us(1);

b++;

}

}

void display3()

{

uchar i;

writecom(0x80);

delay50us(1);

for(i=0;i<16;i++)

{

writedat(atable[i]);

delay50us(1);

}

}

相关主题
相关文档
最新文档