首页 > 其他分享 >09-定时器拓展应用

09-定时器拓展应用

时间:2022-12-28 19:01:18浏览次数:44  
标签:P2 break 定时器 09 unsigned 拓展 char case 0x1f

#include "reg52.h"

sbit S4 = P3^3;
sbit S5 = P3^2;

unsigned char fen = 0;
unsigned char miao = 0;
unsigned char t_005ms = 0;

void delay(unsigned char t)
{
	while(t--);
	
}
unsigned char code table[] = 
{
	0xc0,//0
	0xf9,//1
	0xa4,//2
	0xb0,//3
	0x99,//4
	0x92,//5
	0x82,//6
	0xf8,//7
	0x80,//8
	0x90,//9
	0x88,//A
	0x83,//B
	0xc6,//C
	0xa1,//D
	0x86,//E
	0x8e,//F
	0xbf,//-
	0x7f//.
};

void SelectHC573(unsigned char n)
{
	switch(n)
	{
		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;
	}
	
}

void display(unsigned char val,unsigned char pos)
{
	SelectHC573(6);
	P0 = 0x01<<pos;
	SelectHC573(7);
	P0 = table[val];
}
void showtime()
{
	display(t_005ms%10,7);//个0.05ms
	delay(500);
	display(t_005ms/10,6);//十
	delay(500);
	display(16,5);
	delay(500);
	
	display(miao%10,4);//个秒
	delay(500);
	display(miao/10,3);//十
	delay(500);
	display(16,2);
	delay(500);
	
	display(fen%10,1);//个分
	delay(500);
	display(fen/10,0);//十
	delay(500);
	
}

//========定时器相关函数==============
void InitTimer0()
{
	TMOD = 0x01;
	TH0 = (65535 - 50000)/256;
	TL0 = (65535 - 50000)%256;
	
	ET0 = 1;
	EA = 1;
	TR0 = 1;
}

void Timer0() interrupt 1
{
	TH0 = (65535 - 50000)/256;
	TL0 = (65535 - 50000)%256;
	
	t_005ms++;
	if(t_005ms == 20)
	{
		miao++;
		t_005ms = 0;
		if(miao == 60)
		{
			fen++;
			miao = 0;
		}
		if(fen == 99)
		{
			fen = 0;
		}
	}
}

//==============按键扫描======================

void scan()
{
	if(S4 == 0) //启动暂停
	{
		delay(100);
		if(S4 == 0)
		{
			TR0 = ~TR0;
			while(S4 == 0)
			{
				showtime();
			}
				
		}
	}
	if(S5 == 0) //清零
	{
		delay(100);
		if(S5 == 0)
		{
			t_005ms = 0;
			fen = 0;
			miao = 0;
			while(S5 == 0)
			{
				showtime();
			}
		}
	}
}


void main()
{
	InitTimer0();
	while(1)
	{
		scan();
		showtime();
	}
}

 

标签:P2,break,定时器,09,unsigned,拓展,char,case,0x1f
From: https://www.cnblogs.com/Unclesundada/p/17011052.html

相关文章

  • IOS-微信小程序,ios不兼容 ‘2021-09-23’短横线连接的日期格式,Date.parse计算时结果为
    我在微信小程序中,有一个需求:根据 活动持续时间 来计算这个活动 div的高度。模拟器上一切正常,真机安卓也正常,但是真机ios计算出来的高度一直是NaN然后一行一行打印,用......
  • Win10/11打印机错误0x0000709解决方法
    打印机是日常办公常用的设备之一,通过系统中的共享功能够给多个设备使用,操作起来非常的方便。而近期Windows10和11更新补丁导致大量的打印机无法共享,出现0x0000709错误代码......
  • Java千问09:你真的掌握了Java语言的==吗?我看未必!
    很多程序设计语言都使用”==”来判断两个数据是否相等,我们在编程中也经常使用这个运算符,以至于对它已经熟视无睹。那么是不是任意两个数据都可以使用”==”来判断相等呢?”==......
  • day10-功能实现09
    家居网购项目实现09以下皆为部分代码,详见https://github.com/liyuelian/furniture_mall.git21.功能20-修改购物车21.1需求分析/图解进入购物车页面,可以修改购买数......
  • 拓展方法Extesion
    概念允许我们向一个已经存在的Class中添加拓展代码不需要修改原Class的代码不需要继承原Class示例usingSystem.Collections;usingSystem.Linq;namespace扩展方......
  • 08-定时器及其应用
    #include"reg52.h"sbitL1=P0^0;sbitL8=P0^7;voidSelectHC573(){ P2=(P2&0x1f)|0x80;}//==========================voidInitTimer0(){ TMOD=......
  • 【《硬件架构的艺术》读书笔记】09 电磁兼容性能设计指南(2)
    这一节就大致浏览一下,不细看了。9.6减少EMC/EMI的技术三个方法:1、在源头抑制发射。2、耦合路径尽可能低效。3、受体几乎不受发射影响。9.6.1系统级技术9.6.1.1展频......
  • 0209_【理解】REST接口描述
    1、packagecom.yootk.provider.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration; import......
  • day09-功能实现08
    家居网购项目实现08以下皆为部分代码,详见https://github.com/liyuelian/furniture_mall.git19.功能18-添加家居到购物车19.1需求分析/图解会员登录后,可以添加家居......
  • 计组学习09——Combinational Logic 组合逻辑电路
    计组学习——CombinationalLogic组合逻辑电路SynchronousDigitalSystems同步数字系统Synchronous:所有的操纵都是由中央时钟协调类似于系统的心跳!Digital:......