2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  一 題目 自動打鈴器</p><p><b>  二 基本要求</b></p><p>  利用單片機(jī)的定時器設(shè)的一個時鐘,在每秒加1的計(jì)時過程中,都于規(guī)定的時間進(jìn)行比較,如果相等就進(jìn)行開關(guān)電鈴,不等則返回</p><p>  畢業(yè)設(shè)計(jì)報告寫作要求</p><p><b>  一、封面

2、</b></p><p><b>  二、內(nèi)容提要</b></p><p><b>  三、目錄</b></p><p><b>  四、正文</b></p><p>  1、概述所作題目的意義、本人所做的工作及系統(tǒng)的主要功能;</p><p&g

3、t;  2、硬件電路設(shè)計(jì)及描述;</p><p>  3、軟件設(shè)計(jì)流程及描述;</p><p><b>  4、源程序代碼。</b></p><p><b>  五 設(shè)計(jì)體會</b></p><p><b>  目錄</b></p><p>  一、引

4、言……………………………………….……..3</p><p>  二、單片機(jī)的結(jié)構(gòu)和說明……………………………………4</p><p>  1.單片機(jī)的定義…………………………………….……4</p><p>  2.單片機(jī)的組成…………………………………….………4</p><p>  3.8051單片機(jī)的結(jié)構(gòu)和引腳說明…………………………

5、4</p><p>  4.單片機(jī)的應(yīng)用特點(diǎn)…………………………………….…6</p><p>  三、總體設(shè)計(jì)方案…………………………………….………..6</p><p>  1.設(shè)計(jì)思路……………………………………….………..6</p><p>  2.硬件設(shè)計(jì)及引腳接線框圖……………………….………..7</p>&l

6、t;p>  四、設(shè)計(jì)原理分析………………………………………….…..8</p><p>  1.校時模式……………………………………………….…..8</p><p>  2.定時模式……………………………………………….…..8</p><p>  3.工作模式……………………………………………….…..8</p><p>  4.

7、存儲器93C46的相關(guān)介紹…………………………….…..8</p><p>  五、程序部分……………………………………..……8</p><p>  1.程序分為五部分…………………………………………..8</p><p>  2.部分寄存器及按鍵說明…………………………………..8</p><p>  3.程序流程圖……………………………

8、…………….…..8</p><p>  4.程序清單…………………………………….…….…..12六、方案論證…………………………………….…….…….29</p><p>  七、總結(jié)與體會…………………………………….….…...28八、謝詞…………………………………….….…............28</p><p>  九、參考文獻(xiàn)……………………………

9、………………..…..29</p><p>  十、總電路圖……………………………………………..…..30</p><p><b>  自動打鈴器</b></p><p>  摘要 文章介紹了一種以8051單片機(jī)為核心控制的并帶有數(shù)碼LED顯示時.分.秒和以指示燈做標(biāo)志的按鍵校時自動打鈴器。</p><p><

10、b>  一、引言</b></p><p>  單片機(jī)自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗地、使用方便、價格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,幾乎“無處不在,無所不為”。單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動化、汽車電子、PC機(jī)外圍以及網(wǎng)絡(luò)通

11、訊等廣大領(lǐng)域。 按照內(nèi)部數(shù)據(jù)通道的寬度,單片機(jī)可分為4位、8位、16位及32位等。單片機(jī)的中央處理器(CPU)和通用微處理器基本相同,只是增設(shè)了“面向控制”的處理功能。例如:位處理、查表、多種地址訪問方式、多種跳轉(zhuǎn)、乘除法運(yùn)算、狀態(tài)監(jiān)測、中斷處理等,增強(qiáng)了實(shí)時性。 單片機(jī)有兩種基本結(jié)構(gòu)形式:一種是在通用微型計(jì)算機(jī)中廣泛采用的,將程序存儲器和數(shù)據(jù)存儲器合用一個存儲器空間的結(jié)構(gòu),稱為普林斯頓(Princeton)結(jié)構(gòu)。另一種是將程序

