单片机课设 - 液晶显示屏显示时间(实验板实现)

news2024/11/29 0:38:22

目录

  • 前言:
  • 本代码涉及的主要知识:
  • 代码(实验板实现代码):

前言:


设计本代码的主要目的是为了完成期末作业,即在液晶显示屏上显示、时间、日期、温度,以及用按键控制时间、温度的显示。总的来说就是对前面学习计数的糅合,本代码实现的是显示时间,并能在实验板上成功显示。


本代码涉及的主要知识:


1.液晶显示屏模块应用

主要是学会如何在液晶显示屏上显示内容

2.T1中断函数的使用

主要通过T1中断函数记录时间,即通过每次的溢出参产生中断来记录秒的变化。

3.通过数组记录时、分、秒,再通过%/来取值显示


代码(实验板实现代码):

#include<reg52.h>

unsigned char code table[]="0123456789:-";
sbit RS=P2^6;
sbit RW=P2^5;
sbit EN=P2^7;
unsigned char count = 0; 
unsigned char time[] = {23, 58, 50};//初始时间

void delay(unsigned int x){//延时函数 
     unsigned int i;
     for (i=x; i>0;i--);
}

void write_com (unsigned char com){//写指令函数 
     P0= com;
     RS=0;RW=0;EN=1;
     delay(200);
     EN=0;
}
void write_date(unsigned char dat) {//写数据函数 
     P0 = dat;
     RS=1;RW=0;EN=1;
     delay (200);
     EN=0;
}

void init(){//初始化 
     write_com(0x01);
     write_com(0x38);
     write_com(0x0f);
     write_com(0x06);
}

timer1() interrupt 3{//T1中断函数 
     TH1 = 0x3C;
     TL1 = 0xB0;
     count = count + 1;
     if(count == 20){
        count = 0; 
        time[2] = time[2] + 1;
        if(time[2] >= 60){
          time[2] = 0;
          time[1] = time[1] + 1;
          if(time[1] >= 60){
            time[1] = 0;
            time[0] = time[0] + 1;
            if(time[0] >= 24){
            time[0] = 0;
            }
         }
       } 
    }
}

void dispaly(){//显示时间函数 
   init();
   write_com(0x80);
   write_date(table[time[0] / 10]);
   delay(3000);
   write_date(table[time[0] % 10]);
   delay(3000);
   write_date(table[10]);
   delay(3000);
   write_date(table[time[1] / 10]);
   delay(3000);
   write_date(table[time[1] % 10]);
   delay(3000);
   write_date(table[10]);
   delay(3000);
   write_date(table[time[2] / 10]);
   delay(3000);
   write_date(table[time[2] % 10]);
   delay(3000);
   write_com(0x02);	
}

void intpt_begin(){//开中断 
  TMOD = 0x10;
  TH1 = 0x3C;
  TL1 = 0xB0;
  EA = 1;
  ET1 = 1;
  TR1 = 1;	
}

void main()
{
 intpt_begin();
  while(1){
   dispaly();
 }
}

在这里插入图片描述
后续的显示日期和显示时间的原理大致相同,添加按键也无非多用几个引脚,难点主要是温度显示,后续有时间学习一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode50. Pow(x, n)

Every day a Leetcode 题目来源&#xff1a;50. Pow(x, n) 解法1&#xff1a;递归 代码&#xff1a; /** lc appleetcode.cn id50 langcpp** [50] Pow(x, n)*/// lc codestart class Solution { public:double myPow(double x, int n){if (n 0)return 1.0;if (n < 0)re…

华为OD机试真题 Java 实现【获取最大软件版本号】【2023Q1 100分】

一、题目描述 Maven版本号定义,<主版本>.<次版本><增量版本>-<里程碑版本> 举例3.1.4-beta 其中,主版本和次版本都是必须的,主版本,次版本,增量版本由多位数字组成,可能包含前导零,里程碑版本由字符串组成。 <主版本>.<次版本>增…

纯代码的3D玫瑰花,有个这个还怕女朋友不开心?

先上效果图&#xff1a; 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>import url("https://fonts.googleapis.com/css2?familyNico…

Anicube NFT 作品集

Anicube 是韩国娱乐公司 Cube Entertainment 和区块链公司 Animoca Brands 的合资公司 Anicube Entertainment 推出的 IP 空间。其主题是音乐元宇宙&#xff0c;各种基于 K-pop 的表演和推广活动将在主舞台和音乐家星球上举行。 此外&#xff0c;这个系列的购买者还将获得特别奖…

web自动化测试:selenium怎么实现关键字驱动

要做 ui 自动化测试&#xff0c;使用关键字驱动可以说是必须会的一种测试方式&#xff0c;它既可以在纯代码的自动化程序中运行&#xff0c;也可以在测试平台中使用。 使用纯代码方式时&#xff0c;自动化工程师先写好一个通用的程序&#xff0c;其他手工测试人员只需要把执行…

gitlab的CICD

大体步骤4步 1.购买阿里云服务器centos 7.6 2.在服务器上安装gitlab-ce 3.在服务器上安装gitlab-runner 4.在gitlab创建一个项目&#xff0c;拉到本地修改后再提交&#xff0c;触发自动部署 视频教程 看不懂文章的&#xff0c;可以看这个视频&#xff0c;超详细gitlab-cicd-…

国产信创适配-东方通TongWeb安装,使用记录

