freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

課程設(shè)計(jì)-基于單片機(jī)的led流水燈設(shè)計(jì)-文庫吧

2025-01-02 02:24 本頁面


【正文】   P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能P3 口還接收一些用于Flash 閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。RST復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ALE/PROG當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE 脈沖。對(duì)Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位無效。PSEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。EA/VPP外部訪問允許。欲使CPU 僅訪問外部程序存儲(chǔ)器(地址為0000H—FFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加密位LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU 則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。Flash 存儲(chǔ)器編程時(shí),該引腳加上+12V 的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V 編程電壓Vpp。XTAL1振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2振蕩器反相放大器的輸出端。特殊功能寄存器在AT89C52 片內(nèi)存儲(chǔ)器中,80HFFH 共128 個(gè)單元為特殊功能寄存器(SFE),SFR 的地址空間映象如表2 所示。并非所有的地址都被定義,從80H—FFH 共128 個(gè)字節(jié)只有一部分被定義,還有相當(dāng)一部分沒有定義。對(duì)沒有定義的單元讀寫將是無效的,讀出的數(shù)值將不確定,而寫入的數(shù)據(jù)也將丟失。不應(yīng)將數(shù)據(jù)“1”寫入未定義的單元,由于這些單元在將來的產(chǎn)品中可能賦予新的功能,在這種情況下,復(fù)位后這些單元數(shù)值總是“0”。AT89C52除了與AT89C51所有的定時(shí)/計(jì)數(shù)器0 和定時(shí)/計(jì)數(shù)器1 外,還增加了一個(gè)定時(shí)/計(jì)數(shù)器2。定時(shí)/計(jì)數(shù)器2 的控制和狀態(tài)位位于T2CON、T2MOD,寄存器對(duì)(RCAO2H、RCAP2L)是定時(shí)器2 在16 位捕獲方式或16 位自動(dòng)重裝載方式下的捕獲/自動(dòng)重裝載寄存器。數(shù)據(jù)存儲(chǔ)器  AT89C52 有256 個(gè)字節(jié)的內(nèi)部RAM,80HFFH 高128 個(gè)字節(jié)與特殊功能寄存器(SFR)地址是重疊的,也就是高128字節(jié)的RAM 和特殊功能寄存器的地址是相同的,但物理上它們是分開的?! ‘?dāng)一條指令訪問7FH 以上的內(nèi)部地址單元時(shí),指令中使用的尋址方式是不同的,也即尋址方式?jīng)Q定是訪問高128 字節(jié)RAM 還是訪問特殊功能寄存器。如果指令是直接尋址方式則為訪問特殊功能寄存器?! ±纾旅娴闹苯訉ぶ分噶钤L問特殊功能寄存器0A0H(即P2 口)地址單元?! OV 0A0H,data  間接尋址指令訪問高128 字節(jié)RAM,例如,下面的間接尋址指令中,R0 的內(nèi)容為0A0H,則訪問數(shù)據(jù)字節(jié)地址為0A0H,而不是P2 口(0A0H)?! OV @R0,data  堆棧操作也是間接尋址方式,所以,高128 位數(shù)據(jù)RAM 亦可作為堆棧區(qū)使用?! 《〞r(shí)器0和定時(shí)器1:  AT89C52的定時(shí)器0和定時(shí)器1 的工作方式與AT89C51 相同。定時(shí)器2  定時(shí)器2 是一個(gè)16 位定時(shí)/計(jì)數(shù)器。它既可當(dāng)定時(shí)器使用,也可作為外部事件計(jì)數(shù)器使用,其工作方式由特殊功能寄存器T2CON的C/T2 位選擇。定時(shí)器2 有三種工作方式:捕獲方式,自動(dòng)重裝載(向上或向下計(jì)數(shù))方式和波特率發(fā)生器方式,工作方式由T2CON 的控制位來選擇。定時(shí)器2 由兩個(gè)8 位寄存器TH2 和TL2 組成,在定時(shí)器工作方式中,每個(gè)機(jī)器周期TL2 寄存器的值加1,由于一個(gè)機(jī)器周期由12 個(gè)振蕩時(shí)鐘構(gòu)成,因此,計(jì)數(shù)速率為振蕩頻率的1/12?! ≡谟?jì)數(shù)工作方式時(shí),當(dāng)T2 引腳上外部輸入信號(hào)產(chǎn)生由1 至0 的下降沿時(shí),寄存器的值加1,在這種工作方式下,每個(gè)機(jī)器周期的5SP2 期間,對(duì)外部輸入進(jìn)行采樣。若在第一個(gè)機(jī)器周期中采到的值為1,而在下一個(gè)機(jī)器周期中采到的值為0,則在緊跟著的下一個(gè)周期的S3P1 期間寄存器加1。由于識(shí)別1 至0 的跳變需要2 個(gè)機(jī)器周期(24 個(gè)振蕩周期),因此,最高計(jì)數(shù)速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個(gè)完整周期的時(shí)間,以保證輸入信號(hào)至少被采樣一次。捕獲方式  在捕獲方式下,通過T2CON 控制位EXEN2 來選擇兩種方式。如果EXEN2=0,定時(shí)器2 是一個(gè)16 位定時(shí)器或計(jì)數(shù)器,計(jì)數(shù)溢出時(shí),對(duì)T2CON 的溢出標(biāo)志TF2 置位,同時(shí)激活中斷。如果EXEN2=1,定時(shí)器2 完成相同的操作,而當(dāng)T2EX 引腳外部輸入信號(hào)發(fā)生1 至0 負(fù)跳變時(shí),也出現(xiàn)TH2 和TL2 中的值分別被捕獲到RCAP2H 和RCAP2L 中。另外,T2EX 引腳信號(hào)的跳變使得T2CON 中的EXF2 置位,與TF2 相仿,EXF2 也會(huì)激活中斷。自動(dòng)重裝載(向上或向下計(jì)數(shù)器)方式  當(dāng)定時(shí)器2工作于16位自動(dòng)重裝載方式時(shí),能對(duì)其編程為向上或向下計(jì)數(shù)方式,這個(gè)功能可通過特殊功能寄存器T2CON的DCEN 位(允許向下計(jì)數(shù))來選擇的。復(fù)位時(shí),DCEN 位置“0”,定時(shí)器2 默認(rèn)設(shè)置為向上計(jì)數(shù)。當(dāng)DCEN置位時(shí),定時(shí)器2 既可向上計(jì)數(shù)也可向下計(jì)數(shù),這取決于T2EX 引腳的值,當(dāng)DCEN=0 時(shí),定時(shí)器2 自動(dòng)設(shè)置為向上計(jì)數(shù),在這種方式下,T2CON 中的EXEN2 控制位有兩種選擇,若EXEN2=0,定時(shí)器2 為向上計(jì)數(shù)至0FFFFH 溢出,置位TF2 激活中斷,同時(shí)把16 位計(jì)數(shù)寄存器RCAP2H 和RCAP2L重裝載,RCAP2H 和RCAP2L 的值可由軟件預(yù)置?! ∪鬍XEN2=1,定時(shí)器2 的16 位重裝載由溢出或外部輸入端T2EX 從1 至0 的下降沿觸發(fā)。這個(gè)脈沖使EXF2 置位,如果中斷允許,同樣產(chǎn)生中斷。定時(shí)器2 的中斷入口地址是:002BH ——0032H ?! ‘?dāng)DCEN=1 時(shí),允許定時(shí)器2 向上或向下計(jì)數(shù)。這種方式下,T2EX 引腳控制計(jì)數(shù)器方向。T2EX 引腳為邏輯“1”時(shí),定時(shí)器向上計(jì)數(shù),當(dāng)計(jì)數(shù)0FFFFH 向上溢出時(shí),置位TF2,同時(shí)把16 位計(jì)數(shù)寄存器RCAP2H 和RCAP2L 重裝載到TH2 和TL2 中。 T2EX 引腳為邏輯“0”時(shí),定時(shí)器2 向下計(jì)數(shù),當(dāng)TH2 和TL2 中的數(shù)值等于RCAP2H 和RCAP2L中的值時(shí),計(jì)數(shù)溢出,置位TF2,同時(shí)將0FFFFH 數(shù)值重新裝入定時(shí)寄存器中。當(dāng)定時(shí)/計(jì)數(shù)器2 向上溢出或向下溢出時(shí),置位EXF2 位。波特率發(fā)生器  當(dāng)T2CON中的TCLK 和RCLK 置位時(shí),定時(shí)/計(jì)數(shù)器2 作為波特率發(fā)生器使用。如果定時(shí)/計(jì)數(shù)器2 作為發(fā)送器或收器,其發(fā)送和接收的波特率可以是不同的,定時(shí)器1 用于其它功能。若RCLK 和TCLK 置位,則定時(shí)器2工作于波特率發(fā)生器方式?! 〔ㄌ芈拾l(fā)生器的方式與自動(dòng)重裝載方式相仿,在此方式下,TH2 翻轉(zhuǎn)使定時(shí)器2 的寄存器用RCAP2H 和RCAP2L 中的16位數(shù)值重新裝載,該數(shù)值由軟件設(shè)置?! ≡诜绞? 和方式3 中,波特率由定時(shí)器2 的溢出速率根據(jù)下式確定:方式1和3的波特率=定時(shí)器的溢出率/16定時(shí)器既能工作于定時(shí)方式也能工作于計(jì)數(shù)方式,在大多數(shù)的應(yīng)用中,是工作在定時(shí)方式(C/T2=0)。定時(shí)器2 作為波特率發(fā)生器時(shí),與作為定時(shí)器的操作是不同的,通常作為定時(shí)器時(shí),在每個(gè)機(jī)器周期(1/12 振蕩頻率)寄存器的值加1,而作為波特率發(fā)生器使用時(shí),在每個(gè)狀態(tài)時(shí)間(1/2 振蕩頻率)寄存器的值加1。波特率的計(jì)算公式如下:  方式1和3的波特率=振蕩頻率/{32*[65536(RCP2H,RCP2L)]}  式中(RCAP2H,RCAP2L)是RCAP2H 和RCAP2L中的16 位無符號(hào)數(shù)?! 2CON 中的RCLK 或TCLK=1 時(shí),波特率工作方式才有效。在波特率發(fā)生器工作方式中,TH2 翻轉(zhuǎn)不能使TF2 置位,故而不產(chǎn)生中斷。但若EXEN2 置位,且T2EX 端產(chǎn)生由1 至0 的負(fù)跳變,則會(huì)使EXF2 置位,此時(shí)并不能將(RCAP2H,RCAP2L)的內(nèi)容重新裝入TH2 和TL2 中。所以,當(dāng)定時(shí)器2 作為波特率發(fā)生器使用時(shí),T2EX 可作為附加的外部中斷源來使用。需要注意的是,當(dāng)定時(shí)器2 工作于波特率器時(shí),作為定時(shí)器運(yùn)行(TR2=1)時(shí),并不能訪問TH2 和TL2。因?yàn)榇藭r(shí)每個(gè)狀態(tài)時(shí)間定時(shí)器都會(huì)加1,對(duì)其讀寫將得到一個(gè)不確定的數(shù)值?! ∪欢瑢?duì)RCAP2 則可讀而不可寫,因?yàn)閷懭氩僮鲗⑹侵匦卵b載,寫入操作可能令寫和/或重裝載出錯(cuò)。在訪問定時(shí)器2或RCAP2 寄存器之前,應(yīng)將定時(shí)器關(guān)閉(清除TR2)。中斷  AT89C52 共有6 個(gè)中斷向量:兩個(gè)外中斷(INT0 和INT1),3 個(gè)定時(shí)器中斷(定時(shí)器0、2)和串行口中斷?! ∵@些中斷源可通過分別設(shè)置專用寄存器IE 的置位或清0 來控制每一個(gè)中斷的允許或禁止。IE 也有一個(gè)總禁止位EA,它能控制所有中斷的允許或禁止?! 《〞r(shí)器2 的中斷是由T2CON 中的TF2 和EXF2 邏輯或產(chǎn)生的,當(dāng)轉(zhuǎn)向中斷服務(wù)程序時(shí),這些標(biāo)志位不能被硬件清除,事實(shí)上,服務(wù)程序需確定是TF2 或EXF2 產(chǎn)生中斷,而由軟件清除中斷標(biāo)志位?! 《〞r(shí)器0 和定時(shí)器1 的標(biāo)志位TF0 和TF1 在定時(shí)器溢出那個(gè)機(jī)器周期的S5P2 狀態(tài)置位,而會(huì)在下一個(gè)機(jī)器周期才查詢到該中斷標(biāo)志。然而,定時(shí)器2 的標(biāo)志位TF2 在定時(shí)器溢出的那個(gè)機(jī)器周期的S2P2 狀態(tài)置位,并在同一個(gè)機(jī)器周期內(nèi)查詢到該標(biāo)志。時(shí)鐘振蕩器  AT89C52 中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端。  這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖10。外接石英晶體(或陶瓷諧振器)及電容CC2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容CC2 雖然沒有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pF177。10pF,而如使用陶瓷諧振器建議選擇40pF177。10F。用戶也可以采用外部時(shí)鐘。這種情況下,外部時(shí)鐘脈沖接到XTAL1 端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2 則懸空。由于外部時(shí)鐘信號(hào)是通過一個(gè)2 分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。編程方法  編程前,須設(shè)置好地址、數(shù)據(jù)及控制信號(hào), AT89C52 編程方法如下:  1. 在地址線上加上要編程單元的地址信號(hào)?! ?. 在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)?! ?. 激活相應(yīng)的控制信號(hào)。  4. 在高電壓編程方式時(shí),將EA/Vpp 端加上+12V 編程電壓。  5. 每對(duì)Flash 存儲(chǔ)陣列寫入一個(gè)字節(jié)或每寫入一個(gè)程序加密位,加上一個(gè)ALE/PROG 編程脈沖。每個(gè)字節(jié)寫入周期是自身定時(shí)的。重復(fù)1—5 步驟,改變編程單元的地址和寫入的數(shù)據(jù),直到全部文件編程結(jié)束。 單片機(jī)時(shí)鐘電路時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào),單片機(jī)本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號(hào)的控制下嚴(yán)格地按時(shí)序進(jìn)行工作。在MCS51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳X1,輸出端為芯片引腳X2,在芯片的外部跨接晶體振蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成了一個(gè)穩(wěn)定的自激振蕩器。此電路采用12MHZ的石英晶體。時(shí)鐘電路如下圖所示: 圖31 時(shí)鐘電路圖 單片機(jī)復(fù)位電路電阻的作用是用于上電復(fù)位的,VCC以上電,由于電容兩端電壓不能夠突破,所以RST上為高電平,然后電容放電,RST就為低電平了 還可以用手動(dòng)復(fù)位。復(fù)位電路如下圖所示:
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1