51單片機(jī)時(shí)鐘秒表課程設(shè)計(jì)
一、詳細(xì)功能設(shè)計(jì)
本文引用地址:http://2s4d.com/article/201611/323518.htm1、基于51單片機(jī)倒計(jì)時(shí)秒表,最大值為9999秒,計(jì)時(shí)單位為0.1秒;
2、計(jì)時(shí)的初始值為組員學(xué)號后4位,鍵盤啟動/停止計(jì)時(shí);
3、設(shè)計(jì)多個(gè)按鍵,使用鍵盤選擇不同成員的學(xué)號作為初始值。
二、8031最小系統(tǒng)設(shè)計(jì)
1、最小系統(tǒng)設(shè)計(jì)原理圖如圖1.0所示:
2、8031最小系統(tǒng)概述;
8031最小系統(tǒng)包含晶振電路與復(fù)位電路。 晶振選擇12MHZ晶振,晶振電容使用30pf電容瓷片電容。復(fù)位電路選擇上電復(fù)位。
三、硬件設(shè)計(jì)
1、數(shù)碼管電路
在本設(shè)計(jì)中,使用7段共陰極數(shù)碼管,選擇數(shù)碼管的型號為7SEG-MPX6-CC;
2、數(shù)碼管片選電路;
由于本設(shè)計(jì)需要顯示五位數(shù)字,同時(shí)為了驅(qū)動數(shù)碼管,使用了74HC154芯片。與此同時(shí),使用74HC154芯片還可以擴(kuò)展數(shù)碼管顯示數(shù)字的個(gè)數(shù)。
三、軟件設(shè)計(jì)
1、程序流程圖如圖3.0所示:
圖3.0 程序流程圖
2、程序流程說明
數(shù)碼管顯示和掃描鍵盤子函數(shù)放在0.1秒的定時(shí)器中斷里,而主函數(shù)的while(1)函數(shù)向數(shù)碼管顯示數(shù)據(jù)變量送數(shù)據(jù)。數(shù)碼管顯示函數(shù)接受鍵盤狀態(tài),根據(jù)狀態(tài)執(zhí)行開始計(jì)時(shí)、暫停、選擇學(xué)號等功能。
四、調(diào)試說明
1、仿真調(diào)試如圖4.0所示:
圖4.0 proteus 仿真效果
2、按下以組員的名字命名的按鍵時(shí),可以選擇相應(yīng)同學(xué)的學(xué)號的后四位為倒計(jì)時(shí)的初始值,如不設(shè)置初始值為0336,若按下“張洪榮”按鍵,初始值為0337;按下“開始”按鍵時(shí)開始倒計(jì)時(shí);按下“暫停”按鍵時(shí),計(jì)時(shí)停止;
附錄:源代碼下載:http://www.51hei.com/f/szgg.rar
1,程序源碼;
#include
#include
#include
int num =03; //我們學(xué)號的班別 03
int stu_num0 =36; //學(xué)號后兩位
int stu_num1 =37;
int stu_num2 =42;
int stu_num3 =11;
int stu_num4 =22
int num_count = 36; //將學(xué)號吼兩位選擇的值賦給 num_count,初始值為36
sbit start = P1^0; //開始按鍵
sbit stop = P1^1; //停止按鍵
sbit key0 = P1^2; //選擇同學(xué)
sbit key1 = P1^3; //選擇同學(xué)
sbit key2 = P1^4; //選擇同
sbit key3 = P1^5; //選擇同學(xué)
sbit key4 = P1^6; //選擇同學(xué)
sbit key5 = P1^7;
unsigned int T1msc;
unsigned char Ledc;
unsigned char Leds[]={8,6,0x13,5,1,2,3,4};
bit isStart;
int temp=9; //0.1秒存儲變量 初始值 9
code char LEDTAB[]=
{
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x00,
};
評論