12、存儲器和數(shù)據(jù)存儲器截然分開,分別尋址的結(jié)構(gòu),一般需要較大的程序存儲器,目前的單片機(jī)以采用程序存儲器和數(shù)據(jù)存儲器截然分開的結(jié)構(gòu)為多。 單片微型計(jì)算機(jī)自從問世以來,作為微型計(jì)算機(jī)一個很重要的分支,應(yīng)用廣泛,</p><p>  二、單片機(jī)的結(jié)構(gòu)和說明</p><p><b>  1.單片機(jī)的定義</b></p><p>  單片微型計(jì)算機(jī)(S

13、ingle-Chip Microcomputer),簡稱單片機(jī)。就是將微處理器(CPU)、存儲器(存放程序或數(shù)據(jù)的ROM和RAM)、總線、定時器/計(jì)數(shù)器、輸入/輸出接口(I/O口)和其他多種功能器件集成在一塊芯片上的微型計(jì)算機(jī)。</p><p><b>  2.單片機(jī)的組成</b></p><p>  單片機(jī)是由中央處理器(即CPU中的運(yùn)算器和控制器)、只讀存貯器(通

14、常表示為ROM)、讀寫存貯器(又稱隨機(jī)存貯器通常表示為RAM)、輸入/輸出口(又分為并行口和串行口,表示為I/O口)等等組成。</p><p>  3.8051單片機(jī)的結(jié)構(gòu)和引腳說明</p><p>  51系列單片機(jī)8031、8051及89c51/89s51均采用40Pin封裝的雙列直接DIP結(jié)構(gòu)。下圖是它們的引腳配置:40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位

15、共32個I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明:</p><p>  Pin20:接地腳。Pin40:正電源腳,工作時,接+5V電源。Pin19:時鐘XTAL1腳,片內(nèi)振蕩電路的輸入端。Pin18:時鐘XTAL2腳,片內(nèi)振蕩電路的輸出端。 8051的時鐘有兩種方式,一種是片內(nèi)時鐘振蕩方式,但需在18和19腳外接石英晶體(2-12MHz)和振蕩電容,振蕩電容的值一般取10p-3

16、0p。另外一種是外部時鐘方式,即將XTAL1接地,外部時鐘信號從XTAL2腳輸入。</p><p>  輸入輸出(I/O)引腳:</p><p>  Pin39-Pin32為P0.0-P0.7輸入輸出腳。 </p><p>  Pin1-Pin8為P1.0-P1.7輸入輸出腳。 </p><p>  Pin21-Pin28為P2.0-P2.7

17、輸入輸出腳。 </p><p>  Pin10-Pin17為P3.0-P3.7輸入輸出腳。 </p><p>  Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng)8051通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。 </p><p>  8051的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位,見下圖。此外,RESET/Vpd還

18、是一復(fù)用腳,Vcc掉電期間,此腳可接上備用電源, 以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。 </p><p>  Pin30:ALE/ 當(dāng)訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機(jī)是否工作,也可以當(dāng)作一個時鐘向外輸出。如果單片機(jī)是EPROM,在編程其間, 將用于輸入編程脈沖。Pin29: 當(dāng)訪問外

19、部程序存儲器時,此腳輸出負(fù)脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。Pin31:EA/Vpp程序存儲器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲器,當(dāng)EA為高電平并且程序地址小于4kB時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。</p>&l

20、t;p>  4.單片機(jī)的應(yīng)用特點(diǎn)</p><p>  單片機(jī)的主要特點(diǎn)有:(1)可靠性高(2)便于擴(kuò)展(3)控制功能強(qiáng)(4)低電壓、低功耗(5)片內(nèi)存儲容量較小,除此之外,單片機(jī)還具有集成度高、體積小、性價比高、應(yīng)用廣泛、易于產(chǎn)品化等特點(diǎn)</p><p><b>  三、總體設(shè)計(jì)方案</b></p><p><b>  1.設(shè)計(jì)

21、思路</b></p><p>  利用單片機(jī)及定時器設(shè)計(jì)的一個時鐘,在每次秒加1的計(jì)時過程中,都與規(guī)定的時間作比較,如果相等就進(jìn)行開關(guān)電鈴,不等則返回。</p><p> ?。?硬件設(shè)計(jì)及引腳接線框圖</p><p><b>  四、設(shè)計(jì)原理分析</b></p><p><b>  1.校時模式&l

