找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2343|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

適合新手,正在學(xué)習(xí)LCD1602,單片機程序帶注釋簡潔易懂

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:911048 發(fā)表于 2021-4-23 21:07 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機帶注釋的源程序如下:
//功能:晶振11.0592M,實現(xiàn)1602液晶顯示“88888888”//作者: 康曉龍
//單位:四川機電技術(shù)學(xué)院
//版本號:1.0
#include<reg51.h>
#include<intrins.h>           //包含_npp_函數(shù)定義頭文件
#define uchar unsigned char         
#define uint unsigned int
uchar table[]="0123456789.";
sbit rs=P0^4;  //定義 命令/數(shù)據(jù)輸入腳
sbit rw=P0^5;  //定義 讀/寫腳
sbit e=P0^6;  //定義使能腳
sbit bf=P1^7;
uchar ge,shi,bai;
uint i;
void delayms(uint xms)           // 延時子程序
{
        uint i;uchar j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}
/**************************************
函數(shù)功能:判斷忙碌狀態(tài)
返回值:  result. result=0 忙,result=1 不忙。
***************************************/
uchar panduanmanglu(void)
{
   bit result;
        rs=0;
        rw=1;
        e=1;
        _nop_();
   result=bf;
    e=0;
  return result;
}
/************************************
函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊
參數(shù):canshu
*************************************/
void xiezhiling(uchar canshu)
{
  while( panduanmanglu()==1);
    rs=0;
        rw=0;
        e=0;
        _nop_();
           _nop_();
        P1=canshu;
        _nop_();
           _nop_();
        e=1;
        _nop_();
           _nop_();
        e=0;
}
/************************************
函數(shù)功能:指定字符顯示的實際地址
參數(shù):x
*************************************/
void xiedizhi(uchar x)
{
xiezhiling(x+0x80);
}
/************************************
函數(shù)功能:將數(shù)據(jù)寫入液晶模塊
參數(shù):y
*************************************/
void xieshujv(uchar y)
{
while( panduanmanglu()==1);
rs=1;
rw=0;
e=0;
P1=y;
_nop_();
_nop_();

e=1;
_nop_();
_nop_();
e=0;

}
/************************************
函數(shù)功能:對LCD的顯示進(jìn)行初始化設(shè)置
*************************************/
void chushihua()
{
  delayms(15);
  xiezhiling(0x38);        //0011 1000
   delayms(5);
  xiezhiling(0x0c);        //0000 1DCB         ,D=1開顯示,C=1顯示光標(biāo),B=1光標(biāo)閃爍
   delayms(5);
  xiezhiling(0x04);//0000 01NS ,N=1指針加1,光標(biāo)加1;N=0指針減1,光標(biāo)減1;
                                //S=1當(dāng)寫一個字符時,整屏顯示左移(N=1)或右移(N=0),
                                                        //以得到光標(biāo)不移動而屏幕移動的效果;S=0整屏顯示不移動      
   delayms(5);

}

/************************************
函數(shù)功能:處理 i的數(shù)據(jù)
*************************************/
void xainshi(uint i)
{
                  
                   ge=i%10;                             //求數(shù)碼管的個位
                   shi=i/10%10;                    //求數(shù)碼管的十位
                   bai=i/100%10;                   //求數(shù)碼管的百位
}            

void main()
{
chushihua();
        while(1)
        {        i=124;
                xainshi(i);
            xiedizhi(0x05);//顯示的地址在第一行的第6個顯示
            xieshujv(table[ge]);
                xiedizhi(0x06);//顯示的地址在第一行的第7個顯示
            xieshujv(table[10]);
                xiedizhi(0x07);//顯示的地址在第一行的第8個顯示
            xieshujv(table[shi]);
                xiedizhi(0x08);//顯示的地址在第一行的第9個顯示
            xieshujv(table[bai]);

        }
}

全部資料51hei下載地址:
2.0.zip (268.01 KB, 下載次數(shù): 39)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:674046 發(fā)表于 2024-8-22 07:56 | 只看該作者
這個程序在板子上運行過嗎
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表