【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.xdnf.cn/news/1410523.html

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

相关文章

微调Mistral 7B以实现命名实体识别 (NER)

文章来源&#xff1a;fine-tuning-mistral-7b-for-named-entity-recognition-ner 2024 年 4 月 19 日 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;命名实体识别&#xff08;NER&#xff09;被认为是一项关键任务&#xff0c;应用范围广泛&#xff0c;包括信息…

tensorflow报错

参考 TensorFlow binary is optimized to use available CPU instructions in performance-critical operations._this tensorflow binary is optimized to use availab-CSDN博客 解决Python中cuBLAS插件无法注册问题_unable to register cudnn factory: attempting to re-CS…

SQL数据库

一.什么是数据库 数据库&#xff1a;存储数据的仓库&#xff0c;数据是有组织的进行存储。&#xff08;database 简称DB&#xff09; 数据库管理系统&#xff1a;管理数据库的大型软禁&#xff08;DataBase Management System 简称DBMS&#xff09; SQL&#xff1a;操作关系…

【MySQL 5.7安装时候 出现2503报错,解决方案】

MySQL5.7 安装遇 2503问题如何解决 1.能正常安装就点这里2.出现2503问题就看这2.1先看问题2.1.1在官网下载好安装包后&#xff0c;首先先确认安装包是否完整&#xff0c;排除安装包损坏的问题2.1.2 安装时候出现这个2503问题 2.2上解决方案2.2.1 打开任务管理器2.2.2 解决 1.能…

「C/C++ 01」volatile关键字 和 修改const修饰的变量

目录 一、修改const修饰的局部变量 二、无法修改const修饰的全局变量 三、volatile关键字 面试题】 一、修改const修饰的局部变量 可以通过指针和强转来修改const修饰的局部变量。 #include <iostream> using namespace std;int main(void) {const int a 1;int* pa (in…

hive表基本语法

hive表基本语法 青少年是一个美好而又是一去不可再得的时期 是将来一切光明和幸福的开端 目录 hive表基本语法 1.ROW FORMAT用法 2.LOCATION用法 3.EXTERNAL用法 &#xff08;外部表&#xff09; 4.STORED AS 用法&#xff1a;设置数据存储格式 5.TBLPROPERTIES 用法 6.P…

.位运算.

本题涉及到计算机组成与原理的相关知识 找了一篇相当不错的讲解&#xff0c;大家可以借鉴&#xff1a;位运算&#xff1a;按位与、按位或、按位异或、按位左移、按位右移-CSDN博客 给定一个长度为 n&#x1d45b; 的数列&#xff0c;请你求出数列中每个数的二进制表示中 11 的…

设计模式: 工厂模式

工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一&#xff0c;这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 工厂模式属于创建型…

网络架构建模:一个云案例研究-文章翻译

网络架构建模:一个云案例研究 摘要 互联网支持广泛服务的能力取决于网络架构以及未来网络所需的理论和实践创新。本文中的网络体系结构指的是计算机网络系统的结构及其物理组件、配置和通信协议之间的交互。多年来,人们对网络架构进行了各种各样的描述,其中有大量的表面图…

ICode国际青少年编程竞赛- Python-1级训练场-基本操作

ICode国际青少年编程竞赛- Python-1级训练场-基本操作 1、 Dev.step(3)2、 Dev.step(1)3、 Dev.step(7)4、 Dev.step(-1)5、 Dev.step(-5)6、 Dev.step(3) Dev.step(-8)7、 Dev.turnRight() Dev.step(1)8、 Dev.turnLeft() Dev.step(1)9、 Dev.step(4) Dev.tur…

Linux下top命令指标说明

目录 Linux下top命令指标说明1. 概览2. CPU利用率3. 内存利用率4. 进程信息 Linux下top命令指标说明 在Linux系统中&#xff0c;top 命令是一个用于实时监视系统运行状态的工具。通过 top 命令&#xff0c;我们可以了解系统的负载情况、CPU利用率、内存使用情况以及各个进程的…

免费开源语音克隆-GPT-SoVITS-WebUI只需 5 秒的声音样本

语音克隆-GPT-SoVITS-WebUI 强大的少样本语音转换与语音合成Web用户界面。 功能&#xff1a; 零样本文本到语音&#xff08;TTS&#xff09;&#xff1a; 输入 5 秒的声音样本&#xff0c;即刻体验文本到语音转换。 少样本 TTS&#xff1a; 仅需 1 分钟的训练数据即可微调模型…

Matlab|二阶锥松弛在配电网最优潮流计算中的应用

目录 一、主要内容 二、部分代码 三、程序代码 四、下载链接 一、主要内容 最优潮流计算是电网规划、优化运行的重要基础。首先建立了配电网全天有功损耗最小化的最优潮流计算模型&#xff1b;其次结合辐射型配电网潮流特点建立支路潮流约束&#xff0c;并考虑配电网中的可…

夸克网盘批量转存分享查询软件

夸克网盘批量转存分享软件&#xff0c;未解决批量转存困难问题以及批量分享困难问题&#xff0c;故研发此软件&#xff0c;无任何广告。 支持功能 夸克文件目录查询 自定义分页页码&#xff0c;分页数量 批量转存夸克文件 批量分享夸克文件 自定义导入夸克链接 使用教程…

四川景源畅信:抖音小店怎么运营?

在信息爆炸的今天&#xff0c;抖音小店凭借其便捷的操作和庞大的用户基础&#xff0c;成为了众多创业者和品牌商的新宠。如何运营好一个抖音小店&#xff0c;成为了许多商家亟待解决的问题。接下来&#xff0c;我们将从四个不同的方面&#xff0c;深入探讨抖音小店的运营之道。…

Android14之解决报错:libncurses.so.5与libtinfo.so.5缺少问题(二百零九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

linux实验小结

题目&#xff1a; 添加一个用户 loutest&#xff0c;使用 sudo 创建文件 /opt/forloutest&#xff0c;设置成用户 loutest 可以读写。截图 并把操作过程写入实验报告。 提示:如何创建一个文件呢?可以考虑 touch 命令&#xff0c;执 行 sudo touch /opt/forloutest 这个命令可…

Unreal 编辑器工具 批量重命名资源

右键 - Editor Utilities - Editor Utility Blueprint&#xff0c;基类选择 Asset Action Utility 在类默认值内&#xff0c;可以添加筛选器&#xff0c;筛选指定的类型 然后新建一个函数&#xff0c;加上4个输入&#xff1a;ReplaceFrom&#xff0c;ReplaceTo&#xff0c;Add…

Android手写自己的路由SDK

实现自己的路由框架 ​ 在较大型的Android app中常会用到组件化技术&#xff0c;针对不同的业务/基础功能对模块进行划分&#xff0c;从上到下为壳工程、业务模块、基础模块。其中业务模块依赖基础模块&#xff0c;壳工程依赖业务模块。同级的横向模块&#xff08;比如多个业务…

【数据库主从架构】

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