22、t;/b></p><p>  按下K1(模式選擇鍵),將模式選擇為校時模式(模式指示燈黃燈亮),K2,K3,K4分別為時鐘加1鍵,分鐘加1鍵,秒鐘加1鍵,K5無用。</p><p><b>  2.定時模式</b></p><p>  按下K1(模式選擇鍵),將模式選擇為定時模式(模式指示燈綠燈亮),K2為定時器組選擇(本裝置有24組定

23、時器)鍵,K3,K4分別為定時器時鐘加1鍵和定時器分鐘加1鍵,K5為定時器狀態(tài)</p><p>  選擇鍵,每按K5一次,此組的定時器狀態(tài)改變一次,并將此組數(shù)據(jù)存入93C46</p><p><b>  中。</b></p><p><b>  3.工作模式</b></p><p>  按下K1(模

24、式選擇鍵),將模式選擇為工作模式(模式指示燈紅燈亮),K2,K3,K4,K5無用。此模式為正常工作模式</p><p>  4.存儲器93C46的相關(guān)介紹</p><p>  存儲器AT93C46為SPI接口,1腳為CS,2腳為CLK,3腳為DI,4腳為DO,5腳為GND,6腳為ORG,7腳為NC,8腳為VCC。單5V電壓,DIP8,64*16(ORG為HI)或128*8(ORG為LO),

25、芯片及字的清除,時鐘最高為250KHZ。讀(READ)操作:當(dāng)下達(dá)10XXXX指令后,將地址(XXXXXX)的數(shù)據(jù)在CLK=HI時由DO輸出。寫(WRITE)操作:在寫入之前,必須先下達(dá)寫使能(EWEN)指令,然后在下達(dá)01XXXXXX指令后,當(dāng)CLK為HI時,在把數(shù)據(jù)寫入指定的地址(XXXXXX),而DO=0時,表示還在燒寫,燒寫完成后,DO會轉(zhuǎn)為HI,寫入動作完成后,必須再下達(dá)寫禁止(ENDS)</p><p&g

26、t;  指令。寫使能(EWEN):下達(dá)0011XXXX指令后,才可進(jìn)行寫入(WRITE)的數(shù)據(jù)清除。寫禁止(EWDS):</p><p><b>  五、程序部分</b></p><p><b>  1.程序分為五部分</b></p><p>  1.初始化程序,2.鍵值處理程序,3.中斷程序,4.顯示程序,5.存儲器93

27、C46讀寫程序</p><p>  2.部分寄存器及按鍵說明</p><p>  28H:掃描指針寄存器</p><p>  20H--25H:顯示緩存寄存器</p><p><b>  R6:時鐘寄存器</b></p><p><b>  R5:分鐘寄存器</b></

28、p><p><b>  R4:秒鐘寄存器</b></p><p><b>  K1:模式選擇鍵</b></p><p>  K2:時加1(定時器組加1)鍵</p><p>  K3:分加1(定時器時加1)鍵</p><p>  K4:秒加1(定時器分加1)鍵</p>

29、<p>  K5:定時器狀態(tài)改變既存儲鍵</p><p><b>  3程序流程圖</b></p><p>  圖3 總體軟件流程圖</p><p>  圖4 校時及顯示流程圖</p><p>  圖5 校分及顯示流程圖</p><p><b>  4.程序清單</b&

30、gt;</p><p><b>  1.初始化程序:</b></p><p>  READ EQU 0 ;讀93C46</p><p>  WRITE EQU 2 ;寫入93C46</p><p>  EWEN EQU 4 ;93C46寫入使能</p><p>  EWDS EQU 6 ;93C4

31、6寫入禁止</p><p>  ADR46 EQU 21H ;93C46地址</p><p>  THIGH EQU 0F8H</p><p>  TLOW EQU 5FH</p><p>  TIMENEQU 30 ;打鈴持續(xù)時間(30秒)</p><p>  CS BIT P3.7 ;93C46CS</p&g

32、t;<p>  CLK BIT P3.6 ;93C46CLK</p><p>  DI BIT P3.5 ;93C46DI</p><p>  DO BIT P3.4 ;93C46DO</p><p>  ORG 0000H ;主程序起始地址</p><p>  AJMP START ;跳至主程序</p><

