lcd1602顯示程序代碼
前些天弄了最小系統板后就想著學習1602的顯示程序,可惜壇子里的或網上的,都沒有簡單的1602顯示程序,無柰在網上下載了一段經過反復修改測試,終于有了下面一段代碼:
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - - 初始化接口
# define LCD_DB P0 // - - P0 = DB0~DB7
sbit LCD_RS=P2^0; // - - p2.0 = RS
sbit LCD_RW=P2^1; // - - p2.1 = RW
sbit LCD_E=P2^2; // - - p2.2 = E
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - - 定義函數
# define uchar unsigned char
# define uint unsigned int
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - - 定義子程序函數
void LCD_init(void); // - - 初始化LCD1602函數
void LCD_write_command(uchar command); // - - 向LCD1602寫指令函數
void LCD_write_data(uchar dat); // - - 向LCD1602寫數據函數
void LCD_set_xy(uchar x,uchar y); // - - 設置LCD1602顯示位置 X(0-16),y(1-2)
void LCD_disp_char(uchar x,uchar y,uchar dat); // - - 在LCD1602上顯示一個字符
void LCD_disp_string(uchar X,uchar Y,uchar *s); // - - 在LCD1602上顯示一個字符串
//void LCD_check_busy(void);//檢查忙函數。我沒用到此函數,因為通過率極低。
void LCD_delay_10us(uint n); // - - 10微秒的延時子程序
void LCD_delay_50us(uint n); // - - 50微秒的延時子程序
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - - 初始化LCD1602
void LCD_init(void)
{
LCD_delay_10us(20);
LCD_write_command(0x38); // - - 設置8位格式,2行,5x7
LCD_delay_10us(5);
LCD_write_command(0x0c); // - - 整體顯示,關光標,不閃爍
LCD_delay_10us(5);
LCD_write_command(0x06); // - - 設定輸入方式,增量不移位
LCD_delay_10us(5);
LCD_write_command(0x01); // - - 清除屏幕顯示
LCD_delay_50us(40);
}
//********************************
// - - 向LCD1602寫指令
void LCD_write_command(uchar dat)
{
LCD_delay_10us(5);
LCD_RS=0; // - - 指令
LCD_RW=0; // - - 寫入
LCD_DB=dat;
LCD_delay_10us(5);
LCD_E=1; // - - 允許
LCD_delay_10us(5);
LCD_E=0;
}
// - - 向LCD1602寫數據
void LCD_write_data(uchar dat)
{
LCD_delay_10us(5);
LCD_RS=1;// - - 數據
LCD_RW=0;// - - 寫入
LCD_DB=dat;
LCD_delay_10us(5);
LCD_E=1;// - - 允許
LCD_delay_10us(5);
LCD_E=0;
}
// - - 設置顯示位置
void LCD_set_xy(uchar x,uchar y)
{
uchar address;
if(y==1)
{
address=0x80+x; // - - 第一行位置
} else {
address=0xc0+x; // - - 第二行位置
}
LCD_delay_10us(5);
LCD_write_command(address);
}
// - - 顯示一個字符函數
void LCD_disp_char(uchar x,uchar y,uchar dat) // - - LCD_disp_char(0,1,0x38); // - - 顯示8
{
LCD_set_xy(x,y);
LCD_delay_10us(5);
LCD_write_data(dat);
}
// - - 顯示一個字符串函數
void LCD_disp_string(uchar x,uchar y,uchar *s)
{
LCD_set_xy(x,y);
LCD_delay_10us(5);
while(*s!=‘ 主站蜘蛛池模板: 青柠在线观看视频在线高清 | 男女交性视频无遮挡全过程 | 久久国产免费一区二区三区 | 亚洲AV久久无码精品九九软件 | 国产精品嫩草影视在线观看 | 国产一区二区在线观看免费 | 秋霞电影网伦大理电影在线观看 | 又粗又大又爽又黄的免费视频 | 小草高清视频免费直播 | 女教师二十三歳 | 动漫女主被扒开双腿羞辱 | 不良网站进入窗口软件下载免费 | 国产乱人视频在线观看 | 国产免费播放一区二区三区 | 国产乱码卡二卡三卡4W | 欧美videosgratis杂交 | 国产精品亚洲精品影院 | 回复术士人生重启在线观看 | 亚洲成人中文 | 黄色大片久久 | 欧美白人极品性喷潮 | 黄色软件视频app | 精品久久久无码21P发布 | 武侠艳妇屈辱的张开双腿 | YELLOW日本动漫免费动漫 | 久久久无码精品亚洲A片软件 | 久久成人免费观看草草影院 | 日本丝袜护士 | 国产精品久久久久激情影院 | 久久成人无码国产免费播放 | 蜜桃成熟时2电影免费观看d | 国产精品无码中文在线AV | 97色伦97色伦国产 | 久久草福利自拍视频在线观看 | 20岁αsrian男同志免费 | 秋霞网韩国理伦片免费看 | 国产香蕉视频 | 国产成+人+综合+亚洲不卡 | 洗濯屋H纯肉动漫在线观看 羲义嫁密着中出交尾gvg794 | 国产成人无码一区AV在线观看 | 在线二区 中文 无码 |