当前位置: 首页 > news >正文

【51单片机】【protues仿真】基于51单片机秒表系统(LCD1602多功能、可保持30条记录)

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、LCD1602液晶显示
2、按键开始和暂停计时,查看和复位记录​
3、可记录30个数据

二、使用步骤

基于51单片机的秒表系统设计通常包含硬件电路设计、定时器配置、显示模块和按键控制等核心模块

三、硬件资源

1、51单片机核心模块
2、按键模块
3、蜂鸣器模块
4、LCD1602显示模块

四、软件设计

#include<reg52.h>
#include<intrins.h>
//1602定义
sbit RS = P2^0;   //定义端口 
sbit RW = P2^1;
sbit EN = P2^2;

#define RS_CLR RS=0 //状态量定义,方便读取代码
#define RS_SET RS=1

#define RW_CLR RW=0 
#define RW_SET RW=1 

#define EN_CLR EN=0
#define EN_SET EN=1

#define DataPort P0  
//按键定义
sbit key1=P1^3;            //Up
sbit key2=P1^2;            //Down
sbit key3=P1^1;            //Start/Stop
sbit key4=P1^4;            //Record
sbit Beep=P1^0;        
//全局变量定义
unsigned char     RecordTableH[32];     
unsigned char   RecordTableL[32];        
unsigned int    CountTimeH;                 
unsigned char    CountTimeL;               
unsigned char DataRecordFlag = 0;   
unsigned char DataFlag = 0;              

code unsigned char NumTable[]="0123456789";

bit Counting = 0;          
//函数声明
void LCD1602_WriteCom(unsigned char com);        
void LCD1602_WriteData(unsigned char Data); 
void LCD1602_Clear(void);
void LCD1602_PutString(unsigned char x,unsigned char y,unsigned char *s);
void LCD1602_PutChar(unsigned char x,unsigned char y,unsigned char Data);
void LCD1602_Init(void);
void LCD1602_Delay(unsigned int t);

void delay_ms(unsigned int t);
void IniTC0(void) ;                        //初始化定时计数器0
void KeyWork(void);                        //按键扫描以及按键功能动作
void DisplayCountTime(void);    //显示计时的时间

void main()
{
    IniTC0();
    LCD1602_Init();
    Beep = 1;
    
    LCD1602_PutString(4,0,"Well Come");            //开机欢迎可不要
    LCD1602_PutString(2,1,"Time Counter");
    delay_ms(1000);
    LCD1602_Clear();
    
    while(1)
    {
        DisplayCountTime();
        KeyWork();
    }
}
/*------------------------------------------------
              写入命令函数
------------------------------------------------*/
void LCD1602_WriteCom(unsigned char com) 
{
    LCD1602_Delay(5);
    RS_CLR; 
    RW_CLR; 
    EN_SET; 
    DataPort= com; 
    _nop_(); 
    EN_CLR;
}
/*------------------------------------------------
              写入数据函数
------------------------------------------------*/
void LCD1602_WriteData(unsigned char Data) 

    LCD1602_Delay(5);
    RS_SET; 
    RW_CLR; 
    EN_SET; 
    DataPort= Data; 
    _nop_();
    EN_CLR;
}
/*------------------------------------------------
                清屏函数
------------------------------------------------*/
void LCD1602_Clear(void) 

 LCD1602_WriteCom(0x01); 
 LCD1602_Delay(5);
}
/*------------------------------------------------
              写入字符串函数
------------------------------------------------*/
void LCD1602_PutString(unsigned char x,unsigned char y,unsigned char *s) 
{     
    if (y == 0) 
    {     
        LCD1602_WriteCom(0x80 + x);     //表示第一行
    }
    else 
    {      
        LCD1602_WriteCom(0xC0 + x);      //表示第二行
    }        
    while (*s) 
    {     
        LCD1602_WriteData( *s);     
        s ++;     
    }
}
/*------------------------------------------------
              写入字符函数
------------------------------------------------*/
void LCD1602_PutChar(unsigned char x,unsigned char y,unsigned char Data) 
{     
    if (y == 0) 
    {     
        LCD1602_WriteCom(0x80 + x);     
    }else {     
        LCD1602_WriteCom(0xC0 + x);     
    }        
    LCD1602_WriteData( Data);  
}

void LCD1602_Delay(unsigned int t)
{
    unsigned char c;
    while(t--)
    {
        for(c = 50; c > 0; c--);
    }
}
void delay_ms(unsigned int t)
{
    unsigned char c;
    while(t--)
    {
        for(c = 50; c > 0; c--);
    }
}
 

五、实验现象

演示视频:

【51单片机-B049】【protues仿真】基于51单片机秒表仿真(LCD1602多功能、可保持30条记录)

http://www.dtcms.com/a/412651.html

相关文章:

  • 国企网站建设合同文创产品设计网站推荐
  • 福田网站建设团队温州网站建设方案推广
  • Java 日志框架核心:门面 + 实现选型逻辑、Lombok 误区解析与日志用法
  • 室内设计和网站建设哪个前景好学校网站建设解决方案
  • VCS Verdi看波形的时候,有红色的正三角、倒三角,还有虚线,这是什么意思啊
  • 扬州网站建设制作炫酷wordpress主题
  • 做房产的一般用哪个网站好做公众号的公司是什么公司
  • 网站建设 三合一如何在微信上做小程序
  • 青岛网站建设 新视点10个暴利小生意创业
  • I/O详解
  • 如何将域名指向网站学习前端的网站
  • 企业应如何进行网站建设vi设计的基本要素
  • 鞍山制作网站做网站界面尺寸
  • 英文网站建设 潍坊数据库和网站建设的论文
  • 兰州市城乡建设局网站公布的信息网站开发环境windows7的优点
  • 承德网站网络营销方式选择考虑的因素
  • 萧山建设局网站用手机开发app
  • Wordpress标签与分类seo技术是什么意思
  • 秦皇岛学网站建设湖北工业信息化网站备案
  • 有关电子商务网站建设的 论文赣州建设网站公司
  • 重庆网站建设坤思特自豪地采用wordpress
  • 现在网站如何做优化西安到北京防疫政策
  • 数据库里建设好的网站为什么外网进不去网站网站怎么做成手机版
  • 大连网站建设服务公司wordpress商城主题模板下载
  • 石家庄网络建设seo快速排名源码
  • 不止Docker:探索容器化安装的四种前沿新玩法
  • 网站建设衤金手指谷哥十四wordpress 豆瓣
  • 网站建设公司厦门有哪些网站开发可选择的方案
  • 华清远见25072班C++学习day3
  • 南通做外贸网站网站建设视频格式