33、p>  ORG 000BH ;TIMER0中斷起始地址</p><p>  AJMP TIM0 ;跳至TIMER0中斷子程序</p><p>  START:MOV SP,#60H ;設(shè)置堆棧在60H</p><p>  MOV 28H,#00 ;顯示寄存器初值為00</p><p>  MOV R6,#12H ; ?時?寄存器值為12

34、H</p><p>  MOV R5,#00H ;“分”寄存器值為00H</p><p>  MOV R4,#00H ;“秒”寄存器值為00H</p><p>  MOV TMOD,#01H ;設(shè)TIMER0為MODE1</p><p>  MOV TH0,#THIGH ;計(jì)時中斷為4000微秒</p><p>  M

35、OV TL0,#TLOW</p><p>  MOV IE,#82 ;TIMER中斷使能</p><p>  MOV R2,#250 ;中斷250次</p><p>  SETB TR0 ;啟動TIMER0</p><p><b>  2.鍵值處理程序:</b></p><p>  LOOP: S

36、ETB P0.5 ;工作模式</p><p><b>  CLR P0.6</b></p><p><b>  CLR P0.7</b></p><p>  JB P0.0,N1 ;K1(模式選擇鍵)按了?不是則跳至N1</p><p>  ACALL DELAY ;消除抖動</p>

37、<p>  JNB P0.0,$ ;K1(模式選擇鍵)放開了?</p><p>  ACALL DELAY ;消除抖動</p><p>  AJMP SET ;轉(zhuǎn)到定時模式SET</p><p>  N1: MOV 2FH,R6 ;將時鐘數(shù)據(jù)載入2FH中</p><p>  MOV 2EH,R5 ;將分鐘數(shù)據(jù)載入2EH中</p

38、><p>  MOV ADR46,#00 ;把93C46地址置0</p><p>  SETB RS0 ;將工作寄存器組選擇1區(qū)</p><p>  LOOP1: MOV A,#READ ;讀93C46</p><p>  ACALL TO93c46</p><p>  MOV A,R3 ;取出定時器的狀態(tài)</p&g

39、t;<p>  ANL A,#01H</p><p>  CJNE A,#01H,N2 ;定時器為關(guān)閉,則跳轉(zhuǎn)至N2</p><p>  MOV A,R4 ;取出定時器分鐘數(shù)據(jù)</p><p>  CJNE A,2FH,N2 ;定時器分鐘數(shù)據(jù)與時鐘分鐘不同則轉(zhuǎn)至N2</p><p>  MOV A,R5 ;取出定時器時鐘數(shù)據(jù)&l

40、t;/p><p>  CJNE A,2EH,N2 ;定時器時鐘數(shù)據(jù)與時鐘時鐘不同則轉(zhuǎn)至N2</p><p>  SETB P2.1 ;定時器時間到,打鈴</p><p>  MOV A,ADR46 ;將93C46地址載入A中</p><p>  N2: CJNE A,#1EH,N3 ;到定時器數(shù)據(jù)表表尾?沒到轉(zhuǎn)至N3</p><

41、;p>  MOV ADR46,#00 ;到表尾,置93C46地址為表頭</p><p>  AJMP LOOP1 ;轉(zhuǎn)至LOOP1</p><p>  N3: INC ADR46 ;93C46地址加2</p><p><b>  INC ADR46</b></p><p>  AJMP LOOP1 ;轉(zhuǎn)至LOOP1

42、</p><p>  SET: CLR P0.5 ;校時模式</p><p><b>  SETB p0.6</b></p><p><b>  CLR P0.7</b></p><p>  LOOPS: JB P0.0,N11 ;K1(模式選擇鍵)按了?不是則跳至N11</p>&l

43、t;p>  ACALL DELAY ;消除抖動</p><p>  JNBP0.0,$ ;K1(模式選擇鍵)放開了?</p><p>  ACALL DELAY ;消除抖動</p><p>  AJMP SETTIME ;轉(zhuǎn)至SETTIME</p><p>  N11: JB P0.1,N13 ;K2(時鐘加1鍵)按了?不是則跳至N13

