版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《單片機(jī)原理及應(yīng)用》</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 學(xué) 院: 源與動(dòng)力工程學(xué)院__</p><p> 班 級(jí):______建電1001_____</p><p><b> 目 錄</b></p><p>
2、<b> 任務(wù)書1</b></p><p> 第一章方案設(shè)計(jì)2</p><p> 第二章硬件系統(tǒng)設(shè)計(jì)3</p><p> 第三章軟件設(shè)計(jì)4</p><p> 第四章系統(tǒng)調(diào)試5</p><p><b> 小 結(jié)6</b></p>
3、<p><b> 附錄1:原理圖7</b></p><p><b> 附錄2:源程序8</b></p><p><b> 任務(wù)書</b></p><p> 題 目:基于單片機(jī)的8組搶答器設(shè)計(jì)</p><p> 設(shè)計(jì)要求:(1)搶答人數(shù)為八組,即有八
4、個(gè)搶答按鍵,以及主持人復(fù)位按鈕。</p><p> ?。?)每次搶答有聲音提示,提示顯示搶答組號(hào)。</p><p><b> 方案設(shè)計(jì)</b></p><p> 主要設(shè)計(jì)內(nèi)容如圖所示</p><p> 復(fù)位電路:當(dāng)一輪進(jìn)行完時(shí),由主持人按下,下一輪開始,復(fù)位電路接P3.2口。</p><p>
5、; 獨(dú)立式按鍵鍵盤:用于輸入高低電平,連接到P2口,由P2口檢測(cè)電平的變化。</p><p> 選手組別顯示電路:有1位數(shù)碼管組成,顯示成功搶答選手編號(hào)。</p><p> 蜂鳴電路:有選手搶答成功,P3.5口發(fā)出脈沖,使蜂鳴器發(fā)出聲音。</p><p><b> 硬件系統(tǒng)設(shè)計(jì)</b></p><p><b
6、> 一 單片機(jī)最小系統(tǒng)</b></p><p> 微控制器采用AT89C51。AT89C51是美國(guó)ATMEL公司生產(chǎn)的與MCS-51系列單片機(jī)完全兼容的高性能CMOS 8位單片機(jī),MCS-51系列單片機(jī)以其推出時(shí)間早、配套資源豐富、開發(fā)手段完善、性價(jià)比高等特點(diǎn)而得到了廣泛的應(yīng)用,是單片機(jī)的主流品種。</p><p> AT89C51的內(nèi)部資源主要包括:</p&
7、gt;<p> ·與MCS--51 系列完全兼容的高性能8位CPU;</p><p> ·4K字節(jié)可重復(fù)編程的Flash存儲(chǔ)器;</p><p> ·256字節(jié)的SRAM;</p><p> ·4個(gè)8位的并行口,共32條I/O口線;</p><p> ·3個(gè)16位的定時(shí)
8、器/計(jì)數(shù)器;</p><p> ·6個(gè)中斷源,2個(gè)中斷優(yōu)先級(jí)的中斷系統(tǒng);</p><p> ·一個(gè)全雙工的串行口;</p><p><b> ·內(nèi)部振蕩器;</b></p><p><b> ·可編程串行通道 </b></p><p
9、> ·低功耗的閑置和掉電模式 </p><p> ·片內(nèi)振蕩器和時(shí)鐘電路</p><p> 其最小系統(tǒng)主要包括復(fù)位電路等,如下圖所示。</p><p> 二 硬件電路設(shè)計(jì)說明</p><p> 1 復(fù)位電路設(shè)計(jì):本設(shè)計(jì)采用按鍵復(fù)位的方式進(jìn)行復(fù)位,把SW1連接到P3.2,通過撥動(dòng)SW1來改變高低電平,從而進(jìn)行
10、復(fù)位。</p><p> 2獨(dú)立式按鍵鍵盤設(shè)計(jì):鍵盤接口中使用多少根I/O線,鍵盤中就有幾個(gè)按鍵,鍵盤接口使用了8根I/O口線,該鍵盤就有8個(gè)按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實(shí)際需要對(duì)鍵盤中的按鍵靈活的編碼。本設(shè)計(jì)將P2口連接到按鍵鍵盤,搶答時(shí)高低電平發(fā)生變化。</p><p> 3 顯示電路設(shè)計(jì):利用ZLG7290進(jìn)行數(shù)碼管顯示。將P3.
11、0和SDA連接,P3.1和SCL連接,P3.7和/RST連接。</p><p> 4 蜂鳴器電路設(shè)計(jì):聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的巨型波,接上喇叭就能發(fā)出一定頻率的聲音。本設(shè)計(jì)將蜂鳴器與P3.5口連接,在選手搶答時(shí),驅(qū)動(dòng)蜂鳴器工作。</p><p><b> 軟件設(shè)計(jì)</b>
12、</p><p> 系統(tǒng)軟件分為主程序、中斷服務(wù)程序和子程序三部分。搶答器的電路設(shè)計(jì)需要兩個(gè)循環(huán),當(dāng)沒有準(zhǔn)備好的時(shí)候不能搶答,這里需要一個(gè)循環(huán),知道準(zhǔn)備好之后才能進(jìn)行下面的程序。第二個(gè)循環(huán)是選手的搶答循環(huán),利用標(biāo)志位來進(jìn)行,當(dāng)標(biāo)志位為零時(shí),則向下運(yùn)行,進(jìn)行顯示電路和蜂鳴器的工作,若是標(biāo)志位不為零,則一個(gè)一個(gè)的循環(huán)八個(gè)選手,直到 有人搶答為止。</p><p><b> 系統(tǒng)調(diào)
13、試</b></p><p> 說明調(diào)試中遇到的問題集解決方案</p><p> 1 程序編寫完成運(yùn)行沒有錯(cuò)誤后,進(jìn)行了調(diào)試,但是第一次調(diào)試時(shí)什么效果都沒有。我就考慮到不是程序上的錯(cuò)誤,那就肯定是接線上的錯(cuò)誤。查看了接線,果然是把P1口和P2口接反了。</p><p> 2 修改接線之后,數(shù)碼管不亮,經(jīng)過老師講解才知道,我們要想點(diǎn)亮數(shù)碼管,必須使用Z
14、LG7290。于是我在程序中又插入了這段程序,使數(shù)碼管點(diǎn)亮。</p><p> 3 修改完第二個(gè)錯(cuò)誤之后,我的搶答器終于工作了,但是還是有問題,按鍵、LED燈、數(shù)碼管顯示效果不對(duì)應(yīng),總是反在里面。因?yàn)榘l(fā)現(xiàn)按動(dòng)一號(hào)鍵是八號(hào)燈亮,而按動(dòng)八號(hào)鍵是一號(hào)燈亮,在排除接線錯(cuò)誤之后。我發(fā)現(xiàn)是在循環(huán)的那一部分出現(xiàn)了問題,把驅(qū)動(dòng)LED的編碼寫反了,修正了之后搶答器終于正確工作了。</p><p><
15、b> 小 結(jié)</b></p><p> 這次課程設(shè)計(jì)老師給我們安排了一個(gè)星期的時(shí)間,可以說是比較充裕的。雖然如此,我還是很用心的做設(shè)計(jì)程序,剛拿到題目,感覺太繁雜了,不知怎么下手,雖然這些知識(shí)以前都有接觸過,但也只是分部分來接觸,而這次的設(shè)計(jì)是要對(duì)前面幾次實(shí)驗(yàn)的一個(gè)綜合,真的很難。也翻閱了一些資料,到圖書館翻閱了很多資料,可是還是一片空白,于是也在網(wǎng)上參考一些個(gè)程序,然后自己事先編寫好了程
16、序,到了周一去到機(jī)房時(shí)候,把自己寫的程序燒進(jìn)去芯片里面,發(fā)現(xiàn)不行,才知是我把段碼地址搞錯(cuò)了,所以不能在數(shù)碼管上正常顯示。通過運(yùn)用單片機(jī)設(shè)計(jì)八路搶答器程設(shè)計(jì),發(fā)現(xiàn)自己的很多不足,自己知識(shí)的很多漏洞,看到了自己的實(shí)踐經(jīng)驗(yàn)還是比較缺乏,理論聯(lián)系實(shí)際的能力還急需提高。</p><p><b> 附錄1:原理圖</b></p><p><b> 附錄2:源程序&l
17、t;/b></p><p> OK BIT 20H</p><p> KEY EQU 30H</p><p> KEY1 BIT P2.0</p><p> KEY2 BIT P2.1</p><p> KEY3 BIT P2.2</p><p> KEY4 BIT P2.3&
18、lt;/p><p> KEY5 BIT P2.4</p><p> KEY6 BIT P2.5</p><p> KEY7 BIT P2.6</p><p> KEY8 BIT P2.7</p><p> RING BIT P3.5</p><p> SDA BIT P3.0</p
19、><p> SCL BIT P3.1</p><p> RST BIT P3.6</p><p> MTDEQU 63H</p><p> ZLG7290EQU70H</p><p> ACKBIT10H</p><p> SLADATA60H</p&
20、gt;<p> SUBADATA61H</p><p> NUMBYTEDATA62H</p><p> ORG 000H</p><p> SJMP MAIN</p><p> ORG 003H</p><p> LJMP INT_0</p><
21、;p> ORG 030H</p><p> MAIN :SETB EA</p><p><b> SETB EX0</b></p><p><b> SETB IT0</b></p><p><b> CLR OK</b></p>
22、<p> CLR RING</p><p> LCALL RE7290</p><p> DD:JNB OK,$ </p><p> D0: MOV A,P2</p><p> CJNE A,#0FFH,D1 </p><p><b> SJMP D0&
23、lt;/b></p><p> D1: JB ACC.0,D2</p><p> MOV KEY,#1</p><p> MOV P1,#0FEH</p><p> SETB RING</p><p><b> SJMP D9</b></p>&l
24、t;p> D2:JB ACC.1,D3</p><p> MOV KEY,#2</p><p> MOV P1,#0FDH</p><p> SETB RING</p><p><b> SJMP D9</b></p><p> D3: JB ACC.2,
25、D4</p><p> MOV KEY,#3</p><p> MOV P1,#0FBH</p><p> SETB RING</p><p><b> SJMP D9</b></p><p> D4:JB ACC.3,D5</p><p>
26、MOV KEY,#4</p><p> MOV P1,#0F7H</p><p> SETB RING</p><p><b> SJMP D9</b></p><p> D5:JB ACC.4,D6</p><p> MOV KEY,#5</p>&
27、lt;p> MOV P1,#0EFH</p><p> SETB RING</p><p><b> SJMP D9</b></p><p> D6: JB ACC.5,D7</p><p> MOV KEY,#6</p><p> MOV P1,#0DFH
28、</p><p> SETB RING</p><p><b> SJMP D9</b></p><p> D7: JB ACC.6,D8</p><p> MOV KEY,#7</p><p> MOV P1,#0BFH</p><p> S
29、ETB RING</p><p><b> SJMP D9</b></p><p> D8: JB ACC.7,D9</p><p> MOV KEY,#8</p><p> MOV P1,#07FH</p><p> SETB RING</p><
30、;p><b> SJMP D9</b></p><p> D9: CLR OK</p><p> MOV 66H,KEY</p><p> LCALL LEDDISP</p><p><b> LJMP DD </b></p><p> INT
31、_0:SETB OK</p><p> CLR RING</p><p> MOV P1,#0FFH</p><p> MOV KEY,#0</p><p> MOV 66H,KEY</p><p> LCALL LEDDISP</p><p><b>
32、RETI</b></p><p> leddisp:push psw</p><p><b> push acc</b></p><p><b> setb rs1</b></p><p><b> setb rs0</b></p>&
33、lt;p> mov r0,#66H</p><p> mov r4,#8</p><p> mov r5,#60h</p><p> loop: MOV MTD,R5</p><p> MOV MTD+1,@R0</p><p> MOV SLA,#70H</p>
34、;<p> MOV SUBA,#07H</p><p> MOV NUMBYTE,#02H</p><p> LCALL IWRNBYTE</p><p> LCALL DELY1</p><p><b> INC R0</b></p><p><b>
35、; INC R5</b></p><p> DJNZ R4,LOOP</p><p><b> POP ACC</b></p><p><b> POP PSW</b></p><p><b> RET</b></p><
36、p> re7290: clr rst</p><p> lcall dely</p><p><b> setb rst</b></p><p> lcall dely</p><p><b> ret</b></p><p> dely :mov
37、 r7,#80H</p><p> min :djnz r7,ys500 </p><p><b> ret</b></p><p> ys500 :lcall ys500us</p><p> ljmp min</p><p> ys500us:mov
38、r6,#80h</p><p> djnz r6,$</p><p><b> ret</b></p><p> dely1 :mov r7,#40h</p><p> djnz r7,$</p><p><b> ret</b></p>&
39、lt;p> ;啟動(dòng)I2C總線子程序 </p><p> START: nop</p><p><b> nop</b></p><p><b> nop</b></p><p><b> SETB SDA</b></p><
40、p><b> NOP</b></p><p> SETB SCL ;起始條件建立時(shí)間大于4.7us</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b>
41、</p><p><b> NOP</b></p><p><b> NOP</b></p><p> CLR SDA </p><p> NOP ;起始條件鎖定時(shí)大于4us</p><p><b> NOP<
42、;/b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> CLR SCL ;鉗住總線,準(zhǔn)備發(fā)數(shù)據(jù)</p><p><b
43、> NOP</b></p><p><b> nop</b></p><p><b> nop</b></p><p><b> RET</b></p><p><b> ;結(jié)束總線子程序</b></p><
44、p> STOP: NOP</p><p><b> NOP</b></p><p><b> NOP</b></p><p> CLR SDA</p><p><b> NOP</b></p><p> SETB SC
45、L ;發(fā)送結(jié)束條件的時(shí)鐘信號(hào)</p><p> NOP ;結(jié)束總線時(shí)間大于4us</p><p> NOP </p><p><b> NOP</b></p><p><b> NOP</b></p><p>
46、;<b> NOP</b></p><p> SETB SDA ;結(jié)束總線</p><p> NOP ;保證一個(gè)終止信號(hào)和起始信號(hào)的空閑時(shí)間大于4.7us</p><p><b> NOP</b></p><p><b
47、> NOP</b></p><p><b> NOP</b></p><p><b> nop</b></p><p><b> nop</b></p><p><b> RET</b></p><p>
48、<b> ;檢查應(yīng)答位子程序</b></p><p> ;返回值,ACK=1時(shí)表示有應(yīng)答</p><p><b> CACK:NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p>
49、<p><b> SETB SDA</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> SETB SCL</b></p><p><b> CLR
50、ACK</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> MOV C,SDA</p><p> JC CEND</p><p> SETB ACK ;判斷
51、應(yīng)答位</p><p><b> CEND:NOP</b></p><p><b> CLR SCL</b></p><p><b> NOP</b></p><p><b> nop</b></p><p><
52、b> nop</b></p><p><b> RET</b></p><p><b> ;發(fā)送字節(jié)子程序</b></p><p> ;字節(jié)數(shù)據(jù)放入ACC </p><p> ;每發(fā)送一字節(jié)要調(diào)用一次CACK子程序,取應(yīng)答位 </p
53、><p> WRBYTE: MOV R7,#08H</p><p> WLP: RLC A ;取數(shù)據(jù)位</p><p><b> JC WR1</b></p><p> SJMP WR0 ;判斷數(shù)據(jù)位</p><p>
54、; WLP1: DJNZ R7,WLP</p><p><b> NOP</b></p><p><b> RET</b></p><p> WR1: SETB SDA ;發(fā)送1</p><p><b> NOP</b><
55、;/p><p><b> SETB SCL</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP&l
56、t;/b></p><p><b> NOP</b></p><p><b> CLR SCL</b></p><p> SJMP WLP1</p><p> WR0: CLR SDA ;發(fā)送0</p><p><
57、b> NOP</b></p><p><b> SETB SCL</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p>&l
58、t;p><b> NOP</b></p><p><b> NOP</b></p><p><b> CLR SCL</b></p><p> SJMP WLP1</p><p> ;向器件指定子地址寫N字節(jié)數(shù)據(jù)</p><p>
59、 ;入口參數(shù): 器件從地址SLA、器件子地址SUBA 、發(fā)送數(shù)據(jù)緩沖區(qū)MTD、發(fā)送字節(jié)數(shù)NUMBYTE</p><p> ; 占用: A 、R0 、R1 、R3 、CY </p><p> IWRNBYTE: MOV A,NUMBYTE</p><p> MOV R3,A</p><p> LCALL START
60、 ;起動(dòng)總線</p><p> MOV A,SLA</p><p> LCALL WRBYTE ;發(fā)送器件從地址 </p><p> LCALL CACK</p><p> JNB ACK,RETWRN ;無應(yīng)答則退出</p><p> MOV
61、 A,SUBA ;指定子地址 </p><p> LCALL WRBYTE</p><p> LCALL CACK</p><p> MOV R1,#MTD</p><p> WRDA: MOV A,@R1</p><p> LCALL WRBYTE
62、 ;開始寫入數(shù)據(jù)</p><p> LCALL CACK</p><p> JNB ACK,IWRNBYTE</p><p><b> INC R1</b></p><p> DJNZ R3,WRDA ;判斷寫完沒有</p><p> RETW
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)-- 基于單片機(jī)的搶答器設(shè)計(jì)
- 課程設(shè)計(jì)-單片機(jī)原理基于單片機(jī)的八路搶答器設(shè)計(jì)
- 搶答器單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)搶答器課程設(shè)計(jì)
- 單片機(jī)搶答器課程設(shè)計(jì) --搶答器
- 單片機(jī)搶答器課程設(shè)計(jì)
- 單片機(jī)搶答器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---搶答器
- 搶答器 單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-- 8路搶答器設(shè)計(jì)
- 基于單片機(jī)的8路搶答器課程設(shè)計(jì)報(bào)告
- 基于單片機(jī)的搶答器課程設(shè)計(jì)
- 基于單片機(jī)的搶答器課程設(shè)計(jì)
- 智力搶答器單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)多路搶答器
- 智力搶答器單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-8位智能搶答器
- 單片機(jī)課程設(shè)計(jì)--8位智能搶答器
- 單片機(jī)課程設(shè)計(jì)--智力搶答器
- 單片機(jī)搶答器課程設(shè)計(jì)3
評(píng)論
0/150
提交評(píng)論