小蜜蜂老师的【基础技能15】综合实训案例代码

该代码是自己写的,没有参考老师的代码,仅供参考,如有不合适请指出,谢谢。

#include "reg52.h"sfr AUXR=0x8e;sbit S5=P3^2;
sbit S4=P3^3;void SelectHC573(unsigned char channel);
void  DisplayTime();
unsigned char th=0;
unsigned char tm=0;
unsigned char ts=0;
unsigned char code SMG_duanma[18]={                //code 告诉单片机,把程序放在ROM中,只读不能修改0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xbf,0x7f
};
unsigned char uartdata;
void Delay(unsigned int t)
{while(t--);}
void Delayus(unsigned int t)
{while(t--);{DisplayTime();}}
void SelectHC573(unsigned char channel)
{switch(channel){case 4:P2=(P2 & 0x1f)|0x80;break;case 5:P2=(P2 & 0x1f)|0xa0;break;case 6:P2=(P2 & 0x1f)|0xc0;break;case 7:P2=(P2 & 0x1f)|0xe0;break;case 0:P2=(P2 & 0x00);break;}
}//=========1========
void ClearInit()
{SelectHC573(5);P0=0x00;SelectHC573(4);P0=0xff;SelectHC573(0);
}
//=========2.LED========
void LEDRuning()
{unsigned char i;SelectHC573(4);for(i=0;i<8;i++){P0=0xfe<<i;Delay(500000);}for(i=0;i<8;i++){P0=P0|(0x01<<i);Delay(500000);}P0=0xff;SelectHC573(0);
}unsigned char dat=0;
void SMGRuning()
{unsigned char i;for(i=0;i<8;i++){SelectHC573(6);dat=(dat|0x01<<i);P0=dat;SelectHC573(7);P0=0x00;Delay(500000);}for(i=1;i<=8;i++){SelectHC573(6);dat=dat&(0xff<<i);P0=dat;Delay(500000);}dat=0;SelectHC573(0);
}void DisplaySMG(unsigned char vlaue,unsigned char pos)
{SelectHC573(7);P0=0xff;          //消影SelectHC573(6);P0=0x01<<pos;SelectHC573(7);P0=vlaue;
}unsigned char count=0;void Time0Init()
{TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;TR0=1;TF0=0;EA=1;ET0=1;}void SericeTime0() interrupt 1
{TH0=(65535-50000)/256;TL0=(65535-50000)%256;count++;if(count==20){ts++;if(ts==60){tm++;ts=0;}if(tm==60){th++;tm=0;}if(th==24){th=0;tm=0;ts=0;}count=0;}}
//========3=======
void  DisplayTime()
{DisplaySMG(SMG_duanma[th/10],0);Delay(500);DisplaySMG(SMG_duanma[th%10],1);Delay(500);DisplaySMG(0xbf,2);Delay(500);DisplaySMG(SMG_duanma[tm/10],3);Delay(500);DisplaySMG(SMG_duanma[tm%10],4);Delay(500);DisplaySMG(0xbf,5);Delay(500);DisplaySMG(SMG_duanma[ts/10],6);Delay(500);DisplaySMG(SMG_duanma[ts%10],7);Delay(500);SelectHC573(0);
}//====4=======void KeyConLight()
{if(S5==0){Delayus(125);if(S5==0){SelectHC573(4);P0=(P0 &0x00)|0xbf;while(S5==0){DisplayTime();}SelectHC573(4);P0=0xff;SelectHC573(0);}}if(S4==0){Delayus(125);if(S4==0){SelectHC573(4);P0=(P0 & 0x00)|0x7f;while(S4==0){DisplayTime();}SelectHC573(4);P0=0xff;SelectHC573(0);}}}void UartInit()
{TMOD=0x20;SCON=0x50;TH1=0xfd;TL1=0xfd;TR1=1;ES=1;AUXR=0x00;
}void SendByte(unsigned char dat)
{SBUF=dat;while(TI==0);TI=0;
}void UartSerice()  interrupt 4
{if(RI){DisplayTime();uartdata=SBUF;RI=0;}}void uartContime()
{SendByte(th/10*16+th%10);SendByte(tm/10*16+tm%10);SendByte(ts/10*16+ts%10);}
void UartCon()
{switch(uartdata & 0xf0){case 0xa0:SelectHC573(4);P0=~(uartdata & 0x0f);SelectHC573(0);uartdata=0;break;case 0xb0:uartContime();uartdata=0;break;}}
void main()
{Time0Init();UartInit();ClearInit();LEDRuning();SMGRuning();while(1){DisplayTime();KeyConLight();UartCon();} }