44、</p><p>  ACALL DELAY ;消除抖動</p><p>  MOV A,R6 ;將時寄存器的值載入A</p><p>  ADD A,#01H ;A內(nèi)容加1</p><p>  DA A ;做十進(jìn)制調(diào)整</p><p>  MOV R6,A ;將A的值存入時寄存器</p><p&g

45、t;  CJNE A,#24H,N12 ;是否超過24時?不是則跳至N12</p><p>  MOV R6,#00H ;是則清除時寄存器的值為00</p><p>  N12: JNB P0.1,$ ;K2(時鐘加1鍵)放開了?</p><p>  ACALL DELAY ;消除抖動</p><p>  N13: JB P0.2,N15 ;

46、K3(分鐘加1鍵)按了?不是則跳至N15</p><p>  ACALL DELAY ;消除抖動</p><p>  MOV A,R5 ;將分寄存器的值載入A</p><p>  ADD A,#01 ;A內(nèi)容加1</p><p>  DA A ;做十進(jìn)制調(diào)整</p><p>  MOV R5,A ;將A的值存入分寄存器

47、</p><p>  CJNE A,#60H,N14 ;是否超過60分?不是則跳至N14</p><p>  MOV R5,#00H ;是則清除分寄存器的值為00</p><p>  N14: JNB P0.2,$ ;K3(分鐘加1鍵)放開了?</p><p>  ACALL DELAY ;消除抖動</p><p> 

48、 N15: JB P0.3,N17 ;K4(秒鐘加1鍵)按了?不是則跳至N17</p><p>  ACALL DELAY ;消除抖動</p><p>  MOV A,R4 ;將秒寄存器的值載入A</p><p>  ADD A,#01 ;A內(nèi)容加1</p><p>  DA A ;做十進(jìn)制調(diào)整</p><p>  M

49、OV R4,A ;將A的值存入秒寄存器</p><p>  CJNE A,#60H,N16 ;是否超過60秒?不是則跳至N16</p><p>  MOV R4,#00 ;是則清除分寄存器的值為00</p><p>  N16: JNB P0.3,$ ;K4(秒鐘加1鍵)放開了?</p><p>  ACALL DELAY ;消除抖動<

50、/p><p>  N17: AJMP LOOPS ;轉(zhuǎn)至LOOPS</p><p>  SETTIME:CLR P0.5 ;定時模式</p><p><b>  CLR P0.6</b></p><p><b>  SETB P0.7</b></p><p>  MOV ADR4

51、6,#00H</p><p>  MOV A,#READ ;讀93C46地址為ADR46中的數(shù)據(jù)</p><p>  ACALL TO9346</p><p>  LOOPB:ACALL DISP ;調(diào)用DISP</p><p>  JB P0.0,N21 ;K1(模式選擇鍵)按了?不是則跳至N21</p><p> 

52、 ACALL DELAY ;消除抖動</p><p>  JNB P0.0,$ ;K1(模式選擇鍵)放開了?</p><p>  ACALL DELAY ;消除抖動</p><p>  AJMP LOOP ;轉(zhuǎn)至LOOP</p><p>  N21: JB P0.1,N22 ;K2(定時器組加1鍵)按了?不是則跳至N22</p>

53、<p>  ACALL DELAY ;消除抖動</p><p>  MOV A,ADR46 ;將地址載入A</p><p>  CLR C ;清除進(jìn)位位</p><p>  RRC A ;A右移1位</p><p>  ADD A,#01H ;地址加1</p><p>  MOV R6,A ;將A存入R6&

54、lt;/p><p>  CLR C ;清除進(jìn)位位</p><p>  RLC A ;A左移1位</p><p>  MOV ADR46,A ;將A中地址存入ADR46</p><p>  MOV A,#READ ;讀93C46地址為ADR46中的數(shù)據(jù)</p><p>  ACALL TO9346</p>&l

55、t;p>  JNB P0.1,$ ;K2(定時器組加1鍵)放開了?</p><p>  ACALLDELAY ;消除抖動</p><p>  N22: JB P0.2,N24 ;K3(定時器分鐘加1鍵)按了?不是則跳至N24</p><p>  ACALLDELAY ;消除抖動</p><p>  MOV A,R4 ;將定時器分寄存器的

