日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

用mcs-51單片機做六人搶答器

要求:
  1:主持人按下啟動按鈕才能開始搶答;
  2:當沒有人搶答30秒后題目作廢;
  3:搶答之后有10秒的考慮時間如果答不上來題目作廢;
  4:顯示搶答人的號碼;
  5:顯示30秒倒計時時間;
全部回復(32)
正序查看
倒序查看
xing1234
LV.6
2
2007-12-08 09:02
如果有二個人在同一時間按下按紐(比如在1uS內或更短時間),單片機如何分配優(yōu)先級?
0
回復
jamesbt
LV.4
3
2007-12-08 10:47
@xing1234
如果有二個人在同一時間按下按紐(比如在1uS內或更短時間),單片機如何分配優(yōu)先級?
我做過
qq;67200357
0
回復
madboy21
LV.8
4
2007-12-08 14:38
@xing1234
如果有二個人在同一時間按下按紐(比如在1uS內或更短時間),單片機如何分配優(yōu)先級?
1個uS這個時間完全可以做得到,當然是采用了硬件鎖存電路,但是有沒必要考慮這個問題?這個概率太低了,基本上沒有發(fā)生的可能.就算碰上可以按系統(tǒng)邏輯判定.
0
回復
xing1234
LV.6
5
2007-12-08 15:39
@madboy21
1個uS這個時間完全可以做得到,當然是采用了硬件鎖存電路,但是有沒必要考慮這個問題?這個概率太低了,基本上沒有發(fā)生的可能.就算碰上可以按系統(tǒng)邏輯判定.
樓主的意思估計不想用太多的外圍電路,我只是一種極端的假設.
0
回復
hv12
LV.1
6
2007-12-08 17:30
這個不難呀.
0
回復
qb_0007
LV.2
7
2007-12-09 09:48
@xing1234
樓主的意思估計不想用太多的外圍電路,我只是一種極端的假設.
我想在軟件上作必要的保護
0
回復
xing1234
LV.6
8
2007-12-12 12:00
如果主持人還沒有按下按紐,而搶答的人已經有二個以上把按紐按下,并且保持閉合狀態(tài),這個時候如何顯示公平.
我只是一種想法,感覺有點意思.
0
回復
qb_0007
LV.2
9
2007-12-12 23:13
@xing1234
如果主持人還沒有按下按紐,而搶答的人已經有二個以上把按紐按下,并且保持閉合狀態(tài),這個時候如何顯示公平.我只是一種想法,感覺有點意思.
我想做個報警只要主持人沒有說開始有人按下?lián)尨痖_關就會產生報警提示有人犯規(guī).只是想法還沒有驗證.
0
回復
qb_0007
LV.2
10
2007-12-12 23:16
@hv12
這個不難呀.
對初學者來說就有點難了,做的時候想得太理想了存在的問題也不少呀,也不知如何解決.
0
回復
xing1234
LV.6
11
2007-12-14 15:17
@qb_0007
我想做個報警只要主持人沒有說開始有人按下?lián)尨痖_關就會產生報警提示有人犯規(guī).只是想法還沒有驗證.
如果只是做個樣機自個玩玩,也許沒什么,如果是產品的話最好想清楚,主持人用口說開始是不行的,因為啟動時間不好定.只不過這些東東可以多打幾個補丁;一步一步的來!
0
回復
xing1234
LV.6
12
2007-12-14 15:29
@xing1234
如果只是做個樣機自個玩玩,也許沒什么,如果是產品的話最好想清楚,主持人用口說開始是不行的,因為啟動時間不好定.只不過這些東東可以多打幾個補丁;一步一步的來!
如果要求時間掃描的速度不是很快就用AT89C51或AT89C2051,快的話用PIC16系列,這些都是比較通用的.PIC對初學者來說難度稍大,建議51入手.
0
回復
xing1234
LV.6
13
2007-12-14 15:47
@xing1234
如果要求時間掃描的速度不是很快就用AT89C51或AT89C2051,快的話用PIC16系列,這些都是比較通用的.PIC對初學者來說難度稍大,建議51入手.
如果我用89C51做的話:
硬件
1、 晶振選高,用24M
2、 用P0.0做啟動開關.
3、 用P1做搶答開關.
4、 P2、P3做LED顯示(靜態(tài)).
程序
1、 啟動顯示復位;
2、 一直查詢P0.0到按下啟動開關;
3、 P0.0為非后打開定時器計數,1秒更新一次顯示,其余時間查詢并記錄比較P1;
4、 新讀出的P1與上次讀的數按位比較;
0
回復
2007-12-14 19:05
我以前做過個8路的,要么?截了個小圖!要的話給我電話,13998595046
0
回復
qb_0007
LV.2
15
2007-12-15 00:06
@xing1234
如果我用89C51做的話:硬件1、晶振選高,用24M2、用P0.0做啟動開關.3、用P1做搶答開關.4、P2、P3做LED顯示(靜態(tài)).程序1、啟動顯示復位;2、一直查詢P0.0到按下啟動開關;3、P0.0為非后打開定時器計數,1秒更新一次顯示,其余時間查詢并記錄比較P1;4、新讀出的P1與上次讀的數按位比較;
謝謝你   給我這么多建議!!  420439660我的qq長聯(lián)系呀!我也是第一次做沒有經驗請你多多幫忙!!謝謝你!!!
0
回復
xing1234
LV.6
16
2007-12-15 09:47
@qb_0007
謝謝你  給我這么多建議!!  420439660我的qq長聯(lián)系呀!我也是第一次做沒有經驗請你多多幫忙!!謝謝你!!!
QQ714641683,是公司的計算機,所以少于上QQ;
0
回復
xing1234
LV.6
17
2007-12-15 10:22
加簡單點外圍,也許在搶答端口用幾個二極管做個與/或門,用中斷做效果會好些.
0
回復
qb_0007
LV.2
18
2007-12-18 22:54
@xing1234
QQ714641683,是公司的計算機,所以少于上QQ;
那你的msn呢?我加你!
0
回復
2007-12-19 14:53
@qb_0007
那你的msn呢?我加你!
我的MSN  xscn1986@hotmail.com
0
回復
xing1234
LV.6
20
2007-12-19 15:53
@電源插頭
我的MSN  xscn1986@hotmail.com
yyxing1234@tom.com
0
回復
qb_0007
LV.2
21
2007-12-20 16:46
@電源插頭
我以前做過個8路的,要么?截了個小圖!要的話給我電話,13998595046
自己設計自己做才有樂趣!!呵呵…………
0
回復
qb_0007
LV.2
22
2007-12-20 17:38
@xing1234
加簡單點外圍,也許在搶答端口用幾個二極管做個與/或門,用中斷做效果會好些.
這個搶答器我設計好了能幫我看看嗎?我怎么傳給你呀?謝謝你!!!
0
回復
xing1234
LV.6
23
2007-12-21 08:42
@qb_0007
這個搶答器我設計好了能幫我看看嗎?我怎么傳給你呀?謝謝你!!!
上面有郵箱地址
0
回復
qb_0007
LV.2
24
2007-12-23 13:31
@xing1234
上面有郵箱地址
我給你發(fā)過去了收到了嗎??
0
回復
xing1234
LV.6
25
2007-12-24 09:37
@qb_0007
我給你發(fā)過去了收到了嗎??
QQ內回復
0
回復
cq_hyb
LV.2
26
2007-12-28 18:54
@xing1234
如果我用89C51做的話:硬件1、晶振選高,用24M2、用P0.0做啟動開關.3、用P1做搶答開關.4、P2、P3做LED顯示(靜態(tài)).程序1、啟動顯示復位;2、一直查詢P0.0到按下啟動開關;3、P0.0為非后打開定時器計數,1秒更新一次顯示,其余時間查詢并記錄比較P1;4、新讀出的P1與上次讀的數按位比較;
這辦法太差,優(yōu)先級太難保證,有可能搞的順序錯亂,2個人同時按的話有時就區(qū)分不出來的,用51實現這個功能太簡單了,如果軟硬件搭配的好的,也不存在什么優(yōu)先級的問題,時鐘越快,區(qū)分度越高,
0
回復
qb_0007
LV.2
27
2008-01-03 23:41
@cq_hyb
這辦法太差,優(yōu)先級太難保證,有可能搞的順序錯亂,2個人同時按的話有時就區(qū)分不出來的,用51實現這個功能太簡單了,如果軟硬件搭配的好的,也不存在什么優(yōu)先級的問題,時鐘越快,區(qū)分度越高,
請問一下那怎樣用外部電路實現呢??
0
回復
qb_0007
LV.2
28
2008-01-11 22:26
單片機六人搶答器
定時器0定時50ms 循環(huán)20次完成定時一秒 ;
用串行口做顯示輸出
外部搶答按鈕用防抖開關用中斷做的鍵盤掃描.
P1.0 做燈光報警
P1.1做聲音報警
ORG    0000H
AJMP   MAIN
ORG    0003H                  定義外部0中斷
AJMP   INT0SEV
ORG    000BH    定義定時器0中斷
AJMP   T0SEV                
ORG    0030H
MAIN:
MOV  SP ,  #60H
MOV  TMOD ,#01H 定義定時器T0的工作模式
MOV  TH0 ,, #3CH                  給定時器賦初值
MOV  TL0  ,#0B0H
MOV  R2  ,  # 20 循環(huán)次數
MOV  R3  ,  #0 個位顯示
MOV  R4  ,  #3 十位顯示
SETB   EA 開總中斷
SETB   ET0 開定時器中斷
SETB   P0.0 給p0.0賦初值
LCALL  XIANSHI 調用顯示子程序
CLR   P1.0
JB  P0.0  ,  $
LCAII  K3
SETB  P1.0 開始按鈕
SETB  IT0 邊沿觸發(fā)方式
SETB  TR0 開啟定時器
SETB   EX0 開啟外部中斷
JB  P0.1  ,  $
AJMP  MAIN


