久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 八位競賽搶答器 單片機課程設計 PPT文檔 仿真 程序等下載 [打印本頁]

作者: 51黑dd    時間: 2016-4-7 03:07
標題: 八位競賽搶答器 單片機課程設計 PPT文檔 仿真 程序等下載
PPT文檔: 仿真:
以上壓縮包所有資料下載: 八路搶答器單片機課程設計.rar (168.9 KB, 下載次數(shù): 219)


侯從彬;呂衛(wèi)偉;劉艷平;朱強

實驗要求:

1:  兩個兩位的數(shù)碼管,

一個用來顯示倒計時時間,

一個用來顯示選手的編號。

2: 主持人控制兩個按鍵K1-K2:

功能鍵K1:搶答開始,開始倒時,揚聲器響。

 

功能鍵K2 功能1:清除顯示(時間從倒計時的最大時間開始,選手編號顯示清零);

功能2:設置倒計時的時間。

 

八位選手各控制一鍵,待主持人按下開始鍵后,第一個按下?lián)尨疰I的選手的編號將被顯示。揚聲器停,其他鍵均被屏蔽,至到主持人再次按下開始鍵。

實驗模塊分析:

  1. 數(shù)碼管的使用:

共陰極:

 

 

 

(1)

 

選端 置數(shù)功能  P00P07

 

輸入

0X3F

0X06

0X5B

0X4F

0X66

0X6D

0X7D

0X07

0X7F

0X6F

顯示

0

1

2

3

4

5

6

7

8

9

 

 

 

(2)

 

段選端: 控制功能   D0..D1;

D0=0 啟動置數(shù);

D0=1  停止置數(shù);

 

例如:置D0=0;P0=0X3F;

則數(shù)碼管顯示數(shù)字 0

 

2 .

本實驗需要兩個數(shù)碼管同時顯示,實際上是達不到同時顯示的;但可以利“視覺暫留效應”達到此效果;

同時也要考慮到消除數(shù)碼管顯示抖動現(xiàn)象;

這就需要實驗者熟練應用              delay() 延時函數(shù);

 

              d1=0;

              P0=tab[num/10];//倒計時控制

              delay(5);

              d1=1;

              d2=0;

              P0=tab[num%10];

              delay(5);

              d2=1;

其中的              delay(5)              就是為了達到一上所敘述的目的             

 

<二>、

蜂鳴器:

 

只要在BUZ 端接地即可鳴叫。

 

<二、程序框圖>

 

                主函數(shù):



實物圖連接:

P1口接8選手開關,在ZK1 ZK2為主持人開關,功能與題目要求一樣

P0 口為數(shù)碼管位選 。

注意:P0口使用時必須接上拉電阻否則為高阻態(tài) 。

P2口的分別用作主持人開關(P2^0P2^1)兩數(shù)碼管段選(P2^4...P2^7);

 

 

實驗程序分析:

 

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

#define  max 20

uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,};

sbit d1=P2^4;//**************段選

sbit d2=P2^5;

sbit x1=P2^6;

sbit x2=P2^7;

sbit k1=P1^0;//*********************八位選手開關

sbit k2=P1^1;

sbit k3=P1^2;

sbit k4=P1^3;

sbit k5=P1^4;

sbit k6=P1^5;

sbit k7=P1^6;

sbit k8=P1^7;

sbit zk1=P2^0;//*****************************主持人開關zk1              zk2

sbit zk2=P2^1;

sbit buz=P2^2;//*******************蜂鳴器

uchar num,aa;

uchar f,flag;

void jianpan();

 

void init(void)

{

TMOD=0X01;//***************T0,模式1,定時

TL0=0XB0; //********************定時50ms

   TH0=0X3C;

   ET0=1;    //**************開中斷

   EA=1;

   num=max;//置倒計時計數(shù)初值

}

 

void delay(uint xms)

{

   uint x,y;

   for(x=xms;x>0;x--)

    for(y=110;y>0;y--);

 

}

/**********************************************

倒計時  選手號顯示函數(shù)

**********************************************/

void display()

{d1=0;         //控制開始置數(shù)

P0=tab[num/10];//倒計時控制取最高位

delay(5);

d1=1;          //停止置數(shù)操作

 

d2=0;

P0=tab[num%10];//倒計時取最低位

delay(5);

d2=1;

 

x1=0;         //控制開始置數(shù)

P0=tab[flag/10];//選手號控制

delay(5);

x1=1;         //停止置數(shù)操作

x2=0;

P0=tab[flag%10];

delay(5);

x2=1;

}

/**********************************************************主函數(shù)部分

**********************************************************/void main()

{             

init();

while(1)

{ jianpan();display();}              }

 

/***************************************

中斷控制倒計時

*************************************/

void timer0(void) interrupt 1

{

   TL0=0XB0; //******重裝初值,定時50ms

   TH0=0X3C;

   aa++;

   if(aa==20)//**********************************1秒到了

    {

     aa=0;//**************************************計數(shù)清零

num--;

if(num==0)//倒計時為0時迅速變?yōu)?/span>初值同時關中斷停止倒計時

{   num=max;

TR0=0;   }

 

buz=0;//***************要求蜂鳴器響

delay(20);//**************************蜂鳴器響,特別注意時間為一秒buz=1;

                

     }  

}