56、值載入A</p><p>  ADD A,#01 ;A內(nèi)容加1</p><p>  DA A ;做十進(jìn)制調(diào)整</p><p>  MOV R4,A ;將A的值存入定時器分寄存器</p><p>  CJNE A,#60H,N23 ;是否超過60分?不是則跳至N16</p><p>  MOV R4,#00H ;是則清除

57、分寄存器的值為00</p><p>  N23: JNB P0.2,$ ;K3(定時器分鐘加1鍵)放開了?</p><p>  ACALL DELAY ;消除抖動</p><p>  N24: JB P0.3,N26 ;K4(定時器時鐘加1鍵)按了?不是則跳至N26</p><p>  ACALL DELAY ;消除抖動</p>

58、<p>  MOV A,R5 ;將定時器時寄存器的值載入A</p><p>  ADD A,#01H ;A內(nèi)容加1</p><p>  DA A ;做十進(jìn)制調(diào)整</p><p>  MOV R5,A ;將A的值存入定時器時寄存器</p><p>  CJNE A,#24H,N25 ;是否超過24時?不是則跳至N25</p&g

59、t;<p>  MOV R5,#00 ;是則清除分寄存器的值為00</p><p>  N25:JNB P0.3,$ ;K4(定時器時鐘加1鍵)放開了?</p><p>  ACALL DELAY ;消除抖動</p><p>  N26:JB P0.4,N27 ;K5(改變定時器狀態(tài)存儲鍵)按了?不是則跳至N27</p><p>

60、;  ACALL DELAY ;消除抖動</p><p>  INC R3 ;改變R3最低位的值(表示定時器的狀態(tài),1表示開,0</p><p><b>  表示關(guān))</b></p><p>  MOV A,#WRITE ;將A的值寫入93C46地址為ADR46中</p><p>  ACALL TO9346</p

61、><p>  JNB P0.4,$ ;K5(改變定時器狀態(tài)存儲鍵)放開了?</p><p>  ACALL DELAY ;消除抖動</p><p>  N27:AJMP LOOPB ;轉(zhuǎn)至LOOPB</p><p>  3.讀寫93C46程序:</p><p>  TO9346:SETB CS ;CS=1</p>

62、;<p>  SETB DI ;DI=1</p><p>  SETB CLK ;CLK=1</p><p>  ACALL DELAY</p><p>  CLR CLK ;CLK=0</p><p>  ACALL DELAY</p><p>  MOV DPTR,#JPTBL46</p>

63、<p>  JMP @A+DPTR;</p><p>  JPTBL46:AJMPSREAD ;讀</p><p>  AJMP SWRITE ;寫</p><p>  AJMP SEWEN ;寫使能</p><p>  AJMP SEWDS ;寫禁止</p><p>  SREAD: MOV A,ADR

64、46 ;地址載入A</p><p>  ADD A,#80H ;10XXXX讀指令</p><p>  ACALL SDT46 ;讀入地址</p><p>  ACALL RDT46 ;讀定時器時鐘數(shù)據(jù)</p><p>  MOV R5,A ;存入R5</p><p>  ACALL RDT46 ;讀定時器分鐘數(shù)據(jù)&l

65、t;/p><p>  MOV R4,A ;存入R4</p><p>  INC ADR46 ;地址加1</p><p>  MOV A,ADR46 ;地址載入A</p><p>  ADD A,#80H ;10XXXX讀指令</p><p>  ACALL SDT46 ;讀入地址</p><p> 

66、 ACALL RDT46 ;讀定時器狀態(tài)數(shù)據(jù)</p><p>  ACALL RDT46</p><p><b>  DEC ADR46</b></p><p>  MOV R3,A ;存入R3</p><p>  AJMP EX9346</p><p>  SWRITE:MOVA,ADR46 ;

67、寫入地址載入A</p><p>  ADD A,#40H ;01XXXX寫指令</p><p>  ACALL SDT46 ; 載入地址</p><p>  MOV A,R5 ;載入定時器時鐘數(shù)據(jù)</p><p>  ACALL SDT46 ;寫入定時器時鐘數(shù)據(jù)</p><p>  MOV A,R4 ;載入定時器分鐘數(shù)