之前项目使用的tomcat容器,需适配东方通 tongweb容器,记录下在国产麒麟ky10.aarch64 服务器下安装东方通容器的过程(对于麒麟内核服务器操作起来和centos7大致一样) 东方通容器是商业的,没有免费版本,企业级安装是公司和东方通联系给了lisence 经过实际测试发现,东方通提…

深度学习技巧应用15-自动机器学习Autogluon的应用技巧

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用15-自动机器学习Autogluon的应用技巧,Autogluon是一个开源的自动化机器学习工具包,Autogluon的开发目标是为机器学习从业者提供一个高效、易用、可扩展的自动化机器学习工具,让机器学习变得更加简单快捷。本文采用儿…

绘制混淆矩阵(MatLab/Python)

本文主要简单介绍如何绘制混淆矩阵 首先混淆矩阵是机器学习中总结分类模型预测结果的情形分析表&#xff0c;以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。 其实混淆矩阵就是用来判断我们的算法的分类准确度的一个可视化矩阵 1…

得物AI平台-KubeAI推理训练引擎设计和实践

1.KubeAI介绍 KubeAI是得物AI平台&#xff0c;是我们在容器化过程中&#xff0c;逐步收集和挖掘公司各业务域在AI模型研究和生产迭代过程中的需求&#xff0c;逐步建设而成的一个云原生AI平台。KubeAI以模型为主线提供了从模型开发&#xff0c;到模型训练&#xff0c;再到推理…

本科毕业生10大高薪专业出炉,IT行业赢麻了

据环球网报道&#xff0c;现在大学毕业生转行率高达80%&#xff01; 非常后悔&#xff01;有不少粉丝向播妞倾诉&#xff0c;曾经以为读了大学就能找到体面的工作&#xff0c;实际上是掉入了天坑专业&#xff0c;成了现实版孔乙己。 大学生找不到对口好工作&#xff0c;似乎已成…

golang web学习随便记6-模板引擎

以下代码是几乎最简单的一个模板&#xff0c;{{ . }} 表示执行模板时将嵌入的数据 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><title>Go Web 编程</title> <…

openwrt修改web网页默认端口

使用SSH登录openwrt后台&#xff1b; openwrt 中默认使用的web服务器是uhttpd&#xff0c; 进入配置文件路径&#xff1a; cd /etc/config/ 使用vim编辑器修改uhttpd文件 vi uhttpd 修改以上标红部分后面的端口 vim编辑器打开uhttpd 文件 修改完成后点键盘ESC退出编辑状态&a…

《计算机网络—自顶向下方法》 Wireshark实验(四):TCP 协议分析

在因特网协议族&#xff08;Internet Protocol Suite&#xff09;中&#xff0c;TCP 层是位于 IP 层之上&#xff0c;应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接&#xff0c;但是 IP 层不提供这样的流机制&#xff0c;而是提供不可靠的包交换。…

docker could not find driver

先介绍环境 使用的是dockerdocker-compose部署了nginxphpmysqlredis框架用的是laravel 再详细介绍每个服务/框架的版本&#xff1a; nginx1.24php8.1-fpmmysql8.0.25redis7.0.8laravel9.33.0 本篇可不用理会 redis 主要是讲解 php 为什么会出现 "could not find drive…

Datacom-HCIE 01(10月26日更新)--含解析

单选题 1.[试题编号&#xff1a;189684] &#xff08;单选题&#xff09;防火墙双机热备场景下&#xff0c;主备设备之间通过哪种协议实现会话表备份&#xff1f; 2.[试题编号&#xff1a;189682] &#xff08;单选题&#xff09;中间人攻击或IP/MAC Sp fing攻击都会导致信息…

Docker笔记6 | 关于仓库的一些基本知识梳理

6 | 关于仓库的一些基本知识梳理 1 Docker Hub1.1 简介和登陆1.2 拉取镜像1.3 推送镜像1.4 自动构建 2 私有仓库2.1 简介2.2 安装docker-registry2.3 上传镜像2.4 查看镜像2.5 下载镜像 1 Docker Hub 1.1 简介和登陆 Docker Hub是Docker官方维护的一个公共仓库&#xff1b;注…

使用intellij Idea 创建spring boot项目

1、问题&#xff1a;使用Spring Initializr创建的工程&#xff0c;没有src目录&#xff0c;原因是创建的时候&#xff0c;默认选择的地址是https://start.spring.io 由于默认的spring官网的地址在国内比较难访问&#xff0c;当访问不了的时候可以使用阿里云的地址&#xff1a;…

银行零售业务转型方法论:打造数字化的“有机体”

传统的业务增长进度叫做连续性创新&#xff0c;它是在一条曲线上渐进性的改良和发展&#xff0c;但这种发展终有极限&#xff0c;如果不能及时开辟第二增长曲线&#xff0c;就很容易被时代所抛弃。过去十年&#xff0c;以互联网为代表的数字化转型的先行者&#xff0c;不断冲击…

网页三剑客之 CSS

css 在这里不会介绍太多&#xff0c;我们主要重点介绍两个&#xff1a;选择器和盒子模型就够用了。这里看个乐就好了&#xff0c;没有那么多重点&#xff0c;只是简单的认识一下下CSS。 CSS 是什么 CSS 是层叠样式表 (Cascading Style Sheets)的缩写它存在的意义就是&#xf…