找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2288|回復(fù): 11
收起左側(cè)

求思路 7人表決權(quán)器的編程代碼和仿真圖

[復(fù)制鏈接]
ID:1078985 發(fā)表于 2023-5-22 01:46 來(lái)自觸屏版 | 顯示全部樓層 |閱讀模式
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請(qǐng)教一下大致的實(shí)現(xiàn)方法與思路,理清頭緒后我自己來(lái)寫(xiě)程序去實(shí)現(xiàn),謝謝大家










實(shí)現(xiàn)7人同時(shí)投票,7個(gè)按鈕,每人只能按一次,實(shí)現(xiàn)多投無(wú)效。用2個(gè)數(shù)碼管顯示票數(shù),分贊成和反對(duì)。
主持人1個(gè)按鈕控制表決開(kāi)始和表決暫停以及票數(shù)清零。(按一次按鈕為表決開(kāi)始,按第二次按鈕為表決暫停,按第三次按鈕為票數(shù)清零)
回復(fù)

使用道具 舉報(bào)

ID:1083552 發(fā)表于 2023-6-12 13:21 | 顯示全部樓層
這主要是對(duì)按鈕的控制。具體思路可如下:
回復(fù)

使用道具 舉報(bào)

ID:1083552 發(fā)表于 2023-6-12 13:23 | 顯示全部樓層
硬件
準(zhǔn)備硬件:7個(gè)按鈕、2個(gè)數(shù)碼管、一個(gè)主持人按鈕、8051單片機(jī)及其最小系統(tǒng)電路。
連接按鈕:將7個(gè)按鈕連接到單片機(jī)的I/O口,每個(gè)按鈕連接到一個(gè)獨(dú)立的I/O口。
連接數(shù)碼管:將2個(gè)數(shù)碼管連接到單片機(jī)的I/O口,用于顯示贊成票數(shù)和反對(duì)票數(shù)。
連接主持人按鈕:將主持人按鈕連接到單片機(jī)的一個(gè)獨(dú)立I/O口。
軟件
初始化:編寫(xiě)程序,在單片機(jī)上初始化相關(guān)的I/O口和變量,將票數(shù)初始化為0。
主持人按鈕控制:通過(guò)對(duì)主持人按鈕的檢測(cè),實(shí)現(xiàn)表決開(kāi)始、表決暫停和票數(shù)清零功能。具體邏輯如下:
當(dāng)主持人按鈕按下時(shí),檢測(cè)按鈕狀態(tài),如果是第一次按下,則表決開(kāi)始,進(jìn)入投票狀態(tài);如果是第二次按下,則表決暫停,停止接受投票;如果是第三次按下,則票數(shù)清零。
投票控制:在表決開(kāi)始狀態(tài)下,檢測(cè)每個(gè)投票按鈕的狀態(tài)。如果按鈕按下,表示對(duì)應(yīng)的人投了一票。對(duì)應(yīng)的票數(shù)變量加1,并更新數(shù)碼管顯示的票數(shù)。
限制每人只能按一次:可以使用一個(gè)數(shù)組或位圖來(lái)記錄每個(gè)人是否已經(jīng)投過(guò)票。在投票控制中,檢測(cè)按鈕按下時(shí),先檢查對(duì)應(yīng)的人是否已經(jīng)投過(guò)票,如果是,則忽略該按鍵操作,不進(jìn)行票數(shù)增加。
回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2023-6-12 14:11 | 顯示全部樓層
想成為有用的人 發(fā)表于 2023-6-12 13:23
硬件
準(zhǔn)備硬件:7個(gè)按鈕、2個(gè)數(shù)碼管、一個(gè)主持人按鈕、8051單片機(jī)及其最小系統(tǒng)電路。
連接按鈕:將7個(gè)按 ...

棄權(quán)票要計(jì)算不?
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2023-6-12 15:47 | 顯示全部樓層
回復(fù)

使用道具 舉報(bào)

ID:1083552 發(fā)表于 2023-6-12 16:10 | 顯示全部樓層
棄權(quán)票相當(dāng)于某一個(gè)IO沒(méi)有輸入,不需要考慮
回復(fù)

使用道具 舉報(bào)