68、據(jù)</p><p>  ACALL SDT46 ;寫入定時器分鐘數(shù)據(jù)</p><p>  INC ADR46 ;地址加1</p><p>  MOV A,ADR46 ;寫入地址載入A</p><p>  ADD A,#40H ;01XXXX寫指令</p><p>  ACALL SDT46 ;載入地址</p>

69、;<p>  MOV A,R3 ;載入定時器狀態(tài)數(shù)據(jù)</p><p>  DEC ADR46 ;地址減1</p><p>  ACALL ADR46 ;寫入定時器狀態(tài)數(shù)據(jù)</p><p>  AJMP EX9346 ;轉(zhuǎn)至EX9346</p><p>  SEWEN:MOVA,#30H ;0011XXXX寫使能指令</p&

70、gt;<p>  ACALL SDT46</p><p>  AJMP EX9346</p><p>  SEWDS:CLR A ;0000XXXX寫禁止指令</p><p>  ACALL SDT46</p><p>  EX9346:CLRCS ;CS=0</p><p><b>  RET

71、</b></p><p>  SDT46:MOV R2,#8 ;寫入8位數(shù)據(jù)</p><p>  SD1: RLC A</p><p><b>  MOV DI,C</b></p><p><b>  SETB CLK</b></p><p>  ACALL DE

72、LAY</p><p><b>  CLR CLK</b></p><p>  ACALL DELAY</p><p>  DJNZ R2,SD1</p><p><b>  RET</b></p><p>  RDT46:MOV R2,#8 ;讀出8位數(shù)據(jù)</p>

73、;<p>  RD1: SETB CLK</p><p>  ACALL DELAY</p><p><b>  CLR CLK</b></p><p>  ACALL DELAY</p><p><b>  MOV C,DO</b></p><p><b

74、>  RLC A</b></p><p>  DJNZ R2,RD1</p><p><b>  RET</b></p><p>  DELAY:MOVR7,#0FH ;</p><p><b>  DJNZ R7,$</b></p><p><b&g

75、t;  RET</b></p><p><b>  4.中斷程序:</b></p><p>  TIM0:MOV TH0,#THIGH ;重設(shè)計(jì)時4000微秒</p><p>  MOV TL0,#TLOW</p><p>  PUSH ACC ;將A的值存入堆棧</p><p>  

76、PUSH PSW ;將PSW的值存入堆棧</p><p>  CLR RS0 ;設(shè)置工作寄存器為0區(qū)</p><p>  DJNZ R2,X2 ;計(jì)時1秒</p><p>  MOV R2,#250</p><p>  ACALL CLOCK ;調(diào)用計(jì)時子程序CLOCK</p><p>  ACALL DISP ;調(diào)用

77、顯示子程序</p><p>  X2:ACALL SCAN ;調(diào)用掃描子程序</p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p><b

78、>  顯示器驅(qū)動程序:</b></p><p>  SCAN:MOV R0,#28H ;(28H)為掃描指針</p><p>  INC @R0 ;掃描指針加1</p><p>  CJNE @R0,#6,X3 ;掃描完6個顯示器?不是跳至X3</p><p>  MOV @R0,#00 ;是則掃描指針為0</p>

79、;<p>  X3:MOV A,@R0 ;掃描指針載入A</p><p>  ADD A,#20 ;A加常數(shù)20H(顯示寄存器地址)=各時間顯示區(qū)地址</p><p> ??;存入R1=各時間顯示地址</p><p>  MOV R1,A ;掃描指針存入A</p><p>  MOV A,@R0 ;將A高低4位交換(P1高4位為掃

80、描值,</p><p>  SWAP A ;低4位為顯示數(shù)據(jù)值)</p><p>  ORL A,@R1 ;掃描值+顯示值</p><p>  MOV R1,A ;輸出至P1</p><p><b>  RET</b></p><p><b>  計(jì)時程序:</b></

81、p><p>  CLOCK:MOV A,R4 ;R4為秒寄存器</p><p>  ADD A,#01 ;加1</p><p>  DA A ;做十進(jìn)制調(diào)整</p><p>  MOV R4,A ;存入秒寄存器</p><p>  CJNE A,#TIMEN,X4 ;是否超過打零連續(xù)時間?不是則跳至X4</p>

