当前位置:首页 > 芯闻号 > 充电吧
[导读]给 STC89C51 安一个 LCD1602 液晶显示器。写一段程序,使得 STC89C51 有计时、显示功能。当给 STC89C51 一个连续的高电平时,单片机开始计时,同时在显示器上显示计时的秒数

给 STC89C51 安一个 LCD1602 液晶显示器。写一段程序,使得 STC89C51 有计时、显示功能。


当给 STC89C51 一个连续的高电平时,单片机开始计时,同时在显示器上显示计时的秒数;

当结束高电平时,计时停止,但是显示器上保留计时数值。


当下一个高电平来到,显示器接着上次的时间继续计时。

简单的讲就是说显示器显示几个间断的高电平持续的时间之和。


再设一个脚实现清零。


这个题目,实际上就是设计一个采用液晶显示的秒表。


悬赏分:100 | 解决时间:2011-3-28 09:42 

原题网址:http://zhidao.baidu.com/question/237573382.html

================================================

回答:


LCD1602 和 51单片机的之间,如果采用常规接法,共需要 11 条线;


如果不用读出,RW 就可以直接接地,使 LCD 永远处于写入状态,这样的电路如下所示:



如果觉得 LCD1602 占用单片机的引脚太多,可以只用 6 条引线来实现对液晶屏的驱动。


驱动 LCD1602,很简单,关键是要写好“写指令”和“写数据”两个函数,其它的设置、显示等等,就不难了。


晶振选用 11.0592 / 12MHz,均可。


实现脉冲长度计时、显示的程序如下:


#include

#include 

#define uchar unsigned char 

#define uint unsigned int

#define LCD_IO P2


sbit LCD_RS = P3^0;

sbit LCD_RW = P3^7;

sbit LCD_EN = P3^1;

sbit sw1 = P3^2;

sbit sw2 = P3^3;


uchar count;

uint  sec;

uchar code LCD_line1[] = "Pulse Continued:";

uchar code LCD_line2[] = "       00000 s  ";

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

void delay(uint z)

{

    uint  x,  y;

    for(x = z; x > 0; x--)  for(y = 10; y > 0; y--);

}

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

void W_LCD_Com(uchar com)      //写指令

{

    LCD_RS = 0;    LCD_EN = 0; // LCD_RS和R/W同时为低电平时,可以写入指令     

    LCD_IO = com;  delay(5);   //下面用EN输入一个高脉冲 

    LCD_EN = 1;    delay(5);    LCD_EN = 0;

}

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

void W_LCD_Dat(uchar dat)      //写数据

{

    LCD_RS = 1;    LCD_EN = 0; // LCD_RS为高,LCD_RW为低时,可以写入数据  

    LCD_IO = dat;  delay(5);   //下面用EN输入一个高脉冲 

    LCD_EN = 1;    delay(5);    LCD_EN = 0;

}

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

void W_LCD_STR(uchar *s)       //写字符串

{

    while(*s > 0)  {W_LCD_Dat(*s);  s++;}

}

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

void init()

{

    W_LCD_Com(0x38);

    W_LCD_Com(0x0c);

    W_LCD_Com(0x06);

    W_LCD_Com(0x01);

    W_LCD_Com(0x80); W_LCD_STR(LCD_line1);

    W_LCD_Com(0xC0); W_LCD_STR(LCD_line2);


    TMOD = 0x01;

    TH0 = (65536 - 50000) / 256;

    TL0 = (65536 - 50000) % 256;

    TR0 = 1;

    ET0 = 1;

    EX0 = 1;

    EX1 = 1;

    PX1 = 1;

    EA = 1;

}

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

void W_LCD_X1_Dat(uint  sec)

{

    W_LCD_Com(0xc0 + 7);

    W_LCD_Dat(0x30 + sec / 10000);

    W_LCD_Dat(0x30 + (sec % 10000) / 1000);

    W_LCD_Dat(0x30 + (sec % 1000) / 100);

    W_LCD_Dat(0x30 + (sec % 100) / 10);

    W_LCD_Dat(0x30 + sec % 10);

}

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

void main()

{

    init();

    while(1);

}

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

void timer0() interrupt 1

{

    TL0 = (65536-50000) % 256;

    TH0 = (65536-50000) / 256;

    count++;

    if(count == 20)  {

      count = 0;

      sec++;

      W_LCD_X1_Dat(sec);   

    } 

}

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

void X0_INT() interrupt 0

{

    while(sw1 == 0);

}

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

void X1_INT() interrupt 2

{

    while(sw2 == 0);

    count = 0;

    sec = 0;

    W_LCD_X1_Dat(sec);   

}


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

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

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

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

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

在显示技术日新月异的今天,液晶显示器(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 液晶显示器
关闭
关闭