久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 829|回復: 5
收起左側

新手求助八位搶答器

[復制鏈接]
ID:1135711 發表于 2024-11-6 20:11 | 顯示全部樓層 |閱讀模式
有沒有大佬做過八位搶答器,有什么需要注意的嗎,如果從零開始我們需要如何去做。
回復

使用道具 舉報

ID:404160 發表于 2024-11-7 11:15 | 顯示全部樓層
八位搶答器帶鎖定功能。一旦有選手按下按鈕,我們將鎖定其他按鈕,直到主持人清除鎖定狀態。以下是C51代碼:

```c
#include <reg51.h>

#define uchar unsigned char
#define uint unsigned int

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

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

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

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

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

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

使用道具 舉報

ID:619259 發表于 2024-11-7 11:21 | 顯示全部樓層
1.單片機:入門級就行,如STC89系列及以上,構建最小系統。
2.按鍵:至少9位(8位選手+1位復位)。
3.顯示:入門級建議用數碼管,1位即可。
4.程序中注意按鍵優先及約束,可以使用按鍵狀態標志變量。
回復

使用道具 舉報

ID:537570 發表于 2024-11-7 15:47 | 顯示全部樓層
從硬件(仿真)和軟件兩個方面進行考慮,先學習別人做好的,進行參考,然后學會使用,在進行優化和提升
回復

使用道具 舉報

ID:314651 發表于 2024-11-7 17:38 | 顯示全部樓層
單片機還是數字電路,其實很簡單,提前做好仿真,按照仿真來做實物就行
回復

使用道具 舉報

ID:314651 發表于 2024-11-7 17:39 | 顯示全部樓層
單片機還是數字電路,其實很簡單,提前做好仿真,按照仿真搭建實物即可
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 福利视频亚洲 | 农村黄性色生活片 | 天天干天天操天天射 | 波多野结衣av中文字幕 | 亚洲日韩中文字幕一区 | 国产精品视频偷伦精品视频 | 2021狠狠干 | 午夜精品一区二区三区在线播放 | 日韩精品免费 | 欧美成人免费在线视频 | 国产精品久久久久久久免费大片 | 古装三级在线播放 | 色精品视频 | 国产亚洲精品区 | 欧美电影免费网站 | www.国产| 中文二区 | 日韩一级一区 | 欧美网站一区二区 | 午夜影院在线免费观看视频 | 国产欧美一区二区精品久导航 | www成年人视频 | 最新中文字幕一区 | 午夜www | 国产精品久久777777 | 欧美888| 成人精品啪啪欧美成 | 日韩av电影院 | 久久精品福利视频 | 国产视频中文字幕 | 日韩福利在线 | 亚洲二区视频 | 久在草 | 中文字幕日韩一区二区 | 免费观看一级特黄欧美大片 | 国产精品一区二区视频 | 午夜久久久 | 国产精品久久久久久久白浊 | 中文字幕在线看 | 福利一区二区 | 一区免费 |