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

一、项目描述

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

二、 关键技术

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

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自加一次,

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
51单片机计算器程序主要由三部分组成:主程序、按键扫描程序和LCD1602显示程序。其中,主程序是整个计算器程序的核心,负责接收按键输入并进行相应的运算操作。按键扫描程序用于检测键盘输入,判断某一列或行是否有按键按下,并确定是哪一个键按下。LCD1602显示程序则用于将计算结果或其他相关信息显示在液晶屏上。 在51单片机计算器程序中,采用了非编码键盘作为输入设备。这种键盘扫描程序的优点是节省IO口,通过判断某一列或行是否有按键按下,确定按下的键的位置。程序效率高,每次扫描占用CPU时间最短,无论有键按下还是无键按下,都能在很短的时间内完成一次扫描。 在计算器程序中,可以进行简单的加减乘除运算,最大可以计算9999乘以9999的结果。通过使用proteus仿真软件,可以对计算器进行仿真测试。 在设计硬件电路方面,简易计算器采用了三部分电路模块构成:键盘模块电路、LCD1602液晶显示模块和以51单片机作为控制核心。同时,设计中还需要使用一系列元件,如1602液晶、STC89C51单片机、排针、电阻、电容等等。 综上所述,51单片机计算器程序包括主程序、按键扫描程序和LCD1602显示程序,采用非编码键盘作为输入设备,可以进行简单的加减乘除运算,最大可以计算9999乘以9999的结果,并使用proteus仿真软件进行测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值