找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2172|回复: 2
打印 上一主题 下一主题
收起左侧

单片机八路抢答器为什么蜂鸣不响,程序要怎么改呢?

[复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
  1. #include "reg51.h"
  2. #include "intrins.h"
  3. unsigned char code SMG_CODE[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  4. //共阴数码管“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”
  5. sbit AnJan_1=P1^0;
  6. sbit AnJan_2=P1^1;
  7. sbit AnJan_3=P1^2;
  8. sbit AnJan_4=P1^3;
  9. sbit AnJan_5=P1^4;
  10. sbit AnJan_6=P1^5;
  11. sbit AnJan_7=P1^6;
  12. sbit AnJan_8=P1^7;
  13. sbit start=P3^1;    //开始键
  14. sbit reset=P3^2;    //复位键
  15. sbit BZ=P3^0;      //蜂鸣器
  16. char i,a,state=0;
  17. void Yanshi10ms(unsigned int m)   //误差0us
  18. {
  19.     unsigned char j,h;
  20.     for(;m>0;m--)
  21.         for(h=38;h>0;h--)
  22.             for(j=130;j>0;j--);
  23. }
  24. void main()
  25. {
  26.     BZ=1;
  27.         TMOD=0x01;                 //定时器0方式1
  28.         TH1=(65536-50000)/256;                //恢复定时器1初值
  29.         TL1=(65536-50000)%256;
  30.         EA=1;
  31.         P0=0x00;
  32.     while (1)
  33.     {
  34.                 while(state==0)
  35.                 {
  36.                         if(start==0)
  37.                         {
  38.                                 Yanshi10ms(1);
  39.                                 if(start==0)
  40.                                 {
  41.                                 P0 = 0x40;
  42.                                 BZ=0;
  43.                                 ET1=1;TR1=1;
  44.                                 a=0;
  45.                                 state=1;
  46.                                 while(start==0);
  47.                                 }
  48.                         }
  49.                 }
  50.                 while(state==1)
  51.                 {
  52.                                 if(AnJan_1==0)
  53.                                 {
  54.                                         P0 = SMG_CODE[1];
  55.                                         BZ=0;
  56.                                         ET1=1;TR1=1;
  57.                                         state=2;
  58.                                 }
  59.       
  60.                                 if(AnJan_2==0)
  61.                                 {
  62.                                         P0 = SMG_CODE[2];
  63.                                         BZ=0;
  64.                                         ET1=1;TR1=1;
  65.                                         state=2;
  66.                                 }
  67.       
  68.                                 if(AnJan_3==0)
  69.                                 {
  70.                                         P0 = SMG_CODE[3];
  71.                                         BZ=0;
  72.                                         ET1=1;TR1=1;
  73.                                         state=2;
  74.                                 }
  75.       
  76.                                 if(AnJan_4==0)
  77.                                 {
  78.                                         P0 = SMG_CODE[4];
  79.                                         BZ=0;
  80.                                         ET1=1;TR1=1;
  81.                                         state=2;
  82.                                 }
  83.       
  84.                                 if(AnJan_5==0)
  85.                                 {
  86.                                         P0 = SMG_CODE[5];
  87.                                         BZ=0;
  88.                                         ET1=1;TR1=1;
  89.                                         state=2;
  90.                                 }
  91.       
  92.                                 if(AnJan_6==0)
  93.                                 {
  94.                                         P0 = SMG_CODE[6];
  95.                                         BZ=0;
  96.                                         ET1=1;TR1=1;
  97.                                         state=2;
  98.                                 }
  99.       
  100.                                 if(AnJan_7==0)
  101.                                 {
  102.                                         P0 = SMG_CODE[7];
  103.                                         BZ=0;
  104.                                         ET1=1;TR1=1;
  105.                                         state=2;
  106.                                 }
  107.       
  108.                                 if(AnJan_8==0)
  109.                                 {
  110.                                         P0 = SMG_CODE[8];
  111.                                         BZ=0;
  112.                                         ET1=1;TR1=1;
  113.                                         state=2;
  114.                                 }
  115.                         if(reset==0)
  116.                         {
  117.                                 state=0;
  118.                                 P0=SMG_CODE[17];
  119.                                 BZ=1;
  120.                                 break;
  121.                         }
  122.                 }
  123.                 while(state==2)
  124.                 {
  125.                         if(reset==0)
  126.                         {
  127.                                 state=0;
  128.                                 BZ=1;
  129.                                 P0=SMG_CODE[17];
  130.                                 break;
  131.                         }
  132.                 }
  133.     }
  134. }
  135. void Dingshiqi1() interrupt 3
  136. {
  137.         TH1=(65536-50000)/256;               
  138.         TL1=(65536-50000)%256;
  139.         a++;
  140.         if(a>=20)                              
  141.         {
  142.                 ET1=0;TR1=0;
  143.                 a=0;
  144.                 BZ=1;
  145.         }
  146. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:96682 发表于 2019-4-11 19:44 | 只看该作者
要响得用对蜂鸣器和三极管
回复

使用道具 举报

板凳
ID:123289 发表于 2019-4-12 16:01 | 只看该作者
你向P3.0送个1看它响不响?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表