当前位置:首页 > 单片机 > 单片机
[导读]实验原理图实验程序#include<reg51.h>#include<stdio.h>#include<stdlib.h>#include<intrins.h>#include<absacc.h>#define busy 0x80 //用于检测LCD 状态字中的Busy 标识#define RSaddr 0x1000#define RWaddr 0x2000

实验原理图

实验程序

#include<reg51.h>

#include<stdio.h>

#include<stdlib.h>

#include<intrins.h>

#include<absacc.h>

#define busy 0x80 //用于检测LCD 状态字中的Busy 标识

#define RSaddr 0x1000

#define RWaddr 0x2000

#define CSaddr 0x0400

#define adtn 0xc8ff

#define wc 0xcfff

#define wd 0xdfff

#define rc 0xefff

unsigned char code homepage[] = {"www.ispdown.com"};

unsigned char code email[] = {"ispdown@21cn.com"};

//5ms 延时

void delay5ms(void)

{

unsigned int TempCyc = 5552;

while(TempCyc--);

}

//----------------------------------

//400ms 延时

void delay400ms(void)

{

unsigned char TempCycA = 5;

unsigned int TempCycB;

while(TempCycA--)

{

TempCycB=7269;

while(TempCycB--);

};

}

//--------------------------------

void waitLcd()

{

char temp;

bit flag=1;

while(flag==1)

{

//temp=XBYTE[CSaddr+RWaddr+adtn];

temp=XBYTE[rc];

if (temp>>7==0) flag=0;

P1=temp;

}

P1=0xff;

}

//---------------------------------

void WC_Lcd(bit isCheck,char c)

{

if (isCheck==1) waitLcd();

//XBYTE[CSaddr+adtn]=c;

XBYTE[wc]=c;

}

//--------------------------------

void WD_Lcd(char c)

{

waitLcd();

//XBYTE[CSaddr+RSaddr+adtn]=c;

XBYTE[wd]=c;

}

//----------------------------------

void LcdInit()

{

delay5ms();delay5ms();

delay5ms();

WC_Lcd(0,0x38); //三次显示模式设置,不检测忙信号

delay5ms();

WC_Lcd(0,0x38);

delay5ms();

WC_Lcd(0,0x38);

delay5ms();

WC_Lcd(1,0x38); //显示模式设置,开始要求每次检测忙信号

WC_Lcd(1,0x08); //关闭显示

WC_Lcd(1,0x01); //显示清屏

WC_Lcd(1,0x06); // 显示光标移动设置

WC_Lcd(1,0x0C); // 显示开及光标设置

}

//-------------------------------------------------------------------------

//按指定位置显示一个字符

void displayOneChar(unsigned char X, unsigned char Y, unsigned char DData)

{

Y &= 0x1;

X &= 0xF; //限制X 不能大于15,Y 不能大于1

if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;

X |= 0x80; //算出指令码

WC_Lcd(0,X); //这里不检测忙信号,发送地址码

WD_Lcd(DData);

}

//-------------------------------------------------------------------------------

//按指定位置显示一串字符

void displayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)

{

unsigned char ListLength;

ListLength = 0;

Y &= 0x1;

X &= 0xF; //限制X 不能大于15,Y 不能大于1

while (DData[ListLength]>0x20) //若到达字串尾则退出

{

if (X <= 0xF) //X 坐标应小于0xF

{

displayOneChar(X, Y, DData[ListLength]); //显示单个字符

ListLength++;

X++;

}

}

}

//====================================

void main(void)

{

delay400ms();

LcdInit();

displayListChar(0, 0, homepage);

displayListChar(0, 1, email);

while(1);

}

//====================================

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

液晶显示器作为现代计算机系统和各种电子设备中的核心输出部件,其稳定性和可靠性直接影响着用户的使用体验。然而,在长期使用过程中,液晶显示器难免会遇到一些故障问题。本文旨在提供一份详细的液晶显示器维修教程,涵盖故障识别、基本...

关键字: 液晶显示器 液晶显示器维修

以下内容中,小编将对液晶显示器的相关内容进行着重介绍和阐述,希望本文能帮您增进对液晶显示器的了解,和小编一起来看看吧。

关键字: 显示器 液晶显示器

在显示技术日新月异的今天,液晶显示器(LCD)已成为众多电子设备中的核心组件。为了确保不同型号、规格的LCD显示器能够与各种主机设备兼容,LCD转接板应运而生。本文将对LCD转接板的概念、功能、应用及其重要性进行详尽阐述...

关键字: 液晶显示器 电子设备 LCD转接板

液晶显示器(Liquid Crystal Display,简称LCD)是一种常见的显示技术,其基本工作原理是利用液晶材料的物理特性实现图像显示。下面我们将详细介绍LCD的基本工作原理和构造。

关键字: 液晶显示器 LCD

液晶显示模块是一种被广泛应用于各种电子设备的显示部件。由于其具有低功耗、长寿命、轻薄等优点,因此被广泛应用于手机、电视、电脑、医疗设备、仪表盘、电子书等设备中。本文将详细介绍液晶显示模块的各种应用。

关键字: 液晶显示器 液晶显示模块

液晶显示器(LCD)作为现代主流的显示设备,已经广泛应用到各个领域中。它以其低功耗、低辐射、高清晰度和长寿命等优点,赢得了广大用户的青睐。然而,任何产品都不可能完美,LCD同样存在其优劣势。本文将针对LCD在使用方面的优...

关键字: 液晶显示器 LCD CRT技术

液晶显示器(LCD)作为一种主流的显示设备,已经深入到人们的日常生活和工作之中。它以其低功耗、低辐射、高清晰度和长寿命等优点,赢得了广泛的市场和用户青睐。如何进行液晶显示器的系统设计,直接影响其性能和用户体验。本文将详细...

关键字: 液晶显示器 LCD

一、引言 随着科技的飞速发展,液晶显示器(LCD)已经成为了我们日常生活和工作中的重要组成部分。然而,面对着不断变化的市场环境和消费者需求,我国液晶显示器市场也正在经历前所未有的挑战和机遇。本文将探讨我国液晶显示器...

关键字: LCD 液晶显示器

液晶显示器是一种利用液晶光学特性工作的显示设备,具有薄型、轻量、省能等特性,被广泛应用于各种电子设备中。随着技术的不断发展,液晶显示器的种类也日益丰富。本文将详细介绍根据制作工艺的不同液晶显示器的种类及其特点。

关键字: 液晶显示器 液晶电视

LED,英文全称为Light Emitting Diode,中文意思为发光二极管;LCD,英文全称Liquid Crystal Display,中文意思为液晶显示器。

关键字: LED LCD 液晶显示器
关闭
关闭