導航:首頁 > 編程語言 > lcd1602顯示編程

lcd1602顯示編程

發布時間:2023-07-31 17:39:50

① 51單片機編寫lcd1602顯示程序,第一行顯示自己的姓名,第二行顯示學號

1、首先我們打開Keil μVision編譯器,新建一個工程,然後保存在硬碟上的位置,然後選擇Atmel-AT89C51單片機為模型,並啟動器添加STARTUP.A51文件,然後在當前目錄下新建一個C文件,並將其添加入工作路徑。

② 1602顯示屏顯示第一行和第二行數字怎麼輸入程序

1、首先我們打開KeilμVision編譯器,新建一個工程,然後保存在硬碟上的位置。
2、其次導入51單片機的頭文件以及LCD1602的頭文件。創建一個延時函數,可以傳入想要具體延時的時長,其內部實現是由一個二重循環,兩個循環的次數相乘積。
3、最後最後在主函數中首先執行LCD1602的初始化函數,首先創建一個無限循環,然後添加兩個字元串,這里以兩行顯示網路經驗的網址為例,再進行延時以及使用清屏函數進行刷新。

③ 求基於89C51單片機的秒錶設計,用LCD1602顯示。程序代碼

#define LCD1602_FLAG

#define LCD1602_PORT P0

#include<reg51.h>

#include<stddef.h>

#define uchar unsigned char

sbit lcd1602_rs=P2^0;

sbit lcd1602_e=P2^2;

sbit lcd1602_rw=P2^1;

sbit lcd1602_busy=P0^7;

uchar str[]="StopWatch";

uchar time,disdat[4];

uchar dat,sec,key;

void delay(uchar a)

{

uchar i;

while(a--)for(i=0;i<120;i++);

}

/*

************************************

* 函數名稱:lcd1602_CheckBusy()

* 函數功能:狀態查詢

************************************

*/

void lcd1602_CheckBusy()

{

do

{

lcd1602_busy=1;

lcd1602_rs=0;

lcd1602_rw=1;

lcd1602_e=0;

lcd1602_e=1;

}

while(lcd1602_busy);

}

/*

***************************************

* 函數名稱: lcd1602_WriteCmd()

* 函數功能:寫命令

* 入口參數:命令字

* 出口參數:無

***************************************

*/

void lcd1602_WriteCmd(const uchar cmd)

{

lcd1602_CheckBusy();

lcd1602_rs=0;

lcd1602_rw=0;

lcd1602_e=1;

LCD1602_PORT=cmd;

lcd1602_e=0;

}

/*

*******************************************

* 函數名稱:lcd1602_WriteData()

* 函數功能:寫數據

* 入口參數:c--待寫數據

* 出口參數:無

*********************************************

*/

void lcd1602_WriteData(const uchar c)

{

lcd1602_CheckBusy();

lcd1602_rs=1;

lcd1602_rw=0;

lcd1602_e=1;

LCD1602_PORT=c;

lcd1602_e=0;

}

/*

***********************************************

* 函數名稱:lcd1602_Init()

* 函數功能:初始化LCD

* 入口參數:無

* 出口參數:無

***********************************************

*/

void lcd1602_Init()

{

lcd1602_WriteCmd(0x38); //顯示模式為8位2行5*7點陣

lcd1602_WriteCmd(0x0c); //display enable,flag enable,flash enable,

lcd1602_WriteCmd(0x06); //flag move to right,screen don't move

lcd1602_WriteCmd(0x01); //clear screen

}

/*

************************************************

* 函數名稱:lcd1602_Display()

* 函數功能: 字元顯示

* 入口參數:ptr--字元或字元串指針

* 出口參數:無

* 說 明:用戶可通過以下方式來調用:

* 1)lcd1602_Display("Hello,world!");

* 2) INT8U 存儲類型 txt[]="要顯示的字元串";

* 或者 INT8U 存儲類型 txt[]={'t','x','t',..,''};

* INT8U *ptr;

* ptr=&txt;

* lcd1602_Display(ptr);

* 或 lcd1602_Display(txt);

* 或 lcd1602_Display(&txt);

************************************************

*/

void lcd1602_Display(const uchar *ptr,uchar line)

{

uchar data i=0;

uchar *data q;

q=ptr;

switch(line)

{

case 0:

lcd1602_WriteCmd(0x80);

while(q!=NULL && (*q!='') && i<16)

{

lcd1602_WriteData(*q);

q++;

i++;

}

break;

case 1:

lcd1602_WriteCmd(0xc0);

while(q!=NULL && (*q!='') && i<16)

{

lcd1602_WriteData(*q);

q++;

i++;

}

break;

}

}

void dischg()

{

disdat[3]=dat+0x30;

disdat[2]='.';

disdat[1]=sec%10+0x30;

disdat[0]=sec/10+0x30;

lcd1602_Display(disdat,1);

}

void ext0() interrupt 0

{

key++;

key%=3;

}

void t0isr() interrupt 1 //秒計時

{

TH0=0x3c;

TL0=0xb0;

time++;

if(time==2)

{

time=0;

dat++;

if(dat>=10)

{

dat=0;

sec++;

if(sec>59)sec=0;

}

dischg();

}

}

main()

{

TMOD=0x01;

TH0=0x3c;

TL0=0xb0;

TR0=0;

ET0=1;

EX0=1;

IT0=1;

EA=1;

time=0;

dischg();

lcd1602_Init();

lcd1602_Display(str,0);

lcd1602_Display(disdat,1);

while(1)

{

switch(key)

{

case 0:TR0=0;break;

case 1:TR0=1;break;

case 2:sec=0;dat=0;dischg();break;

}

}

}

④ C51單片機怎麼讓lcd1602顯示兩行

LCD1602,都是顯示兩行的。
不需要什麼特殊的操作,就能顯示兩行。

樓主提出這樣的問題,也不給出電路和語言的要求,很難回答的。

看看我的網路空間吧,有這樣的程序和電路。

閱讀全文

與lcd1602顯示編程相關的資料

熱點內容
普通人上網用的是什麼伺服器 瀏覽:451
python安裝了找不著 瀏覽:179
常微分第三版答案pdf 瀏覽:262
安卓機qq怎麼開懸浮窗 瀏覽:61
備孕三年了怎麼緩解壓力大 瀏覽:741
登錄阿里雲伺服器黑屏 瀏覽:334
匿名元組Python 瀏覽:723
華為運動健康存儲的文件夾 瀏覽:520
cad正多邊形命令 瀏覽:461
壓縮比150能加97油嗎 瀏覽:397
linux新建群在哪個文件夾 瀏覽:794
韻達快運app在哪裡簽收 瀏覽:336
阿里雲伺服器如何綁定備案域名 瀏覽:273
單片機用什麼鍵盤好 瀏覽:25
android動畫面試 瀏覽:309
pdf無法刪除 瀏覽:90
ftp刪除文件java 瀏覽:89
裂變棋牌源碼 瀏覽:87
邀月命令江別鶴退婚 瀏覽:656
春秋app在哪裡查詢 瀏覽:136