单片机制作时钟倒计时_与,的博客-程序员ITS304_单片机一分钟倒计时

技术标签: 单片机  

STC11FO2E介绍

STC11F02E单片机是STC生产的单时钟/机器周期(1T)的高性能单片机。采用了增强型内核,STC11F02E保留普通8051的所有功能,并提供6个中断源、2个中断优先级、片内和晶体振荡器、1个看门狗。

增强型8051CPU,1T,单时钟/机器周期,速度比普通8051快6-7倍。
工作电压:4.1V -5.5 V
工作频率:0 - 35MHz,相当于普通8051的0 - 420MHz
2K字节片内Flash程序存储器
片内256字节的SRAM
超强抗干扰,超低功耗
共2个16位定时器/计数器,与普通8051的Timer0/Timer1完全一致
可将掉电模式/停机模式唤醒的资源有:INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0
可编程时钟输出功能。T0从P3.4输出时钟,T1从P3.5输出时钟,BRT从P1.0输出时钟。

封装:SOP-20,DIP-20

proteus电路图

由于数码管显示用的是扫描显示方法,所以截图接不到三个灯全亮。(Proteus中单片机不需要搭建最小系统所以就省略了)

实际电路

用洞洞板搭建的电路,后面焊接的不太好就不发照片了。由于条件有限没有四位的数码管只能用三位的替代了,继电器也没有5v的所以就先不加了,这都不重要。左边的第一个数码管是小时,剩下的两个数码管是分钟,下面还有三个按键,晶振选用的是12M,记得要在单片机数码管输出的I/O口加装排阻,不然I/O的电流不足以驱动数码管。

定时器工作过程

首先上电之后先调整定时时间,每按一次加键定时加十分钟,减键同理,当设置好分钟之后按下设置键等到数码管闪动后松开按键进入小时设置,每按一次加键定时增加一小时,设置好分钟和小时后再次按下设置键就会启动定时,此时控制三极管的I/O口为1,等到定时完毕之后数码管显示000,闪动五次,之后就会将接到三极管的I/O口置零三极管关断输出继电器断开。

单片机程序

#include"reg52.h"              //头文件

#define LED P1             		//数码管阴极
#define LED1 P3					//数码管阳极
sbit jia = P3^3;
sbit jian= P3^4;
sbit she = P3^5;				//设置
sbit kai = P3^7;				//控制引脚

unsigned int cont = 0;
unsigned int c,dod;
unsigned int shi,fen,miao;

void Timer0_uint();                  //定时器0初始化
void RTC();							//计时函数
void displayRTC();					//将个位与十位分开
void display();						//显示函数
void delay_ms(int n);				//延时
void stop();						//设置定时时间
void display_Z();					//到达时间之后关断输出

unsigned char code dm[]={
    0xf6,0x12,0xea,0x7a,0x1e,0x7c,0xfc,0x32,0xfe,0x3e};			//段码
unsigned char code wm[]={
    0xf6,0xfd,0xfb};     //位码
unsigned char LED_z[3];			//数码管轮流显示数组
void main()
{
    
	
	EA = 1;                          //打开总中断
	shi = 0;
	fen = 0;
	miao =0;
	jia =1;
	jian=1;
	she=1;
	stop();
	RTC();
	displayRTC();
	Timer0_uint();                   //调用Timer0初始化函数
	while(1)
	{
    
		displayRTC();
		display();
	}
}
void Timer0_uint()
{
    
		TMOD = 0x01;                  //定时器工作模式 1
		ET0 = 1;                      //定时器0中断开关
		TH0 = 0x3C;                    //初始值
		TL0 = 0xB0;
		TR0 = 1;                      //开始定时
		TF0 = 0;
}
void timer0interrupt() interrupt 1      
 //当定时器溢出时(TF0=1)就会进行中断服务函数
{
    
	TH0 = 0x3C;                           //再次赋初值
	TL0 = 0xB0;
	TF0 = 0;                              //TF0赋值为0
	cont++;
	if(cont>=10)							//一秒一次
	{
    
		display_Z();
		RTC();
		displayRTC();
		display();
		cont = 0;
	}
}

代码比较长,这里只给出一部分,想要完整代码可以评论区留言,

代码比较简单,而且已经写好注释就不用过多的解释了,如果有不明白的地方可以问我,但是本人能力有限问了也不一定能回答上来。

总结

如果有写的不对的地方欢迎指正。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45490960/article/details/114991774

智能推荐

docker 相关_张立飞7953的博客-程序员ITS304

安装docker:卸载:sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logro...

Django中checkbox复选框的传值问题_borgesssss的博客-程序员ITS304

Django 中,html 页面通过 form 标签来传递表单数据。 对于复选框信息,即 checkbox 类型,点击 submit 后,数据将提交至 view 中的函数。我们通过 request.POST.get() 函数来获取来自 html 页面的值,但是该函数只能 get 到选中的最后一个值。 因此想要传递选中的多个值,需要用 request.POST.getlist() 函数,该函...

