版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、電子時鐘及抽獎機姓 名:學(xué) 號:系 別:物理與電子信息工程系專 業(yè):電子科學(xué)與技術(shù)年 級:09級指導(dǎo)教師:白炳良2012年5月目錄1摘要:32關(guān)鍵字:33設(shè)計任務(wù)33.1 兩種抽獎方式33.2 擴展功能34設(shè)計方案34.1 設(shè)計思路34.2 方案比較與論證34.3 系統(tǒng)結(jié)構(gòu)框圖45各功能模塊設(shè)計45.1 顯示模塊原理45.2 參數(shù)at算55.3 獨立式按鍵模塊55.4 總系統(tǒng)原理圖66軟件設(shè)計76.1 I/O 口分配 76.2 隨機數(shù)算法86.3 秒產(chǎn)生算法86.4 按鍵掃描86.5 顯示掃描87流程圖888程序清單129調(diào)試要點279.1 硬件調(diào)試279.2 軟件調(diào)試279.3 結(jié)果分析及設(shè)
2、計工作總結(jié)2710參考文獻及附件2710.1 參考文獻2810.2 元器件清單2811PC阪圖28281摘要:本設(shè)計由單片機AT89S52芯片和LED共陽數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個由單片機控制的四位顯示設(shè)計,設(shè)計制作同步和單步抽獎機,在模式鍵、啟動鍵,停止鍵的控制下 實現(xiàn)設(shè)計集成了時鐘、秒表、四位抽獎三種功能于一體。2關(guān)鍵字:AT89S52動態(tài)顯示四位抽獎按鍵掃描隨機數(shù)秒表3設(shè)計任務(wù)3.1 兩種抽獎方式3.1.1 按抽獎啟動鍵時,四位數(shù)碼管以不同的隨機數(shù)快速滾動顯示,按抽獎停止鍵時,四位隨機數(shù)停止?jié)L動顯示在數(shù)碼管上。3.1.2 按抽獎啟動鍵時,個位數(shù)碼管以隨機數(shù)快速滾動顯示,按抽
3、獎停止鍵時,個位隨機數(shù)停止?jié)L動顯示在數(shù)碼管上;用同樣的方法來確定十位、百位、千位的隨機數(shù)。3.2 擴展功能電子時鐘:電子鐘以99時59分59秒為一個計數(shù)周期,在顯示分秒, 時分模塊化之間切換。4設(shè)計方案4.1 設(shè)計思路本設(shè)計需要實現(xiàn)兩種方式的抽獎(即四位同時抽和逐位抽獎),因此重點在于由軟件產(chǎn)生隨機數(shù);而硬件則需由數(shù)碼管來顯示中獎結(jié)果以及按鍵來控制抽獎模式和啟動、停止抽獎。系統(tǒng)以AT89S52為核心,主要有顯示模塊、按鍵模塊和單片機軟件控制模塊構(gòu)成。4.2 方案比較與論證數(shù)碼管顯示模塊:方案一:單片機輸出數(shù)據(jù)經(jīng)譯碼芯片CD4511進行譯碼后直接驅(qū)動數(shù) 碼管,數(shù)碼管公共端接9012三極管擴流,并
4、通過單片機I/O 口控制三極 管的選通,實現(xiàn)動態(tài)顯示。方案二:有單片機的I/O 口直接驅(qū)動數(shù)碼管的段碼,數(shù)碼管的公共端接9012三極管,通過灌電流的方式點亮數(shù)碼管,也需通過單片機I/O 口控制三極管的選通,實現(xiàn)動態(tài)顯示。由于所需I/O 口由AT98S52可直接提供,無須因為 I/O 口不夠而用 CD4511來節(jié)省I/O 口,方案二又較方案一更容易實惠,所以,我選擇方案二。4.3 系統(tǒng)結(jié)構(gòu)框圖AT89S52單片機在模式鍵、啟動鍵和停止鍵的控制下,由 P1 口輸出數(shù)據(jù), 通過P2.0、P2.1、P2.2、P2.4進行選通,有數(shù)碼管顯示信息。系統(tǒng)框圖:圖2-3系統(tǒng)總框圖5各功能模塊設(shè)計5.1 顯示模
5、塊原理由單片機(AT89S52)的弓|腳P1 口輸出中獎、時間等數(shù)據(jù)信息,通過片選信號 P2.0、P2.1、P2.2、P2.4就可在相應(yīng)的數(shù)碼管進行顯示。當(dāng)位選信號P2.0為低電平時,P1 口送出數(shù)據(jù)也為低電平就點亮數(shù)碼管,電流灌進單片機。多位LED顯示,為了簡化電路,降低成本,將所有位的段選線并聯(lián)在一起,由一個 8位 I/O 口控制。而共陽極公共端分別接一個 9012,由相應(yīng)的I/O 口線控制9012, 實現(xiàn)各位數(shù)碼管的分時選通。段選碼,位選碼每送入一次后延時10MS因人的視覺暫留時間為0.1S (100MS,所以每位顯示的時間不能超過 20MS并保持延 時一段時間,以造成視覺暫留效果,給人
6、看上去每個數(shù)碼管總在亮。 這種方式稱 為軟件掃描方式。電路如(圖3-1)所示。由于采用的是共陽極數(shù)碼管,所以要讓段碼點亮需把 I/O 口置0,例如:段 碼a到g對應(yīng)的I/O 口是P1.0到P1.6,則要讓數(shù)碼管顯示0到6對應(yīng)的16進 值如圖所示圖3-1顯示電路P1.6,一P1.5P1.4P1.3P1.2P1.1P1.016進制010000000C0H111110010F9H201001000A4H301100000B0H4001100199H5001001092H6000001082H圖3-2碼表R1RES2RES2R3P2.0R4RES2h14ES5.2 參數(shù)計算由于I/O 高電平約等于5V
7、,使用灌電流的方式驅(qū)動數(shù)碼管,故選用 PNP型 三極管9012;數(shù)碼管能正常工作的段電流為 3mA-10 mA,壓降為1.7V,三極 管發(fā)射極和集電極的壓降為0.3V ,因此限流電阻的壓降為3.0V ,5VR -5 500所以選用限流電阻的阻值 R=470歐.10mA5.3 獨立式按鍵模塊獨立式按鍵是直接用 I/O 口線構(gòu)成的單個按鍵電路,其特點是每個按鍵單獨占用一根I/O 線,每個按鍵的工作不會影響其它I/O 口線的狀態(tài)。獨立式按鍵的典型應(yīng)用如 (圖3-3)所示。獨立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O 口線,因此,在按鍵較多時,I/O 口線浪費較大,但本設(shè)計只用到
8、三個按鍵,顧采用獨立式按鍵電路。圖3-3獨立式按鍵電路5.4 總系統(tǒng)原理圖單片機(AT89S52)9腳為復(fù)位輸入端。上電復(fù)位,只要 RST引腳上有大于二 個機器周期以上的高電平,單片機(AT89C2051)即復(fù)位。按鍵從單片機(AT89S52)的P2.0、P2.1、P2.2、P2.4 口接入,當(dāng)按鍵被按下時,相應(yīng)的輸入口就會輸入低電平 00單片機(AT89S52)的XTAL1腳、XTAL2腳接一個由12M晶振和10pf組成的振 蕩電路。為單片機提供相應(yīng)的時序。arorb c d c fPg0P7&r Bar5ar4MP2QP2arOTN1 1TNI 7TP Ln-O- O£L
9、 QxrU1 89s52RSTNR&P DXTpy網(wǎng)日1T1XRWR4151 口-彳3216軟件設(shè)計主程序主要起到一個導(dǎo)向和決策功能,控制程序的走向。本系統(tǒng)在主程序 中運用模塊化結(jié)構(gòu),所有控制量集中處理,提高了處理效率,并在RAMS立各控 制量的映射,方便各功能模塊的編程及修改。運用散轉(zhuǎn)結(jié)構(gòu),可實現(xiàn)無擾動重入。 本設(shè)計主要有以下幾個模塊:時鐘模塊、四位抽獎模塊、逐位抽獎模塊。操作說明:上電復(fù)位后進入數(shù)碼初顯示模塊;按 SW0啟動,四位數(shù)碼管產(chǎn)生四 位隨機數(shù),按SW0四位隨機數(shù)停止(操作可重復(fù));按SW1 一次進入抽獎2模 塊;按SW0啟動,四位數(shù)碼管最低位產(chǎn)生隨機數(shù),按SW1最低位停止
10、高位啟動 按4次SW1后四位數(shù)碼管均產(chǎn)生隨機數(shù),按 SW0鍵停止抽獎(操作可重復(fù)); 按SW1 一次進入時間模塊(可循環(huán))。按RET鍵單片機復(fù)位。6.1 i/o 口分配1、P2.0、P2.1、P2.2、P2.4作為個位、十位、百位、千位數(shù)碼管片選。2、P3.0、P3.4、P3.7 作為按鍵接口。3、P1.0到P1.6作為段碼aUg的輸出口6.2 隨機數(shù)算法在隨機數(shù)模式下,調(diào)用庫函數(shù) stdlib . h ,用 dis_bufi =dis_dmrand() %0返回隨機數(shù)值6.3 秒產(chǎn)生算法將定時器0定時5mS每計數(shù)200次為1S。6.4 按鍵掃描直接判斷按鍵的按下與放開,不采用標志位判斷。6.
11、5 顯示掃描顯示掃描采用高、低兩位分開顯示;這樣,在進行時鐘顯示及秒表顯示時易于處7流程圖Msta=1 :四位同時抽獎NN程序清單/*名稱:四位抽獎機編寫:小葉日期:2012.5.4平臺:AT89S52*/ #include<reg52.h>#include<intrins.h>#include<stdlib.h>#define uint unsigned int/ 宏定義#define uchar unsigned char/宏定義#define nop _nop_()/*端口定義*/#define disport P0/數(shù)據(jù)端口sbit cs0=P2八0
12、;sbit cs1=P2A1;sbit cs2=P2A4;sbit sw0=P3A0;sbit cs3=P2A2;/獨立按鍵端口sbit sw1=P3八4;sbit sw2=P3A7;/*定義變量*/uchar data key;/定義鍵值寄存器uchar bdata ekey; /定義鍵沿寄存器uchar bdata lastkey;sbit esw0=ekeyA0;sbit esw1=ekeyA4;sbit esw2=ekeyA7;bit flaflag;/定義閃爍標志bit f300flag;bit cj=1;uchar f300t, f200t=200,f100t;/ 閃爍標志ucha
13、r msta,ck=0;uchar flasta=5;uchar a,b,c,d,e,g,h;ucharcodedis_dm=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xfc,0x00,0xf0,0x0f;/顯示段碼值uchar dis_buf=0xC0,0xC0,0xC0,0xC0,0xff;/顯示緩沖uchar dis_pointer,pointer;/*函數(shù)聲明void Disply();void Flaply();void KeyScan();void Init_timer0();void choujiang_2()
14、;void dianzishizhong();void dianzishizhongxiaoshi();/*主函數(shù)定義顯示指針*/ 顯示函數(shù)/閃爍函數(shù)/讀鍵函數(shù)/定時器初始化/抽獎方式2/電子時鐘*/ void main() uint i;TMOD=0x11; /定時器0工作方式1SCON=0x00;TH0=0xec;TL0=0x78;TR0=1;while(1)while(!TF0); /5ms?TF0=0;TH0=0xec; / 定時器初值重設(shè)TL0=0x78;KeyScan(); /調(diào)用鍵掃描函數(shù),顯示函數(shù)Disply();Flaply();if(f300t+>=100)/f300
15、t=0;/ f300flag=!f300flag;if(f100t+>=600)f100t=0;ck=1;switch(msta)case 0:dis_buf0=0x90;/數(shù)碼顯示初值dis_buf1=0xC0;dis_buf2=0xA4;dis_buf3=0xA4;if(esw0) msta=1;if(esw1) msta=2;if(esw2) msta=3;break;case 1:if(esw0)cj=!cj;if(cj)for(i=0;i<4;i+)/四位數(shù)同時抽獎dis_bufi=dis_dmrand()%10;f300t=100;f300t-;if(f300t=0)
16、if(!cj)flasta=4; / if(esw2)/ if(icj)/flasta=4; if(esw1)msta=2;break;case 2:choujiang_2();if(esw2)msta=3;break;case 3: / flasta=5;f200t-;iff200t=0)dianzishizhong();f200t=200;)if(esw1) msta=0;if(esw0)msta=4;break;case 4: if(esw0)msta=3 ;if(esw1)msta=0;/ f200t=200;f200t-;if(f200t=0) +a;if(a>9)a=0;+b
17、;if(b>5)b=0;+c;if(c>9)c=0;+d; if(d>5)d=0;+e;if(e>9)e=0;+g;if(g>9)g=0;dis_buf0=dis_dmc;dis_buf1=dis_dmd;dis_buf2=dis_dme;dis_buf3=dis_dmg;f200t=200;break;default:msta=0;/*抽獎方式2逐位抽獎*/void choujiang_2()(switch(pointer) case 0:if(esw0)cj=!cj;if(cj)dis_buf0=dis_dmrand()%10;if(esw1)pointer=
18、1;break;case 1:if(esw0)cj=!cj;if(cj)dis_buf1=dis_dmrand()%10;if(esw1)pointer=2;break;case 2:if(esw0)cj=!cj;if(cj)dis_buf2=dis_dmrand()%10;if(esw1)pointer=3;break;case 3:if(esw0)cj=!cj;if(cj)dis_buf3=dis_dmrand()%10;if(esw1)pointer=0;break;default:break;/*電子時鐘分秒*/void dianzishizhong()(+a;if(a>9)a=
19、0;+b;if(b>5)b=0;+c;if(c>9)c=0;+d;if(d>5)d=0;+e;dis_buf0=dis_dma;dis_buf1=dis_dmb;dis_buf2=dis_dmc;dis_buf3=dis_dmd;/*定時器0初始化函數(shù)*/void Init_Timer0(void)TMOD = 0x11;/TH0=0xec;TL0=0x78;/TR0= 1;/)定時器0工作在方式1定時器5ms初值開定時器0/*鍵掃描函數(shù)*/ void KeyScan()uchar kbuf,keyt;P2=0XFF;P3=P3|0X91;kbuf=P3;kbuf=(kbuf
20、&0X91)八0X91;lastkey=kbuf;if(lastkey!=key)/lastkey 為前沿if(keyt-!=0)/lastkey=key;/讀獨立按建鍵有變化? key為電平,鍵有變,計數(shù)到?/放棄不穩(wěn)定的鍵)elsekeyt=0X05;/重賦去抖值ekey=(keyAlastkey)&lastkey; /鍵前沿提取key=lastkey;)/*顯示函數(shù)*/void Disply() disport=0xff;P2=0xff;switch(dis_pointer)應(yīng)顯示位case 0: cs0=0;disport=dis_buf0;dis_pointer=1;
21、if(flaflag)Flaply();break;/根據(jù)顯示指針,轉(zhuǎn)相/ 點亮第零位數(shù)碼管/ 點亮第一位數(shù)碼管case 1: cs1=0;點亮第二位數(shù)碼管點亮第三位數(shù)碼disport=dis_buf1;dis_pointer=2;if(flaflag)Flaply();break;/case 2: cs2=0;disport=dis_buf2;dis_pointer=3;if(flaflag)Flaply();break;case 3: cs3=0;/fdisport=dis_buf3;dis_pointer=0;if(flaflag)Flaply();break;default:break
22、;/*閃爍函數(shù)*/void Flaply()(switch(flasta)(case 0: if(f300flag)cs0=1;break;case 1: if(f300flag)cs1=1;break;case 2: if(f300flag)cs2=1;break;case 3: if(f300flag)cs3=1;break;case 4: if(f300flag)cs0=1;/據(jù)閃爍狀態(tài)轉(zhuǎn)相應(yīng)位/ 300ms 至U,關(guān)顯示/ 300ms 至U,關(guān)顯示if(f300flag)cs1=1;if(f300flag)cs2=1;if(f300flag)cs3=1;break;default:break;9調(diào)試要點9.1硬件調(diào)試1、硬件完成后,檢查電路有無短路、斷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年《價值為綱》學(xué)習(xí)心得范例(3篇)
- 課題申報參考:接受美學(xué)視野下的卞之琳莎學(xué)研究
- 課題申報參考:教育強國進程中高校繼續(xù)教育高質(zhì)量發(fā)展的保障機制和推進路徑研究
- 2025版房地產(chǎn)銷售代理授權(quán)委托合同3篇
- 二零二五年度物流倉儲中心臨時搬運工勞動合同書4篇
- 2025版學(xué)校游泳池配套設(shè)施租賃與管理承包合同示范2篇
- 二零二五版藝術(shù)品拍賣師傭金分成合同3篇
- 個性化離婚合同與起訴狀套裝2024版版B版
- 二零二五年度健康管理與養(yǎng)老服務(wù)業(yè)合作協(xié)議3篇
- 二零二五年度圖書封面及插圖設(shè)計合同4篇
- 山東鐵投集團招聘筆試沖刺題2025
- 真需求-打開商業(yè)世界的萬能鑰匙
- 2025年天津市政集團公司招聘筆試參考題庫含答案解析
- GB/T 44953-2024雷電災(zāi)害調(diào)查技術(shù)規(guī)范
- 2024-2025學(xué)年度第一學(xué)期三年級語文寒假作業(yè)第三天
- 2024年列車員技能競賽理論考試題庫500題(含答案)
- 心律失常介入治療
- 6S精益實戰(zhàn)手冊
- 展會場館保潔管理服務(wù)方案
- 監(jiān)理從業(yè)水平培訓(xùn)課件
- 廣東省惠州市實驗中學(xué)2025屆物理高二第一學(xué)期期末綜合測試試題含解析
評論
0/150
提交評論