82、<p>  CLR P2.0 ;關(guān)鈴</p><p>  X4:CJNE A,#60H,X5 ;是否超過60秒?不是則跳至X5</p><p>  MOV R4,#00 ;是則清除為0</p><p>  MOV A,R5 ;R5為分寄存器</p><p>  ADD A,#01 ;加1</p><p>

83、  DA A ;做十進(jìn)制調(diào)整</p><p>  MOV R5,A ;存入分寄存器</p><p>  CJNE A,#60H,X5 ;是否超過60分?不是則跳至X5</p><p>  MOV R5,#00 ;是則清除為0</p><p>  MOV A,R6 ;R6為時寄存器</p><p>  ADD A,#01

84、 ;加1</p><p>  DA A ;做十進(jìn)制調(diào)整</p><p>  MOV R6,A ;存入時寄存器</p><p>  CJNEA,#60H,X5 ;是否超過24時?不是則跳至X5</p><p>  MOV R6,#00 ;是則清除為0</p><p><b>  X5:RET</b>

85、</p><p><b>  5.顯示程序:</b></p><p>  DISP:MOVR1,#20 ;(20H)為顯示寄存器,R1=20H</p><p>  MOV A,R6 ;將時寄存器的內(nèi)容存入A</p><p>  MOV B,#01H ;設(shè)B累加器的值為10H</p><p>  D

86、IV AB ;A/B,商(十位數(shù))存入A,余數(shù)(個位數(shù))存入B</p><p>  MOV @R1,B ;將B的內(nèi)容存入(20H)</p><p>  INC R1 ;R1=21H</p><p>  MOV @R1,A ;將A的內(nèi)容存入(21H)</p><p>  INC R1 ;R1=22H</p><p>  

87、MOV A,R5 ;將分寄存器的內(nèi)容存入A</p><p>  MOV B,#01H ;設(shè)B累加器的值為10H</p><p>  DIV AB ;A/B,商(十位數(shù))存入A,余數(shù)(個位數(shù))存入B</p><p>  MOV @R1,B ;將B的內(nèi)容存入(22H)</p><p>  INC R1 ;R1=23H</p><

88、;p>  MOV @R1,A ;將A的內(nèi)容存入(23H)</p><p>  INC R1 ;R1=24H</p><p>  MOV A,R4 ;將秒寄存器的內(nèi)容存入A</p><p>  MOV B,#01H ;設(shè)B累加器的值為10H</p><p>  DIV AB ;A/B,商(十位數(shù))存入A,余數(shù)(個位數(shù))存入B</p&

89、gt;<p>  MOV @R1,B ;將B的內(nèi)容存入(24H)</p><p>  INC R1 ;R1=25H</p><p>  MOV @R1,A ;將A的內(nèi)容存入(25H)</p><p><b>  RET</b></p><p><b>  END</b></p&g

90、t;<p><b>  六、方案論證</b></p><p>  在現(xiàn)行系統(tǒng)中,大多數(shù)采用單片機(jī)控制,其精度遠(yuǎn)遠(yuǎn)大于繼電器,響應(yīng)時間短,軟件可靠性高 不會因?yàn)楣ぷ鲿r間緣故而降低其性能,相比而言,本方案具有很高的可行性.</p><p><b>  七、總結(jié)與體會</b></p><p>  經(jīng)過近二個月的努力

91、,在老師和同學(xué)的幫助下,我基本上完成了設(shè)計(jì)任務(wù).通過這次課程設(shè)計(jì),我充分認(rèn)識到了自學(xué)的重要性,以及學(xué)以致用的道理.我在圖書館查閱了大量的資料,同時也認(rèn)識到了圖書館的重要作用.在今后的學(xué)習(xí)過程中,應(yīng)該多到圖書館看一些專業(yè)方面的書籍,以豐富自己的知識.也使我加深了對單片機(jī)知識的了解和應(yīng)用和對線路CAD 的理解和應(yīng)用.由于知識水平的局限和時間的倉促,設(shè)計(jì)中可能會存在著一些不足,我真誠的接受老師和同學(xué)的批評和指正.最后衷心感謝老師的悉心指導(dǎo)和同

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論