【51单片机普中板子74LS138+245+573可调时钟整点蜂鸣中级应用】2022-12-7

缘由用51单片机普中开发板实现数字时钟-嵌入式-CSDN问答

#include "reg52.h"
//定义按键
sbit key0=P3^0;
sbit key1=P3^1;
sbit key2=P3^2;
sbit key3=P3^3;
//定义数码管位驱运位
sbit L1=P2^2;
sbit L2=P2^3;
sbit L3=P2^4;
sbit beep=P2^5;
unsigned char code ShuMaGuan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F
,0x6F,0x00,0X80,64};//0~9隐.小数点-号
unsigned char Js=0, Miao=0, Fen=0, Shi=12;//中断计时 秒 分 时
void ShuMaXianShi(unsigned char s,unsigned char w,unsigned char d)
{unsigned char YanShi=0;if(w==2){L1=0;L2=L3=1;}//011else if(w==3){L2=0;L1=L3=1;}//101else if(w==4){L1=L2=0;L3=1;}//001else if(w==5){L1=L2=1;L3=0;}//110else if(w==6){L1=L3=0;L2=1;}//010else if(w==7){L1=1;L2=L3=0;}//100else if(w==8){L1=L2=L3=0;}//000else if(w==1){L1=L2=L3=1;}//111else {L1=L2=L3=0;}P0=ShuMaGuan[s]|ShuMaGuan[d];//d显示小数点11,10关闭while(++YanShi);P0=ShuMaGuan[10];L1=L2=L3=0;
}
void JiShi(/*时间计算*/)
{if(Js>=20){Js=0;if(++Miao>=60){Miao=0;++Fen;}if(Fen>=60){Fen=0;++Shi;}if(Shi>=24)Shi=0;}
}
void XianShi()
{ShuMaXianShi(Shi/10,1,10);ShuMaXianShi(Shi%10,2,10);ShuMaXianShi(12,3,10);ShuMaXianShi(Fen/10,4,10);ShuMaXianShi(Fen%10,5,10);ShuMaXianShi(12,6,10);ShuMaXianShi(Miao/10,7,10);ShuMaXianShi(Miao%10,8,10);	
}
void ZhongDuanSheZhi()
{TH0+=0X4c;/*定时器赋初值,定时50ms触发中断,自动补偿方式*/TL0+=0X00; TMOD=0X01;TR0=1; ET0=1; //开启定时器EA=1; //全局中断开关
}
void ZhongDuan() interrupt 1
{++Js;TH0+=0X4c;TL0+=0X00;        
}
void main()
{unsigned char H=0,L=0,Ys=0;ZhongDuanSheZhi();while(1){if(key0==0&&++Ys==0){Shi=(Shi?--Shi:23);}if(key1==0&&++Ys==0){Shi=(Shi>23?1:++Shi);}if(key2==0&&++Ys==0){Fen=(Fen?--Fen:59);}if(key3==0&&++Ys==0){Fen=(Fen>59?1:++Fen);}if(Fen==0&&Miao<9||Fen==30&&Miao<5)beep=~beep;XianShi();JiShi();}
}
#include "reg52.h"
//定义按键
sbit key0=P3^0;
sbit key1=P3^1;
sbit key2=P3^2;
sbit key3=P3^3;
//定义数码管位驱运位
sbit L1=P2^2;
sbit L2=P2^3;
sbit L3=P2^4;
sbit beep=P2^5;
unsigned char code ShuMaGuan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0X80,64};//0~9隐.小数点-号
unsigned char Js=0, Miao=0, Fen=0, Shi=12;//中断计时 秒 分 时
bit smk=0,bek=0;
void ShuMaXianShi(unsigned char s,unsigned char w,unsigned char d)
{unsigned char YanShi=0;if(smk){P0=L1=L2=L3=0;if(w==2){L1=0;L2=L3=1;}//011else if(w==3){L2=0;L1=L3=1;}//101else if(w==4){L1=L2=0;L3=1;}//001else if(w==5){L1=L2=1;L3=0;}//110else if(w==6){L1=L3=0;L2=1;}//010else if(w==7){L1=1;L2=L3=0;}//100else if(w==8){L1=L2=L3=0;}//000else if(w==1){L1=L2=L3=1;}//111else {L1=L2=L3=0;}P0=ShuMaGuan[s]|ShuMaGuan[d];//d显示小数点11,10关闭if(++YanShi>7)YanShi=smk=0;}
}
void XianShi()
{ShuMaXianShi(Shi/10,1,10);ShuMaXianShi(Shi%10,2,10);ShuMaXianShi(12,3,10);ShuMaXianShi(Fen/10,4,10);ShuMaXianShi(Fen%10,5,10);ShuMaXianShi(12,6,10);ShuMaXianShi(Miao/10,7,10);ShuMaXianShi(Miao%10,8,10);	
}
void JiShi(/*时间计算*/)
{//if(Js%20==0)smk=1;if(Js==20){Js=0;if(++Miao==60){Miao=0;++Fen;}if(Fen==60){Fen=0;++Shi;}if(Shi==24)Shi=0;smk=1;bek=!bek;}XianShi();
}
void ZhongDuanSheZhi()
{TH0+=0X4c;/*定时器赋初值,定时50ms触发中断,自动补偿方式*/TL0+=0X00; TMOD=0X01;TR0=1; ET0=1; //开启定时器EA=1; //全局中断开关
}
void ZhongDuan() interrupt 1
{++Js;TH0+=0X4c;TL0+=0X00;        
}
void main()
{unsigned char Ys=0;ZhongDuanSheZhi();while(1){if(key0==0&&++Ys==0){Shi=(Shi?--Shi:23);while(key0==0)JiShi();}if(key1==0&&++Ys==0){Shi=(Shi>23?0:++Shi);while(key1==0)JiShi();}if(key2==0&&++Ys==0){Fen=(Fen?--Fen:59);while(key2==0)JiShi();}if(key3==0&&++Ys==0){Fen=(Fen>59?0:++Fen);while(key3==0)JiShi();}if(bek&&(Fen==0&&Miao<9||Fen==30&&Miao<5))beep=~beep;else beep=0;JiShi();}
}

之上代码蜂鸣器周期约20MS之下蜂鸣器周期约0.5MS。

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

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

相关文章

一周零碎时间练习微服务(nacos,rq,springcloud,es等)内容

目录 1 总览1.1 技术架构1.2 其他1.2.1 数据库1.2.2 后端部分1.2.2.1 复习feign1.2.2.2 复习下网关网关的核心功能特性&#xff1a;网关路由的流程断言工厂过滤器工厂全局过滤器 过滤器执行顺序解决跨域问题 1.2.2.3 es部分复习 1.2.3 前端部分 2 day1 配置网关2.1 任务2.2 网关…

ThreeJS:项目搭建

介绍如何基于Vite、Vue、React构建ThreeJS项目。 Vite项目 1. 初始化项目&#xff0c;命令&#xff1a;npm init vitelatest&#xff0c; 2. 安装依赖&#xff0c;命令&#xff1a;npm install&#xff0c; 3. 启动项目&#xff0c;命令&#xff1a;npm run dev。 4. 样式初始…

【LeetCode刷题记录】简单篇-94-二叉树的中序遍历

【题目描述】 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 【测试用例】 示例1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例2&#xff1a; 输入&#xff1a;root [ ] 输出&#xff1a;[ ] 示例3&#xff1a; 输入…

ThreeJS:本地部署官网文档与案例

部署方式 部署之前请确保已经配置好node.js环境。 1. 下载ThreeJS源码 ThreeJS的GitHub地址&#xff1a;GitHub - mrdoob/three.js: JavaScript 3D Library.&#xff0c;可以简单查看ThreeJS当前版本&#xff1a;r164&#xff0c; 我们可以选择对应的版本&#xff08;此处为r1…

win11 Terminal 部分窗口美化

需求及分析&#xff1a;因为在 cmd、anaconda prompt 窗口中输入命令较多&#xff0c;而命令输入行和输出结果都是同一个颜色&#xff0c;不易阅读&#xff0c;故将需求定性为「美化窗口」。 美化结束后&#xff0c;我在想是否能不安装任何软件&#xff0c;简单地通过调整主题颜…

备考2024年上海初中生古诗文大会:单选题真题示例和独家解析

现在距离2024年初中生古诗文大会还有四个多月时间&#xff0c;备考要趁早&#xff0c;因为知识点还是相对比较多的。这些知识点对于初中语文的学习也是很有帮助的。 我们继续来看10道历年真题&#xff0c;这些真题来自于过去历年真题的去重、汇总&#xff0c;每道题都有参考答…

2-手工sql注入(进阶篇) sqlilabs靶场1-4题

1. 阅读&#xff0c;学习本章前&#xff0c;可以先去看看基础篇&#xff1a;1-手工sql注入(基础篇)-CSDN博客 2. 本章通过对sqlilabs靶场的实战&#xff0c;关于sqlilabs靶场的搭建&#xff1a;Linux搭建靶场-CSDN博客 3. 本章会使用到sqlmap&#xff0c;关于sqlmap的命令&…

2024五一数学建模C题煤矿深部开采冲击地压危险预测原创论文分享

大家好&#xff0c;从昨天肝到现在&#xff0c;终于完成了2024五一数学建模竞赛C题的完整论文啦。 实在精力有限&#xff0c;具体的讲解大家可以去讲解视频&#xff1a; 2024五一数学建模C题完整原创论文讲解&#xff0c;手把手保姆级教学&#xff01;_哔哩哔哩_bilibili 202…

003 redis分布式锁 jedis分布式锁 Redisson分布式锁 分段锁

文章目录 Redis分布式锁原理1.使用set的命令时&#xff0c;同时设置过期时间2.使用lua脚本&#xff0c;将加锁的命令放在lua脚本中原子性的执行 Jedis分布式锁实现pom.xmlRedisCommandLock.javaRedisCommandLockTest.java 锁过期问题1乐观锁方式&#xff0c;增加版本号(增加版本…

Python面试十问

一、深浅拷贝的区别&#xff1f; 浅拷⻉&#xff1a; 拷⻉的是对象的引⽤&#xff0c;如果原对象改变&#xff0c;相应的拷⻉对象也会发⽣改变。 深拷⻉&#xff1a; 拷⻉对象中的每个元素&#xff0c;拷⻉对象和原有对象不在有关系&#xff0c;两个是独⽴的对象。 浅拷⻉(c…

探索高级聚类技术:使用LLM进行客户细分

在数据科学领域&#xff0c;客户细分是理解和分析客户群体的重要步骤。最近&#xff0c;我发现了一个名为“Clustering with LLM”的GitHub仓库&#xff0c;它由Damian Gil Gonzalez创建&#xff0c;专门针对这一领域提供了一些先进的聚类技术。在这篇文章中&#xff0c;我将概…

【数据库主从架构】

【数据库主从架构】 1. 什么是数据库的主从架构1.1 主从复制1.1.1 MySQL的主从主从复制技术三级目录 1. 什么是数据库的主从架构 随着公司业务线的增多&#xff0c;各种数据都在迅速增加&#xff0c;并且数据的读取流量也大大增加&#xff0c;就面临着数据安全问题&#xff0c;…

06.Git远程仓库

Git远程仓库 #仓库种类&#xff0c;举例说明 github gitlab gitee #以这个仓库为例子操作登录码云 https://gitee.com/projects/new 创建仓库 选择ssh方式 需要配置ssh公钥 在系统上获取公钥输入命令&#xff1a;ssh-keygen 查看文件&#xff0c;复制公钥信息内…

kubernetes中使用ELK进行日志收集

目录 一、需要收集哪些日志 1、kubernetes集群的系统组件日志 2、应用日志 二、日志收集方案ELK 1、收集日志&#xff1a;Logstash 2、存储日志&#xff1a;Elasticsearch 3、展示日志&#xff1a;Kibana 三、安装elk 1、下载安装包 2、创建用户并切换到新用户 3、上…

2024-05-02 商业分析-杭州小万科技-商业模式分析

摘要: 对杭州小万科技的商业模式进行分析,以对其做出客观的评估。 杭州小万科技的资料: 杭州小万科技有限公司 - 企知道 (qizhidao.com) 杭州小万科技有限公司网站备案查询 - 天眼查 (tianyancha.com) 杭州小万科技有限公司 - 爱企查 (baidu.com) ​ 2023年年报:

SMB 协议详解之-TreeID原理和SMB数据包分析技巧

在前面分析SMB协议数据包的过程中,这里,可以看到在SMB协议中存在很多的ID,即Unique Identifiers。那么这些ID表示什么含义?在实际分析数据包的过程中如何根据这些ID进行过滤分析?本文将介绍SMB/SMB2中的tree id ,并介绍如何通过tree id 快速的分析SMB数据包中各种命令交互…

使用jdbc方式操作ClickHouse

1、创建测试表&#xff0c;和插入测试数据 create table t_order01(id UInt32,sku_id String,total_amount Decimal(16,2),create_time Datetime ) engine MergeTreepartition by toYYYYMMDD(create_time)primary key (id)order by (id,sku_id);insert into t_order01 values …

Agent AI智能体:如何借助机器学习引领科技新潮流

文章目录 &#x1f4d1;前言一、Agent AI智能体的基本概念二、Agent AI智能体的技术进步2.1 机器学习技术2.2 自适应技术2.3 分布式计算与云计算 三、Agent AI智能体的知识积累3.1 知识图谱3.2 迁移学习 四、Agent AI智能体的挑战与机遇4.1 挑战4.2 机遇 小结 &#x1f4d1;前言…

【网站项目】高校推免报名

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

Java-异常处理-定义三角形类Triangle和异常三角形IllegalTriangleException类 (1/2)

任意一个三角形&#xff0c;其任意两边之和大于第三边。当三角形的三条边不满足前述条件时&#xff0c;就表示发生了异常&#xff0c;将这种异常情况定义为IllegalTriangleException类。 自定义异常类IllegalTriangleException&#xff1a; 当三角形的三条边不满足条件&#x…