找回密码
 注册
关于网站域名变更的通知
查看: 632|回复: 5
打印 上一主题 下一主题

单片机八路抢答器proteus仿真图及C语言源代码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-4 14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
单片机八路抢答器proteus仿真图及C语言源代码4 M0 L3 d4 N: @! ^
* P* H3 S1 z9 x

! R8 B0 Y3 E( @7 K单片机c语言源代码如下:
  z$ j% j. ?9 u2 n; _& M8 D//名称:八路抢答器
4 F- |. T2 _% }6 \//功能:主持人按下按键开始抢答,此时抢答灯闪烁
2 f2 p8 n- k9 ?& d//十秒内抢答,如果没有抢答的则直接复位
. a$ y( w; @/ V& n//如果有人抢答成功,则其他人抢答无效,60s内答完超过60s自动复位% b$ J2 L+ B- {+ x% a) v5 z
//回答期间抢答灯常亮,回答的人方灯闪烁,直到回答完毕,灯常亮表明回答有效
" ?( a* G7 I* e, e+ }7 j//如果超过60s自动复位,回答结束主持人打开按键,复位。( x4 m8 g7 O0 f9 |* ?* |. C
#include<reg51.H>
  q7 M( j# k; G9 l& A8 ^8 O  u& t1 B! k; W4 B: \- Q: b

: V4 a/ {5 c6 l) O( H4 S% C3 Wsbit Presenter=P2^0;
1 `) H- f1 q( l6 @sbit K=P3^2;& y% Z6 @5 }  L9 }
bit Presenter_flag=0,flag;//主持人按键标志位,仅允许一个数据通过标志位/ m4 H' D0 v4 c7 _( Q
unsigned char Timer=0,i;  //时间标志& e3 m+ n) t( F! R
unsigned char ren=0xff;- K2 N0 _5 e3 m, {% N# K" e
bit x=0;0 l' c0 x" q  c$ Q  o" z% L
void System_Init();
( L) L& g! u* Nvoid System_Rest();/ g$ _! M) S4 P* b1 }8 g
void main()4 C$ l7 b1 }, n/ J3 F8 o
{' l% E3 R4 V0 C; W; F7 S- f0 v4 W
   System_Init();
$ f$ K  Z: w* y% I  while(1)2 z/ F5 z3 c# ^8 J% B* q
  {9 y6 @. K3 C. a- D: r! _- k
  if(Presenter_flag)        //主持人按键按下时开始系统  [8 C2 u) M' R: t/ A6 w( [2 H
  { ' F' ?% _: c" e! L( P
        K=1;
: w8 Q& t+ J* W        if(K==1)         //主持人按键起开9 ~: U) a* n! S) C  c
        {break;/ N; e% }" U# y9 F: j
        Presenter_flag=0;
/ P2 a' l" {9 z% W4 }4 E" V        }# {8 Z; m% e) Z7 d" U6 U
  }2 C- ~5 r0 X! H
  else2 O# l: Y) y5 `( J6 j
  System_Rest();
; d. s# W6 {; o2 l  }0 {) r; k* ^+ I& c9 W
}
2 J- q1 V/ C: ?# rvoid System_Init()
8 L# E) q! }" q( e6 h1 t{
5 M" Y. {! q" V* M+ J& i  EA=1;                         //打开中断/ t' J) S5 `2 p
  EX0=1;! l; r; _3 I5 O6 r$ W$ W
  IT0=1;7 ]; `% A+ ^+ G0 Y% v" H! Y8 A+ q, `
  TMOD=0x01;
0 }" ]- n: g$ ]1 t% {& e  ET0=1;0 U0 ?5 G$ F0 q+ @, {
  TH0=(65535-50000)/256;   //50ms3 q& f9 n9 i. Z% A4 z$ {' ^
  TL0=(65535-50000)%256;
" L  t& R  q2 ]4 U1 ]  Presenter=0;
4 g9 B6 ?: p( q  TR0=0;
' w, w, ]5 S/ F+ X) T}! s! e, M% f/ g
void System_Rest()9 a2 o5 b8 }  `, T  B. ~3 c# B8 j, u- ]8 U
{, b7 }+ X: ~; l
  P0=0xff;         //复位设置:在主持人按键起开或者,抢答时间超过10s或者答题时间超过60s6 F# \7 j9 i' m& P/ d" u
  P1=0xff;+ q4 q+ J# a: e4 [8 }
  TR0=0;
% F( U: h  z0 ?% M- b. G, P  Presenter=0;! N. z, k/ d7 B% v' z1 `& ~
  flag=1;" S: ^* A$ A8 q$ E2 R' V9 l: l$ q6 |
  i=0;/ o& b( |1 J7 S* j
  Timer=0;
+ q( T& p" h3 X; c}
- p9 r& k$ ^2 L  e3 l5 _/ \4 _void into() interrupt 0
8 O$ l2 m+ M9 Z! w# ]{
0 m3 H7 g( S( u( n) K+ [  Presenter_flag=1;//主持人按键按下3 v& F9 w) `" n/ [
  TR0=1;+ y5 {) ]( s5 |
}
! E/ X; @1 E1 Z) r9 Z* nvoid Timer0() interrupt 1; a! W  L; Q& z) i  \5 u; K
{
  M- M% g' V' L  TH0=(65535-50000)/256;3 L& i4 j* F2 u8 M# L, W9 V6 p7 j8 T
  TL0=(65535-50000)%256;
2 R8 g& b# x& ?. O  i++;
8 J; i, E7 d1 k# `  if(i==20)                                   //1s钟) L2 c1 I  l$ n+ c7 W
  {
& i3 k  G# |  _1 t    i=0;3 D( _) M; r/ p9 I# M9 i
    Timer++;0 O7 p/ L: ?# L% [- z8 e
        P1=0xff;: `8 D5 u$ N# X$ N) M
        if((Timer<10)&&(P1==0xff)&&(flag==1))         //10s抢答时间,10s内如果无人抢答则复位
  q9 j4 k# y8 }4 i        {8 K+ p3 \" ]. X& h
          Presenter=~Presenter;                //抢答指示灯闪烁
; H; @# \5 w  P) O7 ~) s  }        }0 l+ @+ y# G. o4 R
        else if((Timer>=10)&&(P1==0xff)&&(flag==1))# z7 s8 G' S5 `; }  o
        {5 Q7 _2 {9 U. Z0 t, ~
          Presenter_flag=0;% `- G; F6 K$ C& u1 H
          Timer=0;0 G3 e+ s4 l# @. f) H; b% r1 ~7 A
          i=0;
+ W7 n6 o7 {' [+ _+ [        }
0 A( ^, Y2 k, \5 g$ ]        P1=0xff;
1 ~$ N% o# x1 `% G  W        if((Timer<=60)&&(P1!=0xff)&&(flag==1)) //答题时间,60s没答完则复位) k6 `9 H9 B: I& u  [- m4 H5 r
        {( b9 @% |5 N4 \' i/ N* ?" d; ^
          ren=P1;7 g7 c) `1 [& _/ a9 @+ E3 ?+ o( x) _. i1 q
          Presenter=1;, D7 v% M- D' N+ v1 B
          flag=0;) P3 B# _% C) e5 b, i) n7 ?( B) J
        }
, O6 K! h8 k$ {' I3 b% D6 W9 T         if(flag==0)2 ~( E$ @1 X8 A3 {
          {
2 D% k% h0 y6 E' h- @0 e            if(x==0)
1 l8 f: F0 C: `, ]/ {( k                {x=10=0xff;}: [" b( D+ q2 n' o
                else if(x==1)  ]; Y/ I$ v- ]4 V# i$ p( c
                {x=00=ren;}& d1 N/ h% f$ D' H7 y3 c& D2 U" j
          }% h$ @0 [5 w5 k- A2 A
          if((flag==0)&&(P1==0xff))4 C1 e# O5 L& \: j* {; H5 m
                {P0=ren;TR0=0;flag=1;}
! Q' [) B* o- M        if((Timer>60)&&(P1!=0xff))
# A( |) ?9 h1 K/ s        
6 B4 _4 c! p3 j0 L- b( l# [, k8 A( Z1 S( ~" [- {# M, `
& R1 W" O. B" h+ C# ^* ~" p0 E

( `6 x: \, _% g: _. `
6 s" l9 ]9 k/ ^
…………限于本文篇幅 余下代码请从论坛下载附件…………
0 a3 l8 a" ^  \, F
游客,如果您要查看本帖隐藏内容请回复

5 l0 f0 u0 L$ m& ?2 K
! v6 J8 ?$ T4 G' v, d$ k

该用户从未签到

2#
发表于 2019-1-4 17:51 | 只看该作者
以前也做过一个,看看楼主的代码

该用户从未签到

3#
发表于 2019-1-31 16:38 | 只看该作者
看看楼主的代码

该用户从未签到

4#
发表于 2020-4-2 20:48 | 只看该作者
谢谢谢谢谢谢谢谢

该用户从未签到

6#
发表于 2020-4-16 13:38 | 只看该作者
共和国和人女警一定会v那个软件大富豪女尽快改变就能看     
, W; p$ T: ~% O8 @6 V  v- H4 V3 I
1 j6 n  o& i$ V5 ?, ?& W2 _4 A* H5 _, t
; _; \  m8 y* g# Q0 B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-6 23:18 , Processed in 0.156250 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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