📄 hd44780.c
字号:
#include "iom32.h"
//#include "includes.h"
#define HD44780_C
void lcd_pulse(void)
{
lcd_set_e();
delay_nms(1);
lcd_clear_e();
delay_nms(1);
}
void lcd_wait(void)
{
asm("nop");
}
void lcd_send(unsigned char data) //向LCD写数据
{
lcd_wait();
dataport=data;
lcd_pulse;
}
void clrscr(void) //清屏
{
lcd_clear_rs();
lcd_clear_rw();
lcd_send(0x01);
lcd_wait();
}
void gotoz(unsigned char z) //转到LCD内存地址
{
lcd_clear_rs();
lcd_clear_rw();
lcd_send(z|0x80);
}
void gotoxy(unsigned char x,unsigned char y)
{
gotoz((x)|((y)<<6));
}
void put_char(char c) //输入单个字符
{
lcd_clear_rw();
lcd_set_rs();
lcd_send(c);
}
void outtext(unsigned char * text) //输出一个字符串
{
unsigned char i;
for(i=0;text[i]&&i<16;i++)
put_char(text[i]);
}
void initgraph(void) //初始化显示
{
dirport_data=0xFF;
}
void LCD_WriteData(unsigned char Data)
{
char temp;
LCD_Busy();
LCD_DIR_PORT=0xFF;
temp=LCD_0P_PORT;
temp=temp&BIT3;
LCD_OP_PORT=(Data&0xf0)|temp;
lcd_clear_rw(); //Set LCD to write
lcd_set_rs();
lcd_set_e();
asm("nop");
asm("nop");
lcd_clear_e();
LCD_OP_PORT=(Data<<4)|temp;
lcd_clear_rw();
lcd_set_rs();
lcd_set_e();
asm("nop");
asm("nop");
lcd_clear_e();
}
//************************************************//
//****初始化液晶**********************************//
//************************************************//
void Init_LCD(void)
{
LCD_INIT();
LCD_WriteControl(LCD_FUNCTION_SET);
LCD_WriteControl(LCD_OFF);
LCD_WriteControl(LCD_CLEAR);
LCD_WriteControl(LCD_MODE_SET);
LCD_WriteControl(LCD_0N);
LCD_WriteControl(LCD_HOME);
//LCD_WriteControl(0x90);
}
//************************************************//
//*************清屏*******************************//
//************************************************//
void LCD_Clear(void)
{
LCD_WriteControl(0x01);
}
//************************************************//
//*************移动光标到0行0列*******************//
//************************************************//
void LCD_Home(void)
{
LCD_WriteControl(0x02);
}
//************************************************//
//**************显示字符,在当前光标处************//
//************************************************//
void LCD_DisplayCharacter(char Cchar)
{
LCD_WriteData(Cchar);
}
//************************************************//
//*****在FLASH中,在指定的行和列显示一个字符串****//
//************************************************//
void LCD_DisplayString_F(char row,char column,unsigned char __flash * string)
{
LCD_Cursor(row,column);
while(* string)
{
LCD_DisplayCharacter(* string++);
}
}
//************************************************//
//*****在RAM中,在指定的行和列显示一个字符串******//
//************************************************//
void LCD_DisplayString(char row,char column,unsigned char * string)
{
LCD_Cursor(row,column);
while(* string)
{
LCD_DisplayCharacter(* string++);
}
}
//*************************************************//
//***********定位行和列的光标**********************//
//*************************************************//
void LCD_Cursor(char row,char column)
{
switch(row)
{
case 1:
LCD_WriteControl(0x80+column-1);
break;
case 2:
LCD_WriteControl(0xc0+column-1);
break;
case 3:
LCD_WriteControl(0x94+column-1);
break;
case 4:
LCD_WriteControl(0xd4+column-1);
break;
default:
break;
}
}
//**************************************************//
//***********打开光标*******************************//
//**************************************************//
void LCD_Cursor_On(void)
{
LCD_WriteControl(LCD_CURS_ON);
}
//**************************************************//
//***********关闭光标*******************************//
//**************************************************//
void LCD_Cursor_Off(void)
{
LCD_WriteControl(LCD_0N);
}
//**************************************************//
//**************关闭LCD*****************************//
//**************************************************//
void LCD_Display_Off(void)
{
LCD_WriteControl(LCD_OFF);
}
//**************************************************//
//**************打开LCD*****************************//
//**************************************************//
void LCD_Display_On(void)
{
LCD_WriteControl(LCD_ON);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -