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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机八路抢答器proteus仿真图及C语言源代码2 N* ^  X& l9 K- l' `

! v* c, V8 @2 p' o( |

. H' a4 D. @' ]: d/ Z6 J单片机c语言源代码如下:
' E5 r6 B$ Y/ h//名称:八路抢答器! k( c- j" `  c' A0 ]& H& R
//功能:主持人按下按键开始抢答,此时抢答灯闪烁, `, d* ?  C& p+ v
//十秒内抢答,如果没有抢答的则直接复位
1 o9 @: \% I* \  q6 S//如果有人抢答成功,则其他人抢答无效,60s内答完超过60s自动复位
) B" k' h" {/ _1 R2 e7 ?//回答期间抢答灯常亮,回答的人方灯闪烁,直到回答完毕,灯常亮表明回答有效
9 G/ k2 W1 L) `//如果超过60s自动复位,回答结束主持人打开按键,复位。6 n& I% E' p8 @" _. M
#include<reg51.H>
: P6 F, P" O5 B1 p  R9 j; y6 x# @( v1 g0 x( J

) ?1 L9 y2 i. o5 X& H( ]6 U0 Asbit Presenter=P2^0;
' ?+ B" [. U+ K/ Y' ^' y' Dsbit K=P3^2;
% Q! m0 U# b6 K, m) U4 z. wbit Presenter_flag=0,flag;//主持人按键标志位,仅允许一个数据通过标志位0 o! f+ P+ D+ u7 u$ d$ l8 z
unsigned char Timer=0,i;  //时间标志7 k- `$ v; S, G/ v  g4 o
unsigned char ren=0xff;
& Z; j# S; a# w3 z, ybit x=0;
1 V$ ~. y; E4 F6 w7 Xvoid System_Init();3 W* N) L9 K! t, c( r: t& p
void System_Rest();
/ N5 {2 w0 S" i" F3 L% o% Xvoid main()
9 p' s* p# P5 j1 n, i/ U0 D. c* u8 a{
/ [' b1 }, |4 t" k3 e# t   System_Init();. C! L. p& z/ o* I  F) J
  while(1)
( S4 g# g2 \! F8 R( h. z! D* L, H& y  {$ u7 m/ j2 o! B2 m2 Y2 K
  if(Presenter_flag)        //主持人按键按下时开始系统
+ V6 K# A. Q4 d* A$ M" U  { 0 u6 k" |) P+ R2 F+ ~3 ^; i3 F
        K=1;
0 J& m' @& \$ a* K; Y! o" h5 ]        if(K==1)         //主持人按键起开, S2 y7 T8 @, S# X. E
        {break;
% x7 _% q0 A% g7 k        Presenter_flag=0;
- t5 z7 Z2 A$ C! M( v3 q        }6 ?- ~- i7 X) ~- S' ~; p
  }/ R7 f5 C* P6 a
  else
. a* N- e; Y% }* w! Z  System_Rest();5 h' s; W  Z- x
  }
$ B' |2 w# z! @& V6 H}! t( ~4 ?' s: n0 }
void System_Init()
/ x2 x1 b+ T: u4 n2 Y4 h6 D{. X: w# l8 m; R# s& [
  EA=1;                         //打开中断1 Y- Q1 E: u3 u" j& S( F
  EX0=1;1 x3 J" H2 }  B% x, |
  IT0=1;
0 J; J8 x5 [5 A: E1 q  N/ |2 h  TMOD=0x01;/ c: c4 r; k, E% h5 B8 T
  ET0=1;
* ~: c9 s, i0 G/ c9 k5 P  v$ }! T  TH0=(65535-50000)/256;   //50ms
* W8 x, B( K  B# n- ?  TL0=(65535-50000)%256;
* q5 x" T- H. T  Presenter=0;
7 {/ O  A, ^  f; T  TR0=0;' G$ V5 `( l' S# H4 [: f7 A; ?- A
}9 H$ h* R# H+ p0 z% w9 ]9 y" j5 w
void System_Rest()9 ?7 X4 J. [, g
{
& c0 A: U8 w' R" H9 T  P0=0xff;         //复位设置:在主持人按键起开或者,抢答时间超过10s或者答题时间超过60s! \. `# e+ B6 G9 H
  P1=0xff;) k4 S! u3 L" F/ `9 X
  TR0=0;
% a% ~- c1 T1 B$ p7 p  Presenter=0;  i- L0 x6 h# l4 F4 y
  flag=1;
! i- }. C9 F0 a! O5 P* m/ V, S6 D: V  i=0;
1 m: |: \! v, T7 R  Timer=0; ! K, I  y# R( s  k! C8 Z
}% F7 j2 x4 y5 e) u$ f
void into() interrupt 07 [2 f- t+ m7 v/ c! Y
{
2 v( ]! v+ u! l9 Z1 y" ]; r  Presenter_flag=1;//主持人按键按下* D/ G: a' r' X4 {
  TR0=1;2 [) N. T% e0 F: L7 h! o
}, Y/ I- v& q# c" E( J3 k! t5 f
void Timer0() interrupt 16 ~5 q5 G7 ?6 ]0 B+ S
{7 `) g+ @7 y; X4 A- p. S, a+ a3 }
  TH0=(65535-50000)/256;
3 [1 X  ?! L; Y" H+ D( J  TL0=(65535-50000)%256;3 b: w' |& r$ |- U+ s3 ?
  i++;
2 L, [" D$ i6 ~" M  if(i==20)                                   //1s钟! A9 v* N' U' {% a0 F
  {
( G% c& f$ G/ [- Z& l    i=0;2 h9 c  y* V6 M1 @. T8 s4 I/ X
    Timer++;0 z  L' w) G9 E/ W9 U( _2 Q9 x
        P1=0xff;9 Z& V4 m8 ]" y
        if((Timer<10)&&(P1==0xff)&&(flag==1))         //10s抢答时间,10s内如果无人抢答则复位
1 S  |. ~6 L' a& x) x  n  N        {
7 @4 D( z; ~- G& o, x          Presenter=~Presenter;                //抢答指示灯闪烁2 M% v' b1 C4 l4 W. {, B/ x
        }
. r2 S+ ]% V0 H# O4 K. Q7 r9 e        else if((Timer>=10)&&(P1==0xff)&&(flag==1)); R3 f; K# h) L2 _" L  w" q
        {
  ~' F# B$ z5 D4 M          Presenter_flag=0;/ S- m4 w& b4 K( c  ?; q) B4 j
          Timer=0;
: ]" K  G- k7 E! F! e1 \          i=0;. F" ~, R! t+ y# b
        }
* v; o! G7 T4 [7 Y        P1=0xff;- e# h9 G$ w) r4 B  M
        if((Timer<=60)&&(P1!=0xff)&&(flag==1)) //答题时间,60s没答完则复位9 d" F+ g7 v! h2 P3 P0 k
        {
# C; `; c, _4 @6 K; q1 ^" R          ren=P1;) d& l8 Q2 K. I8 Z
          Presenter=1;
2 s! o; T( s6 c" j) y! T/ Q          flag=0;* s/ @6 {) K3 j  D" A/ b+ q& U
        }
/ Z- N* q( A8 x) v         if(flag==0)
0 R3 S4 Q  H# W2 z) s0 a          {3 k8 Z- K1 H+ B  Q/ B& v  f
            if(x==0)
  O4 ^  e5 ~! `7 B+ f                {x=10=0xff;}
2 g% K( t  o. q, C                else if(x==1)
7 @7 c, q- x9 p% ~) ^6 A/ L                {x=00=ren;}
- d/ g1 `3 V: v, I9 ~  d0 A          }
* x3 @- C( G- J1 S$ j$ s          if((flag==0)&&(P1==0xff))
( u5 t  j  M$ G0 q" Y                {P0=ren;TR0=0;flag=1;}5 p- z7 T% R1 C' m
        if((Timer>60)&&(P1!=0xff))
' y6 s5 N9 ^+ D7 \' A9 G, Y        ( ?( `% u$ |1 G. p" i# l$ ^
4 S+ y7 U. ]4 }/ ^
- q2 f# R; K$ g( q3 q/ G' e/ E
. s4 B4 ?, e1 }) g' l1 I$ J
6 V2 T' E6 w" ?7 D4 H5 o
…………限于本文篇幅 余下代码请从论坛下载附件…………- V/ M6 s) J" A% N) g) u
游客,如果您要查看本帖隐藏内容请回复

, s6 z0 r6 I9 l+ Z& o4 M3 u' n8 ?- l; ?% U3 n

该用户从未签到

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那个软件大富豪女尽快改变就能看     & C8 o& _) g2 t

6 [5 Q+ s( S+ O' e* O: N' ^
- z) p0 C1 i9 X
$ s( l* k9 U& ^8 q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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