版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 廣告燈</b></p><p><b> 一、問題的提出</b></p><p> 用八個發(fā)光二極管代替廣告燈,實現(xiàn)廣告燈的循環(huán)以及花樣變化!</p><p><b> 二、總體設計</b></p><p><b> 1、分析問題
2、的功能</b></p><p> 將P1 口的8個引腳分別接8位發(fā)光二極管0,1,2,3,4,5,6,7。通過控制P1口的輸出,實現(xiàn)每隔0.5s接在P1 口的8個發(fā)光二極管從右依次點亮0,1,2,3,4,5,6,7,然后從左依次熄滅7,6,5,4,3,2,1,0,然后8個發(fā)光二極管全部點亮,閃爍3 次;接著,每隔0.5s接在P1 口的8個發(fā)光二極管從左依次點亮7,6,5,4,3,2,1,0,然后從右
3、依次熄滅0,1,2,3,4,5,6,7,然后8個發(fā)光二極管全部點亮,閃爍3 次;接著8個二極管從左輪流點亮0,1,2,3,4,5,6,7,然后8個二極管從右輪流點亮7,6,5,4,3,2,1,0,然后8個發(fā)光二極管全部點亮,閃爍5 次,之后全滅;如此反復循環(huán)。</p><p> 循環(huán)過程中通過中斷加入一些廣告燈的花樣變化。</p><p> 2、系統(tǒng)總體結構設計</p>
4、<p> 1)硬件設計:8031單片機,DP-51PROC綜合仿真實驗儀,P1口,定時器0,外部中斷1等。</p><p> 2)軟件設計:各功能模塊詳見程序清單后注釋。</p><p><b> 三、詳細設計:</b></p><p><b> 1、硬件詳細設計:</b></p><
5、p><b> 時間間隔</b></p><p> 可采用軟件延時或定時器定時,軟件延時:8031時鐘頻率11.0592MHz,延時0.5S,P1口輸出。</p><p> 采用定時器0定時延時:</p><p><b> ORG 800BH</b></p><p><b>
6、 LJMP TOS</b></p><p> 定時器0賦定時初值:</p><p> MOV TH0,#4CH</p><p> MOV TL0,#00H</p><p><b> 電路圖:</b></p><p><b> 定時中斷子程序:</b>&l
7、t;/p><p> TOS: MOV TH0,#4CH</p><p> MOV TL0,#00H</p><p><b> INC R0</b></p><p> CJNE R0,#10,LL</p><p> MOV R0,#00H </p><p><
8、b> …… </b></p><p><b> ……</b></p><p> RETI </p><p><b> 外部中斷子程序:</b></p><p> INT1S: PUSH ACC</p><p><b> …
9、…</b></p><p><b> ……</b></p><p><b> POP ACC</b></p><p><b> RETI</b></p><p><b> 2、軟件詳細設計:</b></p><p&g
10、t;<b> 軟件延時:</b></p><p> DELAY: MOV 31H,#0</p><p> MOV 32H,#0 </p><p> LOOP2: DJNZ 32H,$</p><p> DJNZ 32H,$</p><p> DJNZ 32H,$</p>
11、<p> DJNZ 32H,$</p><p> DJNZ 31H,LOOP2</p><p><b> RET</b></p><p><b> 逐個點亮:</b></p><p> NEXT1:MOV P1,A</p><p><b> C
12、LR C</b></p><p><b> RLC A</b></p><p><b> INC R1</b></p><p><b> SJMP NEXT</b></p><p><b> 逐個熄滅:</b></p>&
13、lt;p> NEXT3:MOV P1,A</p><p><b> SETB C</b></p><p><b> RRC A</b></p><p><b> INC R2</b></p><p><b> SJMP NEXT</b>&l
14、t;/p><p><b> 循環(huán)點亮:</b></p><p> NEXT13:MOV P1,A</p><p><b> RL A</b></p><p><b> INC R7</b></p><p><b> SJMP NEXT&l
15、t;/b></p><p><b> 閃爍:</b></p><p> NEXT11:MOV P1,A</p><p><b> CPL A</b></p><p><b> INC R6</b></p><p> SJMP NEXT &
16、lt;/p><p><b> 花樣變換:</b></p><p> 見外部中斷1子程序。 </p><p> 3、設計中的主要困難及解決方案</p><p> 1).通過一個定時器來定時延時,將多個循環(huán)過程串聯(lián)起來,需要解決各個循環(huán)之間的銜接問題。本實驗中通過借用計數(shù)器(R0~R7,20H,30H等)來實現(xiàn)查詢等
17、待,通過D1:CJNE R1,#8,D1語句巧妙的把多個循環(huán)串聯(lián)在一起!</p><p> 2)。通過外部中斷實現(xiàn)廣告燈的花樣變化,需借助軟件延時!外部中斷通過硬件連線、邊沿觸發(fā)實現(xiàn)!</p><p> 外部中斷的花樣變化為本實驗的又一亮點!</p><p><b> 四、程序清單</b></p><p><
18、b> 1.流程圖</b></p><p><b> 2.程序清單</b></p><p><b> ORG 8000H</b></p><p><b> LJMP MAIN</b></p><p> ORG 800BH ;定時
19、器0入口地址</p><p><b> LJMP TOS</b></p><p> ORG 8013H ;外部中斷1入口地址</p><p> LJMP INT1S</p><p> MAIN:MOV SP,#60H ;主程序</p><p>
20、 MOV TMOD,#09H</p><p> MOV TH0,#4CH</p><p> MOV TL0,#00H</p><p> MOV R0,#00H</p><p> MOV IE,#10000010B</p><p><b> SETB TR0</b></p>
21、<p><b> SETB EX1</b></p><p><b> SETB PX1</b></p><p> MOV R1,#0 ;計數(shù)器</p><p><b> MOV R2,#0</b></p><p><b>
22、 MOV R3,#0</b></p><p><b> MOV R4,#0</b></p><p><b> MOV R5,#0</b></p><p><b> MOV R6,#0</b></p><p><b> MOV R7,#0</
23、b></p><p> MOV 20H,#0</p><p> MOV 30H,#0</p><p> MOV A,#0FEH</p><p> D1:CJNE R1,#8,D1 ;查詢等待,以下雷同。</p><p> MOV A,#00H</p><p> D2
24、:CJNE R2,#9,D2</p><p> MOV A,#00H</p><p> D3:CJNE R3,#5,D3</p><p> MOV A,#7FH</p><p> D4:CJNE R4,#8,D4</p><p> MOV A,#00H</p><p> D5:CJN
25、E R5,#10,D5</p><p> MOV A,#00H</p><p> D6:CJNE R6,#5,D6</p><p> MOV A,#0FEH</p><p> D7:CJNE R7,#8,D7</p><p> MOV A,#7FH</p><p> D8:PUSH
26、ACC</p><p><b> MOV A,20H</b></p><p> CJNE A,#08H,L1</p><p><b> POP ACC</b></p><p><b> SJMP L2</b></p><p> L1:POP A
27、CC</p><p><b> SJMP D8</b></p><p> L2:MOV A,#00H</p><p> D9:PUSH ACC</p><p><b> MOV A,30H</b></p><p> CJNE A,#11,L3</p>
28、<p><b> POP ACC</b></p><p><b> SJMP L4</b></p><p> L3:POP ACC</p><p><b> SJMP D9</b></p><p> L4:MOV A,#0FFH</p><
29、;p> LJMP MAIN ;主程序循環(huán)</p><p> TOS:MOV TH0,#4CH ;定時延時子程序</p><p> MOV TL0,#00H</p><p><b> INC R0</b></p><p> CJNE R0,#10,LL</
30、p><p> MOV R0,#00H</p><p> CJNE R1,#8,NEXT1</p><p> SJMP NEXT2</p><p> LL:CPL P3.0</p><p><b> LJMP NEXT</b></p><p> NEXT1:MOV P
31、1,A ;向右逐個點亮</p><p><b> CLR C</b></p><p><b> RLC A</b></p><p><b> INC R1</b></p><p><b> SJMP NEXT</b>&l
32、t;/p><p> NEXT2:CJNE R2,#9,NEXT3</p><p> SJMP NEXT4</p><p> NEXT3:MOV P1,A ;向左逐個熄滅</p><p><b> SETB C</b></p><p><b> RRC
33、A</b></p><p><b> INC R2</b></p><p><b> SJMP NEXT</b></p><p> NEXT4:CJNE R3,#5,NEXT5</p><p> SJMP NEXT6</p><p> NEXT5:MOV
34、 P1,A ;閃爍</p><p><b> CPL A</b></p><p><b> INC R3</b></p><p><b> SJMP NEXT</b></p><p> NEXT6:CJNE R4,#8,NEXT7<
35、/p><p> SJMP NEXT8</p><p> NEXT7:MOV P1,A ;向左逐個點亮</p><p><b> CLR C</b></p><p><b> RRC A</b></p><p><b> INC
36、 R4</b></p><p><b> SJMP NEXT</b></p><p> NEXT8:CJNE R5,#10,NEXT9</p><p> SJMP NEXT10</p><p> NEXT9:MOV P1,A ;向右逐個熄滅</p>&
37、lt;p><b> SETB C</b></p><p><b> RLC A</b></p><p><b> INC R5</b></p><p><b> SJMP NEXT</b></p><p> NEXT10:CJNE R6,#
38、5,NEXT11</p><p> SJMP NEXT12</p><p> NEXT11:MOV P1,A ;閃爍</p><p><b> CPL A</b></p><p><b> INC R6</b></p><p>&
39、lt;b> SJMP NEXT</b></p><p> NEXT12:CJNE R7,#8,NEXT13</p><p> SJMP NEXT14</p><p> NEXT13:MOV P1,A ;向左循環(huán)點亮</p><p><b> RL A</b&g
40、t;</p><p><b> INC R7</b></p><p><b> SJMP NEXT</b></p><p> NEXT14:PUSH ACC</p><p><b> MOV A,20H</b></p><p> CJNE A,
41、#8,L5</p><p><b> POP ACC</b></p><p><b> SJMP L6</b></p><p> L5:POP ACC</p><p> SJMP NEXT15</p><p> L6:SJMP NEXT16</p>&
42、lt;p> NEXT15:MOV P1,A ;向右循環(huán)點亮</p><p><b> RR A</b></p><p><b> INC 20H</b></p><p><b> SJMP NEXT</b></p><p>
43、 NEXT16:PUSH ACC </p><p> MOV A,30H </p><p> CJNE A,#11,L7</p><p><b> POP ACC</b></p><p><b> SJMP L8</b></p><p> L7:POP ACC<
44、;/p><p> SJMP NEXT17</p><p> L8:SJMP NEXT</p><p> NEXT17:MOV P1,A ;閃爍</p><p><b> CPL A</b></p><p><b> INC 30H</b
45、></p><p> NEXT:RETI ;中斷子程序返回</p><p> INT1S:PUSH ACC ;外部中斷1子程序</p><p> MOV A,#0FFH</p><p><b> CLR C</b>
46、</p><p> MOV P1,A ;花樣變化</p><p> SUBB A,#81H</p><p><b> MOV P1,A</b></p><p> SUBB A,#42H</p><p> LCALL DELAY</p&g
47、t;<p><b> MOV P1,A</b></p><p> SUBB A,#24H</p><p> LCALL DELAY</p><p><b> MOV P1,A</b></p><p> SUBB A,#18H</p><p> LCA
48、LL DELAY</p><p><b> MOV P1,A</b></p><p> ADD A,#18H</p><p> LCALL DELAY</p><p><b> MOV P1,A</b></p><p> ADD A,#24H</p>
49、<p> LCALL DELAY</p><p><b> MOV P1,A</b></p><p> ADD A,#42H</p><p> LCALL DELAY</p><p><b> MOV P1,A</b></p><p> ADD A,#8
50、1H</p><p> LCALL DELAY</p><p><b> MOV P1,A</b></p><p> LCALL DELAY</p><p> MOV A,#0AAH</p><p> MOV 21H,#4</p><p><b> L
51、OOP:RL A</b></p><p><b> MOV P1,A</b></p><p> LCALL DELAY</p><p> DJNZ 21H,LOOP</p><p> MOV A,#0FFH</p><p><b> MOV P1,A</b&g
52、t;</p><p> SUBB A,#18H</p><p> LCALL DELAY</p><p><b> MOV P1,A</b></p><p> SUBB A,#24H</p><p> LCALL DELAY</p><p><b>
53、MOV P1,A</b></p><p> SUBB A,#42H</p><p> LCALL DELAY</p><p><b> MOV P1,A</b></p><p> SUBB A,#81H</p><p> LCALL DELAY</p><
54、p><b> MOV P1,A</b></p><p> ADD A,#81H</p><p> LCALL DELAY</p><p><b> MOV P1,A</b></p><p> ADD A,#42H</p><p> LCALL DELAY&l
55、t;/p><p><b> MOV P1,A</b></p><p> ADD A,#24H</p><p> LCALL DELAY</p><p><b> MOV P1,A</b></p><p> ADD A,#18H</p><p>
56、 LCALL DELAY</p><p><b> MOV P1,A</b></p><p> LCALL DELAY</p><p> MOV A,#0AAH</p><p> MOV 22H,#8</p><p> LOOP1:RR A</p><p><
57、;b> MOV P1,A</b></p><p> LCALL DELAY</p><p> DJNZ 22H,LOOP1</p><p><b> POP ACC</b></p><p> RETI ;中斷子程序返回</p><p&
58、gt; DELAY:MOV 31H,#0</p><p> MOV 32H,#0 </p><p> LOOP2:DJNZ 32H,$</p><p> DJNZ 32H,$</p><p> DJNZ 32H,$</p><p> DJNZ 32H,$</p><p> DJNZ
59、 31H,LOOP2</p><p> RET ;子程序返回</p><p><b> END</b></p><p><b> 五、調試程序的方法</b></p><p> 硬件調試方法(確定硬件工作是否正常)</p><p>
60、 硬件連線正確,仿真器工作正常,接通電源。</p><p> 2、軟件調試方法(如何調試程序的方法)</p><p> 程序編譯通過,無錯誤,無警告,調試并運行主程序。</p><p> 六、對該設計題目有何更完善的方案</p><p> 對自己完成程序進行自我評價及對課題提出更完善的方案。</p><p>
61、 經過一段時間的努力,本實驗完成了任務書的基本要求,并做了一些創(chuàng)新。但是程序的運行過程仍然停留在發(fā)光二極管的設計上,沒有進行對其他領域的擴展,例如:將發(fā)光二極管和LED顯示器連接起來,讓廣告燈的變化驅動LED顯示器數(shù)字的變化,使效果更顯著,功能更齊全等。</p><p><b> 七、收獲及心得體會</b></p><p> 以前對單片機課程很是抵觸,覺得它太難
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論