這是本人最近單片機的作品之一,純原創手打。
一、實驗目的
利用所學知識點(按鍵、數碼管、中斷等),設計一個籃球計分器。
二、實驗內容
利用兩位共陰數碼管、4082與門、AT89C51單片機、按鈕等元器件設計電路及相關代碼,完成以下功能:
AB兩隊各一個兩位(共陰)7段數碼管計分器,計數范圍00-99。
四個按鍵功能:
K1: 清零記分器
K2: 加1分
K3: 減1分
K4: 切換計分隊伍
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
3、原理圖:
圖片1.png (63.01 KB, 下載次數: 45)
下載附件
2020-4-25 13:35 上傳
單片機代碼#include "reg51.h"
sbit shi = P3^0; //十位位選
sbit ge = P3^1; //個位位選
char led_mod[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共陰數碼管012345679
unsigned char num1 = 0; //數碼管顯示內容 隊伍1分數
unsigned char num2 = 0;//隊伍2分數
unsigned char team = 1;//選擇隊伍 初始為1
void init_int0();
void delay(unsigned int time);
void display();
void main()
{
init_int0(); //中斷初始化
while(1)
{
display(); //數碼管顯示
}
}
void display()
{
shi = 0; //共陰極數碼管顯示十位 shi=P3^0連著兩位數碼管的1
ge = 1; //個位 ge=P3^1 連著兩位數碼管的2
P2 = led_mod[((num1/10)%10)]; //十位
P1 = led_mod[((num2/10)%10)];
delay(10);
P2 = 0x00; //消隱
P1 = 0x00;
shi = 1; //顯示個位
ge = 0;
P2 = led_mod[(num1%10)]; //個位
P1 = led_mod[(num2%10)];
delay(10);
P2 = 0x00; //消隱
P1 = 0x00;
}
void delay(unsigned int time){
unsigned int j = 0;
for(;time>0;time--)
for(j=0;j<125;j++);
}
void init_int0()
{
IT0=1;EX0=1;EA=1;
}
void key() interrupt 0 //鍵控中斷
{
delay(10); //延時消抖
if((P0 & 0x0f) != 0xf0) //檢測按鍵是否有按下
{
if((P0 & 0x01) == 0x00) //按鍵1按下
{
if(team == 1)num1 = 0;
if(team == 2)num2 = 0;
}
if((P0 & 0x02) == 0x00) //按鍵2按下
{
if(team ==1 && num1 < 99)
num1++;
else if (team == 2 && num2 < 99)
num2++;
}
if((P0 & 0x04) == 0x00) //按鍵3按下
{
if(team ==1 && num1 > 0)
num1--;
else if(team == 2 && num2 > 0)
num2--;
}
if((P0 & 0x08) == 0x00) //按鍵4按下
{
if(team == 1)team = 2;
else if (team == 2)team = 1;
}
}
}
4、實驗結果及分析
AB兩隊各一個兩位(共陰)7段數碼管計分器,計數范圍00-99。
四個按鍵功能:K1: 清零記分器K4: 切換計分隊伍 K2: 加1分 K3: 減1分
分析:有兩個記錄A、B隊伍分數的變量num1、num2,以及記錄當前控制隊伍的變量team,team的值只取1或2,表示當前控制隊伍為A隊或B隊,按下按鈕后,連接與門4082的INT0中斷口會從1變為0,觸發中斷,再根據P1口可以判斷按下的是哪個按鈕,若是K1則當前team的num變為0,若是K2,則當前team的num++,K3則當前team的num--,K4則team由1變0或由0變1。
數碼管分別連的是P1口和P0口,num1給P0,num2給P1,這樣就能兩個數碼管顯示不同的數字。兩個數碼管共用兩個單片機引腳作為數碼管的位選碼,當是個位時num的個位賦給P口,十位時,num的十位賦給P口,在超循環仿真下,就可以看起來是同時亮了。
籃球計分器 中斷 數碼管.zip
(92.69 KB, 下載次數: 54)
2020-4-25 13:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
原理圖、代碼在附件中
|