蓝桥杯_定时器的综合应用实例

一 工程 代码

 在单片机训练平台上,利用定时器T0,数码管模块和2个独立按键(J5的2,3短接),设计一个秒表,具有清零,暂停,启动功能。

  显示模式:分-秒-0.05秒(即50ms)

  独立按键s4为暂停/启动,独立按键s5清零,按键均为按下有效。

#include "reg52.h"sbit s4 = P3^3;
sbit s5 = p3^2;unsigned char t_m =0;
unsigned char t_s = 0;
unsigned char t_005s = 0;unsigned char code SMG_NoDot[18] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xbf,0x7f};void InitHC138(unsigned char n)
{switch (n){ case 4:HC138_C = 1;HC138_B = 0;HC138_A = 0;//输出Y4break;case 5:HC138_C = 1;HC138_B = 0;HC138_A = 1;//输出Y5break;case 4:HC138_C = 1;HC138_B = 1;HC138_A = 0;//输出Y6break;case 5:HC138_C = 1;HC138_B = 1;HC138_A = 1;//输出Y7break;}
}//锁存器选择void shumaguan(unsigned char value , unsigned char pos)
{InitHC138(6);P0 = 0x01<<pos;InitHC138(7);P0 = value;
}void delay(unsigned char t)
{while(t--);
}
void DisplayTime()
{shumaguan(SMG_NoDot[005s%10],7);dalay(500);shumaguan(SMG_NoDot[005s/10],6);dalay(500);shumaguan(SMG_NoDot[16],5);dalay(500);shumaguan(SMG_NoDot[t_s%10],4);dalay(500);shumaguan(SMG_NoDot[t_s/10],3);dalay(500);shumaguan(SMG_NoDot[16],2);dalay(500);shumaguan(SMG_NoDot[t_m%10],1);dalay(500);shumaguan(SMG_NoDot[t_m/10,0);dalay(500);
}//===============================================
void InitTimer()
{THOD = 0x01;TH0 = (65535-50000)/256;TL0 = (65535-50000)%256;ET0 = 1;EA = 1;TR0 = 1;
}unsigned char count = 0;
unsigned char count1= 0;
void ServiceTimer() interrupt 1
{TH0 = (65535-50000)/256;TL0 = (65535-50000)%256;t_005s++if(t_005s == 20){t_s++;t_005s = 0;if(t_s == 60){t_m++;t_s = 0;}if(t_m==99){t_m = 0;}}
}//===============================================
void delay(unsigned char t)
{while(t--);
}void scankey()
{if s4 ==0;//秒表启动与暂停{delay(100):if(s4 == 0);{TR0 = ~TR0;}
}
if s4 ==0;{delay(100):if(s5 == 0);//秒表清零{t_005s = 0;t_s = 0;t_m = 0;}
}
}void main()
{InitTimer()while(1){DisplayTime();scankey();}
}

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

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

相关文章

Linux进程——信号详解(上)

文章目录 信号入门生活角度的信号技术应用角度的信号用kill -l命令可以察看系统定义的信号列表信号处理常见方式概述 产生信号通过键盘进行信号的产生&#xff0c;ctrlc向前台发送2号信号通过系统调用异常软件条件 信号入门 生活角度的信号 你在网上买了很多件商品&#xff0…

前端面试练习24.3.2-3.3

HTMLCSS部分 一.说一说HTML的语义化 在我看来&#xff0c;它的语义化其实是为了便于机器来看的&#xff0c;当然&#xff0c;程序员在使用语义化标签时也可以使得代码更加易读&#xff0c;对于用户来说&#xff0c;这样有利于构建良好的网页结构&#xff0c;可以在优化用户体…

vue3项目中如何一个vue组件中的一个div里面的图片铺满整个屏幕样式如何设置

在Vue 3项目中&#xff0c;要使一个div内的图片铺满整个屏幕&#xff0c;你需要确保几个关键点&#xff1a;div元素和图片元素的样式设置正确&#xff0c;以及确保它们能够覆盖整个视口&#xff08;viewport&#xff09;。以下是一个简单的步骤和代码示例&#xff0c;帮助你实现…

代码随想录算法训练营第四八天 | 买股票

目录 只买卖一次可买卖多次 LeetCode 121. 买卖股票的最佳时机 LeetCode 122. 买卖股票的最佳时机II 只买卖一次 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某…

浏览器输入URL到页面渲染经历了哪些过程?

浏览器输入URL到页面渲染的过程可以分为以下几个步骤&#xff1a; 解析URL&#xff1a;当用户在浏览器的地址栏输入URL后&#xff0c;浏览器会首先解析这个URL&#xff0c;判断其是否合法。查找缓存&#xff1a;浏览器会查看自己的缓存&#xff0c;判断是否有之前访问过的这个U…

论文阅读--Diffusion Models for Reinforcement Learning: A Survey

一、论文概述 本文主要内容是关于在强化学习中应用扩散模型的综述。文章首先介绍了强化学习面临的挑战&#xff0c;以及扩散模型如何解决这些挑战。接着介绍了扩散模型的基础知识和在强化学习中的应用方法。然后讨论了扩散模型在强化学习中的不同角色&#xff0c;并对其在多个…

【JavaSE】实用类——String、日期等

目录 String类常用方法String类的equals()方法String中equals()源码展示 “”和equals()有什么区别呢&#xff1f; StringBuffer类常用构造方法常用方法代码示例 面试题&#xff1a;String类、StringBuffer类和StringBuilder类的区别&#xff1f;日期类Date类Calendar类代码示例…

leetcode169. 多数元素的四种解法

leetcode169. 多数元素 题目描述 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 1.哈希 class Solution { public:int majority…

【vue3】命令式组件封装,message封装示例;(函数式组件?)

仅做代码示例&#xff1b;当然改进的地方还是不少的&#xff0c;仅作为该类组件封装方式的初步启发&#xff1b; 理想大成肯定是想要像 饿了么 这些组件库一样。 有的人叫这函数式组件&#xff0c;有的人叫这命令式组件&#xff0c;我个人还是偏向于命令式组件的称呼。因为以vu…

Django配置静态文件

Django配置静态文件 目录 Django配置静态文件静态文件配置调用方法 一般我们将html文件都放在默认templates目录下 静态文件放在static目录下 static目录大致分为 js文件夹css文件夹img文件夹plugins文件夹 在浏览器输入url能够看到对应的静态资源&#xff0c;如果看不到说明…

向爬虫而生---Redis 探究篇4<Redis主从复制(2)>

前言: 继续上一篇向爬虫而生---Redis 探究篇4&#xff1c;Redis主从复制(1)&#xff1e;-CSDN博客 正文: 读写操作和一致性保证 主节点和从节点对读写操作的不同处理方式 在Redis主从复制中&#xff0c;主节点和从节点对读写操作有不同的处理方式&#xff1a; 主节点&…

vim文本编辑器 的命令及快捷键

vim文本编辑器常用的命令及快捷键 vim文本编辑器功能命令 命令功能i从光标当前位置进入插入模式a从光标下一位进入插入模式ESC键退出编辑模式dd删除2dd删除两行u撤销上一步操作wq保存并退出0光标移动至文本开头G光标移至文本末尾$光标移动至行尾^光标移动至行首q或q!退出不保…

支持向量机算法(带你了解原理 实践)

引言 在机器学习和数据科学中&#xff0c;分类问题是一种常见的任务。支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一种广泛使用的分类算法&#xff0c;因其出色的性能和高效的计算效率而受到广泛关注。本文将深入探讨支持向量机算法的原理、特点、应用&…

13. Springboot集成Protobuf

目录 1、前言 2、Protobuf简介 2.1、核心思想 2.2、Protobuf是如何工作的&#xff1f; 2.3、如何使用 Protoc 生成代码&#xff1f; 3、Springboot集成 3.1、引入依赖 3.2、定义Proto文件 3.3、Protobuf生成Java代码 3.4、配置Protobuf的序列化和反序列化 3.5、定义…

【中英对照】【自译】【精华】麻省理工学院MIT技术双月刊(Bimonthly MIT Technology Review)2024年3/4月刊内容概览

一、说明 Notation 仅供学习、参考&#xff0c;请勿用于商业行为。 二、本期封面、封底 Covers 本期杂志购于新加坡樟宜机场Changi Airport Singapore&#xff0c;售价为20.50新元。 本期仍然关注伦敦的AI大会。&#xff08;笔者十分想去&#xff0c;在伦敦和MIT校园均设有会…

IDEA的安装教程

1、下载软件安装包 官网下载&#xff1a;https://www.jetbrains.com/idea/ 2、开始安装IDEA软件 解压安装包&#xff0c;找到对应的idea可执行文件&#xff0c;右键选择以管理员身份运行&#xff0c;执行安装操作 3、运行之后&#xff0c;点击NEXT&#xff0c;进入下一步 4、…

手动、半自动、全自动探针台有何区别

手动探针台、半自动探针台和全自动探针台是三种不同类型的探针台&#xff0c;它们在使用类型、功能、操作方式和价格等方面都有所不同。 手动探针台是一种手动控制的探针台&#xff0c;通常用于没有很多待测器件需要测量或数据需要收集的情况下。该类探针台的优点是灵活、可变…

python difflib --- 计算差异的辅助工具

此模块提供用于比较序列的类和函数。 例如&#xff0c;它可被用于比较文件&#xff0c;并可产生多种格式的不同文件差异信息&#xff0c;包括 HTML 和上下文以及统一的 diff 数据。 有关比较目录和文件&#xff0c;另请参阅 filecmp 模块。 class difflib.SequenceMatcher 这…

WebAssembly 是啥东西

WebAssembly&#xff08;简称Wasm&#xff09;是一种为网络浏览器设计的二进制指令格式&#xff0c;它旨在成为一个高效的编程语言的编译目标&#xff0c;从而允许在网络上部署客户端和服务器应用程序。WebAssembly的主要设计目标是实现高性能应用&#xff0c;同时维持网络的安…

GraphPad Prism 10: 你的数据,我们的魔法 mac/win版

GraphPad Prism 10是GraphPad Software公司推出的一款功能强大的数据分析和可视化软件。它集数据整理、统计分析、图表制作和报告生成于一体&#xff0c;为科研工作者、学者和数据分析师提供了一个高效、便捷的工作平台。 GraphPad Prism 10软件获取 Prism 10拥有丰富的图表类…