資源簡介
本次設計用由AT89C51編程控制LED七段數碼管作顯示的球賽計時計分系統。系統應具有賽程定時設置,賽程時間暫停,及時刷新甲、乙雙方的成績以及賽后成績暫存等功能。
內容包括:顯示、鍵盤、時鐘等內容

代碼片段和文件信息
#include
#include
#define?uchar?unsigned?char?
#define?uint?unsigned?int
sbit?A8=P2^0;??
sbit?A9=P2^1;
sbit?A10=P2^2;
sbit?A11=P2^3;
sfr?P00=0x80;
uchar?code?wei_1[]={0X010X020X040X080X100X200X400X80};
uchar?code?table[]={0X3F0X060X5B0X4F0X660X6D0X7D0X070X7F0X6F0x770x7c0x390x5e0x790x710X000X40};
uchar?minute=12;??//分
uchar?second=0;???//秒
uchar?key_status=0; //按鍵狀態值
uchar?scoreA=0; //A隊得分
uchar?scoreB=0; //B隊得分
uchar?count1=20; //記錄定時器時間
uchar?match=1; //比賽節數
uchar?rule_time=24; //記錄24秒規則
uchar?rule_flag=0; //記錄24秒規則是否啟用
/*
初始化IO口
*/
void?IO_init(){
A8=0;
A9=0;
}
/*
初始化時間
*/
void?time_init(){
TMOD?=?0x01;
TH0?=?(65536-50000)/256;
TL0?=?(65536-50000)%256;?
EA?=?1;
ET0?=?1;
}
/*
延時函數
*/
void?delay_ms(uint?z){
??uint?i;
uchar?j;
for(i=0;i
for(j=0;j<100;j++);
}
}
/*
計時函數
*/
void?T0_Time()?interrupt?1?using?1{
if?(count1--?==?0)?
{
second--;
rule_time--;
count1?=?20;?
}
TH0?=?(65536-50000)/256;
TL0?=?(65536-50000)%256;
}
/*
時間顯示函數
*/
void?time_display(uchar?w2uchar?d2){
uchar?shi1ge1;
shi1=d2/10;
ge1=d2%10;
P00=wei_1[w2];
A10=1;
A10=0;
P00=table[shi1];;
A8=1;
A8=0;
delay_ms(5);
P00=0;
A10=1;
A10=0;
A8=1;
A8=0;
P00=wei_1[w2+1];
A10=1;
A10=0;
P00=table[ge1];
A8=1;
A8=0;
delay_ms(5);
P00=0;
A10=1;
A10=0;
A8=1;
A8=0;
}
/*
分數顯示函數
*/
void?score_dispaly(uchar?w2uchar?d2){
uchar?qian2shi2ge2;
qian2=d2/100;
shi2=d2%100/10;
ge2=d2%100%10;
P00=wei_1[w2];
A9=1;
A9=0;
P00=table[qian2];;
A8=1;
A8=0;
delay_ms(10);
P00=0;
A9=1;
A9=0;
A8=1;
A8=0;
P00=wei_1[w2+1];
A9=1;
A9=0;
P00=table[shi2];
A8=1;
A8=0;
delay_ms(10);
P00=0;
A9=1;
A9=0;
A8=1;
A8=0;
P00=wei_1[w2+2];
A9=1;
A9=0;
P00=table[ge2];
A8=1;
A8=0;
delay_ms(10);
P00=0;
A9=1;
A9=0;
A8=1;
A8=0;
}
/*
鍵盤輸入函數
*/
void?key(){
static?uchar?key_new?=?0?key_ltemp;
key_status?=?0;??????????????????
P1?=?0x0f;
if((P1?&?0x0f)?!=?0x0f)
{
delay_ms(1); ?????
if(((P1?&?0x0f)?!=?0x0f)?&&?(key_new?==?1))
{
key_new?=?0;
/*
矩陣鍵盤掃描
*/
key_l?=?(P1?|?0xf0);???
P1?=?key_l;
switch(P1)
{
/*
開始計時/比賽繼續
*/
case?0x7e:??
TR0=1;??
rule_flag=1;
time_display(6rule_time);
break;??
/*
暫停比賽
*/
case?0x7d:
TR0=0;
break;??
/*
加分,同時24秒清零和總計時器停止計時
*/
case?0xee:?
TR0=0;?
scoreA?+=3;
rule_time=24;???
rule_flag=0;
break;
case?0xed:?
TR0=0;?
scoreA?+=2;
rule_time=24;???
rule_flag=0;
break;
case?0xeb:??
TR0=0;?
scoreA?+=1;
rule_time=24;???
rule_flag=0;
break;
case?0xde:??
TR0=0;?
scoreB?+=3;
rule_time=24;???
rule_flag=0;
???break
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-08-10?21:53??籃球計時器\
?????文件??????165770??2018-06-23?20:42??籃球計時器\Last?Loaded?pic.DBK
?????目錄???????????0??2018-08-10?21:50??籃球計時器\Listings\
?????文件???????11167??2018-08-10?21:50??籃球計時器\Listings\yuanma.lst
?????文件???????15349??2018-08-10?21:51??籃球計時器\Listings\yuanma.m51
?????目錄???????????0??2018-08-10?21:51??籃球計時器\ob
?????文件???????11359??2018-08-10?21:51??籃球計時器\ob
?????文件?????????957??2018-08-10?21:51??籃球計時器\ob
?????文件????????2563??2018-08-10?21:51??籃球計時器\ob
?????文件??????????79??2018-08-10?21:51??籃球計時器\ob
?????文件???????12843??2018-08-10?21:50??籃球計時器\ob
?????文件??????165762??2018-08-10?21:53??籃球計時器\pic.DSN
?????文件?????????742??2018-08-10?21:53??籃球計時器\pic.PWI
?????文件????????4516??2018-06-23?20:41??籃球計時器\yuanma.c
?????文件???????????0??2018-08-10?21:48??籃球計時器\yuanma.uvproj
- 上一篇:C語言車輛管理系統
- 下一篇:HOUGH_LINE.cpp
評論
共有 條評論