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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1536|回復: 0
打印 上一主題 下一主題
收起左側

LCD顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:198722 發表于 2017-5-9 17:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#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);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久亚洲7777 | 国精日本亚洲欧州国产中文久久 | 97精品国产97久久久久久免费 | 91久久久久久久久久久久久 | 久久久久久久久综合 | 亚洲成人av | 欧美精品久久久久 | 黄色毛片在线播放 | 一级毛片视频免费观看 | 超碰在线国产 | 丁香五月网久久综合 | 午夜精品一区二区三区在线观看 | 永久www成人看片 | 亚洲欧美日韩精品 | 特黄毛片 | 在线成人 | 精品久久久网站 | 91久久夜色精品国产网站 | 成人免费在线视频 | 日韩欧美在线免费观看 | 国产一区二区观看 | 国产精品中文字幕在线播放 | 国产成人午夜电影网 | 久久精品日产第一区二区三区 | 美国黄色毛片 | 亚洲91视频 | 亚洲精品91| 久久久久国产 | 精品久久久久久红码专区 | 久久精品黄色 | 日本三级全黄三级三级三级口周 | 精品一区二区三区在线观看国产 | 欧美在线高清 | 天堂中文在线观看 | 亚洲久草| 欧美成人高清视频 | 久久久精品高清 | 免费在线观看av网站 | 一区二区国产精品 | 国产成人精品一区二区三区网站观看 | www97影院 |