技術資料

1602程序

時間:2019-04-22 來源:admin瀏覽次數:95

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
 
sbit RS = P3^0;
sbit RW = P3^7;
sbit E = P3^4;
sbit BF = P1^7;
 
code uchar BUFFER1[16]={"Hello Every One!"}; 
code uchar BUFFER2[16]={"Temperature:00.0"};
 
 
delay(uchar t)
{
  uchar n;
 while(t--)
 {
   for(n=0;n<124;n++);
 }
}
 
/*===RS=0,RW=0,E=1,使模塊工作并準備接收控制指令(復位)===*/
ENABLE_1602()
{
  RS=0;
 RW=0;
 E=0;
 WAIT();
 E=1;
}
 
 
/*====讀BF的值,必須判斷模塊是否“忙”(BF=1)
//----如果"不忙”(BF=0)才可以進行各種操作====*/
WAET()
{
  do
 {
  P0=0xff;
  RS=0;
  RW=1;
  E=0;
 WAIT();
  WAIT();
   WAIT();
  E=1;
 }while(BF==1); 
}
 
 
INT_1602()
{
  ENABLE_1602();
 P0=0x01;  //清屏
 ENABLE_1602();
 P0=0x38;  //工作方式設置
 ENABLE_1602();
 P0=0x0e;  //顯示狀態設置
 ENABLE_1602();
 P0=0x06;  //輸入方式設置
 ENABLE_1602();
 P0=0x0f;  //開顯示,關光標設置
}
 
/*====RS=1,RW=0,E=1,寫顯示數據到模塊指令===*/
WRITER()
{
  RS=1;
 RW=0;
 E=0;
 WAIT();
 E=1;
}
 
 
main()
{
  uchar i,j;
 INT_1602();
 P0=0x80;  //1000 0000 ,設定DPTRAM地址為00H,實際是設定從顯示屏的第一位開始顯示
 ENABLE_1602();
 for(i=0;i<15;i++)
 {
   P0=BUFFER1[i];
  WRITER();
  delay(200);
 }
 
 P0=0xc0;  //1100 0000 ,設定設定DPTRAM地址為40H,實際是設定從顯示屏的第17位開始顯示
 ENABLE_1602();
 for(j=0;j<15;j++)
 {
   P0=BUFFER2[j];
  WRITER();
  delay(200);
 }
 
 ENABLE_1602();
 P0=0x01;  //清屏
 delay(200); 
}
 
本文標簽:
老友重逢相干恨晚在线观看