ID:341045 發(fā)表于 2023-6-13 00:11 | 顯示全部樓層
7人投票, 是排隊(duì)投票的不需要7個(gè)按鈕, 否則就需要14個(gè)按鈕(每個(gè)人都是贊成反對(duì)2個(gè)按鈕), 所以開(kāi)關(guān)是要15個(gè), 7人投票, 最多只是到7, 所以贊成票數(shù)顯示只要一位數(shù)碼管就好了, 反對(duì)也要一位數(shù)碼管共要2個(gè)一位數(shù)碼管.  單片機(jī)IO占用, 二個(gè)數(shù)碼管的abcdefg段同字段連接占7個(gè)IO, 另外7個(gè)贊成開(kāi)關(guān), 7個(gè)反對(duì)開(kāi)關(guān)也連這7個(gè)IO,然后2個(gè)數(shù)碼管的位(一般用共陰的多)占2個(gè)IO, 7個(gè)贊成開(kāi)關(guān)共地占一個(gè)IO, 7個(gè)反對(duì)開(kāi)關(guān)共地占一個(gè)IO, 主持開(kāi)關(guān)單獨(dú)一個(gè)IO, 這樣要12個(gè)IO的單片機(jī)就好了. 程序設(shè)計(jì)開(kāi)一個(gè)2mS定時(shí)中斷, 在中斷中4步循環(huán), 第一步,2個(gè)顯示位,2個(gè)開(kāi)關(guān)位置1, 第一個(gè)顯示數(shù)據(jù)到7段字段IO然后第一位IO置0顯示第一位后退出中斷. 下一次進(jìn)中斷時(shí)執(zhí)行第二步, 2個(gè)顯示位2個(gè)開(kāi)關(guān)位置1, 取第二位數(shù)據(jù)到顯示段后開(kāi)第二段顯示后退出. 第三次進(jìn)中斷執(zhí)行第三步, 2個(gè)顯示位置和一個(gè)開(kāi)關(guān)位置1, 另一個(gè)開(kāi)關(guān)位置0, 7個(gè)IO置1后可讀7個(gè)開(kāi)關(guān)狀態(tài),開(kāi)關(guān)穩(wěn)定(防抖)后進(jìn)行處理(就是加贊成或反對(duì)數(shù)或不加)后退出中斷. 第四次時(shí)中斷執(zhí)行第四步, 處理另7個(gè)開(kāi)關(guān), 下一次進(jìn)中斷又從第一步開(kāi)始. 這樣8毫秒完成一次循環(huán),看不出顯示閃. 主程序中處理主持開(kāi)關(guān)即可.還有如果是大字段數(shù)碼管驅(qū)動(dòng)得加三極管, 如果每個(gè)按鈕位距離遠(yuǎn)可用光耦來(lái)處理干擾問(wèn)題.

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2023-6-13 07:24 | 顯示全部樓層
想成為有用的人 發(fā)表于 2023-6-12 16:10
棄權(quán)票相當(dāng)于某一個(gè)IO沒(méi)有輸入,不需要考慮

某一個(gè)IO沒(méi)有輸入,不代表它的電平是是空的,要么1,要么0。與你的同意和反對(duì)是不是有沖突?
回復(fù)

使用道具 舉報(bào)

ID:1083552 發(fā)表于 2023-6-15 16:58 | 顯示全部樓層
名字不是重點(diǎn) 發(fā)表于 2023-6-13 07:24
某一個(gè)IO沒(méi)有輸入,不代表它的電平是是空的,要么1,要么0。與你的同意和反對(duì)是不是有沖突?

我是這樣想的:用七個(gè)IO連接七個(gè)按鍵,共陰/陽(yáng)隨便,按下就計(jì)數(shù),表示同意。不按就表示反對(duì)。然后給出結(jié)果。我認(rèn)為其實(shí)棄票并不影響表決,不影響表決,就不給它資源。除非七個(gè)人都棄票。
回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2023-6-16 10:24 | 顯示全部樓層
想成為有用的人 發(fā)表于 2023-6-15 16:58
我是這樣想的:用七個(gè)IO連接七個(gè)按鍵,共陰/陽(yáng)隨便,按下就計(jì)數(shù),表示同意。不按就表示反對(duì)。然后給出結(jié) ...

為了表示公平,當(dāng)棄權(quán)達(dá)到一定票數(shù),當(dāng)下的投票行為無(wú)效!
回復(fù)

使用道具 舉報(bào)

ID:1084356 發(fā)表于 2023-6-16 10:57 | 顯示全部樓層
為了表示公平,當(dāng)棄權(quán)達(dá)到一定票數(shù)
回復(fù)

使用道具 舉報(bào)

ID:1078985 發(fā)表于 2024-4-30 22:13 | 顯示全部樓層
angmall 發(fā)表于 2023-6-12 15:47
給你一個(gè)示例參考

各位大神,十分感謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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