• 方案介紹
    • 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ī)的秒表計(jì)時(shí)器設(shè)計(jì)(三)!!!

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

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

共1個(gè)文件

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

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

程序編譯:Keil5 C51

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

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

1.? 簡(jiǎn)介

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

2.? 主要功能

a.通過(guò)8位數(shù)碼管顯示計(jì)時(shí)器信息,計(jì)時(shí)范圍:0到60分60秒。

b.通過(guò)獨(dú)立按鍵設(shè)置啟停、復(fù)位。

3.? 源程序(Keil5)

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

#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int  u16;
#define duan P0
#define wei P2
/*******端口定義*******/
sbit deng=P1^0;
sbit seg_sel=P1^4;
sbit bit_sel=P1^5;
sbit start=P3^0;
sbit reset=P3^1;
/*******變量定義*******/
u16 tem_ms;
u8 temp_buf[5][3];
u8 arr_pt;
u8 run_flag;//為1開(kāi)始計(jì)數(shù)
u8 n_ten_ms,n_sec,n_min;
u8 code seg_table[]={0xc0,0xf9,0xa4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};	//段選
u8 code bit_table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80	 //位選	 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0xbf}
                    };
void delay(u16 num)
{
   u16 x,y;
   for(x=num;x>0;x--)
     for(y=110;y>0;y--); 	
}
void display_led(u8 which_bit,u8 which_number)
{
	bit_sel=1;
	wei=bit_table[which_bit];
	bit_sel=0;
	seg_sel=1;
	duan=seg_table[which_number];
	seg_sel=0;
}
	void display(u8 which_bit,u8 which_number)
{
	u8 x,y;
	x=which_number/10;//分離十位
    y=which_number%10;//分離個(gè)位
	display_led(5,16);
    delay(2);
    display_led(2,16);
    delay(2);
	if(which_bit==1)
	{
		display_led(6,y);
        delay(2);
		display_led(7,x);
        delay(2);
		
	}
   if(which_bit==2)
	{
		display_led(4,y);
        delay(2);
		display_led(3,x);
        delay(2);
		
	}
   if(which_bit==3)
	{
		display_led(1,y);
        delay(2);
		display_led(0,x);
        delay(2);
		
	}
}
void reflash(void)
{
    display(1,n_ten_ms);
	display(2,n_sec);
	display(3,n_min);
}

4.? 仿真proteus8.6

? 本設(shè)計(jì)采用proteus8.6軟件(內(nèi)附安裝包)實(shí)現(xiàn)仿真設(shè)計(jì),如下圖所示。proteus軟件一般存在高低版本兼容問(wèn)題,該仿真是通過(guò)proteus8.6導(dǎo)出的,所以請(qǐng)盡量使用proteus8.6打開(kāi)文件,低于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)告+使用說(shuō)明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤(pán)下載鏈接:【K03】百度網(wǎng)盤(pán)下載鏈接

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

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

相關(guān)推薦