久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 簡單的菜單 [打印本頁]

作者: kkmallbb    時間: 2017-7-11 15:55
標題: 簡單的菜單
#include <reg51.h>

#include <intrins.h>

#define uchar unsigned char

#define uint  unsigned int

/*12864-12 端口定義*/

#define LCD_data  P0             //數(shù)據(jù)口

sbit LCD_RS  =  P2^6;            //寄存器選擇輸入

sbit LCD_RW  =  P2^5;            //液晶讀/寫控制

sbit LCD_EN  =  P2^7;            //液晶使能控制

uchar code dis1[] = {"  功能菜單"};

uchar code dis2[] = {"1.時間設置"};

uchar code dis3[] = {"2.日期設置"};

uchar code dis4[] = {"3.鬧鐘功能"};

#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};

void delay0(uchar x);  //x*0.14MS

void lcd_pos(uchar X,uchar Y);  //確定顯示位置

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

/*                                                                 */

/*  延時函數(shù)                                                       */

/*                                                                 */

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

void delay(int ms)

{

    while(ms--)

{

      uchar i;

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

  {

   _nop_();

_nop_();

_nop_();

_nop_();

  }

}

}

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

/*                                                                 */

/*檢查LCD忙狀態(tài)                                                    */

/*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數(shù)據(jù)。      */

/*                                                                 */

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

bit lcd_busy()

{                          

    bit result;

    LCD_RS = 0;

    LCD_RW = 1;

    LCD_EN = 1;

    delayNOP();

    result = (bit)(P0&0x80);

    LCD_EN = 0;

    return(result);

}

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

/*                                                                 */

/*寫指令數(shù)據(jù)到LCD                                                  */

/*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。                             */

/*                                                                 */

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

void lcd_wcmd(uchar cmd)

{                          

   while(lcd_busy());

    LCD_RS = 0;

    LCD_RW = 0;

    LCD_EN = 0;

    _nop_();

    _nop_();

    P0 = cmd;

    delayNOP();

    LCD_EN = 1;

    delayNOP();

    LCD_EN = 0;  

}

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

/*                                                                 */

/*寫顯示數(shù)據(jù)到LCD                                                  */

/*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。                               */

/*                                                                 */

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

void lcd_wdat(uchar dat)

{                          

   while(lcd_busy());

    LCD_RS = 1;

    LCD_RW = 0;

    LCD_EN = 0;

    P0 = dat;

    delayNOP();

    LCD_EN = 1;

    delayNOP();

    LCD_EN = 0;

}

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

/*                                                                 */

/*  LCD初始化設定                                                  */

/*                                                                 */

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

void lcd_init()

{   

    lcd_wcmd(0x34);      //擴充指令操作

    delay(5);

    lcd_wcmd(0x30);      //基本指令操作

    delay(5);

    lcd_wcmd(0x0C);      //顯示開,關(guān)光標

    delay(5);

    lcd_wcmd(0x01);      //清除LCD的顯示內(nèi)容

    delay(5);
       

}

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

/**/

/* 延時x*0.14ms子程序*/

/*                                                       */

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

void delay0(uchar x)    //x*0.14MS

{

  uchar i;

  while(x--)

{

  for (i = 0; i<13; i++) {}

}

}

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

/* 設定顯示位置                                          */

/*                                                       */

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

void lcd_pos(uchar X,uchar Y)

{                          

   uchar  pos;

   if (X==0)

     {X=0x80;}

   else if (X==1)

     {X=0x90;}

   else if (X==2)

     {X=0x88;}

   else if (X==3)

     {X=0x98;}

   pos = X+Y ;  

   lcd_wcmd(pos);     //顯示地址

}

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

/**/

/* 主程序          */

/*                                                       */

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

  main()

{

    uchar i;

    delay(10);                 //延時

    lcd_init();                //初始化LCD            

    lcd_pos(0,0);             //設置顯示位置為第一行的第1個字符

     i = 0;

    while(dis1[i] != '\0')

     {                         //顯示字符

       lcd_wdat(dis1[i]);

       i++;

     }

    lcd_pos(1,0);             //設置顯示位置為第二行的第1個字符

     i = 0;

    while(dis2[i] != '\0')

     {

       lcd_wdat(dis2[i]);      //顯示字符

       i++;

     }

lcd_pos(2,0);             //設置顯示位置為第三行的第1個字符

     i = 0;

    while(dis3[i] != '\0')

     {

       lcd_wdat(dis3[i]);      //顯示字符

       i++;

     }

lcd_pos(3,0);             //設置顯示位置為第四行的第1個字符

     i = 0;

    while(dis4[i] != '\0')

     {

       lcd_wdat(dis4[i]);      //顯示字符

       i++;

     }

     while(1);

}






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产欧美一区二区三区在线看蜜臀 | www.久久艹| 一道本一区二区 | 第一区在线观看免费国语入口 | 91xxx在线观看 | 色在线免费 | 国产精品区一区二区三区 | 91精品久久久久久久久中文字幕 | 中文在线а√在线8 | 日韩中文在线视频 | 欧美中文字幕一区二区 | 中文亚洲视频 | 国产伦一区二区三区 | 91视频在线观看免费 | 国产精品免费小视频 | 午夜久久久 | 国产亚洲精品久久久优势 | 玖玖操| 欧美综合久久 | 欧美一区二区免费 | 精品久久国产 | 成人av一区二区三区 | 国产成人综合亚洲欧美94在线 | 蜜桃av一区二区三区 | 中文av在线播放 | 福利精品 | 久久免费国产 | 免费高清av | 中文字幕精品视频 | 久久av网 | 久久久www成人免费无遮挡大片 | 91在线精品秘密一区二区 | 国产最好的av国产大片 | 日本一区高清 | 国产亚洲一区二区三区在线观看 | 久久精品国产一区二区电影 | 日韩一区二区三区在线观看 | 国产成人99久久亚洲综合精品 | 韩日免费视频 | 国产精品久久久久久久久久久久冷 | 国产精品久久久久久久久久免费看 |