秒表实验(Proteus 与Keil uVision联合仿真)

一、实验要求

用2位数码管显示计时时间,最小计时单位为"百毫秒",计时范围0.1~9.9s。当第1次按一下计时功能键时,秒表开始计时并显示;第2次按一下计时功能键时,停止计时,将计时的时间值送到数码管显示;如果计时到9.9s,将重新开始从0计时;第3次按一下计时功能键,秒表清0。再次按一下计时功能键,则重复上述计时过程。

本秒表应用定时器模式,计时范围0.1~9.9s。此外还涉及如何编写控制LED数码管显示的程序。

二、设计硬件电路原理图,画出实际接线图。

三、根据实验任务设计出相应的程序。

cs 复制代码
#include <reg51.h>
#define uchar unsigned char
sbit Key=P3^6;
char i=10;
Key_Num=0;
second=0;
Count_Enable=0;
uchar code dis[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
                    0x80,0x90,0x88,0x83,0xc6,0xa1,0x86, 0x8e};
unsigned int time;
void delay(unsigned int time)                   
{
    unsigned int i;
    for(i=0; i<time; i++)
    {}
}

void main()
{
	TMOD=0x01;
	TH0=0xd8;
	TL0=0xf0;
	P1=0xff;
	P3=0xff;
	EA=1;	
	ET0=1;
	TR0=1;
	Count_Enable=1;
	while(1)
	{
		if(!Key)
		{
      delay(10);
			if(!Key)
			{
				while(!Key)	
				Key_Num++;
				switch(Key_Num)
				{
					case 1:
					  //TR0=1;
					  Count_Enable=1;
					break;
					case 2:
					  //TR0=0;
					  Count_Enable=0;
					break;
					case 3:
					  //TR0=0;
					  Count_Enable=0;
					  second=0;
					  Key_Num=0;
					break;
				}
			}
		}
		P2=0x01;
		P0=dis[second%10];
		delay(1);
		P0=0xff;

		P2=0x02;
		P0=dis[second/10]&0x7f;
		delay(1);
		P0=0xff;
	}
}

void timer0() interrupt 1
{
	/*static display_SW=1;
	
	TH0=0xD8;
	TL0=0xF0;
	
	if(display_SW)//个位
	{
		display_SW=0;
		P2=0x01;

		P0=dis[second%10];
		delay(1);
		//P0=0xff;
	}
	else//十位
	{
		display_SW=1;
		P2=0x02;
		P0=dis[second/10]&0x7f;
		delay(1);
		//P0=0xff;
	}*/
	TH0=0xD8;
	TL0=0xF0;
	if(Count_Enable)
	{
		 i--;
	  if(i<=0)
	    {
		    i=10;
		    second++;
		     if(second>99)
		       {
			       second=0;
		       }
	    }
		}			
}

四、实验结果

相关推荐
恒锐丰小吕1 分钟前
EG1151 四开关升降压电源管理芯片技术解析
嵌入式硬件·硬件工程·1024程序员节
lsnm4 分钟前
C++新手项目-JsonRPC框架
开发语言·c++·1024程序员节
晨陌y6 分钟前
从 0 到 1 开发 Rust 分布式日志服务:高吞吐设计 + 存储优化,支撑千万级日志采集
开发语言·分布式·rust
电鱼智能的电小鱼13 分钟前
基于电鱼 ARM 工控机的井下设备运行状态监测方案——实时采集电机、电泵、皮带机等关键设备运行数据
arm开发·人工智能·嵌入式硬件·深度学习·机器学习·制造
HH小晴21 分钟前
惠洋科技H5528K 100V高耐压2.5A 支持24V30V36V48V60V72V80V降压6V9V12V车灯供电恒流芯片IC 高低亮
单片机·嵌入式硬件
微信api接口介绍42 分钟前
微信个人发消息api
运维·服务器·开发语言·前端·网络·微信·ipad
小二·1 小时前
仓颉语言中Channel通道的深度解析:从原理到高并发实践
开发语言
Aevget1 小时前
界面控件DevExpress WPF v25.2预览 - 模板工具包全新升级
c#·wpf·界面控件·devexpress·ui开发
南方的狮子先生1 小时前
【数据结构】从线性表到排序算法详解
开发语言·数据结构·c++·算法·排序算法·1024程序员节
TheWindofFate1 小时前
C# List集合
c#·list