基于单片机的表决器(七人)系统设计(#0496)
功能描述
1、采用51單片機(jī)作為主控芯片;
2、采用矩陣按鍵,每人兩個按鍵,分別代表同意和反對;
3、按下"開始鍵"后,進(jìn)入10秒倒計時,超時投票無效;
4、采用數(shù)碼管顯示:倒計時、表決結(jié)果、表決票數(shù);
5、表決結(jié)果:"P"表示通過、"F"表示不通過,倒計時結(jié)束顯示;
6、表決票數(shù):"A"顯示同意票數(shù),"o"顯示不同意票數(shù),投票過程實(shí)時顯示;
7、表決開始和結(jié)束,采用蜂鳴器聲音提示;
8、按下"復(fù)位鍵"后,進(jìn)行下一次投票。
電路設(shè)計
采用Altium?Designer作為電路設(shè)計工具。Altium?Designer通過把原理圖設(shè)計、PCB繪制編輯、拓?fù)溥壿嬜詣硬季€、信號完整性分析和設(shè)計輸出等技術(shù)的完美融合,為設(shè)計者提供了全新的設(shè)計解決方案,使設(shè)計者可以輕松進(jìn)行設(shè)計,熟練使用這一軟件必將使電路設(shè)計的質(zhì)量和效率大大提高。
單片機(jī)管腳說明:
P0端口(P0.0-P0.7):P0口為一個8位漏極開路雙向I/O口,每個引腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須被拉高。
P1端口(P1.0-P1.7):P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高電平,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收。
P2端口(P2.0-P2.7):P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口,用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。
P3端口(P3.0-P3.7):P3口管腳是一個帶有內(nèi)部上拉電阻的8位的雙向I/O端口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入端時,由于外部下拉為低電平,P3口將輸出電流(ILL)。P3口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。
仿真設(shè)計
采用Proteus作為仿真設(shè)計工具。Proteus是一款著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。
主程序設(shè)計
void main() {//buzzbiaozhi1=0; //開始按鍵標(biāo)志位//矩陣bjs=0; //總表決計數(shù)bjs1=0; //同意票數(shù)統(tǒng)計bjs2=0; //反對票數(shù)統(tǒng)計djs=10; //修改倒計時初始值Timer0_init(); //初始化定時器中斷while(1){key_num=key_scan();if(djs<=0) //倒計時10s時間到{ // buzzbiaozhi1=0;flagD=0; //不再顯示時間TR0=0; //關(guān)閉定時器flag1=0,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,flag7=0;flag8=0,flag9=0,flag10=0,flag11=0,flag12=0,flag13=0,flag14=0; //關(guān)閉選手的按鍵 /*****判斷是否通過******/// //新方法好用if(bjs1>=4) djsxs01();if(bjs1<4) djsxs10(); //大于四票顯示通過,P代表通過 ,否則不通過 ,F表示switch(bjs1) //顯示倒計時結(jié)束后同意的人數(shù){case 0: djsxs0();djsxs20();break;case 1: djsxs1();djsxs20();break; case 2: djsxs2();djsxs20();break;case 3: djsxs3();djsxs20();break;case 4: djsxs4();djsxs20();break;case 5: djsxs5();djsxs20();break; case 6: djsxs6();djsxs20();break;case 7: djsxs7();djsxs20();break; default: ; }switch(bjs2) //顯示倒計時結(jié)束后不同意的人數(shù){case 0: djsxs00();djsxs30();break;case 1: djsxs11();djsxs30();break; case 2: djsxs22();djsxs30();break;case 3: djsxs33();djsxs30();break;case 4: djsxs44();djsxs30();break;case 5: djsxs55();djsxs30();break; case 6: djsxs66();djsxs30();break;case 7: djsxs77();djsxs30();break; default: ; }}源文件獲取
關(guān)注公眾號-電子開發(fā)圈,首頁發(fā)送?“表決” 獲取;
總結(jié)
以上是生活随笔為你收集整理的基于单片机的表决器(七人)系统设计(#0496)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 绩效评估模板问题
- 下一篇: Hadoop概述--四大组件架构及其关系