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

標題: LCD顯示 [打印本頁]

作者: 桂XXX    時間: 2017-5-9 17:37
標題: LCD顯示
#include "qxmcs51_config.h"
#include "delay.h"
#include "LCD1602.H"

#define LCD1602_DataPort P0          //LCD1602數據端口
//INT8U strDEC[4];
INT8U strHEX[3];//INT8UtostrHEX函數轉換的字符串顯示16進制
/*
INT8U *INT8UtostrDEC(INT8U num)
{
        INT8U i2, i1, i0,i;
        i2 = num / 100;
        i1 = num % 100 / 10;
        i0 = num % 100 % 10;
        strDEC[i]=i2+48;
        i++;       
        strDEC[i]=i1+48;
        i++;       
        strDEC[i]=i0+48;
        i++;
        strDEC[i] = '\0';
        return strDEC;       
}
*/
INT8U *INT8UtostrHEX(INT8U num)        //將一個字節的數據轉換為字符串
{
        INT8U i = 0;
        switch(num/16)
        {
                case 0:                strHEX[i] = '0';        i++;        break;
                case 1:                strHEX[i] = '1';        i++;        break;
                case 2:                strHEX[i] = '2';        i++;        break;
                case 3:                strHEX[i] = '3';        i++;        break;
                case 4:                strHEX[i] = '4';        i++;        break;
                case 5:                strHEX[i] = '5';        i++;        break;
                case 6:                strHEX[i] = '6';        i++;        break;
                case 7:                strHEX[i] = '7';        i++;        break;
                case 8:                strHEX[i] = '8';        i++;        break;
                case 9:                strHEX[i] = '9';        i++;        break;
                case 10:        strHEX[i] = 'A';        i++;        break;
                case 11:        strHEX[i] = 'B';        i++;        break;
                case 12:        strHEX[i] = 'C';        i++;        break;
                case 13:        strHEX[i] = 'D';        i++;        break;
                case 14:        strHEX[i] = 'E';        i++;        break;
                case 15:        strHEX[i] = 'F';        i++;        break;
        }

        switch(num%16)
        {
                case 0:                strHEX[i] = '0';        i++;        break;
                case 1:                strHEX[i] = '1';        i++;        break;
                case 2:                strHEX[i] = '2';        i++;        break;
                case 3:                strHEX[i] = '3';        i++;        break;
                case 4:                strHEX[i] = '4';        i++;        break;
                case 5:                strHEX[i] = '5';        i++;        break;
                case 6:                strHEX[i] = '6';        i++;        break;
                case 7:                strHEX[i] = '7';        i++;        break;
                case 8:                strHEX[i] = '8';        i++;        break;
                case 9:                strHEX[i] = '9';        i++;        break;
                case 10:        strHEX[i] = 'A';        i++;        break;
                case 11:        strHEX[i] = 'B';        i++;        break;
                case 12:        strHEX[i] = 'C';        i++;        break;
                case 13:        strHEX[i] = 'D';        i++;        break;
                case 14:        strHEX[i] = 'E';        i++;        break;
                case 15:        strHEX[i] = 'F';        i++;        break;
        }
        strHEX[i] = '\0';
        return (strHEX);
}       

BOOL LCD1602_Check_Busy()        //LCD1602忙判斷
{
        LCD1602_DataPort = 0xFF;
        LCD_RS = 0; //根據規定,RS為低電平,RW為高電平時,可以讀狀態
        LCD_RW = 1;
        LCD_EN = 0;
        _nop_();
        LCD_EN = 1;
        return (BOOL)(LCD1602_DataPort & 0x80);
}
/*
void LCD1602_Clear()
{
   LCD1602_Write_Com(0x01);    //顯示清屏
   Delay_Ms(5);       
}*/
/*
INT8U LCDE1602_DATAP_ADDR()
{
        LCD1602_DataPort = 0xFF;
        LCD_RS = 0; //根據規定,RS為低電平,RW為高電平時,可以讀狀態
        LCD_RW = 1;
        LCD_EN = 0;
        _nop_();
        LCD_EN = 1;
        return (LCD1602_DataPort & 0x7f);       
} */

void LCD1602_Write_Com(INT8U com)  //LCD1602寫命令
{
        while(LCD1602_Check_Busy()); //忙則等待
        LCD_RS = 0;
        LCD_RW = 0;
        LCD_EN = 1;
        LCD1602_DataPort= com;
        _nop_();
        LCD_EN = 0;       
}

void LCD1602_Write_Dat(INT8U dat)          //LCD1602寫數據
{
        while(LCD1602_Check_Busy()); //忙則等待
        LCD_RS = 1;
        LCD_RW = 0;
        LCD_EN = 1;
        LCD1602_DataPort= dat;
        _nop_();
        LCD_EN = 0;               
}


void LCD1602_Write_String(INT8U x,INT8U y,INT8U *s) //LCD1602寫字符串
{     
        if (y == 0)
        {     
                LCD1602_Write_Com(0x80 + x);     //表示第一行
        }
        else
        {      
                LCD1602_Write_Com(0xC0 + x);      //表示第二行
        }        
        while (*s != '\0')
        {     
                LCD1602_Write_Dat(*s++);         
        }
}

void LCD1602_Init() //LCD1602初始化
{
   LCD1602_Write_Com(0x38);    /*顯示模式設置*/
   LCD1602_Write_Com(0x06);    /*顯示光標移動設置*/
   LCD1602_Write_Com(0x0C);    /*顯示開及光標設置*/
   LCD1602_Write_Com(0x01);    /*顯示清屏*/
   Delay_Ms(5);
}






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产人成在线观看 | 亚洲成人国产综合 | 久久精品99| 午夜免费成人 | 国产成人亚洲精品 | 久久最新精品 | 99久久精品免费看国产四区 | 成人久久 | 精品一区二区在线视频 | 国产精品久久久久久久久久久久久 | 乳色吐息在线观看 | 日本特黄特色aaa大片免费 | 国产一区二区三区四区五区加勒比 | 玖玖玖av | 福利视频一区二区三区 | 国产精品一区二区久久 | 亚洲免费观看 | 午夜成人免费视频 | 精品国产一二三区 | 成人在线视频免费观看 | 午夜精品一区二区三区三上悠亚 | 精品国产成人 | 欧美精品一区二区三区在线 | 秋霞电影一区二区三区 | wwwxxx国产| 国产成人精品999在线观看 | 丝袜一区二区三区 | 中文字幕av一区二区三区 | 午夜免费福利电影 | 成人a视频片观看免费 | 中文字幕成人在线 | 国产精华一区 | 久久精品国产99国产精品 | 成人免费高清 | 色婷婷久久久亚洲一区二区三区 | 高清国产一区二区 | 在线视频亚洲 | 91视频18| 免费一区二区三区 | 亚洲精品久久久一区二区三区 | 一区二区三区视频在线观看 |