登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 1602显示屏Ⅰ

[复制链接]
发表于 2022-1-16 21:51:22 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 单片机
学习安排: 单片机
开始时间: 2022-01-16
结束时间: 2022-01-16
幕布链接
https://www.mubucm.com/doc/hyvFO0_-WG
参考《零基础学51单片机(C语言版)》



1602液晶显示屏静态显示字符
#include<reg51.h>
#include<intrins.h>
sbit RS = P2^4;
sbit RW = P2^5;
sbit EN = P2^6;
#define DataP0 P0
void DelayUs(unsigned char tu)
{
        while(--tu);
}
void DelayMs(unsigned char tm)
{
while(tm--)
{
  DelayUs(248);
  DelayUs(248);
}
}
bit LCD_Check_Busy(void)
{
DataP0=0xFF;
RS=0;
RW=1;
EN=0;
_nop_();
EN=1;
return (DataP0 & 0x80);
}
void LCD_Write_Com(unsigned char command)
{
while(LCD_Check_Busy());
RS=0;
RW=0;
EN=1;
DataP0=command;
_nop_();
EN=0;
}
void LCD_Write_Data(unsigned char Data)
{
while(LCD_Check_Busy());
RS=1;
RW=0;
EN=1;
DataP0=Data;
_nop_();
EN=0;
}
void LCD_Clear(void)
{
LCD_Write_Com(0x01);
DelayMs(5);
}
void LCD_Write_String(unsigned char n,unsigned char m,unsigned char *s)
{
if (m==0)
  {
   LCD_Write_Com(0x80 +n);
        }
else
  {
   LCD_Write_Com(0xC0 + n);
        }
while (*s)
  {
   LCD_Write_Data(*s);
   s++;
        }
}       
void LCD_Write_Char(unsigned char j,unsigned char k,unsigned char Data)
{
if (k==0)
  {
   LCD_Write_Com(0x80+j);
        }
else
  {
   LCD_Write_Com(0xC0+j);
        }
LCD_Write_Data(Data);
}
void LCD_Init(void)
{
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x08);
LCD_Write_Com(0x01);
LCD_Write_Com(0x06);
DelayMs(5);
LCD_Write_Com(0x0C);
}       
void main(void)
{
LCD_Write_Char(7,0,'o');
LCD_Write_Char(8,0,0x6B);
LCD_Write_String(1,1,"www.etv100.com");
while(1);
}
仅供参考

好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表