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