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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于at89c51單片機(jī)的數(shù)字顯示計(jì)時(shí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-01-08 19:37 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 AT89C51 單片機(jī)在時(shí)鐘電路工作以后,在 RESET 端持續(xù)給出 2個(gè)機(jī)器周期的高電平就可以完成復(fù)位操作。復(fù)位分為上點(diǎn)自動(dòng)復(fù)位和手動(dòng)復(fù)位兩種方式。 本系統(tǒng)采用上電復(fù)位方式。上電復(fù)位是在單片機(jī)接通電源時(shí),對(duì)單片機(jī)的復(fù)位。在上電瞬間 RST 端與 VCC 電位相同,隨著電容上電壓的逐漸上升, RST端電位逐漸下降。上電復(fù)位所需要的最短 時(shí)間是振蕩器建立時(shí)間加 2個(gè)機(jī)器周期 3 種方式復(fù)位電路圖: 13 注:一般情況下圖中電容 C1和 C2取 30PF左右,晶體的振蕩頻率范圍是 ~12MHZ。晶體振蕩頻率越高,則系統(tǒng)的時(shí)鐘頻率越高,單片機(jī)運(yùn)行速度也越快。一般情況下,單片機(jī)使用的振蕩頻率為 6MHZ或者說(shuō) 12MHZ。 ( 1) PNP 三極管與 P2 口之間的電阻選擇: 選取三極管 9012 的放大倍數(shù)為 100,選通一個(gè) LED 數(shù)碼管所需電流即三極管的集電極電流為: Ic=15mA*7=105mA,則它的基極電流 Ib=105mA/100=,取1mA,三極管壓降為 ,則電阻阻值為: R=()V/1mA=,實(shí)際取 ( 2) LED 數(shù)碼管與 P1 口之間的電阻選擇: 由于 LED 數(shù)碼管是由七段發(fā)光二極管組成。每個(gè)二極管所需電壓為 2V,電阻的峰值電流取 10mA,又由于 P1 的壓降為,則電阻上所需電壓為 = 則電阻上的阻值為 ,實(shí)際取 300 ( 3)開關(guān)與 P0口之間的電阻選擇: 由于開關(guān)端的電阻接 +5 電源,導(dǎo)線本身的電流是非常微小的,所以我選擇了 10K 的電阻來(lái)完成硬件電路的連接 。 ( 4) I 端口分配及連接: - : LED 數(shù)碼管顯示內(nèi)容通過(guò) P0 口從單片機(jī)傳送到數(shù)碼管。 - :數(shù)碼管位選控制端口。 :分別連接開關(guān), SET、 ALM 、 +1 和 RET 鍵,通過(guò)不同的組合實(shí)現(xiàn)外部控制程序狀態(tài)。 14 第三章 軟件設(shè)計(jì) 在 AT89C51 單片機(jī)的內(nèi)部 00H1FH 為工作寄存器區(qū), 20H2FH 為位尋址區(qū),30H7FH 為數(shù)據(jù)緩沖區(qū)。堆棧的先進(jìn)后出的特點(diǎn)。 70H7FH 45H40H 30H32H 33H35H 20H 主程序框圖如圖 31所示: 15 圖 31 主程序框圖 一、主程序 主程序的內(nèi)容的一般包括:主程序的起始地址,中斷服務(wù)程序的起始地址,有關(guān)內(nèi)存單元及相關(guān)部件的初始化和一些子程序的調(diào)用等內(nèi)容。 設(shè)置中斷入口地址、設(shè)置主程序的起始地址(開始),為了保護(hù)現(xiàn)場(chǎng)設(shè)置堆棧指針,為了保證顯示的正確性要進(jìn)行 T0 的初始化和顯示緩沖區(qū)與計(jì)時(shí)有關(guān) 的寄存器的清零。啟動(dòng) T0 調(diào)用顯示程序顯示當(dāng)前時(shí)間,根據(jù)需要可以進(jìn)行按鍵處理,一旦鬧鐘時(shí)間到,發(fā)出報(bào)警,報(bào)警時(shí)間過(guò)后,調(diào)用顯示程序繼續(xù)正常的時(shí)間顯示。 主程序清單如下: ORG 0000H ;中斷入口地址 AJMP MAIN ORG 000BH ; T0中斷 AJMP T0INT MAIN: MOV SP,70H ;設(shè)置堆棧指針 16 MOV R6,06H ;顯示緩沖區(qū)清零 MOV R1,45H S0:MOV @R1,00H DEC R1 DJNZ R6,S0 MOV TMOD,01H ; T0 為工作方式 1 MOV TH0,0BH 。設(shè) T0 計(jì)數(shù)初值 MOV TL0,0DCH SETB RS0 ;選擇工作區(qū) 1 MOV R2,00H ;相關(guān)寄存器清零 MOV R3,00H MOV R4,00H MOV R5,00H CLR RS0 ;選擇工作區(qū) 0 MOV R1,45H ;顯緩區(qū)首指針?biāo)?R1 SETB TR0 ;開 T0 SS1: LCALL DISP ;調(diào)用顯示程序 LCALL KEYBOARD ;調(diào)用按鍵處理程序 MOV R2, 35H ;判斷是否有定時(shí)時(shí)間 CJNE R2, 0, NT MOV R2, 34H CJNE R2, 0, NT MOV R2, 33H CJNE R2, 0, NT SJMP BB NT: MOV A, 35H CJNE A, 32H, BB ;判斷定時(shí)時(shí)間到否 MOV A, 34H CJNE A, 31H, BB MOV A, 33H CJNE A, 30H, BB CLR ;時(shí)間到發(fā) 出報(bào)警 MOV R7,15 SJMP SS1 BB: SETB SJMP SS1 二.中斷系統(tǒng)的介紹 如果在執(zhí)行主程序時(shí)只有一個(gè)中斷請(qǐng)求源請(qǐng)求中斷,而這時(shí) CPU 又是對(duì)中斷開放的那么這個(gè)中斷立即得到響應(yīng)。然而由于中斷是隨機(jī)產(chǎn)生的,中斷源又不止 1 個(gè),因此往往會(huì)出現(xiàn)這樣的情況:幾個(gè)中斷源同時(shí)請(qǐng)求中斷,或者當(dāng)某一個(gè)中斷正在響應(yīng)中,又有其他中斷源請(qǐng)求中斷,這時(shí)中斷一般會(huì)按如下原則進(jìn)行處理: ( 1) 不同級(jí)的中斷源同時(shí)請(qǐng)求中斷時(shí) —— 先高后低 ( 2) 同級(jí)的中斷源同時(shí)申請(qǐng)中斷時(shí) —— 事先規(guī)定 17 ( 3) 處理低級(jí) 中斷又收到高級(jí)中斷請(qǐng)求時(shí) —— 停低轉(zhuǎn)高 ( 4) 處理高級(jí)中斷又收到低級(jí)中斷請(qǐng)求時(shí) —— 高不理低 AT89C51 單片機(jī)的中斷系統(tǒng)對(duì)優(yōu)先級(jí)的控制比較簡(jiǎn)單,只規(guī)定了兩個(gè)中斷優(yōu)先級(jí),對(duì)于每一個(gè)中斷源均可編程為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷。在同一個(gè)優(yōu)先級(jí)中,五個(gè)中斷優(yōu)先級(jí)的次序如下: 外部中斷 0( IE0) 定時(shí)器 /計(jì)數(shù)器 T0 溢出中斷( TF0) 外部中斷 1( IE1) 定時(shí)器 /計(jì)數(shù)器 T1 溢出中斷( TF1) 串行口中斷( RI+TI) AT89C51 單片機(jī)有 1 個(gè)中斷優(yōu)先級(jí)寄存器 IP,字節(jié)地 址為 B8H。對(duì)于每一個(gè)中斷源,均可通過(guò) IP 的設(shè)置來(lái)確定優(yōu)先等級(jí),置 1為高優(yōu)先級(jí),反之為低。 三、時(shí)鐘計(jì)時(shí)程序 數(shù)字顯示計(jì)時(shí)系統(tǒng)的主要任務(wù)是:采用單片機(jī)為核心的器件產(chǎn)生 24 小時(shí)時(shí)間,并用 LED 顯示器將它顯示出來(lái)。在本次設(shè)計(jì)中所用的晶振為 6MHz,定時(shí)器最長(zhǎng)的定時(shí)時(shí)間為 ,要產(chǎn)生 24h 的時(shí)間值,故我們采用定時(shí)器 T0 方式1。 ( 1) 24 小時(shí)的產(chǎn)生: 選擇定時(shí)器 T0 方式 1,定時(shí) 125ms 中斷一次,利用 R2 寄存器加 1, 8 次為1s,再利用寄存器 R3計(jì)數(shù) 60s,依次類推,累計(jì) 24 的時(shí)間值,并需設(shè)置以下幾個(gè)寄存器: R2:累計(jì) 1s時(shí)間寄存器。 T0 每中斷一次 R2=R2+1,計(jì)數(shù)八次向 R3 進(jìn)位,并將 R2 清零 R3:累計(jì) 60s 時(shí)間寄存器。當(dāng) R3=60s,向 R4進(jìn)位,并使 R3=0。 R4:累計(jì) 60min 時(shí)間寄存器。當(dāng) R4=60min 向 R5 進(jìn)位,并使 R4=0。 R5:累計(jì) 24h 時(shí)間寄存器。當(dāng) R5=24h,正好是晝夜的時(shí)間,并使 R5=0。 ( 2)定時(shí)器的初值: F=6MHZ, Tp=2us X=65536125ms/2us=0BDCH ( 3)程序設(shè)計(jì)框圖: 計(jì)時(shí)程序設(shè)計(jì)框圖如圖 32 所示 18 圖 32計(jì)時(shí) 程序設(shè)計(jì)框圖 程序清單如下: T0 定時(shí)器,每 125ms 中斷一次,中斷 8次為 1s。 T0INT: PUSH A 。T0 計(jì)時(shí)中斷程序 ,保護(hù)現(xiàn)場(chǎng) 19 CLR TR0 MOV TH0,0BH 。設(shè) T0 計(jì)數(shù)初值 MOV TL0,0DCH SETB TR0 。開 T0 SETB RS0 。選擇工作區(qū) 1 INC R2 CJNE R2,08H,JT0 。1s 到了嗎 ?沒到 ,轉(zhuǎn) JT0 MOV R2,00H 。到了 ,R2 清零 INC R3 。秒單元 +1 CJNE R3,60,JT0 。60s 到了嗎 ?沒到 ,轉(zhuǎn) JT0 MOV R3,00H 。到了 ,秒單元清零 INC R4 。分單元 +1 CJNE R4,60,JT0 。60min 到了嗎 ?沒到 ,轉(zhuǎn) JT0 MOV R4,00H 。到了 ,分單元清零 INC R5 。時(shí)單元 +1 CJNE R5,24,JT0 。24h 到了嗎 ?沒到 ,轉(zhuǎn) JT0 MOV R5,00H 。時(shí)單元清零 JT0: MOV 30H,R3 MOV 31H,R4 MOV 32H,R5 MOV R6,03 。二 十進(jìn)制轉(zhuǎn)換程序 MOV R0,32H MOV R1,45H JT1:MOV B,10 MOV A,@R0 DIV AB MOV @R1,A DEC R1 MOV A,B 20 MOV @R1,A DEC R1 DEC R0 DJNZ R6,JT1 CLR RS0 POP A ?;謴?fù)現(xiàn)場(chǎng) RETI 。中斷返回 DTOB: SETB RS0 。十 二進(jìn)制轉(zhuǎn)換程序 MOV R6,03 MOV R0,32H MOV R1,45H JT2:MOV B,10 MOV A,@R1 MUL AB DEC R1 ADD A,@R1 MOV @R0,A DEC R1 DEC R0 DJNZ R6,JT2 MOV R3,30H MOV R4,31H MOV R5,32H MOV R2,00 CLR RS0 RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0CFH END 第四章 調(diào)試 21 軟 件 調(diào) 試 軟件調(diào)試的任務(wù)是利用應(yīng)用軟件 (如 WAVE 軟件 )進(jìn)行仿真調(diào)試,是通過(guò)對(duì)用戶程序的匯編、連接、執(zhí)行來(lái)發(fā)現(xiàn)程序中存在的語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正的過(guò)程。程序運(yùn)行后編輯,查看程序是否有邏輯的錯(cuò)誤。 運(yùn)用 WAVE(偉福)軟件編譯自己設(shè)計(jì)的匯編程序,檢驗(yàn)程序。發(fā)現(xiàn)程序中的語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正。注意運(yùn)用 WAVE 軟件保存文件時(shí)的后綴名用( .ASM)。 仿真結(jié)果如下: proteus 仿 真 軟 件 的 應(yīng) 用 PROTEUS 軟件是由英國(guó)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1