freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于單片機的四路搶答器設計資料(編輯修改稿)

2024-12-18 14:56 本頁面
 

【文章內容簡介】 a(uchar byte) //MAX7219 的驅動程序 {} 基于 MCS51 單片機的四路搶答器 搶答器是為智力競賽參賽者答題時進行搶答而設計的一種優(yōu)先判決器電路,廣泛應用于各種知識競賽、文娛活動等場合。 能夠實現搶答器功能的方式有多種 。 曾經咱們用的是 可以采用前期的模擬電路、數字電路或模擬與數字電路相結合的方式,但這種方式制作過程復雜,而且準確性與可靠性不高,成品面積大,安裝、維護困難。 本次我們 單片機作為核心部件進行邏輯控制及信號產 生的四路搶答器。 硬件設計 硬件電路應能完成以下功能:參加競賽者對主持人提出的問題要在最短的時間內作出判斷,并按下搶答按鍵回答問題。 當第一個人按下按鍵后,則在顯示器上顯示此競賽者的號碼并進行聲音提示, 同時電路將其他搶答按鍵封鎖,使其不起作用 。若有人在可以搶答之前按鍵,應該有違規(guī)提示。電路應該具有倒計時功能,倒計時時間可以設置并顯示,在規(guī)定時間內沒有人搶答則本題作廢?;卮鹜昊虺瑫r后,由主持人將所有按鍵恢復,重新開始下一輪。 完成上述功能的電路如圖 所示。 各電路模塊的功能如下。 單片機部分:通過讀取 ~ 的狀態(tài)決定倒計時時間;通過讀取 P1.3~ 的狀態(tài)讀取按鍵情況;通過 ~ 控制顯示模塊以顯示按鍵者的號碼和倒計時所剩時間;通過 控制蜂鳴器。 時間設定模塊:以撥碼開關 U3 作為倒計時時間的選擇信號。若 通過U3接地,倒計時時間為 10s;若 通過 U3 接地,倒計時時間為 8s,若 通過 U3 接地,倒計時時間為 6s,若 通過 U3接地,倒計時時間為 4s。判斷時 優(yōu)先級最高, 優(yōu)先級最低。 按鍵模塊: KEY1~ KEY4的信息可以直接傳輸到 ~ 。單片機一旦檢測到有按鍵按下,立即將 置為低電平,將按鍵信息鎖存,以免后來的按鍵對其產生影響。 KEY1~ KEY4 為搶答按鍵, KEY5 為主持人控制按鍵。 數碼管顯示模塊:數碼管顯示模塊由一片 MAX7219 和 3 個數碼管組成。其中 U5 用來顯示按鍵者的編號, U U7 在倒計時時顯示還有多長時間,如果有人犯規(guī)搶答, U6~ U7 顯示 “FF” 。 蜂鳴器模塊:蜂鳴器在主持人發(fā)出可以搶答信號、有人按下搶答按鍵和倒計時時間到等 3種情況下發(fā)出蜂鳴聲。 程序設計 搶答器工作過程如下。 首先主持人選定倒計時時間,單片機掃描 U3以獲取此信息。如果沒有人為設置,默認為 10s。 在按下搶答按鍵之前, 3個數碼管全部顯示 “0” 。 按下搶答按鍵之后,蜂鳴器響一聲,單片機開始倒計時,數碼管 U6 和 U7顯示倒計時時間,數碼管 U5 顯示 “0” 。 如果有競賽者率先在規(guī)定時間內按鍵,則蜂鳴器響一聲,數碼管 U5顯示該競賽者的編號, U6 和 U7 停止更新。 如果在主持人未按下搶答按鍵的時候有選手搶答,則此時蜂鳴器響一聲, U5顯示犯規(guī)者的編號, U6和 U7顯示 “FF” 以指示有人犯規(guī)。 如果在規(guī)定時間內無人按鍵,則 U5 顯示 “0” , U6 和 U7顯示 “EE” 以指示無人按鍵。 無論是在規(guī)定時間內有人按鍵、在規(guī)定時間內無人按鍵或者是有人犯規(guī),都需要主持人再按一下搶答按鍵,之后單片機根據 U3狀態(tài)決定倒計時時間, 3個數碼管全部顯示 “0” ,恢復到初始狀態(tài),準備下一輪搶答。 程序流程如圖 所示。 圖 四路搶答器程序流程圖 程序如例 134所示。 【例 134】用 8051 單片機控制的四路搶答 器程序。限于篇幅,這里沒有給出顯示程序,參見 節(jié)中例 125。 include typedef unsigned char uchar。 sbit LE=P1^4。 sbit KEY5=P3^7。 sbit DIN=P2^4。 //定義 控制 MAX7219 的串行數據輸入端 sbit LOAD=P2^3。 //定義 控制 MAX7219 的載入使能端 sbit CLK=P2^2。 //定義 控制 MAX7219 的時鐘信號 sbit BUZ=P0^1。 define TIMER_HBYTE 50000/256 //定時 50ms define TIMER_LBYTE 50000%256 uchar intr_counter。 //設定的時間用需要產生的中斷次數表示 uchar bdata byte。 //在 bdata區(qū) 定義一個變量,便于位操作 sbit byte_7=byte^7。 bit foul_flg。 //是否有人犯規(guī)標志 bit time_over_flg。 //是否倒計時超時標志 bit key_flg。 //是否有人在規(guī)定時間內按鍵標志 void max7219_reset(void)。 //初始化 MAX7219 void write_reg(uchar,uchar)。 //向控制寄存器寫數據 void write_digit(uchar,uchar)。 //向字型寄存器寫數據 void send_data(uchar)。 //底層的硬件驅動 uchar set_time(void)。 //函數功能:設置倒計時時間 bit control_key(void)。 //函數功能:檢測主持人是否按鍵 uchar get_key_num(void)。 //函數功能:檢測哪個參賽者按鍵 void display_time(void)。 //函數功能:顯示倒計時剩余時間 void foul_handle(uchar)。 //函數功能:犯規(guī)處理 void key_handle(uchar)。 //函數功能:按鍵處理 void time_over_handle(void)。 //函數功能:超時處理 void init_t0(void)。 //函數功能:初始化 T0 定時器 void delay_20ms(void)。 //函數功能:延時 20ms,按鍵去抖動 void buz_on(void) //函數功能:蜂鳴器響 500ms void main(void) { uchar key_number。 max7219_reset()。 //初始化 MAX7219 while(1) { foul_flg=0。 //設置初始環(huán)境 time_over_flg=0。 TR0=0。 //禁止 T0 運行 write_digit(DIGIT0,LED_code[0x0])。//上電后 3 個數碼管全部顯示 0 write_digit(DIGIT1,LED_code[0x0])。 write_digit(DIGIT2,LED_code[0x0])。 while((control_key()==1)amp。amp。(foul_flg==0)) //如果主持人沒有按鍵 { key_number=getkey_num()。 //檢查是否有人犯規(guī) if(key_number==0) //如果沒有,進行下一次循環(huán) continue。 else //如果有人犯規(guī) { foul_handle()。 //犯規(guī)處理 foul_flg=1。 //設置犯規(guī)標志 } } if(foul_flg==1) //如果有人犯規(guī) { while(control_key()==1)。 //等待主持人按鍵以進入下一輪 continue。 //主持人按鍵后進入下一輪 } else //如果沒有人犯規(guī),必定是主持人允許答題 { intr_counter=set_time()。 //讀取倒計時時間 init_t0()。 //定時器 T0 開始計時 buz_on()。 //蜂鳴器響 500ms while(time_over_flg==0amp。amp。key_flg==0) { key_number=getkey_num()。 //在規(guī)定時間內檢查是否 有按鍵 if(key_number!=0) //如果有 { key_handle(key_number)。//按鍵處理 key_flg=1。 //設置有人按鍵答題標志 TR0=0。 //停止 T0 運行 } else //否則循環(huán)檢測 { display_time()。 //并顯示剩余時間 continue。 } } if(key_flg==1) //如果有人在規(guī)定時間內答題 { while(control_key==1)。 //等待主持人按鍵以進入下一輪 continue。 //主持人按鍵后進入下一輪 } else //倒計時時間到仍無人按鍵 { time_over_handle()。 //超時處理 while(control_key==1)。 //等待主持人按鍵以進入下一輪 continue。 //主持人按鍵后進入下一輪 } } } } bit control_key(void) //檢測主持人是否按鍵 { if(KEY5==1) //如果 KEY5 為高,說明沒有按鍵 return 1。 //返回 1,表示沒有按鍵動作 else //如果 KEY5 為低,說明可能有按鍵動作 delay_20ms()。 //延時 20ms,去抖動 if(KEY
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1