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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4221|回復: 3
打印 上一主題 下一主題
收起左側

8位搶答器蜂鳴器響應時間超短為什么

[復制鏈接]
跳轉到指定樓層
樓主
ID:126457 發表于 2016-6-13 09:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define  max 30
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;//置倒計時計數初值
}
void delay(uint xms)
{
uint x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--) ;//延時1s
}
void display()
{
d1=0;         //控制開始置數
P0=tab[num/10];//倒計時控制取最高位
delay(5);
d1=1;          //停止置數操作
d2=0;
P0=tab[num%10];//倒計時取最低位
delay(5);
d2=1;
x1=0;         //控制開始置數
P0=tab[flag/10];//選手號控制
delay(5);
x1=1;         //停止置數操作
x2=0;
P0=tab[flag%10];
delay(5);
x2=1;
}
void main()
{            
init();
while(1)
{
  jianpan();
  display();
}
}
void timer0(void) interrupt 1
{
TL0=0XB0; //重裝初值,定時50ms
TH0=0X3C;
aa++;
if(aa==30)//1秒到了
{
  aa=0;//計數清零
  num--;
  if(num==0)//倒計時為0時迅速變為初值同時關中斷停止倒計時
  {   
   num=max;
   TR0=0;
  }
  buz=0;//要求蜂鳴器響
  delay(30);//蜂鳴器響,時間為一秒buz=1;
}  
}
/**************************************************
按鍵控制   程序的核心部分
****************************************************/
void jianpan()
{
if(zk1==0&flag==0)
{
  delay(5);//消除數碼管抖動操作
  flag=0;//數碼管顯示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(30);
   buz=1;
  }
  if(num==0)
   num=max;                           
  if(flag!=0)//ZK2鍵清零操作
  {
   flag=0;
   num=max;//倒計時顯示最大值
   TR0=0;//注意此時關中斷,不再進行倒計時
   buz=0;
   delay(30);
   buz=1;   
  }
  while(!zk2)//倒計時中ZK2 鍵不可影響
  display();
}
if(k1==0&&TR0==1)
{            
  buz=0;
  delay(30);
  buz=1;
  delay(5);
  flag=1;
  TR0=0;//此鍵按下關中斷,其他選手按鍵不再受影響                           
  display();
}
/*************************************
以下原理相同
*************************************/
if(k2==0&&TR0==1)
{
  buz=0;
  delay(30);
  buz=1;
  delay(5);
  flag=2;
  TR0=0;            
  display();
}
if(k3==0&&TR0==1)
{            
  buz=0;
  delay(30);
  buz=1;
  delay(5);
  flag=3;
  TR0=0;
  display();
}
if(k4==0&&TR0==1)
{            
  buz=~buz;
  delay(30);
  buz=1;
  delay(5);
  flag=4;
  TR0=0;                           
  display();
}
if(k5==0&&TR0==1)
{
  buz=0;
  delay(30);
  buz=1;
  delay(5);
  flag=5;
  TR0=0;                           
  display();                                                           
}
if(k6==0&&TR0==1)
{            
  buz=0;
  delay(30);
  buz=1;
  delay(5);
  flag=6;
  TR0=0;
  display();         
}
if(k7==0&&TR0==1)
{
  buz=0;
  delay(30);
  buz=1;
  delay(5);
  flag=7;
  TR0=0;
  display();
}
if(k8==0&&TR0==1)
{
  buz=0;
  delay(30);
  buz=1;
  delay(5);
  flag=8;
  TR0=0;                                                                                         
  display();  
}
}
為什么我的蜂鳴器就很輕微的滴一聲就沒了,很短暫!幾乎瞬間的事情

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:7485 發表于 2016-6-13 18:34 | 只看該作者
第一:你的time0就沒有啟動。應加:TR0=1(大概是你抄寫漏掉了)

第二:蜂鳴器的延時時間太短。但是你的溢出是1/30s,你用循環延時方法,響的時間不可能達到或超過溢出時間。
你可以試一試,使用time1來延時。
也可以在中斷內置以標志位,中斷外根據標志位的狀態控制蜂鳴器。
回復

使用道具 舉報

板凳
ID:126741 發表于 2016-6-14 20:48 | 只看該作者
蜂鳴器壞了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久亚州在线播放 | 亚洲午夜精品 | 欧美黑人巨大videos精品 | 秋霞a级毛片在线看 | 天天综合日日夜夜 | 亚洲欧洲精品一区 | 亚洲欧美日本国产 | 午夜在线免费观看视频 | 99精品一区二区 | 中文字幕亚洲精品 | 一二区视频| 中文字幕91av | 国产精品揄拍一区二区久久国内亚洲精 | 国产色爽 | 国产精品美女久久久久久免费 | 精品成人在线视频 | 夜夜骚| 羞视频在线观看 | 日韩在线免费视频 | 日韩精品视频在线观看一区二区三区 | 欧美久久久久久久 | 欧美mv日韩mv国产网站91进入 | 日韩一区不卡 | 日韩一区在线观看视频 | 成人免费视频网站在线看 | 国产丝袜一区二区三区免费视频 | 免费成人国产 | 国产激情91久久精品导航 | 天天干天天玩天天操 | 久久99精品久久久久久琪琪 | 国产成人精品一区二 | 亚洲午夜精品一区二区三区 | 中文字幕免费 | 日本一区视频在线观看 | 蜜臀网 | 成人在线播放 | 婷婷中文在线 | 色资源在线观看 | 国产精品欧美一区二区三区 | 亚洲精品在线看 | 国产欧美日韩一区 |