2021-10-14 51蛋骗鸡1秒变动0-9按键控制并蜂鸣器响

2024-02-03 17:12

本文主要是介绍2021-10-14 51蛋骗鸡1秒变动0-9按键控制并蜂鸣器响,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

缘由单片机程序设计与应用-Python-CSDN问答

#include "REG52.h"
sbit K1 = P3^0;
sbit K2 = P3^1;
sbit K3 = P3^2;
sbit K4 = P3^3;
sbit bp=P3^4;
bit k=1,wk=0;
unsigned char code SmZiFu[]={63,6,91,79,102,109,125,7,127,111,128,255,64};//0-9.消隐-
unsigned char Js=0,miao=0,fen=0,shi=0,y=6,t=23,ls=0;//中断计时
unsigned int n=2021;
void smxs(unsigned char mz,unsigned char w,unsigned char d)
{unsigned char Xd=0;P1=~255;P1=~(255-(d==1?SmZiFu[mz]:(SmZiFu[mz]|0x80)));//小数点闪烁P2=~w;while(++Xd);
}
void sm(unsigned int n, unsigned char y, unsigned char t, unsigned char shi, unsigned char fen, unsigned char miao)
{smxs(k?miao%10:t%10,8,1);smxs(k?miao/10%10:t/10%10,4,1);smxs(k?255:y%10,2,0);smxs(k?fen%10:y/10%10,1,1);smxs(k?fen/10%10:n%10,128,k?1:0);smxs(k?255:n/10%10,64,k?0:1);smxs(k?shi%10:n/100%10,32,1);smxs(k?shi/10%10:n/1000,16,1);
}
unsigned char nyt(unsigned int n, unsigned char y)
{return (y == 2 ? (((!(n % 4) && n % 100) || !(n % 400)) ? 29 : 28) :(((y <= 7 && y % 2) || (y > 7 && !(y % 2))) ? 31 : 30));
}
void jw(unsigned int *n, unsigned char *y, unsigned char *t, unsigned char *shi, unsigned char *fen, unsigned char *miao)
{/*时间日期进位*/if(*miao>=60){*miao=0;++*fen;}if(*fen>=60){*fen=0;++*shi;}if(*shi>=24){*shi=0;++*t;}if(*t>nyt(*n,*y)){++*y;*t=1;}if(*y>12){++*n;*y=1;}
}
void JiShi(/*时间计算*/)
{if(Js>=20){Js=0;++miao;jw(&n, &y, &t, &shi, &fen, &miao);if(miao%5==0)k=~k;ls/=2;}
}
void wbzd(/*外部中断调用函数*/)
{unsigned char cs=10;unsigned int ys=0;wk=0;while(cs){if(++ys==0)--cs;if(cs%2==0)P1=1;else P1=128;}
}
void ZhongDuanSheZhi()
{TH0+=0X4c;/*定时器赋初值,定时50ms触发中断,自动补偿方式*/TL0+=0X00; TMOD=0X01;TR0=1;ET0=1; //开启定时器EA=1; //全局中断开关IT0 = 1;//下降沿触发EX0 = 1;//开外部中断
}
void main()
{unsigned char Xd=0,xz=0,cs=1,ss=0;unsigned int wei=0;P0=0;ZhongDuanSheZhi();while(1){if(K4==0&&++Xd==0)//经典按键{P0=k=~k;while(!K4)if(++ss==0)bp=~bp;//蜂鸣器响}if(Js==20)//设置定时器50毫秒{if(k)smxs(xz,128,1);//段数据,位数据,小数点选择if(k&&++xz>9)xz=0;Js=0;}
//		if(++xz<8)
//		{
//			smxs(xz,cs,1);//段数据,位数据,小数点选择
//			cs*=2;//数码管位
//		}
//		else
//		{
//			smxs(ss,cs,1);
//			xz=0;
//			cs=1;
//			if(++Xd==0&&++ss>9)ss=0;
//		}
//		if(++cs>9)cs=0;else;
//		if(K1==0&&++Xd==0){P1=0;while(K1==0);}
//		if(K2==0&&++Xd==0){P1=85;while(K2==0);}
//		if(K3==0&&++Xd==0){P1=15;while(K3==0);}
//		if(K4==0&&++Xd==0){P1=240;while(K4==0);}
//		if(K1==0&&++Xd==0)
//		{
//			k=~k;
//			if(xz>0)
//			{
//				TR0=1;
//				xz=0;
//			}
//			while(K1==0)smxs(xz,1,1);
//			Xd=240;
//		}//切换与确定
//		if(K2==0&&++Xd==0)
//		{
//			++xz;
//			while(K2==0)smxs(xz,1,1);
//			Xd=240;
//		}//xz值功能选择1年2月3天4时5分6秒7归零调节
//		if(xz)
//		{
//			TR0=0;
//			if(xz<4)
//				k=0;
//			else
//				k=1;
//			if(K3==0&&++Xd==0)
//			{
//				xz==1?++n:xz==2?++y:xz==3?++t:xz==4?++shi:xz==5?++fen:xz==6?++miao:0;
//				jw(&n, &y, &t, &shi, &fen, &miao);
//				while(K3==0);
//				Xd=240;
//			}
//			if(K4==0&&++Xd==0)
//			{
//				xz==1?--n:xz==2?--y:xz==3?--t:xz==4?--shi:xz==5?--fen:xz==6?--miao:0;
//				jw(&n, &y, &t, &shi, &fen, &miao);
//				while(K4==0);
//				Xd=240;
//			}
//			if(xz==1)
//				sm(n, 0, 0, 0, 0, 0);
//			else if(xz==2)
//				sm(0, y, 0, 0, 0, 0);
//			else if(xz==3)
//				sm(0, 0, t, 0, 0, 0);
//			else if(xz==4)
//				sm(0, 0, 0, shi, 0, 0);
//			else if(xz==5)
//				sm(0, 0, 0, 0, fen, 0);
//			else if(xz==6)
//				sm(0, 0, 0, 0, 0, miao);
//			if(xz==7)n=y=t=shi=fen=miao=0;
//			if(xz>7){xz=0;TR0=1;}
//		}
//		else
//			sm(n, y, t, shi, fen, miao);
//		P1=~ls;
//		if(ls==0){if(++cs<=5)ls=128;else {ls=0;cs=7;}}
//		if(wk)wbzd();
//		JiShi();}
}
void ZhongDuan() interrupt 1
{++Js;TH0+=0X4c;TL0+=0X00;        
}
void WaiBuZhongDuan0() interrupt 0//外部中断0=0,1=2,引脚P3.2,INT0
{wk=1; 
}

这篇关于2021-10-14 51蛋骗鸡1秒变动0-9按键控制并蜂鸣器响的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/674837

相关文章

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理 秒杀系统是应对高并发、高压力下的典型业务场景,涉及到并发控制、库存管理、事务管理等多个关键技术点。本文将深入剖析秒杀商品业务中常见的几个核心问题,包括 AOP 事务管理、同步锁机制、乐观锁、CAS 操作,以及用户限购策略。通过这些技术的结合,确保秒杀系统在高并发场景下的稳定性和一致性。 1. AOP 代理对象与事务管理 在秒杀商品

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、