




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、15 人 投 曲表 決 器班級:姓名:學(xué)號:201205140133第一章概述1 .設(shè)計內(nèi)容:設(shè)計一個基于AT89C52系列單片機的15人投票表決器,利用按鍵來進(jìn)行投 票,通過1602進(jìn)行票數(shù)的顯示。可以投反對票,贊同票,不投票默認(rèn)為棄權(quán)。2 .設(shè)計目的:本文設(shè)計的投票表決器,是基于單片機設(shè)計制作的電子式投票表決器。比傳統(tǒng)的 手動統(tǒng)計票數(shù)更為方便直觀,通過程序來進(jìn)行控制,有效避免了暗箱操作。制作的投 票表決器小巧容易攜帶,特別方便。3 .設(shè)計原理:該音樂盒主要由按鍵電路、復(fù)位電路、1602顯示電路以及指示燈組成。使 用兩 排按鍵控制贊同票與反對票,一個指示燈用來表示正在計算。待投票結(jié)束后 按下
2、統(tǒng)計 按鈕即可統(tǒng)計票數(shù)。可以從1602上直觀的讀出贊同票,反對票,棄權(quán)第二章硬件設(shè)計1-設(shè)計框架:音樂盒的系統(tǒng)結(jié)構(gòu)以AT89c52單片機位控制核心,加上2排按鍵、1602顯示 電路、LED模塊組成。單片機負(fù)責(zé)接收按鍵的輸入,根據(jù)輸入控制1602顯示票數(shù), 以LED顯示單片機正在計算票數(shù)的狀態(tài)。系統(tǒng)組成框圖如圖2.1所示。圖2.1系統(tǒng)組成框圖4 .各元器件選擇及功能介紹:(1) AT89c52 簡介AT89C52是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROMFIash Programmable and Erasable Read Only Memory )的低電壓, 高性能CMOS位微
3、處理器,俗稱單片機。AT89C52是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除100 次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè) 標(biāo)準(zhǔn)的MCS-51 指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C52是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89c52單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖PL QLL P.LI J p. s.PL 4忘 PI.,應(yīng) PI .近PLBST(RID3 PI.0 JTJEOiPI IiTV|7L
4、3: ,?OTTP?. 3(TO)PJa (TDPI 5 TlfSPJ, 6 腐引I1人TCTAL1 mL3四AI89C5I2.2所示 vccW (AD-03 PA. i/(.inn PO. PO.3/LID3SH. 4/(AIM I 隊時 UM) PDe /(ADtfe PO. T/1AWJ ES/vpp ALE/RA P5IU P空 7/(AI 31 KP/U14J IX 5/Q JI ne4UI29 P2. 3/an) I嘰 Z! aao P2 i/u 討 P2. a/(ABI圖2.2 AT89C51系列單片機(2) 1602顯示電路設(shè)計與原理1602是字符型液晶,它是16*2的顯示的。
5、工業(yè)字符型液晶,能夠同時顯示16x02即 32個字符。通過1602進(jìn)行票數(shù)的顯示。(3)時鐘振蕩電路AT89c52中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳 XTAL1和 XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石 英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容 C1,C2雖然沒有什么嚴(yán)格 的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振 的難易程序及 溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF-10PF,而 如果使用陶瓷振蕩器建議選擇40PF-
6、10PFo用戶也可以采用外 部時鐘。采用外部時 鐘的電路如圖示。這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分 頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但 最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。振蕩器電 路圖如下:C2X1AL2NCXIAL2XTA.L1GNDXTAL1 EXTERNALOSCILLATORSIGNALGND圖2.3單片機內(nèi)部、外部振蕩電路5 .設(shè)計原理圖:總體硬件電路實現(xiàn)功能如下,如圖2.4所示1)電路中用P0部分P1 口進(jìn)行贊同票讀取。2)電路中用
7、P2、部分P3 口進(jìn)行反對票讀取。3) P1.6作為統(tǒng)計票數(shù)的開關(guān)。4) P1.7控制正在計算票數(shù)的顯示燈。5)電路為12MHz晶振頻率工作,起振電路中C1、C2均為30PR圖2.4硬件電路圖第三章軟件設(shè)計1 .個程序段介紹:使用中斷來掃描統(tǒng)計票數(shù)的按鍵,更精確。先對定時器進(jìn)行初始化,選擇定時器 工作方式。定時時間為沒50000US進(jìn)入一次中斷。再對1602液晶進(jìn)行初始化,編寫顯示作者姓名學(xué)號的函數(shù)disp_myname();a 5s 時2s后將1602的指針指向第二行,將學(xué)號替換為投票表決器的英文voting mach in e o在while (1)的循環(huán)中一直等待P1.6 口的按鍵,若按
8、鍵未被按下,則在 中 斷中繼續(xù)統(tǒng)計票數(shù),直到P1.6被按下,關(guān)閉定時器中斷,使之后的投票無效化 統(tǒng)計 當(dāng)前的贊同,反對,棄權(quán)票數(shù),顯示到 1602中。之后開啟定時器中斷等待 下一次投票統(tǒng)計的到來。主程序流程圖35所示:圖3-5至程序流程圖13A.主程序代碼:#in elude un sig ned int yes=0,no=0, qiqua n=OJ=O,j=O; un sig ned int temp,succeed=O;un sig ned int y,com,date;un sig ned int ge,shi,bai,a=O;chary18=2,232,2,2,2,2,2, n18,y
9、27=232,2,2,2,2,2, n27; sbit K1=P1A6;/開關(guān)指示燈贊響sbit K2=P1A7;/sbit DO=POA o ; * sbit D1= P0A1; sbit D2=POA2; sbit D3=P0A3;sbit D4=P0A4;sbit D5=P0A5;sbit D6=P0A6;sbit D7=P0A7;sbit DB1=P1A0; sbit DB2=P1A1; sbit DB3=P1A2; sbit DB4=P1A3; sbit DB5=P1A4;sbit DB6=P1A5; sbit rd=P3A7;/* sbit A0=P2A0; sbit A1=P2A
10、1; sbit A2=P2A2; sbit A3=P2A3; sbit A4=P2A4; sbit A5=P2A5; sbit A6=P2A6; sbit A7=P2A7;sbit rx=P3A0; sbit tx=P3A1;sbit csda=P3A2;sbit int1=P3A3; 反對*sbit lcden=P3A4;sbit rs=P3A5;sbit wr=P3A6;void delay(unsigned int y)/ 延時(unsigned int a,b;for(a=y;a0;a-) for(b=110;bO;b-);)void write_com(unsigned int co
11、m) / 寫指令( rs=O;P0=com;delay(5);lcden=1;delay(5);lcden=O;void write_date(unsigned int date) /寫數(shù)據(jù)rs=1;P0=date; delay(5); lcden=1; delay(5); lcden=0;)int change(unsigned int a) /( switch(a)把票數(shù)轉(zhuǎn)為字符型case 0: a=0x30;break; case a=0x31 ;break;casea=0x32;break;casea=0x33;break;casea=0x34;break;casea=0x35;bre
12、ak;casea=0x36;break;casea=0x37 ;break;casea=0x38;break;casea=0x39;break; return a;)/*void xianshi(unsigned int d)(/init();bai=d/100;shi=(d-100*bai)/10;ge=d%10;bai=change(bai);shi=change(shi);顯示*7ge=change(ge);write_date(bai);delay(5);write_date(shi);delay(5);write_date(ge);delay(5); I/*顯示/void xians
13、hi2()(write_date(*y);delay(5);write_date(,e,); delay(5);write_date(,s,);delay(5);write_date(*:);delay(5);)void xianshi3()(write_date(,n,);delay(5);write_date(,o,); delay(5);write_date(,:);delay(5);void xianshi4()(write_date(,a,);delay(5);write_date(,b,);delay(5);write_date(*s);delay(5);write_date(,t
14、,);delay(5);write_date(,e,);delay(5);write_date(,n,); delay(5);write_date(,t,);/*顯示贊同行/* 顯示反對*/* 顯示棄權(quán)*delay(5);write_date(T);delay(5);write_date(,o,); delay(5);write_date(,n,); delay(5);write_date(*:);delay(5);void panduan_yes()jf(D0=0)(yl70=1;n10=0;if(D1=O) (n11=0;if(D2=0) (yi2=i;n12=0;if(D3=0) (yi
15、3=i;n13=0;Hf(D4=0) (yi4=i; n14=0;)if(D5=0) (yi5=i;n15=0;)if(D6=0)(yi6=i;n16=0;if(D7=0) (yi7=i; n17=0;)if(DB1=O)y20=i;n20=0;Hf(DB2=0)y2i=i;n21=0;)if(DB3=0)y22=i; n22=0;if(DB4=0) y23=i; n23=0;)if(DB5=0) y24=1;n24=0;Hf(DB6=0) y25=1;n25=0; if (rd=O)(y26=i ; n26=0;)void panduan_no()jf(AO=O)(y1O=O;n1O=1;)
16、if(A1=O)y11=0;n11=1; if(A2=0)y12=0; n12=1; if(A3=0)(y13=0; n13=1; if(A4=0)y14=0; n14=1; if(A5=0)(y15=0; n15=1; if(A6=0)y16=0; n16=1; if(A7=0)y17=0;n17=1;)if(rx=O)(y2o=o;n20=1;)if(tx=O)(y2i=o;n21=1; if(csda=0)(y22=0;n22=1;if(int1=O)(y23=0;n23=1;if(lcden=0)(y24=0;n24=1;)if(rs=O)(y25=0;n25=1; jf(wr=O)(
17、y26=0;n26=1;)2void init() /1602 初始化(lcden=0;write_com(0x38);write_com(0x0e);write_com(0x01);write_com(0x80); / 為了移動效果1void tongji()(unsigned int i; for(i=0;i8;i+)if(y1i=1) yes+; if(n1i=1) no+;if(y1i=2) qiquan+;)for(i=0;i7;i+)if(y2i=1) yes+; if(n2i=1) no+;if(y2i=2) qiquan+;)void restart()(unsigned in
18、t i;PO=Oxff;P1=Oxff;P2=0xff;P3=0xff; for(i=0;i8;i+) y1i=2; n1i=0;for(i=0;iv7;i+) y2i=2; n2i=0;yes=0;no=0;qiquan=O;void disp_myname()iZt();/1602 初始化 write_date(T);delay(5);write_date( );delay(5);write_date(,m,);delay(5);write_date( 1);delay(5); write_date(,C,) ; delay(5); write_date(,h,); delay(5); w
19、rite_date(*e) ;delay(5) ;write_date(n,) ;delay(5);write_date(* ) ;delay(5) ;write_date(,Q,) ;delay(5);write_date(*u) ; delay(5); write_com(0x80+0x40); 寫第二行,我的學(xué)號 write_date(2);delay(5);write_date(*O);delay(5);write_date(*r);delay(5);write_date(,21);delay(5);write_date(*O);delay(5);write_date(15,);del
20、ay(5);write_date(,1,);delay(5);write_date(41);delay(5);write_date(*O);delay(5);write_date(r);delay(5);write_date(3);delay(5);write_date(3);restart();void disp_mydesign()( /init();/1602 初始化write_com(0x80+0x40); /寫第二行,顯示投票表決器的功能 write_date(V);delay(5);write_date(o);delay(5);write_date(,t,);delay(5);wr
21、ite_date(T);delay(5);write_date(*n);delay(5);write_date(g);delay(5);write_date(f);delay(5);write_date(m,);delay(5);write_date(a);delay(5);write_date(c*);delay(5);write_date(h);delay(5);write_date(T);delay(5);write_date(*n);delay(5);write_date(*e);delay(5);restart();void main()(K2=0;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;disp_myname(); 顯示作者姓名,學(xué)號delay(2000); 2秒后顯示本設(shè)計名稱,投票表決器disp_mydesign();while(1)(while(K1=1);EA=0;K2=1; /計算指示燈tongji();init();1602 初始化xianshi2();
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司職員個人聘用合同(4篇)
- 交通流監(jiān)測新技術(shù)試題及答案
- 嵌入式系統(tǒng)與人機交互設(shè)計試題及答案
- 計算機二級MySQL數(shù)據(jù)處理能力試題及答案
- 信息系統(tǒng)監(jiān)理師知識點整合試題及答案
- 商業(yè)經(jīng)營門面租賃合同書(17篇)
- 計算機三級嵌入式考試的知識體系試題及答案
- 社區(qū)土地流轉(zhuǎn)項目合同
- 汽車工程技術(shù)與維護(hù)技術(shù)知識競賽試題集
- 烹飪技藝之川菜制作試題
- 報價單模板完
- 商品混凝土技術(shù)規(guī)格書
- 醫(yī)療機構(gòu)申請變更登記注冊書(示范文本)
- 國家開放大學(xué)《可編程控制器應(yīng)用實訓(xùn)》形考任務(wù)5(實訓(xùn)五)參考答案
- ZJ50DBS鉆機-01使用說明書
- 學(xué)生志愿服務(wù)證明模板
- 活動策劃崗位筆試題目大全答案
- 六旋翼無人機的設(shè)計(畢業(yè)設(shè)計)
- 《低段培智學(xué)生行為習(xí)慣養(yǎng)成教育的研究》小課題研究中期報告
- TC4鈦合金拉拔工藝探索
- 八年級數(shù)學(xué)上冊《平方差公式》的教學(xué)反思(優(yōu)秀3篇)
評論
0/150
提交評論