定時中斷
T0SEV :
MOV   th0  ,  #3CH
MOV  TL0  ,  #0B0H
DJNZ  R2   ,  LOOP
MOV  R2   ,   #20
CJNE  R3  ,   #0  ,  K1
CJNE  R4  ,   #0  ,  K2
CLR   TR0
CLR   EA
CLR   ET0
CLR   EX0
AJMP   LOOP
K2:
MOV  R3   ,  #9
DEC   R4
AJMP   LOOP
K1:
DEC  R3
LOOP:
LCALL   XIANSHI
RETI




外部中斷服務
INT0SEV:
CLR  EA
CLR  TR0
JNB  P0.2 ,  KEY1
JNB  P0.3 ,  KEY2
JNB  P0.4 ,  KEY3
JNB  P0.5 ,  KEY4
JNB  P0.6 ,  KEY5
JNB  P0.7 ,  KEY6


KEY1:
MOV   R3  ,  #1
MOV   R4  ,  #0
LCALL  XIANSHI
RETI
KEY2:
MOV   R3  ,  #2
MOV   R4  ,  #0
LCALL  XIANSHI
RETI
KEY3:
MOV   R3  ,  #3
MOV   R4  ,  #0
LCALL  XIANSHI
RETI
KEY4:
MOV   R3  ,  #4
MOV   R4  ,  #0
LCALL  XIANSHI
RETI
KEY5:
MOV   R3  ,  #5
MOV   R4  ,  #0
LCALL  XIANSHI
RETI
KEY6:
MOV   R3  ,  #6
MOV   R4  ,  #0
LCALL  XIANSHI
RETI



顯示子程序:
XIANSHI :
MOV  SCON  ,  #00H
MOV  DPTR  ,#TAB
MOV  A  , R3
MOVC   A  ,  @A+DPTR
MOV   SBUF  ,A
JNB  TI   ,   $
CLR   TI
MOV  A  , R4
MOVC   A  ,  @A+DPTR
MOV   SBUF  ,A
JNB  TI   ,   $
CLR   TI
RET
聲音報警
K3:
MOV  R5  ,#50
K4:
MOV  R6  ,#FFH
K5:
DJNZ   R6   ,  K5
CPL  P1.1
DJNZ  R5  ,  K4
RET
END
0
回復
qb_0007
LV.2
29
2008-01-11 22:39
@qb_0007
單片機六人搶答器定時器0定時50ms循環(huán)20次完成定時一秒;用串行口做顯示輸出外部搶答按鈕用防抖開關用中斷做的鍵盤掃描.P1.0做燈光報警P1.1做聲音報警ORG    0000HAJMP  MAINORG    0003H                  定義外部0中斷AJMP  INT0SEVORG    000BH  定義定時器0中斷AJMP  T0SEV                ORG    0030HMAIN:MOV  SP,  #60HMOV  TMOD,#01H定義定時器T0的工作模式MOV  TH0,,#3CH                  給定時器賦初值MOV  TL0  ,#0B0HMOV  R2  ,  #20循環(huán)次數MOV  R3  ,  #0個位顯示MOV  R4  ,  #3十位顯示SETB  EA開總中斷SETB  ET0開定時器中斷SETB  P0.0給p0.0賦初值LCALL  XIANSHI調用顯示子程序CLR  P1.0JB  P0.0  ,  $LCAII  K3SETB  P1.0開始按鈕SETB  IT0邊沿觸發(fā)方式SETB  TR0開啟定時器SETB  EX0開啟外部中斷JB  P0.1  ,  $AJMP  MAIN定時中斷T0SEV:MOV  th0  ,  #3CHMOV  TL0  ,  #0B0HDJNZ  R2  ,  LOOPMOV  R2  ,  #20CJNE  R3  ,  #0  ,  K1CJNE  R4  ,  #0  ,  K2CLR  TR0CLR  EACLR  ET0CLR  EX0AJMP  LOOPK2:MOV  R3  ,  #9DEC  R4AJMP  LOOPK1:DEC  R3LOOP:LCALL  XIANSHIRETI外部中斷服務INT0SEV:CLR  EACLR  TR0JNB  P0.2,  KEY1JNB  P0.3,  KEY2JNB  P0.4,  KEY3JNB  P0.5,  KEY4JNB  P0.6,  KEY5JNB  P0.7,  KEY6KEY1:MOV  R3  ,  #1MOV  R4  ,  #0LCALL  XIANSHIRETIKEY2:MOV  R3  ,  #2MOV  R4  ,  #0LCALL  XIANSHIRETIKEY3:MOV  R3  ,  #3MOV  R4  ,  #0LCALL  XIANSHIRETIKEY4:MOV  R3  ,  #4MOV  R4  ,  #0LCALL  XIANSHIRETIKEY5:MOV  R3  ,  #5MOV  R4  ,  #0LCALL  XIANSHIRETIKEY6:MOV  R3  ,  #6MOV  R4  ,  #0LCALL  XIANSHIRETI顯示子程序:XIANSHI:MOV  SCON  ,  #00HMOV  DPTR  ,#TABMOV  A  ,R3MOVC  A  ,  @A+DPTRMOV  SBUF  ,AJNB  TI  ,  $CLR  TIMOV  A  ,R4MOVC  A  ,  @A+DPTRMOV  SBUF  ,AJNB  TI  ,  $CLR  TIRET聲音報警K3:MOV  R5  ,#50K4:MOV  R6  ,#FFHK5:DJNZ  R6  ,  K5CPL  P1.1DJNZ  R5  ,  K4RETEND
望各位高手給予指導謝謝!!!
0
回復
2008-01-30 10:24
@qb_0007
單片機六人搶答器定時器0定時50ms循環(huán)20次完成定時一秒;用串行口做顯示輸出外部搶答按鈕用防抖開關用中斷做的鍵盤掃描.P1.0做燈光報警P1.1做聲音報警ORG    0000HAJMP  MAINORG    0003H                  定義外部0中斷AJMP  INT0SEVORG    000BH  定義定時器0中斷AJMP  T0SEV                ORG    0030HMAIN:MOV  SP,  #60HMOV  TMOD,#01H定義定時器T0的工作模式MOV  TH0,,#3CH                  給定時器賦初值MOV  TL0  ,#0B0HMOV  R2  ,  #20循環(huán)次數MOV  R3  ,  #0個位顯示MOV  R4  ,  #3十位顯示SETB  EA開總中斷SETB  ET0開定時器中斷SETB  P0.0給p0.0賦初值LCALL  XIANSHI調用顯示子程序CLR  P1.0JB  P0.0  ,  $LCAII  K3SETB  P1.0開始按鈕SETB  IT0邊沿觸發(fā)方式SETB  TR0開啟定時器SETB  EX0開啟外部中斷JB  P0.1  ,  $AJMP  MAIN定時中斷T0SEV:MOV  th0  ,  #3CHMOV  TL0  ,  #0B0HDJNZ  R2  ,  LOOPMOV  R2  ,  #20CJNE  R3  ,  #0  ,  K1CJNE  R4  ,  #0  ,  K2CLR  TR0CLR  EACLR  ET0CLR  EX0AJMP  LOOPK2:MOV  R3  ,  #9DEC  R4AJMP  LOOPK1:DEC  R3LOOP:LCALL  XIANSHIRETI外部中斷服務INT0SEV:CLR  EACLR  TR0JNB  P0.2,  KEY1JNB  P0.3,  KEY2JNB  P0.4,  KEY3JNB  P0.5,  KEY4JNB  P0.6,  KEY5JNB  P0.7,  KEY6KEY1:MOV  R3  ,  #1MOV  R4  ,  #0LCALL  XIANSHIRETIKEY2:MOV  R3  ,  #2MOV  R4  ,  #0LCALL  XIANSHIRETIKEY3:MOV  R3  ,  #3MOV  R4  ,  #0LCALL  XIANSHIRETIKEY4:MOV  R3  ,  #4MOV  R4  ,  #0LCALL  XIANSHIRETIKEY5:MOV  R3  ,  #5MOV  R4  ,  #0LCALL  XIANSHIRETIKEY6:MOV  R3  ,  #6MOV  R4  ,  #0LCALL  XIANSHIRETI顯示子程序:XIANSHI:MOV  SCON  ,  #00HMOV  DPTR  ,#TABMOV  A  ,R3MOVC  A  ,  @A+DPTRMOV  SBUF  ,AJNB  TI  ,  $CLR  TIMOV  A  ,R4MOVC  A  ,  @A+DPTRMOV  SBUF  ,AJNB  TI  ,  $CLR  TIRET聲音報警K3:MOV  R5  ,#50K4:MOV  R6  ,#FFHK5:DJNZ  R6  ,  K5CPL  P1.1DJNZ  R5  ,  K4RETEND
大致瀏覽了你的程序,沒細看,有幾點建議:
1:顯示最好用中斷做(前提是你在練習,不是做產品),這對你以後的顯示程序有很大的幫助,可以做成模塊!不管做什麼,特別是匯編,如果不做模塊,你的每個案子都會是新的,這樣會很累的!
2:不管你在做什麼,標識千萬不要用K1,X1(變量或者子程序名)之類的,最好用相應的英文或者中文拼音(不能怕這樣麻煩),這樣有助與你的寫作程序,不然程序大了會很麻煩!你會不知道哪個是哪個的!
3:不能用P1.X的方式吧,應該重新定義或者改為P1^X的方式
至於其它的沒細看,不好評論!
0
回復
qb_0007
LV.2
31
2008-02-27 21:53
@fengzi7fengzi
大致瀏覽了你的程序,沒細看,有幾點建議:1:顯示最好用中斷做(前提是你在練習,不是做產品),這對你以後的顯示程序有很大的幫助,可以做成模塊!不管做什麼,特別是匯編,如果不做模塊,你的每個案子都會是新的,這樣會很累的!2:不管你在做什麼,標識千萬不要用K1,X1(變量或者子程序名)之類的,最好用相應的英文或者中文拼音(不能怕這樣麻煩),這樣有助與你的寫作程序,不然程序大了會很麻煩!你會不知道哪個是哪個的!3:不能用P1.X的方式吧,應該重新定義或者改為P1^X的方式至於其它的沒細看,不好評論!
謝謝你!
0
回復
發(fā)