當前位置:編程學習大全網 - 編程語言 - AT89C51控制液晶屏動態顯示 C語言完整程序+電路圖

AT89C51控制液晶屏動態顯示 C語言完整程序+電路圖

//***********************************************

//程序功能:LCD1602的簡單滾動顯示

//方法說明:看著芯片資料寫程序

//編程人員:梁功明

//編程時間:2013年4月8日 23:16:42

//修改時間:2013年4月9日 23:25:33

//**********************************************

#include <reg52.h>

#define uchar unsigned char

#define uint unsigned int

sbit lcdrs = P2^4; //這些端口要根據開發板的接口選擇

sbit lcdrw = P2^5;

sbit lcden = P2^6;

sbit busy = P0^7;

uchar num;

void init();

void wait();

void write_cmd(uchar cmd);

void write_data(uchar dat);

void display(uchar add,uchar *a);

void delay(uint z);

void main()

{

uchar buf1[]=" 0123456789 "; //顯示的字符可修改

uchar buf2[]=" 9876543210 ";

init();

display(0x90,buf1);

display(0xd0,buf2);

for(num=0;num<32;num++)

{

write_cmd(0x18);

delay(200);

}

}

//液晶的初始化

void init()

{

write_cmd(0x38);

write_cmd(0x0c);

write_cmd(0x06);

write_cmd(0x01);

}

//液晶的讀狀態檢測

void wait()

{

P0 = 0xff;

do

{

lcdrs = 0;

lcdrw = 1;

lcden = 0;

lcden = 1;

}while(busy==1);

lcden = 0;

}

//液晶寫指令的初始化

void write_cmd(uchar cmd)

{

wait();

lcdrs = 0;

lcdrw = 0;

lcden = 0;

P0 = cmd;

lcden = 1;

lcden = 0;

}

//液晶寫數據的初始化

void write_data(uchar dat)

{

wait();

lcdrs = 1;

lcdrw = 0;

lcden = 0;

P0 = dat;

lcden = 1;

lcden = 0;

}

//液晶顯示的函數

void display(uchar add,uchar *a)

{

write_cmd(add);

while(*a!='\0')

write_data(*a++);

}

//簡單的延時函數

void delay(uint z)

{

uchar i,j;

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

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

}

  • 上一篇:舉報:QGS.EXE BGS.SYS
  • 下一篇:怎麽在手機上開證券賬戶
  • copyright 2024編程學習大全網