• 方案介紹
    • 1.? 簡介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設(shè)計(jì)報(bào)告
    • 6.? 資料清單
    • 7.? 資料獲取鏈接
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的簡易倒計(jì)時(shí)器設(shè)計(jì)!!!

04/16 08:58
469
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

單片機(jī)仿真設(shè)計(jì)合集資料獲取.pdf

共1個(gè)文件

資料清單:C程序+仿真+設(shè)計(jì)報(bào)告+使用說明+元件清單+操作視頻

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

程序編譯:Keil5 C51

編程語言:C語言

設(shè)計(jì)編號(hào):【L01】

1.? 簡介

? 本文提出了一種基于51單片機(jī)的秒表計(jì)時(shí)器。該設(shè)計(jì)在硬件方面主要采用AT89C51單片機(jī)作為主控核心,2位數(shù)碼管液晶顯示屏顯示計(jì)時(shí)信息,同時(shí)還具有設(shè)置倒計(jì)時(shí)時(shí)間、復(fù)位等功能。

2.? 主要功能

a.通過2位數(shù)碼管顯示倒計(jì)時(shí)器信息,倒計(jì)時(shí)范圍:0到99秒。

b.通過獨(dú)立按鍵設(shè)置啟動(dòng)、倒計(jì)時(shí)時(shí)間。

3.? 源程序(Keil5)

本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用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}; //共陰數(shù)碼管 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;
/*-----延遲函數(shù)-------*/
void delay(int z)
{
	while(z-->0);
}
/*-----顯示函數(shù)-------*/
void display(int n)
{
	if(n>0)
	{
	s2=1;s1=0;  	//顯示十位
	P0=tab[n/10];  //除10,取十位數(shù)值
	delay(100);	   //延遲顯示
	s1=1;s2=0;	   //顯示個(gè)位
	P0=tab[n%10];  //求余,取個(gè)位數(shù)值
	delay(100);	   //延遲
	}
	else
	{				//當(dāng)輸入值小于0,顯示0
	s2=1;s1=0;	    //顯示十位
	P0=tab[0];	    //除10,取十位數(shù)值
	delay(100);	    //延遲
	s1=1;s2=0;   	 //顯示個(gè)位
	P0=tab[0];		//求余,取個(gè)位數(shù)值
	delay(100);	    //延遲顯示
	}			  
}
/*-----外部中斷0中斷服務(wù)函數(shù)----------*/
void RESET() interrupt	0
{
	sec=0;	 //恢復(fù)初始值
	b=20;	 //恢復(fù)初始值
	TR0=0;	 //關(guān)閉定時(shí)器
	
}
/*-----外部中斷1中斷服務(wù)函數(shù)----------*/
void START() interrupt	2
{
	TR0=1;	//打開定時(shí)器
}
/*-----定時(shí)器T0服務(wù)函數(shù),計(jì)時(shí)功能----------*/
void timer0() interrupt 1
{
	i--;   //50ms時(shí)間到
	TH0=(65536-50000)/256;	//存放高8位,50ms
	TL0=(65536-50000)%256; 	 //存放低8位
	if(i==0)
	{
	i=17;            //1s計(jì)數(shù)
	sec++;			//軟件計(jì)數(shù)1s
	}
}
/*------鍵值掃描函數(shù)----------*/
void key()
{	
	k0=1;k1=1;	    	//讀按鍵
	key1=P2;	        //將P2的值賦值給key1
	key1=key1&0x03;		//屏蔽高6位,保留k0,k1的值
	while(key1!=0x03)   //判斷是否有按鍵按下
	{
	delay(600);			//消抖動(dòng)
	key1=P2;
	key1=key1&0X03;
	while(key1!=0x03)	 //當(dāng)有按鍵按下時(shí)
	{
	if(k0==0) b=b+1;   	 //按下k0按鍵時(shí),初始值加1
	else b=b-1;			 //按下k1按鍵時(shí),初始值減1
	k0=1;k1=1;		   //判斷按鍵是否抬起
	key1=P2;		  //重新將P2的值賦值給key1
	key1=key1&0x03;
	while(key1!=0x03)  //判斷是否有按鍵按下
	{
	key1=P2;
	key1=key1&0x03;
	}
	}
	}
}

4.? 仿真proteus8.6

? 本設(shè)計(jì)采用proteus8.6軟件(內(nèi)附安裝包)實(shí)現(xiàn)仿真設(shè)計(jì),如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請(qǐng)盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

計(jì)時(shí)界面:

5.? 設(shè)計(jì)報(bào)告

設(shè)計(jì)報(bào)告主要包括硬件電路、軟件設(shè)計(jì)、仿真調(diào)試等等,僅供參考。

6.? 資料清單

設(shè)計(jì)資料主要包括C程序+仿真+設(shè)計(jì)報(bào)告+使用說明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤下載鏈接:【L01】百度網(wǎng)盤下載鏈接

更多單片機(jī)仿真設(shè)計(jì)合集:單片機(jī)仿真設(shè)計(jì)合集

  • 單片機(jī)仿真設(shè)計(jì)合集資料獲取.pdf
    下載

相關(guān)推薦