安全才是区块链的未来_RankBC的博客-程序员ITS304

在区块链野蛮生长的此时此刻,人们虽期待著去中间机构的新模式,但是在那个未来到达以前,我们回头来看区块链技术里,那一行行的代码,是不是能够担任如此重要的角色,是不是这些代码跟架构,能够保护人类社会已经非常岌岌可危的信任?而今天,我们将与链安这家专门做区块链安全的公司对谈,让大家对于安全有更深一层的认识,对于想要找区块链安全公司合作的机构,也可以从这边多了解一些,帮助大家做些判断。(成都链安科...

卸载软件后电脑服务中有残余,删除残余的方法_Chafferer,迷心的博客-程序员ITS304_软件卸载了服务还在

很多朋友想必在卸载了一些大型软件(Oracle,SQL server2008等)后,在次安装还是有残余,在电脑中的服务中的残余不知道怎么删除,下面就个大家讲解一下利用cmd命令删除残余的方法。 卸载软件后,服务中还有残余的数据,为了防止影像下次按装软件,解决方法:删除卸载软件后在服务中显示的错误信息的服务名称:在cmd 窗口中输入:sc delete “要删除服务的名称”  回车即可...

Angular8升级至Angular10报 .ts file is part of the TypeScript compilation but it‘s unused 的warning_青颜的天空的博客-程序员ITS304

这几天升级公司的一个Angular项目,把Angular更新到最新的10.0.1版本。"dependencies": { "@angular/animations": "^10.0.1", "@angular/cdk": "^10.0.1", "@angular/common": "~10.0.1", "@angular/compiler": "~10.0.1", "@angular/core": "~10.0.1", "@angular/forms": "~10.0.1",

随便推点

Oracle用户创建、赋权、查询及删除操作_BigSmartDing的博客-程序员ITS304_oracle用户授权增删改查

1. 查看所有用户信息SQL> SELECT * FROM dba_users;2. 创建test用户,密码设置为123456通常会在后面跟上tablespace,指定用户的默认表空间,users为默认表空间SQL> CREATE USER test identified BY 123456 DEFAULT tablespace users;创建完之后不能登录需赋予权限3. 赋予权限赋予dba权限SQL> GRANT dba TO test;赋予普通权限SQL&g

C#-Xamarin的Activity传值与Fragment引用_kiba518的博客-程序员ITS304

前言我们学习任何一个新框架时,肯定都需要学习它的子页面用法,因为子页面是封装公共内容最好的容器。在Xamarin里子页面为Fragment,翻译过来是片段的意思。Fragment下面我们来学习Fragment的用法。首先创建一个类MenuFragment继承Fragment;然后重写他的OnCreateView方法,代码如下:[Activity(Label = "KibaApp")...

nat模式下怎么让其他物理主机访问到宿主机的虚拟机_枣泥馅的博客-程序员ITS304

nat模式下怎么让其他物理主机访问到宿主机的虚拟机在安装宿主机本生有三种模式,分别为:桥接模式:桥接模式是虚拟出一台“物理”主机,ip和宿主机处于一个网段,可以访问外网,可以和在同一网段中的物理主机通信nat模式:nat模式是虚拟出一个和宿主机不同网段(默认情况下是不同网段)的虚拟机,可以访问外网,只可以和宿主机进行通信。仅主机模式:仅主机模式是一个和宿主机不同网段的虚拟机,只可以和宿主机进行通信,不可以访问外网我在创建虚拟机的时使用了桥接模式的网络适配器,但是不知道什.

基于deepstream-test3添加跟踪插件和4类sinkType输出(包括rtsp)_勤劳的搬运工zyh的博客-程序员ITS304

基于deepstream-test3简单实现目标跟踪和4类sinkType输出(包括rtsp)

人物专访 | 郑冬东:构建以“人”为中心的数据安全防护体系_极盾科技的博客-程序员ITS304

《信息技术与网络安全》杂志组织“2021年网络安全行业发展回顾与展望”系列采访,邀请多家企业的资深专家对2021年网络安全政策进行解读,对爆发的网络安全大事件进行回顾,对行业发展的脉络进行剖析,并对2022年行业发展的趋势进行展望。本期受访嘉宾:极盾科技产品负责人 郑冬东

dp-回溯-搜索-排序及其他算法-蓝桥杯真题算法总结_近来的博客-程序员ITS304

在这里总结一下从放暑假开始到现在断断续续刷蓝桥杯真题遇到的算法思路,从第十届一直倒着刷到第四届,总的来说蓝桥杯的出题思路在中等题搜索和回溯是一直在变少的,但是搜索的花样变得更多了,而且中等题中的暴力题也一直在减少,关于数论的题也同时在出现,对参赛学生的要求也是变高的,而对于前面的几道题来说同样的花样变得多了起来,越到后面的几届的蓝桥杯的简单题是需要你停下来动脑子想一下才能出思路的,就这样,最后一题暂且不谈。其实最重要的一步是要正确理解题,仔细认真即可。dp在真题当中动态规划还是比较少的,到现在为止只遇