欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
標準清晰的LCD1602單片機驅動程序
[打印本頁]
作者:
大哥大的大
時間:
2019-4-14 17:45
標題:
標準清晰的LCD1602單片機驅動程序
#include<reg51.h>
#include<intrins.h>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define DataPort P0 //數據端口
#define Busy 0x80
sbit RS =P1^0; //控制引腳定義
sbit RW =P1^1;
sbit Elcm =P1^2;
code char exampl[]="Hello Every Body";
unsigned char tem1,t;
unsigned char c1=10;
//*********************************一毫秒延時**********************
void Delay1Ms(void)
{
uint i=552;
while(i--);
}
//*********************************五毫秒延時**********************
void Delay5Ms(void)
{
uint i=5552;
while(i--);
}
//*********************************等待允許函數**********************
void WaitForEnable(void)
{
DataPort=0xff;
RS=0;RW=1;_nop_();
Delay1Ms();
Elcm=1;_nop_();_nop_();
Delay1Ms();
while(DataPort&Busy);
Elcm=0;
}
//*********************************寫控制字符函數**********************
void LcdWriteCommand(uchar CMD,uchar AttribC)
{
if(AttribC)WaitForEnable(); //檢測忙信號
RS=0;RW=0;_nop_();
DataPort=CMD;_nop_(); //送控制字子程序
Elcm=1;_nop_();_nop_();Elcm=0;//操作允許脈沖信號
}
//*********************************當前位置寫字符函數**********************
void LcdWriteData(char dataW)
{
WaitForEnable(); //檢測忙信號
RS=1;RW=0;_nop_();
DataPort=dataW;_nop_();
Elcm =1;_nop_();_nop_;Elcm =0; //操作允許脈沖信號
}
//*********************************顯示光標定位函數**********************
void LocateXY(char posx,char posy)
{
uchar temp;
temp=posx&0xf;
posy&=0x1;
if(posy)temp|=0x40;
temp|=0x80;
LcdWriteCommand(temp,0);
}
//*********************************單字符顯示函數**********************
void DispOneChar(uchar x,uchar y,uchar Wdata)
{
LocateXY(x,y); //定位顯示字符的x,y位置
LcdWriteData(Wdata); //寫字符
}
//*********************************顯示字符串函數**********************
void ePutstr(uchar x,uchar y,uchar j,uchar code*ptr)
{ uchar i;
for(i=0;i<j;i++)
{
DispOneChar(x++,y,ptr[i]);
if(x==16)
{
x=0;y^=1;
}
}
}
//*********************************LCD初始化函數**********************
void LcdReset(void)
{
LcdWriteCommand(0x38,0); //檢測模式設置(不檢測忙信號)
Delay5Ms();
LcdWriteCommand(0x38,0); //共三次
Delay5Ms();
LcdWriteCommand(0x38,0);
Delay5Ms();
LcdWriteCommand(0x38,1); //顯示模式設置(以后均顯示忙信號)
LcdWriteCommand(0x38,1); //顯示關閉
LcdWriteCommand(0x38,1); // 顯示清屏
LcdWriteCommand(0x38,1); // 顯示光標移動設置
LcdWriteCommand(0x38,1); // 顯示開及光標設置
}
//*********************************四百毫秒延時函數**********************
void Delay400Ms(void)
{
uchar i=5;
uint j;
while(i--)
{
j=7269;
while(j--);
}
}
//*********************************主函數**********************
void main(void)
{
LcdReset();
Delay400Ms();
ePutstr(0,0,16,exampl); //第一行從零位開始顯示Hello Every Body
while(1);
}
復制代碼
作者:
靜翎
時間:
2019-4-22 22:48
你好,引用的頭文件怎么寫
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1