版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《單片機原理及應(yīng)用》</p><p><b> 課程設(shè)計報告</b></p><p> 學(xué) 院: 源與動力工程學(xué)院__</p><p> 班 級:______建電1001_____</p><p><b> 目 錄</b></p><p>
2、<b> 任務(wù)書1</b></p><p> 第一章方案設(shè)計2</p><p> 第二章硬件系統(tǒng)設(shè)計3</p><p> 第三章軟件設(shè)計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> 題 目:基于單片機的8組搶答器設(shè)計</p><p> 設(shè)計要求:(1)搶答人數(shù)為八組,即有八
4、個搶答按鍵,以及主持人復(fù)位按鈕。</p><p> (2)每次搶答有聲音提示,提示顯示搶答組號。</p><p><b> 方案設(shè)計</b></p><p> 主要設(shè)計內(nèi)容如圖所示</p><p> 復(fù)位電路:當(dāng)一輪進行完時,由主持人按下,下一輪開始,復(fù)位電路接P3.2口。</p><p>
5、; 獨立式按鍵鍵盤:用于輸入高低電平,連接到P2口,由P2口檢測電平的變化。</p><p> 選手組別顯示電路:有1位數(shù)碼管組成,顯示成功搶答選手編號。</p><p> 蜂鳴電路:有選手搶答成功,P3.5口發(fā)出脈沖,使蜂鳴器發(fā)出聲音。</p><p><b> 硬件系統(tǒng)設(shè)計</b></p><p><b
6、> 一 單片機最小系統(tǒng)</b></p><p> 微控制器采用AT89C51。AT89C51是美國ATMEL公司生產(chǎn)的與MCS-51系列單片機完全兼容的高性能CMOS 8位單片機,MCS-51系列單片機以其推出時間早、配套資源豐富、開發(fā)手段完善、性價比高等特點而得到了廣泛的應(yīng)用,是單片機的主流品種。</p><p> AT89C51的內(nèi)部資源主要包括:</p&
7、gt;<p> ·與MCS--51 系列完全兼容的高性能8位CPU;</p><p> ·4K字節(jié)可重復(fù)編程的Flash存儲器;</p><p> ·256字節(jié)的SRAM;</p><p> ·4個8位的并行口,共32條I/O口線;</p><p> ·3個16位的定時
8、器/計數(shù)器;</p><p> ·6個中斷源,2個中斷優(yōu)先級的中斷系統(tǒng);</p><p> ·一個全雙工的串行口;</p><p><b> ·內(nèi)部振蕩器;</b></p><p><b> ·可編程串行通道 </b></p><p
9、> ·低功耗的閑置和掉電模式 </p><p> ·片內(nèi)振蕩器和時鐘電路</p><p> 其最小系統(tǒng)主要包括復(fù)位電路等,如下圖所示。</p><p> 二 硬件電路設(shè)計說明</p><p> 1 復(fù)位電路設(shè)計:本設(shè)計采用按鍵復(fù)位的方式進行復(fù)位,把SW1連接到P3.2,通過撥動SW1來改變高低電平,從而進行
10、復(fù)位。</p><p> 2獨立式按鍵鍵盤設(shè)計:鍵盤接口中使用多少根I/O線,鍵盤中就有幾個按鍵,鍵盤接口使用了8根I/O口線,該鍵盤就有8個按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實際需要對鍵盤中的按鍵靈活的編碼。本設(shè)計將P2口連接到按鍵鍵盤,搶答時高低電平發(fā)生變化。</p><p> 3 顯示電路設(shè)計:利用ZLG7290進行數(shù)碼管顯示。將P3.
11、0和SDA連接,P3.1和SCL連接,P3.7和/RST連接。</p><p> 4 蜂鳴器電路設(shè)計:聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的巨型波,接上喇叭就能發(fā)出一定頻率的聲音。本設(shè)計將蜂鳴器與P3.5口連接,在選手搶答時,驅(qū)動蜂鳴器工作。</p><p><b> 軟件設(shè)計</b>
12、</p><p> 系統(tǒng)軟件分為主程序、中斷服務(wù)程序和子程序三部分。搶答器的電路設(shè)計需要兩個循環(huán),當(dāng)沒有準(zhǔn)備好的時候不能搶答,這里需要一個循環(huán),知道準(zhǔn)備好之后才能進行下面的程序。第二個循環(huán)是選手的搶答循環(huán),利用標(biāo)志位來進行,當(dāng)標(biāo)志位為零時,則向下運行,進行顯示電路和蜂鳴器的工作,若是標(biāo)志位不為零,則一個一個的循環(huán)八個選手,直到 有人搶答為止。</p><p><b> 系統(tǒng)調(diào)
13、試</b></p><p> 說明調(diào)試中遇到的問題集解決方案</p><p> 1 程序編寫完成運行沒有錯誤后,進行了調(diào)試,但是第一次調(diào)試時什么效果都沒有。我就考慮到不是程序上的錯誤,那就肯定是接線上的錯誤。查看了接線,果然是把P1口和P2口接反了。</p><p> 2 修改接線之后,數(shù)碼管不亮,經(jīng)過老師講解才知道,我們要想點亮數(shù)碼管,必須使用Z
14、LG7290。于是我在程序中又插入了這段程序,使數(shù)碼管點亮。</p><p> 3 修改完第二個錯誤之后,我的搶答器終于工作了,但是還是有問題,按鍵、LED燈、數(shù)碼管顯示效果不對應(yīng),總是反在里面。因為發(fā)現(xiàn)按動一號鍵是八號燈亮,而按動八號鍵是一號燈亮,在排除接線錯誤之后。我發(fā)現(xiàn)是在循環(huán)的那一部分出現(xiàn)了問題,把驅(qū)動LED的編碼寫反了,修正了之后搶答器終于正確工作了。</p><p><
15、b> 小 結(jié)</b></p><p> 這次課程設(shè)計老師給我們安排了一個星期的時間,可以說是比較充裕的。雖然如此,我還是很用心的做設(shè)計程序,剛拿到題目,感覺太繁雜了,不知怎么下手,雖然這些知識以前都有接觸過,但也只是分部分來接觸,而這次的設(shè)計是要對前面幾次實驗的一個綜合,真的很難。也翻閱了一些資料,到圖書館翻閱了很多資料,可是還是一片空白,于是也在網(wǎng)上參考一些個程序,然后自己事先編寫好了程
16、序,到了周一去到機房時候,把自己寫的程序燒進去芯片里面,發(fā)現(xiàn)不行,才知是我把段碼地址搞錯了,所以不能在數(shù)碼管上正常顯示。通過運用單片機設(shè)計八路搶答器程設(shè)計,發(fā)現(xiàn)自己的很多不足,自己知識的很多漏洞,看到了自己的實踐經(jīng)驗還是比較缺乏,理論聯(lián)系實際的能力還急需提高。</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> ;啟動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 ;起始條件建立時間大于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 ;起始條件鎖定時大于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é)束條件的時鐘信號</p><p> NOP ;結(jié)束總線時間大于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 ;保證一個終止信號和起始信號的空閑時間大于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時表示有應(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、 ;起動總線</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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計-- 基于單片機的搶答器設(shè)計
- 課程設(shè)計-單片機原理基于單片機的八路搶答器設(shè)計
- 搶答器單片機課程設(shè)計報告
- 單片機搶答器課程設(shè)計
- 單片機搶答器課程設(shè)計 --搶答器
- 單片機搶答器課程設(shè)計
- 單片機搶答器課程設(shè)計
- 單片機課程設(shè)計---搶答器
- 搶答器 單片機課程設(shè)計
- 單片機課程設(shè)計-- 8路搶答器設(shè)計
- 基于單片機的8路搶答器課程設(shè)計報告
- 基于單片機的搶答器課程設(shè)計
- 基于單片機的搶答器課程設(shè)計
- 智力搶答器單片機課程設(shè)計
- 單片機課程設(shè)計多路搶答器
- 智力搶答器單片機課程設(shè)計
- 單片機課程設(shè)計-8位智能搶答器
- 單片機課程設(shè)計--8位智能搶答器
- 單片機課程設(shè)計--智力搶答器
- 單片機搶答器課程設(shè)計3
評論
0/150
提交評論