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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于STC15系列單片機驅動LCD1602的延時控制程序

[復制鏈接]
跳轉到指定樓層
樓主
51單片機學習日記15系列為增強型1T 51內核的單片機,驅動LCD1602時需要增加適當延時,而且只要延時控制的得當,可以省去判忙步驟,下面是簡單的例程:
(使用的是STC15F2K60S2)

這是引腳定義;下面是LCD頭文件:

void LCD_WriteCmd(unsigned char a)   //寫命令
{      
                                LCD = a;
                                RS = 0;
                                RW = 0;
              ENLCD = 1;Delayus(50);    //延時50us
              ENLCD = 0;Delayus(50);
}
void LCD_ShowStr(unsigned char x,unsigned y ,unsigned char *str)  //x:0~15 y:0~1
{      
              if(y==0)
                                        LCD_WriteCmd((0x00+x)|0x80);   //設置坐標
                                else
                                        LCD_WriteCmd((0x40+x)|0x80);
                                while(*str != '\0')            //寫數據
                          {
                                        LCD = *str++;
                                         RS = 1;
                                  RW = 0;
                                  ENLCD = 1;Delayus(50);      //延時50US
                                        ENLCD = 0;Delayus(50);
                        }        
}
void LCD_Init()      //數據手冊的初始化命令
{  
         LCD_WriteCmd(0x38);
         Delayms(5);               //延時5MS
         LCD_WriteCmd(0x0C);
         Delayms(5);
         LCD_WriteCmd(0x06);
         Delayms(5);
         LCD_WriteCmd(0x01);
         Delayms(5);
}

代碼比較簡單,下面給出延時函數和主函數:
void Delayus(unsigned int a)                //@11.0592MHz
{ do{
        _nop_();
        _nop_();
        _nop_();
}while(--a);
        
}
void Delayms(unsigned int a)                //@11.0592MHz
{unsigned char i, j;
        do
        {
        _nop_();
        _nop_();
        _nop_();
        i = 11;
        j = 190;
        do
        {
                while (--j);
        } while (--i);
        }while(--a);
}

主函數:
#include<LCD_1602.h>
void main()
{



    ENLCD = 0


        LCD_Init();  //初始化
        LCD_ShowStr(0,0,"Happy Every Day");  //在第0行第0列顯示Happy Every Day
        while(1);
}

下面是實物圖


評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:432932 發表于 2019-3-10 16:07 | 只看該作者
需要注意的是初始化那里每條命令之間的延時,延時太短會導致字符可能部分缺失
回復

使用道具 舉報

板凳
ID:432932 發表于 2019-3-10 16:11 | 只看該作者
如果上電后產生的是一條全黑就可能是時序不對了(大多數情況下是延時不當)雖然LCD1602也是納秒級的反應速度,但是實際應用時需要留us級的時間來處理,由于能力有限,沒有試過正常使用的極限是多少。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91久久久精品国产一区二区蜜臀 | 99久久99久久精品国产片果冰 | 欧美日韩激情 | 亚洲国产成人久久综合一区,久久久国产99 | 国产一区二区在线视频 | 亚洲一区视频在线 | 一级片在线免费播放 | 伦理片97 | 日韩中文字幕一区二区三区 | 欧美一级特黄aaa大片在线观看 | 一区二区三区四区在线视频 | 免费在线观看黄网站 | 色在线免费视频 | 久久人爽爽人爽爽 | 国产特级毛片 | 日韩精品二区 | a级黄色片视频 | 九九九视频精品 | 欧美在线免费 | 成人不卡 | 亚洲免费视频网站 | 刘亦菲国产毛片bd | 中文字幕在线播放第一页 | 午夜影院在线观看免费 | 91视频在线 | 99久久精品免费看国产四区 | 国产精品一区二 | 中文字幕91 | 欧美中文字幕在线观看 | 天天干天天爽 | 国产欧美精品一区二区 | 金莲网 | 亚洲永久免费 | 一级欧美一级日韩片 | 久久久爽爽爽美女图片 | 亚洲天堂一区 | 欧美成人精品一区二区男人看 | 国产精品九九 | 一级毛片在线播放 | 国产精品日女人 | 九色.com|