📄 hd44780.c
字号:
#include "includes.h"
#define HD44780_C
/**************************************************************************************/
//函数名 :lcd_pulse
//属性 :私有
//功能 :产生LCD所需的短脉冲
//输入参数 :无
//输出参数 :无
//返回值 :
//修改日期 :
//修改人 :
/**************************************************************************************/
void lcd_pulse(void)
{
lcd_set_e();
delay_nms(1);
lcd_clear_e();
delay_nms(1);
}
/**************************************************************************************/
//函数名 :lcd_wait
//属性 :私有
//功能 :延时等待
//输入参数 :无
//输出参数 :无
//返回值 :
//修改日期 :
//修改人 :
/**************************************************************************************/
void lcd_wait(void) // medium delay (long for lcd, but much less than a second)
{
asm("nop");
}
/**************************************************************************************/
//函数名 :lcd_send
//属性 :私有
//功能 :写一个字符到LCD
//输入参数 :data--要显示的字符
//输出参数 :无
//返回值 :
//修改日期 :
//修改人 :
/**************************************************************************************/
void lcd_send(unsigned char data) // send byte to lcd
{
lcd_wait();
dataport = data;
lcd_pulse();
}
/**************************************************************************************/
//函数名 :clrscr
//属性 :私有
//功能 :清除屏幕
//输入参数 :无
//输出参数 :无
//返回值 :
//修改日期 :
//修改人 :
/**************************************************************************************/
void clrscr(void) // clear screen
{
lcd_clear_rs();
lcd_clear_rw();
lcd_send(0x01);
lcd_wait();
}
/**************************************************************************************/
//函数名 :gotoz
//属性 :私有
//功能 :坐标定位
//输入参数 :z--位置
//输出参数 :无
//返回值 :
//修改日期 :
//修改人 :
/**************************************************************************************/
void gotoz(unsigned char z) // goto lcd memory address
{
lcd_clear_rs();
lcd_clear_rw();
lcd_send(z | 0x80);
}
/**************************************************************************************/
//函数名 :gotoxy
//属性 :私有
//功能 :在LCD上的位置
//输入参数 :x--字符的列;y--字符的行
//输出参数 :
//返回值 :
//修改日期 :
//修改人 :
/**************************************************************************************/
void gotoxy(unsigned char x,unsigned char y)
{
gotoz((x)|((y)<<6));
}
/**************************************************************************************/
//函数名 :put_char
//属性 :私有
//功能 :在LCD上显示一个字符
//输入参数 :c--要显示的字符
//输出参数 :
//返回值 :
//修改日期 :
//修改人 :
/**************************************************************************************/
void put_char(char c) // output single character
{
lcd_clear_rw();
lcd_set_rs();
lcd_send(c);
}
/**************************************************************************************/
//函数名 :outtext
//属性 :私有
//功能 :输出字符串到LCD显示
//输入参数 :text--要显示的字符串
//输出参数 :无
//返回值 :
//修改日期 :
//修改人 :
/**************************************************************************************/
void outtext(unsigned char* text) // output string
{
unsigned char i;
for(i = 0; text[i] && i < 16; i++)
put_char(text[i]);
}
/**************************************************************************************/
//函数名 :initgraph
//属性 :私有
//功能 :初始化LCD
//输入参数 :无
//输出参数 :无
//返回值 :
//修改日期 :
//修改人 :
/**************************************************************************************/
void initgraph(void) // init display
{
dirport_data = 0xFF;
dirport_con |= (LCD_E | LCD_RS | LCD_RW);
lcd_clear_rs();
lcd_clear_rw();
lcd_send(0x3C);
lcd_send(0x3C);
lcd_send(0x3C);
lcd_send(0x06);
lcd_send(0x0C);
}
/*************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -