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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机八路抢答器proteus仿真图及C语言源代码
. T( k3 k- x7 \# g, r
0 ]: k# B0 Y- S- N1 h
: f. ?2 e& l7 n  ~& T" n0 I+ b) l
单片机c语言源代码如下:
* }5 J  c% v" r5 c" U9 B  O/ p//名称:八路抢答器( o( ~8 L6 N0 u" t
//功能:主持人按下按键开始抢答,此时抢答灯闪烁1 }% J. M4 B3 s2 w, F2 L  u* f
//十秒内抢答,如果没有抢答的则直接复位# _# E0 T3 j8 q0 l/ z
//如果有人抢答成功,则其他人抢答无效,60s内答完超过60s自动复位
  w- |! r1 @$ g" x" Q/ K//回答期间抢答灯常亮,回答的人方灯闪烁,直到回答完毕,灯常亮表明回答有效7 ^- Z! g7 _9 |8 V3 O
//如果超过60s自动复位,回答结束主持人打开按键,复位。
8 b  Z$ ^5 W" \#include<reg51.H>' O+ _9 N! x$ k
. w, f5 Y( t# C

( F- D: s! W* i  jsbit Presenter=P2^0;% R! G- m$ u  n4 y  {1 S$ o
sbit K=P3^2;7 X0 \: a3 Y1 g$ c4 J
bit Presenter_flag=0,flag;//主持人按键标志位,仅允许一个数据通过标志位
8 C  Y+ h& P6 N0 }9 hunsigned char Timer=0,i;  //时间标志$ R6 D1 G5 h; n
unsigned char ren=0xff;, y0 ^  o9 ?0 Z) h
bit x=0;! W7 @: U8 |  M8 o# H) C, n* }
void System_Init();- h5 t* W' H, z
void System_Rest();- w' A- X/ N9 m2 i0 G  q
void main()9 t# g% w" }1 Z7 s+ ?6 b; |; I) Q, N0 H
{9 q  O8 T% B! u: }9 J5 F( c
   System_Init();& K1 r# \7 w% C
  while(1)6 W% a2 r: q2 x0 N- P
  {
9 u/ Y5 O! F( C" N" m3 ^, l5 u% ?  if(Presenter_flag)        //主持人按键按下时开始系统4 c  r5 m3 c) P( k1 E1 o& o6 H3 P
  { / J6 G8 b; q+ d  k8 {" I1 t# h! l
        K=1;# M& r5 L$ X* f$ ^) S: _  d
        if(K==1)         //主持人按键起开) ]+ d- u4 |1 h
        {break;+ l  U* {" o; E1 I$ i
        Presenter_flag=0;
' H7 K5 O/ M/ f% Q9 l, z  z        }
2 d% c9 Q7 I* \) b  }
+ \3 B/ z5 b' r8 }$ ?/ Q6 m  else
3 K3 O7 C! I8 B8 [& D& g" A  System_Rest();
' H% u9 a6 O! ]) u: r; i; G  }
4 _0 F/ G* Y' U- ?: T; b& n  ~}
4 |3 w! T: C+ T8 lvoid System_Init()6 J& W# M; k4 K
{7 I' J0 ?7 N% Y2 W# u! z
  EA=1;                         //打开中断
+ Z' T& Y1 x1 F2 l- x: i  EX0=1;
6 q: S. H5 C1 g8 u9 g7 [) |- u  IT0=1;
" {: r" y/ p6 b8 o+ H3 ~  TMOD=0x01;
7 }" A; W* ^- @3 i. L- U  ET0=1;
8 x. S5 V# `: b0 Q$ B# ], Z; ?  TH0=(65535-50000)/256;   //50ms! H& [. [3 m7 ]$ A1 p+ p' }
  TL0=(65535-50000)%256;
# I* x& d% Q/ k6 ^* n+ f* i. X& v: c  Presenter=0;, I; {5 g9 x, H; a( n: E+ W
  TR0=0;: g2 K1 p* v+ Y+ N4 Y
}" |& Q4 o3 R/ V; H0 G" E2 a
void System_Rest(); g" m9 O! {8 C9 J' I
{
4 q$ G2 t' Z- j# Y+ ~  P0=0xff;         //复位设置:在主持人按键起开或者,抢答时间超过10s或者答题时间超过60s
& N0 M) ~: s2 {" o4 @  P1=0xff;
% Q3 x3 b) S( S1 Y! p. v! d  TR0=0;
4 I- g: R' t* G+ }) C( v8 u" }  Presenter=0;) ^3 W5 j/ b3 w" \: B
  flag=1;+ F9 e1 c3 `. x% H" U1 g
  i=0;
( z4 @" f, F1 m5 B, K7 R, f  Timer=0;
. `# S  A: r" P5 d  t6 S0 u# I}8 [" g/ {$ G" Z  `3 [
void into() interrupt 02 i# U" z4 m, {) n( L( Z
{! k* u) ], c* K6 H
  Presenter_flag=1;//主持人按键按下# X8 n3 x% K$ f4 h* ?% l
  TR0=1;4 x, ~% e* T' g# N: T9 y1 i1 q3 Y
}* j, {4 s9 p: o. _
void Timer0() interrupt 1' [2 O- i7 S  `
{
* _2 J1 M. M; u( v% g  TH0=(65535-50000)/256;
9 |, c2 C$ X4 O  TL0=(65535-50000)%256;+ E  i# d" W7 o
  i++;" D9 P0 p% V/ ~  U
  if(i==20)                                   //1s钟
, _# K1 F- x; r9 q  z- q$ }  {
  t; P( g5 X/ h0 L7 ]    i=0;9 z4 X$ Q+ @1 v) i6 W
    Timer++;( s- m# [# R, N5 d
        P1=0xff;/ \2 a8 t' e9 h/ X% T1 `7 k
        if((Timer<10)&&(P1==0xff)&&(flag==1))         //10s抢答时间,10s内如果无人抢答则复位) t5 ?9 K* v4 @. M
        {
7 q$ v- Y$ r" f6 y3 o          Presenter=~Presenter;                //抢答指示灯闪烁
; q* P" q) j2 h3 W: o/ h        }
! T. I' z5 O7 r4 E" J- n        else if((Timer>=10)&&(P1==0xff)&&(flag==1))
/ p0 V! m9 H5 d8 F7 M$ g7 n        {7 w) U. G5 e# Q% I; d" v# t3 }
          Presenter_flag=0;
2 V/ t+ G7 ?  G* O9 x% b/ J          Timer=0;' {( r& H; F6 n5 @/ ~* R
          i=0;
5 `6 u) f2 [' s4 j# {8 H        }
& \" Z. W2 Q; ]. ~( F" ~        P1=0xff;
& ^: `7 \2 X, ~3 r9 [        if((Timer<=60)&&(P1!=0xff)&&(flag==1)) //答题时间,60s没答完则复位
' j& j5 Q6 W5 N' A1 q* [( ?        {# _1 a* s# L1 v) R4 l
          ren=P1;
1 }0 C' r4 ~6 U# j* d/ x          Presenter=1;4 v$ o5 a  a4 |0 M" e* i
          flag=0;
. ~0 m8 x) [. \5 v% L        }' m# T4 b( u/ e$ a
         if(flag==0)( |, X& d9 g6 A4 N( i$ M, H8 u
          {
6 k! i& O1 v* }) }$ c: [) h) o            if(x==0)& d- G+ w2 B" c# J& _: j" s) C
                {x=10=0xff;}0 Q- W9 `& A  q3 B
                else if(x==1)
. {+ g7 H* o+ Y, {8 y                {x=00=ren;}5 L# K* x! J4 N7 s+ s4 n
          }
( L! s/ F; Z- r; y          if((flag==0)&&(P1==0xff))1 C# F3 B$ P& T. b
                {P0=ren;TR0=0;flag=1;}
& u* t4 P2 F% Y! K5 z: w        if((Timer>60)&&(P1!=0xff))+ H8 ?+ Z% L/ U6 F# j2 M
        
& x5 N* H1 {' P4 b7 @& e7 O# h: `- A, ?2 U1 a7 j$ j
; c& l  ]; ^+ r) R

# U: v6 ]. c7 S# Q. z
8 G3 N& |# }% R' N
…………限于本文篇幅 余下代码请从论坛下载附件…………
- i" ]5 M) p7 u' ]) |4 K
游客,如果您要查看本帖隐藏内容请回复
, i0 Z8 a) E$ z' _1 T& z! S0 J
, P  \! p6 @% J% R8 Q9 c

该用户从未签到

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那个软件大富豪女尽快改变就能看     
* @: h7 r7 ]( u  a% X+ V( L5 A
: v3 v4 ~) z$ D$ ?" Z2 d6 \5 c1 A) B$ n/ [0 a
+ V& g, C$ u7 S- s+ U% H2 h' h# s
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-6 22:46 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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