欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)控制1602液晶顯示電路圖+程序
[打印本頁]
作者:
大椰汁粉粉粉
時(shí)間:
2019-5-14 16:35
標(biāo)題:
單片機(jī)控制1602液晶顯示電路圖+程序
利用51單片機(jī)控制lcd1602是非常普遍的,在此我將原理圖和程序分享出來,供大家一起學(xué)習(xí)
這個(gè)程序?qū)崿F(xiàn)的將超聲波模塊所檢測(cè)到的距離和溫度傳感器接收到的溫度顯示到lcd上,只是一個(gè)參考
大家想顯示其他的東西,原理圖可以照著用,但是程序可能就要進(jìn)行修改了
電路原理圖如下:
1.png
(66.08 KB, 下載次數(shù): 54)
下載附件
原理圖
2019-5-14 16:33 上傳
單片機(jī)源程序如下:
#include <reg52.h>
#define uchar unsigned char // 以后unsigned char就可以用uchar代替
#define uint unsigned int // 以后unsigned int 就可以用uint 代替
sbit LcdRs_P = P1^2; // 1602液晶的RS管腳
sbit LcdRw_P = P1^3; // 1602液晶的RW管腳
sbit LcdEn_P = P1^4; // 1602液晶的EN管腳
/*********************************************************/
// 毫秒級(jí)的延時(shí)函數(shù),time是要延時(shí)的毫秒數(shù)
/*********************************************************/
void DelayMs(uint time)
{
uint i,j;
for(i=time;i>0;i--)
for(j=112;j>0;j--);
}
/*********************************************************/
// 1602液晶寫命令函數(shù),cmd就是要寫入的命令
/*********************************************************/
void LcdWriteCmd(uchar cmd)
{
LcdRs_P = 0;
LcdRw_P = 0;
LcdEn_P = 0;
P0=cmd;
DelayMs(1);
LcdEn_P = 1;
DelayMs(1);
LcdEn_P = 0;
}
/*********************************************************/
// 1602液晶寫數(shù)據(jù)函數(shù),dat就是要寫入的命令
/*********************************************************/
void LcdWriteData(uchar dat)
{
LcdRs_P = 1;
LcdRw_P = 0;
LcdEn_P = 0;
P0=dat;
DelayMs(1);
LcdEn_P = 1;
DelayMs(1);
LcdEn_P = 0;
}
/*********************************************************/
// 1602液晶初始化函數(shù)
/*********************************************************/
void LcdInit()
{
LcdWriteCmd(0x38); // 16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)口
LcdWriteCmd(0x0C); // 開顯示,不顯示光標(biāo)
LcdWriteCmd(0x06); // 地址加1,當(dāng)寫入數(shù)據(jù)后光標(biāo)右移
LcdWriteCmd(0x01); // 清屏
}
/*********************************************************/
// 液晶光標(biāo)定位函數(shù)
/*********************************************************/
void LcdGotoXY(uchar line,uchar column)
{
// 第一行
if(line==0)
LcdWriteCmd(0x80+column);
// 第二行
if(line==1)
LcdWriteCmd(0x80+0x40+column);
}
/*********************************************************/
// 液晶輸出字符串函數(shù)
/*********************************************************/
void LcdPrintStr(uchar *str)
{
while(*str!='\0')
LcdWriteData(*str++);
}
///*********************************************************/
//// 液晶輸出數(shù)字
///*********************************************************/
//void LcdPrintNum(uchar num)
//{
// LcdWriteData(num/100+48); // 百位
// LcdWriteData(num%100/10+48); // 十位
// LcdWriteData(num%10+48); // 個(gè)位
//}
/*********************************************************/
// 主函數(shù)
/*********************************************************/
void main()
{
char num=78;
// 1、首先,執(zhí)行液晶初始化
LcdInit(); // 液晶初始化
// 2、定位,確定行(0-1)和列(0-15)的數(shù)字
LcdGotoXY(0,3);
// 3.1 如果顯示單個(gè)字符
LcdWriteData('Y');
// 3.2 如果顯示一串字符
LcdPrintStr("hello!");
// 3.3 顯示一個(gè)采集的數(shù)字
LcdWriteData(num/10+0x30);
LcdWriteData(num%10+0x30);
while(1);
}
復(fù)制代碼
作者:
280570255
時(shí)間:
2019-5-16 09:06
不錯(cuò),又長了一點(diǎn)見識(shí).
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1