×
单片机 > 单片机程序设计 > 详情

1602液晶测试程序1

发布时间:2024-05-17 发布时间:
|

程序如下:


#include

#define LCD_DB P0

sbit LCD_RS=P2^2;

sbit LCD_RW=P2^3;

sbit LCD_E=P2^4;

//函数定义

#define uchar unsigned char

#define uint unsigned int

void LCD_init(void); //初始化

void LCD_write_command(uchar command); //写指令

void LCD_write_data(uchar dat); //写数据

void LCD_disp_char(uchar x,uchar y,uchar dat); //显示位置,X(0-16),y(1-2)

void delay_n40us(uint n); //延时

void LCD_init(void) //初始化

{

LCD_write_command(0x01); //清除屏幕显示

LCD_write_command(0x3c); //设置8位格式,2行,5x7?

LCD_write_command(0x0c); //整体显示,关光标,不闪烁?

LCD_write_command(0x06); //设定输入方式,增量不移位

delay_n40us(100);

}

void LCD_write_command(uchar dat) //写指令

{

LCD_DB=dat;

LCD_RS=0; //指令

LCD_RW=0; //写入

LCD_E=1; //允许

LCD_E=0;

delay_n40us(5);

}

void LCD_write_data(uchar dat) //写数据

{

LCD_DB=dat;

LCD_RS=1; //数据

LCD_RW=0; //写入

LCD_E=1; //允许

LCD_E=0;

delay_n40us(5);

}

void LCD_disp_char(uchar x,uchar y,uchar dat) //显示一个字符

{

uchar address;

if(y==0)

address=0x80+x;

else

address=0xc0+x;

LCD_write_command(address);

LCD_write_data(dat);

}

void delay_n40us(uint n) //延时函数

{

uchar j;

for(n=n;n>0;n--)

for(j=0;j<2;j++)

;

}

//主函数

void main(void)

{

char a;

char b[16]="123456789abcdeef";

char c[16]="ABCDEFGHIGKLMNOP";

delay_n40us(200);

LCD_init();

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

{

LCD_disp_char(a,0,b[a]);

LCD_disp_char(a,1,c[a]);

}

while(1);

}


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址