• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的简易倒计时器设计!!!

04/16 08:58
1794
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

单片机仿真设计合集资料获取.pdf

共1个文件

资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频

仿真版本:Proteus8.6及以上版本

程序编译:Keil5 C51

编程语言:C语言

设计编号:【L01】

1.? 简介

? 本文提出了一种基于51单片机的秒表计时器。该设计在硬件方面主要采用AT89C51单片机作为主控核心,2位数码管液晶显示屏显示计时信息,同时还具有设置倒计时时间、复位等功能。

2.? 主要功能

a.通过2位数码管显示倒计时器信息,倒计时范围:0到99秒。

b.通过独立按键设置启动、倒计时时间。

3.? 源程序(Keil5)

本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。

#include <reg51.h>
unsigned  char code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管 0-9
sbit led=P3^0;
sbit s1=P2^2;
sbit s2=P2^3;
sbit k0=P2^0;
sbit k1=P2^1;
int sec=0,i,a,b=20,key1;
/*-----延迟函数-------*/
void delay(int z)
{
	while(z-->0);
}
/*-----显示函数-------*/
void display(int n)
{
	if(n>0)
	{
	s2=1;s1=0;  	//显示十位
	P0=tab[n/10];  //除10,取十位数值
	delay(100);	   //延迟显示
	s1=1;s2=0;	   //显示个位
	P0=tab[n%10];  //求余,取个位数值
	delay(100);	   //延迟
	}
	else
	{				//当输入值小于0,显示0
	s2=1;s1=0;	    //显示十位
	P0=tab[0];	    //除10,取十位数值
	delay(100);	    //延迟
	s1=1;s2=0;   	 //显示个位
	P0=tab[0];		//求余,取个位数值
	delay(100);	    //延迟显示
	}			  
}
/*-----外部中断0中断服务函数----------*/
void RESET() interrupt	0
{
	sec=0;	 //恢复初始值
	b=20;	 //恢复初始值
	TR0=0;	 //关闭定时器
	
}
/*-----外部中断1中断服务函数----------*/
void START() interrupt	2
{
	TR0=1;	//打开定时器
}
/*-----定时器T0服务函数,计时功能----------*/
void timer0() interrupt 1
{
	i--;   //50ms时间到
	TH0=(65536-50000)/256;	//存放高8位,50ms
	TL0=(65536-50000)%256; 	 //存放低8位
	if(i==0)
	{
	i=17;            //1s计数
	sec++;			//软件计数1s
	}
}
/*------键值扫描函数----------*/
void key()
{	
	k0=1;k1=1;	    	//读按键
	key1=P2;	        //将P2的值赋值给key1
	key1=key1&0x03;		//屏蔽高6位,保留k0,k1的值
	while(key1!=0x03)   //判断是否有按键按下
	{
	delay(600);			//消抖动
	key1=P2;
	key1=key1&0X03;
	while(key1!=0x03)	 //当有按键按下时
	{
	if(k0==0) b=b+1;   	 //按下k0按键时,初始值加1
	else b=b-1;			 //按下k1按键时,初始值减1
	k0=1;k1=1;		   //判断按键是否抬起
	key1=P2;		  //重新将P2的值赋值给key1
	key1=key1&0x03;
	while(key1!=0x03)  //判断是否有按键按下
	{
	key1=P2;
	key1=key1&0x03;
	}
	}
	}
}

4.? 仿真proteus8.6

? 本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。

计时界面:

5.? 设计报告

设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。

6.? 资料清单

设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。

7.? 资料获取链接

百度网盘下载链接:【L01】百度网盘下载链接

更多单片机仿真设计合集:单片机仿真设计合集

  • 单片机仿真设计合集资料获取.pdf
    下载

相关推荐