?? 1602.c
字號:
/************************************************************************************/
//fm1602驅(qū)動(dòng),1602的控制芯片為HD44780
/************************************************************************************/
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar num[] = "0123456789";//顯示兩位數(shù)字時(shí)使用
sbit RS = P2^2;
sbit RW = P2^1;
sbit E = P2^0;
void delay(uint x)
{
while(x--);
}
/************************************向1602寫一個(gè)命令*********************************/
void write_command(uchar command)
{
RW = 0;RS = 0;E = 1;
P0 = command;
delay(100); //等待接收
E = 0;
RW = 1;
}
/************************************向1602寫一個(gè)數(shù)據(jù)*********************************/
void write_data(uchar date)
{
RW = 0;RS = 1;E = 1;
P0 = date;
delay(100); //等待接收
E = 0;
RW = 1;
}
/***************************************初始化1602************************************/
void F1602_init(void)
{
write_command(0x38); // 兩行,每行16字符,每個(gè)字符5*7點(diǎn)陣
write_command(0x0f); // 光標(biāo)顯示并閃爍
//write_command(0x0C); // 光標(biāo)不顯示
write_command(0x06); // 光標(biāo)隨字符右移
}
/***************************************對1602清屏************************************/
void F1602_clear()
{
write_command(0x01);
write_command(0x02);
}
/*************************************向1602寫字符串**********************************/
void display_string(uchar *p)
{
while(*p) //字符非空
{
write_data(*p); //寫字符
p++; //數(shù)據(jù)指針加1
}
}
/**********************************向1602寫數(shù)字變量(兩位)*****************************/
void display_num(uchar x)
{
write_data(num[x / 10]);
write_data(num[x % 10]);
}
/******************************************定位**************************************/
void gotoxy(uchar y,uchar x)
{
if(y == 1)
write_command(0x80 + x); //第一行
else if(y == 2)write_command(0x80 + 0x40 + x); //第二行
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -