亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1652|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

新手求助八位搶答器

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1135711 發(fā)表于 2024-11-6 20:11 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
有沒有大佬做過八位搶答器,有什么需要注意的嗎,如果從零開始我們需要如何去做。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:404160 發(fā)表于 2024-11-7 11:15 | 只看該作者
八位搶答器帶鎖定功能。一旦有選手按下按鈕,我們將鎖定其他按鈕,直到主持人清除鎖定狀態(tài)。以下是C51代碼:

```c
#include <reg51.h>

#define uchar unsigned char
#define uint unsigned int

// 假設(shè)P1是輸入端口,連接搶答按鈕,P0是輸出端口,連接顯示
sbit Buzzer = P3^7; // 假設(shè)P3.7連接蜂鳴器
bit isLocked = 0;   // 鎖定狀態(tài)標(biāo)志

uchar code LED_Code[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; // 8位LED顯示代碼

// 延時(shí)函數(shù)
void Delay(uint z) {
    uint i, j;
    for (i = z; i > 0; i--)
        for (j = 120; j > 0; j--);
}

// 檢測是否有人搶答并返回?fù)尨鸬倪x手編號(hào),如果沒有返回0xFF
uchar CheckAnswer() {
    uchar i;
    if (!isLocked && P1 != 0xFF) { // 檢測是否鎖定狀態(tài),以及是否有按鍵按下
        Delay(10000); // 延時(shí)去抖
        if (P1 != 0xFF) { // 再次檢測確保按鍵確實(shí)被按下
            for (i = 0; i < 8; i++) {
                if (P1 & LED_Code[i] == 0) { // 檢測具體哪個(gè)按鍵被按下
                    isLocked = 1; // 設(shè)置鎖定狀態(tài)
                    P0 = LED_Code[i]; // 顯示對(duì)應(yīng)的LED
                    Buzzer = 1; // 蜂鳴器響
                    Delay(20000); // 延時(shí)
                    Buzzer = 0; // 蜂鳴器停
                    return i; // 返回?fù)尨鸬倪x手編號(hào)
                }
            }
        }
    }
    return 0xFF; // 沒有選手搶答或系統(tǒng)已鎖定
}

// 主函數(shù)
void main() {
    P0 = 0xFF; // 初始化P0端口,關(guān)閉所有LED
    isLocked = 0; // 初始化鎖定狀態(tài)為未鎖定
    while (1) {
        uchar answer = CheckAnswer(); // 檢測是否有人搶答
        if (answer != 0xFF) { // 如果有人搶答
            // 這里可以添加主持人清除鎖定狀態(tài)的邏輯
            // 例如,當(dāng)P3.6被按下時(shí),清除鎖定狀態(tài)
            if (P3^6 == 0) { // 假設(shè)P3.6連接主持人的清除按鈕
                Delay(10000); // 延時(shí)去抖
                if (P3^6 == 0) { // 再次檢測確保按鈕確實(shí)被按下
                    isLocked = 0; // 清除鎖定狀態(tài)
                    while (P3^6 == 0); // 等待按鈕釋放
                }
            }
        }
    }
}
```

在這個(gè)代碼中,全局變量`isLocked`來表示鎖定狀態(tài)。當(dāng)有選手搶答成功后,`isLocked`被設(shè)置為1,這樣其他按鈕的輸入將被忽略,直到主持人通過按下P3.6按鈕來清除鎖定狀態(tài)。
回復(fù)

使用道具 舉報(bào)

板凳
ID:619259 發(fā)表于 2024-11-7 11:21 | 只看該作者
1.單片機(jī):入門級(jí)就行,如STC89系列及以上,構(gòu)建最小系統(tǒng)。
2.按鍵:至少9位(8位選手+1位復(fù)位)。
3.顯示:入門級(jí)建議用數(shù)碼管,1位即可。
4.程序中注意按鍵優(yōu)先及約束,可以使用按鍵狀態(tài)標(biāo)志變量。
回復(fù)

使用道具 舉報(bào)

地板
ID:537570 發(fā)表于 2024-11-7 15:47 | 只看該作者
從硬件(仿真)和軟件兩個(gè)方面進(jìn)行考慮,先學(xué)習(xí)別人做好的,進(jìn)行參考,然后學(xué)會(huì)使用,在進(jìn)行優(yōu)化和提升
回復(fù)

使用道具 舉報(bào)

5#
ID:314651 發(fā)表于 2024-11-7 17:38 | 只看該作者
單片機(jī)還是數(shù)字電路,其實(shí)很簡單,提前做好仿真,按照仿真來做實(shí)物就行
回復(fù)

使用道具 舉報(bào)

6#
ID:314651 發(fā)表于 2024-11-7 17:39 | 只看該作者
單片機(jī)還是數(shù)字電路,其實(shí)很簡單,提前做好仿真,按照仿真搭建實(shí)物即可
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表