既能显示时间又能做计算器的单片机

该项目在原有的51单片机计算器基础上增加了时钟显示功能,当无按键操作10秒后,单片机自动进入时钟模式,显示小时、分钟和秒数。通过时钟中断技术实现计时,按键后恢复计算器模式并继续运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、项目描述

本次项目是在上次用单片机做的计算器在有一定改进的基础上新加了时钟显示的
功能。之前所做的计算器只能实现简单的加减乘除运算,经后期改进,使其可以连续运算更符合我们心中的计算器的形象。加入时钟功能后,在使用单片机计算器功能时,如果一直不按键持续十秒,则进入时钟显示模式。进入时钟模式后,数码管前面两位显示时,中间两位显示分钟,后两位显示秒数。当之后任意键按下时,单片机恢复计算器模式,且根据按下键对进入时钟模式之前状态的数值进行处理。

二、 关键技术

在计算器功能上加入时钟模式,主要使用了时钟中断。
时钟中断:

void timer0_INT_SRV(void) interrupt 1 
{
    TL0 = (65536-46080)%256;//(65536-50000*11.0592/12)%256;
    TH0 = (65536-46080)/256; 
    FOUT = !FOUT;
    if(++count1s>=20)   //计时1秒
    {	time++;
    	count1s=0;
  		counter_key++;
		if(counter_key>=60)
		{counter_key=0;
		 fen++;
		  if(fen>=60)
		  {	fen=0;
		    shi++;
			if(shi>=24)
			 {
			   shi=0;
			 }
		  }
		}		
	}
}

可以看到在单片机的时钟中断程序里,每二十次中断,秒数变量counter_key自加一次,
相当于计时一秒,时间积累变量time(初始值为0)也会自加一次。每当counter_key等于60则清零,并使分钟变量fen自加,同理,当分等于60则清零,并使时钟变量shi自加。而当shi等于24时,就使shi清零。可以看出变量counter_key、fen、shi对应了时钟的秒数,分钟和小时。变量time就是使单片机进入时钟模式的关键变量。
为使变量time起作用,在键盘码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值