由于拍摄不易,串口调试没有拍,也是合适的。

调试

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

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

相关文章

【Linux】体验一款开源的Linux服务器运维管理工具

今天为大家介绍一款开源的 Linux 服务器运维管理工具 - 1panel。 一、安装 根据官方那个提供的在线文档&#xff0c;这款工具的安装需要执行在线安装&#xff0c; # Redhat / CentOScurl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start…

代码随想录算法训练营DAY11|C++栈和队列Part.2|LeetCode:20.有效的括号、 1047.删除字符串中所有相邻重复项、150.逆波兰表达式

文章目录 20.有效的括号思路CPP代码 1047.删除字符串中所有相邻重复项思路CPP代码 150.逆波兰表达式思路什么是逆波兰表达式本题的思路 CPP代码 20.有效的括号 力扣题目链接 文章链接&#xff1a;20.有效的括号 视频链接&#xff1a;LeetCode&#xff1a;20. 有效的括号 状态&a…

你在测试金字塔的哪一层(下)

​在《你在测试金字塔的哪一层&#xff08;上&#xff09;》中介绍了自动化测试的重要性以及测试金字塔。测试金字塔分为单元测试、服务测试、UI测试&#xff0c;它们分别是什么呢&#xff1f;本期文章让我们一起详细看看测试金字塔的不同层次。 一、单元测试 单元测试是指对程…

web使其盒子向里面倾斜

右侧向内倾斜 transform: perspective(500px) rotateX(0deg) rotateY(-10deg) rotateZ(0deg);transform-origin: 270px 424px;效果 左侧向内倾斜 transform: perspective(500px) rotateX(0deg) rotateY(10deg) rotateZ(0deg);transform-origin: 270px 424px;效果

Conda 命令

1.更新 #获取版本号 conda --version 或 conda -V conda update conda # 基本升级 conda update anaconda # 大的升级 conda update anaconda-navigator #update最新版本的anaconda-navigator 2.卸载 Anaconda的安装文件都包含在一个目录中&#xff0c;直…

蓝桥杯小白月赛第八场第三题

题目描述&#xff1a; 思路&#xff1a; 根据上面的次方数&#xff0c;我们可以看出来从1次方到4次方 和 5 - 8次方&#xff0c;中间有什么规律&#xff1f; 是不是可以看出来1次方和5次方的尾数相同 2次方和6次方的尾数相同 3次方和7次方的尾数相同 4次方和8次方的尾数相同 …

ctf.show_web11

<?php function replaceSpecialChar($strParam){ $regex "/(select|from|where|join|sleep|and|\s|union|,)/i"; return preg_replace($regex,"",$strParam); } // \s 空格 if(strlen($password)!…

2024年N1叉车司机证考试题库及N1叉车司机试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年N1叉车司机证考试题库及N1叉车司机试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大纲随机出的…

Kaggle注册验证码问题(Captcha must be filled out.)

Kaggle注册验证码问题 Captcha must be filled out.使用Edge浏览器 Header Editor 插件安装 下载插件Header Editor 导入重定向脚本 点击扩展插件&#xff0c; 打开Header Editor插件&#xff0c;进行管理 点击导入输入下载链接进行下载或者导入本地json文件(二者任选其一…

QT 最近使用的项目配置文件