/**************************************************

按鍵控制   程序的核心部分

****************************************************/

void jianpan()

{

if(zk1==0&flag=0)

{

delay(5);//消除數(shù)碼管抖動操作

flag=0;//數(shù)碼管顯示0

display();

TR0=1;//ZK1鍵按下,開中斷以此控制只有當此鍵按下時才搶答

}

if(zk2==0&&TR0==0)//注意這里要求TR0=0;

{

delay(5);//消除抖動

if(zk2==0&&TR0==0)

if(flag==0)

{num--;buz=0;delay(20);buz=1;}

if(num==0)

num=max;                           

if(flag!=0)//ZK2鍵清零操作

{

flag=0;

num=max;//倒計時顯示最大值

TR0=0;//注意此時關中斷,不再進行倒計時

buz=0;

delay(20);

buz=1;   

}

while(!zk2)//倒計時中ZK2 鍵不可影響

display();

                            }

 

/**********************************************************TR0控制搶答先后順序

*********************************************************/

 

if(k1==0&&TR0==1)//注意此時TR0=1才執(zhí)行以下按鍵操作

{             

buz=0;

delay(20);

buz=1;

delay(5);

flag=1;

TR0=0;//此鍵按下關中斷,其他選手按鍵不再受影響                           

display();

}

/*************************************

以下原理相同

*************************************/

if(k2==0&&TR0==1)

buz=0;delay(20);buz=1;

delay(5);

flag=2;

TR0=0;             

display();

}

 

if(k3==0&&TR0==1)

{             

buz=0;delay(20);buz=1;

delay(5);

flag=3;

TR0=0;

display();

}

if(k4==0&&TR0==1)

{             

buz=0;delay(20);buz=1;

delay(5);

flag=4;

TR0=0;                           

display();   }

if(k5==0&&TR0==1)

{

delay(5);

flag=5;                    

TR0=0;

display();                                                           

}

if(k6==0&&TR0==1)

{             

buz=0;delay(20);buz=1;

                                

delay(5);

                      

flag=1;

                      

TR0=0;

display();          }

 

                           

if(k7==0&&TR0==1)

buz=0;delay(20);

buz=1;

delay(5);

flag=7;

TR0=0;

display();

}

 

if(k8==0&&TR0==1)

buz=0;delay(20);

buz=1;

delay(5);

flag=8;

TR0=0;                                                                                         

display();  

}

             

}

 

 

1.

此實驗最大的特點便是中斷的巧妙應用

另外要注意延遲函數(shù)對數(shù)碼管顯示效果的影響

2.

控制選手先后順序時,設置了兩個條件:按鍵和TR0

TR0則是控制關鍵,也是主持人按鍵控制的關鍵


作者: tianwu    時間: 2016-6-10 12:05
寫得真棒

作者: 14100807    時間: 2016-11-28 00:56
翻譯后都是errors
作者: 盧思琪    時間: 2017-6-8 10:57
感謝樓主 收益良多啊
作者: 海邊的卡夫卡    時間: 2017-6-11 13:50
樓主的protues不能修改,怎么樣改變只讀模式啊
作者: wefew    時間: 2017-12-8 13:28
很棒,收貨很多
作者: mumu123123    時間: 2017-12-20 20:25
這個很詳細.得到很大收獲
作者: 黃自勉    時間: 2018-6-2 17:04
這個可以 有點干貨

作者: 看動漫哈    時間: 2019-3-23 15:18
在哪里下載
作者: dpjnmsl    時間: 2019-4-12 16:13
很棒,對于初學者來說收獲很大
作者: 六哈    時間: 2019-6-13 14:46
感覺挺難,第一次做的時候頭緒都沒有,看了你這之后好多了




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品欧美精品日韩精品 | 亚洲精品一区在线观看 | 欧美国产91 | 日韩一区二 | 色爱区综合 | 午夜视频在线免费观看 | 欧美日韩精品久久久免费观看 | 精品亚洲一区二区三区四区五区 | 成人在线观看免费 | 亚洲人成人一区二区在线观看 | 国产成人免费 | 国产午夜在线 | 国产精品国色综合久久 | 欧美xxxx在线 | 国产精品一区二区免费 | 久久网站免费视频 | 精品一二三区视频 | 久久久免费电影 | 中文字幕在线观看一区 | 亚洲精品68久久久一区 | 日韩国产一区二区三区 | 九九综合 | 四虎影院在线免费观看 | 亚洲男人的天堂网站 | 久草免费在线视频 | 久久久久久免费观看 | 国产精品久久久久一区二区三区 | 亚洲欧美一区二区三区国产精品 | 国产三级网站 | 一区二区视频在线 | 欧美在线一区二区三区 | 亚洲av毛片 | 欧美日韩在线观看一区二区三区 | 天天干天天操天天看 | 午夜免费网 | 色婷婷av一区二区三区软件 | 日日日操| 高清人人天天夜夜曰狠狠狠狠 | 一级aaaa毛片 | 91免费福利在线 | 国产一区二区小视频 |