首页 > 编程知识 正文

lcd1602液晶显示计数器,单片机秒表设计

时间:2023-05-06 10:37:16 阅读:121109 作者:2949

以前,介绍了1602显示器的接口(连接) LCD1602显示器的接口介绍)和读写操作相关函数(连接) LCD1602读写控制和初始化函数)。 今天设计一个简单的1602应用实例——秒表。 要求:有秒表启动和复位功能按钮,秒表计时时间实时显示在液晶屏1602上。

1 .系统硬件电路图:

2 .系统编程

2.1声明头文件、全局变量和函数

#include 'LCD_1602.h '

#include stdio.h

unsigned char Disp_Buffer[10]; //将其设置得稍大一点,不影响结果显示,在显示时遇到字符串结束标志时结束

//定义两个位变量,分别对应键开始按钮和停止复位按钮

sbit key_set=P3^2;

sbit key_reset=P3^3;

unsigned char time_count=0;

unsigned int time_S=0;

void timer_inial (; //计时器初始化

未指定Inti (语音延迟); //延迟函数

Void开始(; //开始秒表

语音停止(; //停止重置秒表

void second_cal_show (; 计算和显示//秒

2.2主程序

注意主程序主要完成显示器初始化和初始化显示、定时器初始化,定时器初始化时不启动。 有开始键控件,不按开始键的话计时器就不能启动。 初始化完成后,在while循环中调用start (; 决定是否启动计时器,调用stop (); 根据键的状态,停止秒表并决定是否复位; 调用second_cal_show (; 计算和显示秒。

Void主() )

{

init液晶屏1602 (;

液晶屏showstr (0,0,' Current : 0 S ' );

液晶屏showstr (0,1,' Last : 0 S ';

timer_inial (;

while(1)。

{

开始(;

停止(;

second_cal_show (;

}

}

2.3子程序

2.3.1初始计时器:计时器T0工作在模式1,计时器的计时器时间为0.02秒。

void timer_inial ()

{

TMOD=0X01; //

TH0=0XB8; //定时0.02s

TL0=0X00;

}

2.3.2延迟函数:软件延迟,主要通过关键软件消除抖动

//延迟函数

唯一延迟(unsigned inti ) )。

{

未指定Int k;

for(k=0; ki; k;

}

2.3.3启动函数:检测是否按下键,如果按下键,启动计时器T0,从0开始计数。

void start () )

{

if(0==key_set ) )。

{

延迟(1200; //10ms消除颤抖

检测if(0==key_set ) /再次按下键

{

while (! key_set; //等待按钮释放

TR0=1;

time_S=0;

time_count=0;

}

}

}

2.3.4停止重置函数:检测是否按下停止按钮,如果按下按钮,停止计时器T0,更新LCD显示信息。

void stop () )

{

if(0==key_reset ) )。

{

延迟(1200; //10ms消除颤抖

检测是否按下了if(0==key_reset ) /再次按键

{

while (! key_reset; //等待按钮释放

TR0=0;

lcdwritecmd(0x01; //透明屏幕

液晶屏showstr (0,0,' Current : 0 S ' );

液晶屏showstr (0,1,' Last : 0 S ';

液晶屏showstr (10,1,Disp_Buffer );

}

}

}

2.3.5秒处理和显示函数:每当计时器T0溢出时,对time_count的值加1,进行50次相加就是秒,对秒变量time_S的值加1,然后更新显示器的显示信息。

void second_cal_show (

{

if(TF0==1) ) ) ) )。

{

TF0=0;

TH0=0XB8;

TL0=0X00;

time_count;

if(time_count=50 )/50次1秒

{

time_count=0;

time_S;

sprintf(disp_buffer,' %d S ',time_S );

液晶屏showstr (10,0,Disp_Buffer );

}

}

}

以上是所有代码,编译情况如下。

将程序下载到单片机,实际运行效果如下视频连接: LCD1602液晶应用实例---单片机控制秒表设计

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。