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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机八路抢答器proteus仿真图及C语言源代码
2 K" F7 k; c. @
! H6 o% Z# B# \' C- Z" S: d6 K1 z5 K
( B: D1 e: ~: j) P, I( \
单片机c语言源代码如下:; i  T- ?9 r3 e, |. O& O
//名称:八路抢答器
& \$ M; j( _8 D4 W3 o//功能:主持人按下按键开始抢答,此时抢答灯闪烁
9 p; o" _( k( a+ k//十秒内抢答,如果没有抢答的则直接复位
- ~7 @3 q6 K4 t8 ]$ M//如果有人抢答成功,则其他人抢答无效,60s内答完超过60s自动复位* w& [/ y" _9 Z$ x# V" j) w( ^
//回答期间抢答灯常亮,回答的人方灯闪烁,直到回答完毕,灯常亮表明回答有效
! G' y0 A1 S& m' F9 u8 F% h//如果超过60s自动复位,回答结束主持人打开按键,复位。7 ]( _% O: k0 c2 Y+ v
#include<reg51.H>6 c, b( `8 h! w' j

( q( n0 T; ]1 Z
  n3 l& s+ G: s- [- w5 ^% m' z( ^
sbit Presenter=P2^0;5 _  I# E% b' n
sbit K=P3^2;4 k) M8 m% K+ D) a# E
bit Presenter_flag=0,flag;//主持人按键标志位,仅允许一个数据通过标志位
4 b, t" v- X3 T7 nunsigned char Timer=0,i;  //时间标志+ R' d$ s' @* k+ [* D0 a0 {
unsigned char ren=0xff;7 D$ M2 T# u, s: \( p
bit x=0;% x/ L! O7 y  q1 t) u
void System_Init();
( h& ~+ W' Q" W3 E  I' mvoid System_Rest();8 c* Y9 q6 H) _8 ?& e: S' p6 d
void main(); `8 j2 e6 F( R. T
{! @$ i, [/ B; m
   System_Init();# X+ F$ r$ C3 r8 ]8 R$ d
  while(1)
0 B1 c& O9 }9 K# ?5 ]  {2 U4 N1 E2 _$ |
  if(Presenter_flag)        //主持人按键按下时开始系统
5 g( N1 @7 d: o3 j5 W( x: _- a  { + f# g! \+ z1 l9 R; g& t8 m5 Y
        K=1;
& {. U* U& R" x4 y* l        if(K==1)         //主持人按键起开% A9 J% l- C9 `+ r, e
        {break;2 V4 _4 A9 D# P# E2 L
        Presenter_flag=0;& ?( j2 q- t7 X+ q# E' K- v$ g: C: J
        }
. L( D, V: _3 O4 q  }. F( w" S( ?8 [! l, h
  else
0 s& ]# i/ v( `2 b6 D/ ?  System_Rest();
5 ^5 l8 n7 ~9 C+ j3 u8 H4 j2 H  }
; N; G* l, {% Y4 B0 D% z}
# E# z# G- ]2 Svoid System_Init()
* U6 ]0 c0 F* y% J6 Y: y$ D{
7 d6 U. V5 Z. E' r# G% \  EA=1;                         //打开中断
5 Y& S5 Y5 b) x( [) n4 W( a  EX0=1;
. Y% K+ w5 e8 m2 z% s- E' Q6 V  IT0=1;% A9 o9 z9 l: b+ z* d- r
  TMOD=0x01;' i% _4 V1 ?) |% L9 W: c* Y# ^
  ET0=1;" l/ h! W) @' ?. n; N% \4 e7 c, f
  TH0=(65535-50000)/256;   //50ms& m4 m& v4 J7 n( F: f
  TL0=(65535-50000)%256;, R" [  J. a! ^5 z
  Presenter=0;
, R  q  y7 c, S  TR0=0;
$ T; l' C  Z/ S( Q( V}" @; Y6 v' m% I
void System_Rest()
' ]3 @' e% n& b. S& @/ ]& H{; j$ B! J/ c) G: `; b( m* B! v
  P0=0xff;         //复位设置:在主持人按键起开或者,抢答时间超过10s或者答题时间超过60s
  `! G9 Y2 Y& O8 C( w! y' h, K6 f, |  P1=0xff;) u1 h7 v5 e) `) J& ^
  TR0=0;5 M/ m* m1 [. v2 \
  Presenter=0;3 D$ q! x. r( X2 D! x# Z* G1 B
  flag=1;- s8 Q$ a0 j0 S# b& d
  i=0;, ~, r7 K* B+ _* t
  Timer=0; ! e3 N) L3 g7 P% L
}) n1 e+ Y* g- E9 R! C0 |  L2 ^# u
void into() interrupt 0
3 N% F8 e# d: g; H+ n, i7 J{9 P! D* U* v6 ^6 }9 [+ z
  Presenter_flag=1;//主持人按键按下
/ F2 v+ X' s% Q% ~. M  TR0=1;
6 l% }9 }$ F4 ], I8 J' B9 u! Q/ k}
+ |4 y3 ?; q" x  B' Yvoid Timer0() interrupt 1- E8 }9 u2 m" a+ L/ [) z, \  h5 |
{
( u) g$ x3 t/ b( {  TH0=(65535-50000)/256;
) d) m: \2 v/ m& T  s2 S. q  TL0=(65535-50000)%256;
. ?3 _) Y* {' x+ |0 [  }3 H6 c  i++;
- R& p  a4 U! m  if(i==20)                                   //1s钟5 }, T' E1 v: q
  {
8 t5 @" X+ F4 R0 ~1 z+ P    i=0;$ i% c: H: Z$ d% D* V) I* E6 N
    Timer++;0 H) X3 I2 Y' Q$ V* e
        P1=0xff;8 q4 E2 L& u4 u/ x. a: z3 e
        if((Timer<10)&&(P1==0xff)&&(flag==1))         //10s抢答时间,10s内如果无人抢答则复位2 e. ~- v- T+ S) C7 B( n, ~
        {
) P( n. V, ?& p, V& o% l          Presenter=~Presenter;                //抢答指示灯闪烁' w1 O* j  {# V7 ]$ r: x2 j0 Z, ?  v
        }
; ~! G- e5 ]; N, g) b$ g' ]        else if((Timer>=10)&&(P1==0xff)&&(flag==1))
; |& j& K6 Y: s. c$ t" c        {
: w- C% d+ M& D          Presenter_flag=0;& r- p# C, s. }1 \# f. Z
          Timer=0;( W* w+ Q7 k+ P9 A( I6 w% {: k
          i=0;
& r# |2 f+ o2 Z. F. y0 \' z" L        }
8 @/ i# b1 l6 X        P1=0xff;; [8 W; T7 E1 Y1 a
        if((Timer<=60)&&(P1!=0xff)&&(flag==1)) //答题时间,60s没答完则复位
2 b3 e/ k7 p1 R' x7 S3 o        {
+ w. ^1 y4 _6 }* |" V% R: T, N          ren=P1;# q) S2 ]0 n0 _, M, h8 M
          Presenter=1;% p! M5 ]+ N+ P! n1 K' _0 [
          flag=0;
% [7 I2 T9 Z8 r% ?2 z1 _        }
  C1 r9 h, T8 V0 F( q: D5 a2 s8 D         if(flag==0)6 _3 _: U  v/ T- k
          {! t+ f9 W' ^3 Q; f
            if(x==0)
3 V4 X+ X2 V2 y; j' f4 i                {x=10=0xff;}
) x' a7 a( E" C9 K8 }* p: _                else if(x==1)" c; n; f& E. D3 G
                {x=00=ren;}
. l; g/ ?* ~4 M          }( ?& I7 B; ~7 k) a2 ~8 E$ |9 ~/ {
          if((flag==0)&&(P1==0xff))
6 k9 e# z: x/ G% N7 q/ e7 D                {P0=ren;TR0=0;flag=1;}% C/ U( Y4 c* J& j2 F* Y( f# x  ?" i( r: \
        if((Timer>60)&&(P1!=0xff))
- ~# Y' p, k" S! R6 ?5 B! x        
# ^. F& c) l, s0 y. I- v  l) ^$ f2 c, j/ G( y
8 v. {# r2 O" }
; U7 Y9 i% `( m# B) s' \7 Z
2 c, I$ V; `' u/ j- K+ O7 E
…………限于本文篇幅 余下代码请从论坛下载附件…………
/ N1 m* L0 D1 v
游客,如果您要查看本帖隐藏内容请回复

3 R, B9 Z7 c5 t  g1 K, A- g0 Z! E" h( x( X8 z3 k7 Y1 i, B

该用户从未签到

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那个软件大富豪女尽快改变就能看     $ g3 z* ]) a! B
& P" L3 Z' Y( S! K* Y

7 X* H2 n, q3 {  z9 T& d  z* j9 r% I2 j3 u% ~* S0 Q9 c+ f
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-13 00:29 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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