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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机八路抢答器proteus仿真图及C语言源代码
/ x$ L7 A4 H# ^2 ~! h: J
) D' q+ r" }% E- o0 `' Z6 G
, \7 G1 {4 W- u* |: v9 a# T$ ^% o
单片机c语言源代码如下:5 k6 r/ E+ j! k! K+ Q
//名称:八路抢答器! @7 _7 O& h% y, g( g* y+ q( a7 Q
//功能:主持人按下按键开始抢答,此时抢答灯闪烁
6 O- T$ Z& {- }. j- u( {% `, U//十秒内抢答,如果没有抢答的则直接复位5 U" I1 y# c$ T3 t
//如果有人抢答成功,则其他人抢答无效,60s内答完超过60s自动复位6 t. Q' u5 |* v- u" a  d
//回答期间抢答灯常亮,回答的人方灯闪烁,直到回答完毕,灯常亮表明回答有效
9 p- c/ w4 o9 h//如果超过60s自动复位,回答结束主持人打开按键,复位。
" \, Y( Q3 i- \, q4 L#include<reg51.H>; r, S( ?9 R0 f7 V3 N1 {0 k/ h
( F! p  c' S8 ]2 W% s( a; A

3 n( \$ _3 D# ^# N0 L8 Q4 }  Y8 Lsbit Presenter=P2^0;
, s# N( X: a9 W; nsbit K=P3^2;. `  g& p. |; x/ m: _
bit Presenter_flag=0,flag;//主持人按键标志位,仅允许一个数据通过标志位. C  Z. T( T+ I" D" Y, P+ e- x
unsigned char Timer=0,i;  //时间标志
# J9 `" h( _8 _2 ^; q, iunsigned char ren=0xff;$ [, ~0 O9 q  U; U- K* D% Y% P- P3 c
bit x=0;7 s( b2 `1 a: r9 F
void System_Init();
. F! z# R# m; _0 jvoid System_Rest();
* A9 M6 p  O) ?: ^* m/ Zvoid main()3 ?5 s& K# S0 h6 v
{
1 t5 G$ a6 W$ L( ^   System_Init();* C0 V+ v; m2 l2 ^
  while(1)
/ b/ f' y) Y: p  {& I8 P# {, f- q( q
  if(Presenter_flag)        //主持人按键按下时开始系统- g! Z- C5 b7 O3 B
  {
  f: y1 r/ ~/ @- w8 R        K=1;! \7 }! M4 L6 s* u* D7 p  {" ~
        if(K==1)         //主持人按键起开
7 V, q1 c" r4 o        {break;; B/ Z; A+ h$ U  Z7 R( c' g! `, D4 y
        Presenter_flag=0;4 y9 ^1 z3 T# V  C# b  a
        }
& ~! V. `7 `, N: ~  }
8 Y" x+ [- a8 N0 O+ v: t. x& ^  else
# K- e+ N' Z% _# @  System_Rest();
# [8 w$ Q2 o* S, x! ?  }
& k3 g% k9 i% P$ `$ A}7 f1 J; B- ?, e  X; ?/ a
void System_Init()
9 m3 }8 T) C) M8 R: r' V/ }/ D2 @{6 _0 X- n1 e, B( B4 Y9 d6 q
  EA=1;                         //打开中断
( K/ @9 s& F' @( K2 B* ~* R  EX0=1;; a# y3 }; o3 `% Q; a/ B( ]5 W
  IT0=1;
$ B- W( h! K& g  TMOD=0x01;
; C4 Q5 n/ F6 Q5 E3 @  ET0=1;
& k! l+ S( q: e2 O) L  TH0=(65535-50000)/256;   //50ms1 K  [. W' n/ g) ~6 h
  TL0=(65535-50000)%256;
$ H3 o# T$ R- x! O, x  Presenter=0;
% C- G! Y# b$ k! e  TR0=0;
7 m2 m' x' _  J- Y1 v& Q}8 e/ K9 ~6 ?. B7 V& K. C- y5 v
void System_Rest()6 t  e5 \) C8 ~6 X9 j+ E8 R6 ]
{  `+ p- a( Z8 E' T/ \
  P0=0xff;         //复位设置:在主持人按键起开或者,抢答时间超过10s或者答题时间超过60s. Q. @. o7 j6 [+ Q: A  W
  P1=0xff;
2 O6 O. Z/ ~$ c) V2 d8 c& }  TR0=0;' i: n; S& Y" N! b3 d7 t
  Presenter=0;8 c) a% q: g3 I6 O1 U
  flag=1;/ B2 m! f8 w8 ]- m+ x8 L6 I1 z5 U& L
  i=0;
' ]; ?9 _: R3 U5 q  Timer=0; 8 I! Q; V* w3 e9 R8 @! b
}
2 z' S9 J, O' L7 N2 r6 M/ Gvoid into() interrupt 0, i/ ^* {" t6 f" A4 s5 }
{
: v2 a& x9 T# K5 ]: O  Presenter_flag=1;//主持人按键按下
! C7 H6 s! o3 j0 L0 f  TR0=1;
! P5 ~$ o" C" i. I1 Z" k}! d4 C7 E* W: C5 i
void Timer0() interrupt 1' K! m! r' b/ ^
{, L0 z0 W" q. ?( V/ |% h
  TH0=(65535-50000)/256;
; c3 `. j1 |- f! @  i  TL0=(65535-50000)%256;: L) S; S) m/ u5 a
  i++;
2 _2 H! g7 y: x% B0 [  if(i==20)                                   //1s钟
( w5 k% O) f5 C5 i. v: B4 l  {1 [" l2 @& o4 n% i
    i=0;
# Z$ C. t4 G2 T, `$ y& D+ q    Timer++;
+ F  L5 M$ s3 G+ R/ S: k) @        P1=0xff;
& d5 E( q8 J# I, g9 H' X7 v        if((Timer<10)&&(P1==0xff)&&(flag==1))         //10s抢答时间,10s内如果无人抢答则复位
- x6 R% C) {3 t+ I4 ^        {( K) S' k( f3 L# }
          Presenter=~Presenter;                //抢答指示灯闪烁; K4 Y0 l6 ~5 Q" `. x4 u; R: Y
        }
$ x1 H  Y, I2 Y        else if((Timer>=10)&&(P1==0xff)&&(flag==1))
" W' W- d. u8 x; ?8 u9 X4 N9 P# w7 R        {
' p, @& Z4 Y: a" z          Presenter_flag=0;8 ], p! f) h2 C( y. W
          Timer=0;4 D9 T4 d. C# Z- M$ f0 x: x& k: \
          i=0;
$ l* S; U8 q# E$ `  y) w  E7 L0 l        }
. k# K+ V3 R' L; P        P1=0xff;7 J( V9 Y' Q. w: x5 Q+ L
        if((Timer<=60)&&(P1!=0xff)&&(flag==1)) //答题时间,60s没答完则复位
8 J$ }4 s4 w* {- @        {8 a9 @5 G0 Z! R
          ren=P1;4 P5 W" m7 h% l# I
          Presenter=1;
' f5 m% i: A0 o2 G" r          flag=0;# r  P4 _: g! F) \' l& f! m
        }
# S/ i. X# ]5 |6 _         if(flag==0)
" e6 m5 _' h" x, F4 f0 Q          {
2 I+ \7 D0 d" n, K% m/ ^3 i            if(x==0)
; w* t% g0 }8 ?                {x=10=0xff;}
; d4 w( {9 s' P/ W) y                else if(x==1)& X' V( M" U8 |4 R
                {x=00=ren;}
. X0 B5 R4 i; r+ \* ]: p2 K2 {  p          }3 S: D  p9 ^4 e8 U/ }& G! ^
          if((flag==0)&&(P1==0xff))# ~7 `- I$ d9 S! L3 _
                {P0=ren;TR0=0;flag=1;}
6 P6 s7 j: a' S( u        if((Timer>60)&&(P1!=0xff))/ ^5 G% Q9 [9 x# c$ E) @
        
3 |: _/ q: Z# ]# D6 ]
7 E- j/ G. I, Y+ D; ]: U6 m

) n' L) U' {5 Y: f8 q" c
3 w0 j$ j5 k, V# j  g: }6 n9 s

9 I, o5 A/ d' h# D3 @…………限于本文篇幅 余下代码请从论坛下载附件…………
: `  ?- w0 |" {8 S( s1 U
游客,如果您要查看本帖隐藏内容请回复
  \8 v  ~# j1 e0 b7 w; v

, b4 `- d) n' F0 r8 x

该用户从未签到

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那个软件大富豪女尽快改变就能看     $ i6 a1 X6 m. R3 Z3 v( ]5 \

" M/ Q. L0 o7 N9 Z+ o& C7 Q/ W9 [# Q# U& V" D
8 D6 \* n* q6 I6 m
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-21 21:39 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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