目录 1 QT 最近使用的项目配置文件所在路径 2 QtCreator.ini 1 QT 最近使用的项目配置文件所在路径 C:\Users\your username\AppData\Roaming\QtProject QtCreator.ini最好先备份一份 2 QtCreator.ini ProjectExplorer 下面的 RecentProjects\FileNames RecentProjects\…

ThreadPool-线程池使用及原理

1. 线程池使用方式 示例代码&#xff1a; // 一池N线程 Executors.newFixedThreadPool(int) // 一个任务一个任务执行&#xff0c;一池一线程 Executors.newSingleThreadExecutorO // 线程池根据需求创建线程&#xff0c;可扩容&#xff0c;遇强则强 Executors.newCachedThre…

php数组算法(2)字符串转数组后替换指定元素

php中&#xff0c;如何替换字符串“name1,name2,name3”中的name2&#xff0c;输出“name1,name3”格式? 完整代码 $str "name1,name2,name3"; $search "name2"; echo replaceString($str, $search);/** param $str&#xff0c;字符串格式:name1,name2…

C++:继承的介绍和深度解析

一、继承的概念和定义 1.什么是继承&#xff1f; 继承&#xff0c;顾名思义&#xff1a;就和现实生活中&#xff0c;孩子继承父母的东西有点类似。比如&#xff0c;你父亲的财产&#xff0c;你可以继承下来&#xff0c;你就可以使用父亲的钱。 官方一点的介绍&#xff1a; 继承…

JUC/多线程 模式(四)

一、同步模式之保护性暂停 即 Guarded Suspension &#xff0c;用在一个线程等待另一个线程的执行结果 产生结果的线程和使用结果的线程是一一对应的&#xff0c;有多少个生产结果的线程就有多少个使用结果的线程。 要点 有一个结果需要从一个线程传递到另一个线程&#xff0…

JUC/多线程原理(三)

一、Monitor 原理 二、synchronized 原理 (一)、基础 synchronized 即使内部抛出异常也会释放锁 (二)、轻量级锁 轻量级锁的使用场景&#xff1a;如果一个对象虽然有多线程要加锁&#xff0c;但加锁的时间是错开的&#xff08;也就是 没有竞争 &#xff09;&#xff0c;那么…

java分割回文串(力扣Leetcode131)

分割回文串 力扣原题链接 问题描述 给定一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是回文串。返回 s 所有可能的分割方案。 示例 示例 1: 输入&#xff1a;s “aab” 输出&#xff1a;[[“a”,“a”,“b”],[“aa”,“b”]] 示例 2: 输…

【御控物联】 IOT异构数据JSON转化(场景案例一)

文章目录 前言技术资料 前言 随着物联网、大数据、智能制造技术的不断发展&#xff0c;越来越多的企业正在进行工厂的智能化转型升级。转型升级第一步往往是设备的智能化改造&#xff0c;助力设备数据快速上云&#xff0c;实现设备数据共享和场景互联。然而&#xff0c;在生产…

爬虫逆向实战(38)-某空气质量平台(反调试,AES,DES,MD5)

一、数据接口分析 主页地址&#xff1a;某空气质量平台 1、抓包 (1) 反调试 该网站对鼠标右击以及F12进行了监听并拦截 虽然该网站无法打开Chrome控制台&#xff0c;导致我们无法抓包&#xff0c;但是道高一尺魔高一丈。既然我们无法在打开该网站的时候打开Chrome控制台&…

高架学习笔记之UML图概要

目录 零、什么是UML图 一、类图 二、对象图 三、构件图 四、部署图 五、制品图 六、包图 七、组合结构图 八、用例图 九、序列图 十、通信图 十一、状态图 十二、活动图 十三、定时图 十四、交互概览图 零、什么是UML图 统一建模语言&#xff08;Unified Modeli…

pytorch中的torch.hub.load():以vggish为例

pytorch提供了torch.hub.load()函数加载模型&#xff0c;该方法可以从网上直接下载模型或是从本地加载模型。官方文档 torch.hub.load(repo_or_dir, model, *args, sourcegithub, trust_repoNone, force_reloadFalse, verboseTrue, skip_validationFalse, **kwargs)参数说明&a…