⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd1602.h

📁 一个步进电机控制程序
💻 H
字号:
#include <AT89X51.h>//51芯片管脚定义头文件
#include <intrins.h>//内部包含延时函数 _nop_() ;
#define uchar unsigned char
#define uint unsigned int
#define delayNOP() ; {_nop_() ;_nop_() ;_nop_() ;_nop_() ;} ;
sbit LCD_RS = P3^6 ;
sbit LCD_RW = P3^5 ;
sbit LCD_EN = P3^7 ;

/********************************************************/
/*
/* 延时t毫秒
/* 11.0592MHz时钟,延时约1ms
/*
/********************************************************/
void delay(uint t)
{
uchar k ;
while(t--)
{
for(k=0 ; k<125 ; k++)
{ }
}
}
/********************************************************/
void delayB(uchar x) //x*0.14MS
{
uchar i ;
while(x--)
{
for (i=0 ; i<13 ; i++)
{ }
}
}
/********************************************************/
/*
/*检查LCD忙状态
/*lcd_busy 为1时,忙,等待。为0时,闲,可写指令与数据。
/*
/********************************************************/
bit lcd_busy()
{
bit result ;
LCD_RS = 0 ;
LCD_RW = 1 ;
LCD_EN = 1 ;
delayNOP() ;
result = (bit)(P0&0x80);
LCD_EN = 0 ;
return(result) ;
}
/********************************************************/
/*
/*写指令数据到LCD
/*RS=L,RW=L,E=高
/*
/********************************************************/
void lcd_wcmd(uchar cmd)
{
while(lcd_busy()) ;
LCD_RS = 0 ;
LCD_RW = 0 ;
LCD_EN = 0 ;
_nop_() ;
_nop_() ;
P0 = cmd ;
delayNOP() ;
LCD_EN = 1 ;
delayNOP() ;
LCD_EN = 0 ;
}
/********************************************************/
/*
/*写显示数据到LCD
/*RS=H,RW=L,E=高
/*
/********************************************************/
void lcd_wdat(uchar dat)
{
while(lcd_busy()) ;
LCD_RS = 1 ;
LCD_RW = 0 ;
LCD_EN = 0 ;
P0 = dat ;
delayNOP() ;
LCD_EN = 1 ;
delayNOP() ;
LCD_EN = 0 ;
}
/********************************************************/
/*
/* LCD初始化设定
/*
/********************************************************/
void lcd_init()
{
delay(30) ;
lcd_wcmd(0x38) ; //16*2 显示,5*7 点阵,8位数据
delay(5) ;
lcd_wcmd(0x38) ;
delay(5) ;
lcd_wcmd(0x38) ;
delay(5) ;
lcd_wcmd(0x0c) ; //显示开,关光标
delay(5) ;
lcd_wcmd(0x06) ; //移动光标
delay(5) ;
lcd_wcmd(0x01) ; //清除LCD的显示内容
delay(5) ;
}
/********************************************************/
/*
/* 设定显示位置
/*
/********************************************************/
void lcd_pos(uchar pos)
{
lcd_wcmd(pos | 0x80) ; //数据指针=80+地址变量
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -