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

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

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

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

共1個(gè)文件

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

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

程序編譯:Keil5 C51

編程語(yǔ)言:C語(yǔ)言

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

1.? 簡(jiǎn)介

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

2.? 主要功能

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

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

c.支持倒計(jì)時(shí)10s內(nèi)蜂鳴器報(bào)警。

3.? 源程序(Keil5)

本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define duan P0
#define wei P3
sbit key1 = P2^3;  //設(shè)置
sbit key2 = P2^4;  //加
sbit key3 = P2^5;	//減
sbit key4 = P2^6;	//啟動(dòng)
sbit out = P2^2;	//輸出控制 ,低電平有效
sbit di = P2^0;		//蜂鳴器

bit flag=0,flag1=0,shan=0;
uchar knum,shan_cont;
uchar shi=0,fen=0,miao=0,cont,cont1,cont2;
uchar code duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰段碼表
uchar code weima[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位碼
//uchar code weima[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//位碼	加反相器用

void delay(uint z)
{
	uint x,y;
	for(x=z; x>0; x--)
		for(y=114; y>0; y--);	
}

void init()
{
	TMOD |= 0x01;			   //定時(shí)器0 工作方式1
	TH0 = (65536-50000)/256;   //50ms初值 @12MHz
	TL0 = (65536-50000)%256;
	EA = 1;
	ET0 = 1;
	TR0 = 1;	
}


void dispaly(uchar shi,uchar fen,uchar miao)
{
		
		duan = 0;
		wei = weima[5];
		duan = 0x40;
		delay(1);


		duan = 0;
		wei = weima[2];
		duan = 0x40;
		delay(1);


	if(knum==0)
	{
		duan = 0;
		wei = weima[7];
		duan = duanma[shi/10];
		delay(1);
		
		duan = 0;
		wei = weima[6];
		duan = duanma[shi%10];
		delay(1);
			
			
		duan = 0;
		wei = weima[4];
		duan = duanma[fen/10];
		delay(1);
		
		duan = 0;
		wei = weima[3];
		duan = duanma[fen%10];
		delay(1);
		
		
		duan = 0;
		wei = weima[1];
		duan = duanma[miao/10];
		delay(1);
		
		duan = 0;
		wei = weima[0];
		duan = duanma[miao%10];
		delay(1);
	}
	else
	{
		if(knum==1)
		{
			if(shan==1)
			{
				duan = 0;
				wei = weima[7];
				duan = duanma[shi/10];
				delay(1);
			
				duan = 0;
				wei = weima[6];
				duan = duanma[shi%10];
				delay(1);
					
					
				duan = 0;
				wei = weima[4];
				duan = duanma[fen/10];
				delay(1);
				
				duan = 0;
				wei = weima[3];
				duan = duanma[fen%10];
				delay(1);
				
				
				duan = 0;
				wei = weima[1];
				duan = duanma[miao/10];
				delay(1);
			
				duan = 0;
				wei = weima[0];
				duan = duanma[miao%10];
				delay(1);
			}
			else
			{
				duan = 0;
				wei = weima[7];
				duan = duanma[shi/10];
				delay(1);
			
				duan = 0;
				wei = weima[6];
				duan = duanma[shi%10];
				delay(1);
					
					
				duan = 0;
				wei = weima[4];
				duan = duanma[fen/10];
				delay(1);
				
				duan = 0;
				wei = weima[3];
				duan = duanma[fen%10];
				delay(1);
				
				
				duan = 0;
				wei = weima[1];
				duan = 0;
				delay(1);
			
				duan = 0;
				wei = weima[0];
				duan = 0;
				delay(1);
			
			}
		}

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)盤下載鏈接:【L02】百度網(wǎng)盤下載鏈接

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

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

相關(guān)推薦