資源簡介
要求:
1、7人多數表決邏輯:多數通過。
2、在主持人控制下,10秒內表決有效。
3、采用數碼管顯示表決10秒倒計時。
4、表決結束后用發光二極管及數碼管顯示表決結果,數碼管顯示結果:通過、不通過,同意人數。
5、設主持人控制鍵、復位鍵。
?????????? 控制鍵:啟動表決
?????????? 復位鍵:系統復位
6、表決開始、結束采用聲音提示。

代碼片段和文件信息
/*******************************************************************************
================================================================================
【平????臺】STC89C51_sumjess平臺
【編????寫】sumjess
【E-mail??】1371129880@qq.com
【軟件版本】V2.0
【最后更新】2019年06月10日
【相關信息參考下列地址】
【網????站】
???????????https://blog.csdn.net/qq_38351824
???????????http://www.51hei.com/bbs/mcu-2-1.html
---------------------------------------------------------------------------------
【dev.env.】MDK4.02及以上版本
【Target??】STC89C51
第一次修訂:2019/05/09
第二次修訂:2019/05/21
第三次修訂:2019/06/10
【problem?】
????(1)庫內補充的不全面;
????(2)庫內解釋部分不全面;
????(3)庫內還存在一定的bug;
【direction】
??????下一步的目標就是把庫繼續集成!
【explain?】
??????為了方便使用,我也自己寫了很多的庫,和優化了算法和表示方式!
【warning】
??????目前程序中暫無錯誤?!???
---------------------------------------------------------------------------------
沒有完美的代碼,只有不斷的奉獻,大家一起努力;
贈人玫瑰手留余香,歡迎大家反饋bug!
================================================================================
********************************************************************************/
#include
#include
sbit?smg1=P2^4; //定義數碼管第一位
sbit?smg2=P2^6; //定義數碼管第二位
sbit?smg3=P2^7; //定義數碼管第三位
sbit?smg4=P2^5; //定義數碼管第四位
sbit?keyks=P2^2; //定義開始按鍵
sbit?keyqc=P2^0; //定義復位按鍵
sbit?key1=P1^4; //定義1號搶答選手 ?
sbit?key2=P1^5; //定義2號搶答選手
sbit?key3=P1^6; //定義3號搶答選手
sbit?key4=P1^7; //定義4號搶答選手
sbit?key5=P3^4; //定義5號搶答選手
sbit?key6=P3^5; //定義6號搶答選手
sbit?key7=P3^6; //定義7號搶答選手
sbit?spk=P1^0; //定義蜂鳴器
int?djsjs=0;???? //djs和bt是初始倒計時時間
//flag1~7用來保證在未開始表決之前誤按???flagD用來控制是否顯示倒計時??bjs表決計數
int?flag1=0flag2=0flag3=0flag4=0flag5=0flag6=0flag7=0flagD=0bjs=0; ?
int?table[]={0x5f0x440x9d0xd50xc60xd30xdb0x450xdf0xd70x800x9b};
??//???0????1???2????3????4????5????6?????7 ??8?????9 ??E
void?delayms(uint?z) ?//毫秒
{
uint?xy;
????for(x=z;x>0;x--)
??????for(y=110;y>0;y--);???
}
void?Timer0_init() //定時器0初始化
{
????js=0;
TMOD=0x01; //設置定時器0為工作方式1(M1M0為01)
TH0=(65536-45872)/256; //裝初值11.0592M晶振定時50ms數為45872
TL0=(65536-45872)%256;
ET0=1; //開定時器0中斷
EA=1; //開總中斷
}
void?timer0()?interrupt?1?using?1 //定時器0中斷服務函數
{
TH0=(65536-45872)/256; //裝初值11.0592M晶振定時50ms數為45872
TL0=(65536-45872)%256;
js++; //疊加20次
if(js==20)?
{?
??js=0; //清空
??djs--; //產生1s的倒計時
?}
}
void?djsxs()???//顯示倒計時函數
{
int?b1b2;
b1=djs/10;
b2=djs%10; ??//將倒計時時間分成高低位
P0=table[b1]; ??
smg2=0;
delayms(3);
smg2=1; ?//顯示十位數字
P0=table[b2];
smg3=0;
delayms(3); ?//顯示個位數字
smg3=1;
}
void?djsxs10()?//第一位數碼管顯示?0
{
? P0=0x5f; //第一位數碼管顯示0
????smg1=0;
????delayms(3);
????smg1=1;
}
void?djsxs11()?//第一位數碼管顯示1
{
? P0=0x44; //第一位數碼管顯示1
????smg1=0;
????delayms(3);
????smg1=1;
}
void?djsxs20()?//第二位數碼管顯示?-
{
P0=0x80; //第二位數碼管顯示-
smg4=0;
delayms(3); ???
smg4=1;
}
void?djsxs30()?//第三位數碼管顯示?-
{
P0=0x80; //第三位數碼管顯示-
smg2=0;
delayms(3); ???
smg2=1;
}
void?djs
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-07-02?09:29??課程設計題二:7人多數表決器\
?????目錄???????????0??2019-07-02?09:28??課程設計題二:7人多數表決器\Sumejss_STC51\
?????文件????????6376??2009-05-07?14:37??課程設計題二:7人多數表決器\Sumejss_STC51\STARTUP.A51
?????文件???????14049??2019-07-02?09:26??課程設計題二:7人多數表決器\Sumejss_STC51\STARTUP.LST
?????文件?????????749??2019-07-02?09:26??課程設計題二:7人多數表決器\Sumejss_STC51\STARTUP.OBJ
?????文件???????13084??2019-07-02?09:26??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51
?????文件???????17000??2019-07-02?09:26??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51.LST
?????文件???????20769??2019-07-02?09:26??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51.M51
?????文件???????15246??2019-07-02?09:26??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51.OBJ
?????文件????????8112??2019-07-02?09:25??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51.c
?????文件????????3583??2019-07-02?09:26??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51.hex
?????文件??????????59??2019-07-02?09:26??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51.lnp
?????文件???????14930??2019-07-02?09:26??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51.plg
?????文件???????64932??2019-07-02?09:28??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51.uvopt
?????文件???????13423??2019-07-02?09:17??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51.uvproj
?????文件???????64920??2019-07-02?09:26??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51_uvopt.bak
?????文件???????????0??2019-07-02?07:56??課程設計題二:7人多數表決器\Sumejss_STC51\Sumjess_stc51_uvproj.bak
?????目錄???????????0??2019-07-02?09:27??課程設計題二:7人多數表決器\仿真圖\
?????文件??????152656??2019-07-02?08:01??課程設計題二:7人多數表決器\仿真圖\7人表決器~sumjess.DSN
?????文件???????25174??2019-07-02?09:27??課程設計題二:7人多數表決器\仿真圖\7人表決器~sumjess.pdsprj
?????文件????????2202??2019-07-02?09:28??課程設計題二:7人多數表決器\仿真圖\7人表決器~sumjess.pdsprj.DESKTOP-37880EN.別想打開!.workspace
?????文件???????25172??2019-07-02?09:27??課程設計題二:7人多數表決器\仿真圖\Backup?Of?7人表決器~sumjess.pdsbak
?????文件???????25138??2019-07-02?09:02??課程設計題二:7人多數表決器\仿真圖\Last?Loaded?7人表決器~sumjess.pdsbak
?????目錄???????????0??2019-07-02?09:29??課程設計題二:7人多數表決器\芯片資料\
?????文件??????267487??2019-07-02?09:29??課程設計題二:7人多數表決器\芯片資料\1602液晶說明.pdf
?????文件??????210930??2019-07-02?09:29??課程設計題二:7人多數表決器\芯片資料\DS1302中文數據手冊.pdf
?????文件?????1388998??2019-07-02?09:29??課程設計題二:7人多數表決器\芯片資料\STC89C52.pdf
?????文件??????238547??2019-07-02?09:29??課程設計題二:7人多數表決器\芯片資料\STC89C52RC單片機用戶手冊.pdf
?????文件?????1396756??2019-07-02?09:29??課程設計題二:7人多數表決器\芯片資料\STC89C52單片機的中文介紹.pdf
- 上一篇:基于FPGA生成AM調幅波
- 下一篇:fftw-3.2.1.rar
評論
共有 條評論