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

標題: LCD1602模塊化代碼,超級方便,以后再不用打那么長的代碼LCD1602.c和LCD1602.h [打印本頁]

作者: 洛倫茲力量    時間: 2021-7-12 09:40
標題: LCD1602模塊化代碼,超級方便,以后再不用打那么長的代碼LCD1602.c和LCD1602.h
主要內容顯示如下:
模塊化LCD1602.c和LCD1602.h如下文件

#include <REGX52.H>

sbit LCD_RW=P2^5;  
sbit LCD_RS=P2^6;//1為數據,0為指令
sbit LCD_E=P2^7;

#define LCD_DataPort P0

void Delay(unsigned char xms)
{
        unsigned char i=2,j=199;
        while(xms--)
        {
                do
                {
                        while(--j);
                }while(--i);
        }
}

void LCD_WriteCommand(unsigned char Command)
{
        LCD_RS=0;
        LCD_RW=0;
        
        LCD_DataPort=Command;
        
        LCD_E=1;
        Delay(1);
        
        LCD_E=0;
        Delay(1);
}

void LCD_WriteData(unsigned char Data)
{
        
        LCD_RS=1;
        LCD_RW=0;
        
        LCD_DataPort=Data;
        
        LCD_E=1;
        Delay(1);
        
        LCD_E=0;
        Delay(1);
}

void LCD_Init(void)
{
        LCD_WriteCommand(0x38);
        LCD_WriteCommand(0x0C);
        LCD_WriteCommand(0x06);
        LCD_WriteCommand(0x01);
}

void LCD_SetAC(unsigned char Line,unsigned char Column)
{
        LCD_WriteCommand(0x80);
        if(Line==1)
        {
                LCD_WriteCommand(0x80|(Column-1));
        }
        else if(Line==2)
        {
                LCD_WriteCommand(0x80|(Column-1)+0x40);
        }
}

void LCD_ShowChar(unsigned char Line,unsigned char Column,unsigned char Char)
{
        LCD_SetAC(Line,Column);
        LCD_WriteData(Char);
}

void LCD_ShowString(unsigned char Line,unsigned char Column,unsigned char *String)
{
        LCD_SetAC(Line,Column);
        while(1)
        {
                if(*String!='\0'){LCD_WriteData(*String);}
                else{break;}
                String++;
        }
}
int Power(unsigned char X,unsigned char Y)
{
        unsigned char i;
        int result=1;
        for(i=0;i<Y;i++)
        {
                result*=X;
        }
        return result;
}        
        
void LCD_ShowNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length)
{
        unsigned char i;
        LCD_SetAC(Line,Column);
        for(i=Length;i>0;i--)
        {
                LCD_WriteData('0'+Number/Power(10,i-1)%10);
        }
}
void LCD_ShowsignedNum(unsigned char Line,unsigned char Column,int Num1,unsigned char Length)
{
        int Number1;
        unsigned char i;
        LCD_SetAC(Line,Column);
        if(Num1>0)
        {
                LCD_WriteData('+');
                Number1=Num1;
        }
        else if(Num1<0)
        {
                LCD_WriteData('-');
                Number1=-Num1;
        }
        for(i=Length;i>0;i--)
        {
                LCD_WriteData('0'+Number1/Power(10,i-1)%10);
        }
}


void main()
{
                LCD_Init();
                LCD_ShowChar(1,1,'A');
                LCD_ShowString(1,3,"Hello");
                LCD_ShowNum(1,9,66,2);
                LCD_ShowsignedNum(1,12,-88,2);
                while(1)
                {
                        
                }
}

LCD.rar

25.4 KB, 下載次數: 74, 下載積分: 黑幣 -5

LCD1602模塊化


作者: 1233xdtf    時間: 2023-12-30 14:50
為什么沒有檢測BF是否處于忙標識呢
作者: ESJIAN    時間: 2024-3-14 23:28
怪了,俺的lcd函數為什么不能用




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品久久久久久模特 | 欧美在线资源 | 久久精品—区二区三区 | 成人午夜毛片 | 9999国产精品欧美久久久久久 | 精品一区二区三区中文字幕 | 午夜免费视频 | 国产精品明星裸体写真集 | 久久亚洲精品久久国产一区二区 | 国产精品视频在线观看 | 久久久夜 | 国产91丝袜在线播放 | 一区二区三区四区视频 | 国产欧美精品一区二区三区 | 男女羞羞在线观看 | 久久成人av电影 | 亚洲一区二区三区在线 | 中文字幕在线观看精品 | 91视频网址 | 精品国产乱码久久久久久闺蜜 | 亚洲午夜精品在线观看 | 精品成人佐山爱一区二区 | 国产在线视频一区 | 国产精品久久免费观看 | 爱高潮www亚洲精品 中文字幕免费视频 | 538在线精品 | 欧美精品一区二区三区蜜桃视频 | 欧美精品免费观看二区 | 日日日视频 | 黄色亚洲网站 | 国产成人免费在线 | 国产精品国产成人国产三级 | 在线国产一区二区三区 | 亚洲精品视频免费观看 | 日本理论片好看理论片 | 中文字幕在线一区 | 亚洲精品二区 | 成年免费视频 | av男人天堂影院 | 欧美在线观看一区 | 91麻豆精品国产91久久久久久久久 |