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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)的電腦電子時(shí)鐘設(shè)計(jì)-資料下載頁

2025-11-22 19:07本頁面

【導(dǎo)讀】,并用6個(gè)LED顯示時(shí)、分、秒;1.要求在老師的指導(dǎo)下,獨(dú)立完成單片機(jī)的電腦時(shí)鐘設(shè)計(jì)裝置。符合控制要求的程序,畢業(yè)設(shè)計(jì)論文字?jǐn)?shù)為5000—8000字左右。4.其余要求按«洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文)工作管理規(guī)定»5~7周:查閱資料,熟悉設(shè)計(jì)內(nèi)容,擬訂設(shè)計(jì)方案。8~14周:進(jìn)行總體、部件等設(shè)計(jì),并完成設(shè)計(jì)圖紙的繪制。15~16周:修改完善設(shè)計(jì),翻譯資料,寫說明書,準(zhǔn)備答辯。單片機(jī),是集CPU,RAM,ROM,計(jì)數(shù)和多種接口于一體的微控制器。年代問世以來,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注。為容易,廣泛應(yīng)用于智能生產(chǎn)和工業(yè)自動(dòng)化上。實(shí)現(xiàn)以下一些功能:小時(shí),分,秒和年,月,的顯示、定時(shí)報(bào)警功能。時(shí)間,由蜂鳴器發(fā)聲,起報(bào)警作用。本次設(shè)計(jì)的電子時(shí)鐘,經(jīng)過對(duì)比測(cè)試,發(fā)現(xiàn)。實(shí)際計(jì)時(shí)的走時(shí)精度較高,可滿足多種場(chǎng)合的應(yīng)用需求。本文論述了6-LED顯示器和時(shí)鐘芯片DS1302的工。作原理及其軟件設(shè)計(jì)過程。

  

【正文】 OUR EQU 3CH MIN EQU 3DH SEC EQU 3EH MSEC EQU 3FH AHOUR EQU 40H AMIN EQU 41H ASEC EQU 42H N F1 BIT MAIN: MOV SP, 50H 。 設(shè)置堆棧區(qū) MOVX DPTR, PORT MOV A, 03H MOVX @DPTR, A 。 8155 初始化 CLR F1 。 清零鬧鐘標(biāo)志位 CLR F0 。 運(yùn)行計(jì)時(shí)顯示 MOV AHOUR, 0FFH MOV AMIN, 0FFH MOV ASEC, 0FFH MOV R7, 10H MOV R0, DISP0 CLR A LOOP: MOV @R0, A INC R0 DJNC R7, LOOP 。 設(shè)置初值 MOV TMOD, 01H 25 MOV TLO, 0B0H MOV THO, 3CH 。 定時(shí)器 0 初始化,定時(shí)時(shí)間 100ms SETB TR0 。 啟動(dòng)定時(shí)器 SETB EA SETB ET0 。 開中斷 BEGIN: ACALL ALARM 。 調(diào)用定時(shí)比較 ACALL KEYSCAN 。 調(diào)用鍵盤掃描 CJNE A, 0AH, NEXT1 。 是 CLR/RST 鍵否? CLR TR0 。 是則暫時(shí)停止計(jì)時(shí) MOV R1, HOUR 。 地址指針指向計(jì)時(shí)緩沖區(qū)首地址 AJMP MOD NEXT1: CJNE A, 0BH, BEGIN 。 是 ALARM 鍵否? JB F1, NEXT2 。 鬧鐘正在鬧響否? MOV R1, AHOUR 。 地址指針指向鬧鐘值寄存區(qū)首地址 MOD: SETB F0 。 置位時(shí)間設(shè)置 /鬧鐘定時(shí)標(biāo)志,禁止顯示計(jì)時(shí)時(shí)間 ACALL MODIFY 。 調(diào)用時(shí)間設(shè)置 /鬧鐘定時(shí)程序 SETB TR0 。 重新開始 計(jì)時(shí) CLR F0 。 清零時(shí)間設(shè)置 /鬧鐘定時(shí)標(biāo)志,恢復(fù)顯示計(jì)時(shí)時(shí)間 AJMP BEGIN NEXT2: SETB 。 鬧鐘正在響鬧,停鬧 CLR F1 。 清零鬧鐘標(biāo)志 AJMP BEGIN 計(jì)時(shí)程序模塊 系統(tǒng)定時(shí)采用定時(shí)器與軟件循環(huán)相結(jié)合的方法。定時(shí)器 0 每隔 100ms 溢出中斷一次,則循環(huán)中斷 10 次延時(shí)時(shí)間為 1s,上述過 程重復(fù) 60 次為 1 分,分計(jì)時(shí) 60 次為 1小時(shí),小時(shí)計(jì)時(shí) 24 次則時(shí)間重新回到 00: 00: 00。 設(shè)系統(tǒng)使用 6MHz 的晶振,定時(shí)器 0 工作在方式 1,則 100ms 定時(shí)對(duì)應(yīng)的定時(shí)器 26 初值可有下列計(jì)算得到: 定時(shí)時(shí)間 =( 216定時(shí)器 0 初值)( 12/fosc) 因此,定時(shí)器 0 初值 =3CB0H,即 TH0=3CH, =TL0=0B0H 當(dāng)系統(tǒng)使用其它頻率的晶振時(shí),可以由上式計(jì)算相應(yīng)的定時(shí)器 0 初值,也可以改變定時(shí)時(shí)間。例如當(dāng)系統(tǒng)晶振為 12MHz 時(shí),同樣的初值對(duì)應(yīng)的定時(shí)時(shí)間為 50ms,則循環(huán)中斷次數(shù)為 20 次時(shí),延時(shí)時(shí)間為 1s。 這里 有兩個(gè)問題需要特別重視。 第一:定時(shí)器溢出產(chǎn)生中斷請(qǐng)求, CPU 并不一定立即響應(yīng)中斷,而可能需要延遲一個(gè)中斷響應(yīng)時(shí)間之后才能響應(yīng)中斷,中斷響應(yīng)時(shí)間大約為 3~ 8 個(gè)機(jī)器周期。顯然,這將在定時(shí)時(shí)間中加入額外的延時(shí)時(shí)間,導(dǎo)致計(jì)時(shí)誤差。為保證計(jì)時(shí)精度,必須采取措施進(jìn)行補(bǔ)償。我們采用增多重裝的定時(shí)器 0 初值的方法來減少定時(shí)器0 定時(shí)時(shí)間。具體應(yīng)調(diào)整為多大,一般需要通過調(diào)試來確定。經(jīng)測(cè)試,定時(shí)器 0 重裝初值~ 3CBFH 可以滿足精度需求。 第二:時(shí)間是按十進(jìn)制遞增的。 其計(jì)時(shí)程序流程圖如圖 62 所示 27 Y Y Y Y N N N N 保護(hù)現(xiàn)場(chǎng) 時(shí)間校正 重裝定時(shí)器 0初值 循環(huán)次數(shù)減 1 滿 10次 秒單元加 1 60s 到 秒單元清零 分單元加 1 60 分到 分單元清零 小時(shí)單元加 1 24 小時(shí)到 小時(shí)單元清零 恢復(fù)現(xiàn)場(chǎng) 返回 28 圖 62 計(jì)時(shí)程序流 程圖 時(shí)間設(shè)置程序和鬧鐘定時(shí)程序模塊 其流程圖如圖 63 所示 將鍵盤輸入的 6 位時(shí)間值合并為 3 位壓縮 BCD 碼(時(shí)、分、秒)送入計(jì)時(shí)緩沖區(qū)和鬧鐘值寄存區(qū),作為當(dāng)前計(jì)時(shí)起始時(shí)間或鬧鐘定時(shí)時(shí)間。該模塊的入口為計(jì)時(shí)緩沖區(qū)或鬧鐘值寄存區(qū)的首地址,置入 R1 中。程序調(diào)用以鍵盤設(shè)置子程序 KEYIN(如圖 64 所示)來將鍵入的 6 位時(shí)間值送入鍵盤設(shè)置緩沖區(qū),然后用合字子程序COMB 將鍵盤設(shè)置緩沖區(qū)中的 6 位 BCD 碼合并為 3 位壓縮 BCD 碼,送入計(jì)時(shí)緩沖區(qū)或鬧鐘值寄存區(qū)。該程序同時(shí)作為時(shí)間值合法性檢測(cè)程序,若鍵盤鍵入的小時(shí) 值大于 23,分和秒值大于 59,則不合法,將取消本次設(shè)置,清零重新開 始計(jì)時(shí)。 圖 63 時(shí)間設(shè)置 /鬧鐘定時(shí)流程圖 圖 64 鍵盤設(shè)置子程序流程圖 時(shí)間設(shè)置 /鬧鐘定時(shí)模塊程序 MODIFY 如下 MODIFY: ACALL KEYIN 。 調(diào)用鍵盤設(shè)置主程序 Y N 保護(hù)現(xiàn)場(chǎng) 顯示緩沖區(qū)首地址送 R0 鍵盤輸入次數(shù)送 R7 調(diào)用鍵盤掃描程序 ACALL KEYSCAN 鍵號(hào)送 @R0 顯示緩沖區(qū)地址加 1 INC R0 循環(huán)次數(shù)減 1 循環(huán)次數(shù)到 恢復(fù)現(xiàn)場(chǎng) 返回 保護(hù)現(xiàn)場(chǎng) 調(diào)用鍵盤設(shè)置子程ACALL KEYIN 調(diào)用合字程序 ACALL COMB 恢復(fù)現(xiàn)場(chǎng) 返回 29 ACALL COMB 。 調(diào)用合字子程序 RET 鍵盤設(shè)置子程序 KEYIN: KETIN: PUSH PSW PUSH ACC SETB RS1 。 保護(hù)現(xiàn)場(chǎng) MOV R0, DISP0 。 R0 指向顯示緩沖區(qū)首地址 MOV R7, 06H 。 設(shè)置鍵盤輸入次數(shù) L1: CLR RS1 ACALL KEYSCAN 。 調(diào)用鍵盤掃描程序取按下鍵的鍵號(hào) SETB RS1 CJNE A, 0AH, L2 。 鍵入數(shù)合法性檢測(cè)(是否大于 9) L2: JNC L1 。 大于 9,重新鍵入 MOV @R0, A 。 鍵號(hào)送顯示緩沖區(qū) INC R0 DINZ R7, L1 。 6 位時(shí)間輸入完否?未完繼續(xù),否則返回 POP ACC POP PSW CLR RS1 。 恢復(fù)現(xiàn)場(chǎng) RET 鍵盤掃描程序模塊 流程圖如圖 44 所示 判斷是否有鍵按下,無鍵按下則循環(huán)等待;有鍵按下則求鍵號(hào)并將鍵號(hào) 送入 A 累加器返回。程序中的去抖延時(shí)和循環(huán)等待延時(shí)都用 DISPLAY 子程序來代替,從而保證隨時(shí)刷新顯示。 鍵盤掃描子程序 KEYSCAN 如下 KEYSCAN: ACALL TEST 。 調(diào)判按鍵是否按下子程序 TEST JNZ REMOV 。 有鍵按下消抖延時(shí) ACALL DISPLAY ACALL ALARM 30 AJMP KEYSCAN 。 無鍵按下繼續(xù)判是否按鍵 REMOV: ACALL DISPLAY 。 調(diào)用顯示子程序延時(shí)消抖 ACALL ALARM ACALL TEST 。 再判是否有鍵按下 JNC LIST 。 有鍵按下轉(zhuǎn)逐列掃描 ACALL DISPLAY ACALL ALARM AJMP KEYSCAN 。 無鍵按下繼續(xù)判是否按鍵 LIST: MOV R2, 0FEH 。 首列掃描字送 R2 MOV R3, 00H 。 首列鍵號(hào)送 R3 LINE0: MOV DPTR, PORTA 。 DPTR 指針指向 8155 的 A 口 MOV A, R2 。 首列掃描 字送 R2 MOVX @DPTR, A 。 首列掃描字送 8155 的 A 口 MOV DPTR, PORTC 。 DPTR 指針指向 8155 的 C 口 MOVX A, @DPTR 。 讀入 C 口的行狀態(tài) JB , LINE1 。 第 0 行鍵無鍵按下轉(zhuǎn)第 1 行 MOV A, 00H 。 第 0 行有鍵按下,行首鍵號(hào)送 A AJMP TRYK 。 求鍵號(hào) LINE1: JB , LINE2 。 第 1 行鍵無鍵按下,轉(zhuǎn)第 2 行 MOV A, 08H 。 第 1 行有鍵按下,行首鍵號(hào)送 A AJMP TRTK 。 求鍵號(hào) LJME2: JB , NEXT 。 第 2 行鍵無鍵按下,轉(zhuǎn)第 3 行 MOV A, 08H 。 第 2 行有鍵按下,行首鍵號(hào)送 A AJMP TRYK 。 求鍵號(hào) NEXT: INC R3 。 掃描下一列 MOV A, R2 。 列掃描字送 A JNB , EXIT 。 4 列掃描完,重新進(jìn)行下一輪掃描 RL A 。 4 列未掃描完,掃描字左移掃描下一列 MOV R2, A 。 掃描字送 A AJMP LINE0 。 轉(zhuǎn)向掃描下一列 EXIT: AJMP KEYSCAN 。 等待下一次按鍵 31 TRYK: ADD A, R3 。 按公式計(jì)算鍵碼,求得鍵號(hào) PUSH ACC 。 鍵號(hào)入 棧保護(hù) LETK: ACALL TEST 。 等待按鍵釋放 JNZ LETK 。 按鍵未釋放,繼續(xù)等待 POP ACC 。 按鍵釋放,鍵號(hào)出棧 RET 。 鍵盤掃描結(jié)束,返回 TEST: MOV DPTR, PORTA 。 DPTR 指針指向 8155 的 A 口 MOV A, 00H MOVX @DPTR, A 。 全掃描字 00H 送 8155 的 A 口 MOV DPTR, PORTC 。 DPTR 指針指向 8155 的 C 口 MOVX A, @DPTR 。 讀入 C 口行狀態(tài) CPL A 。 A 取反,以高電平表示有鍵按下 ANL A, 07H 。 屏蔽高 5 位 RET 顯示程序模塊 流程圖如圖 65 所示 將顯示緩沖區(qū)中的 6 位 BCD 碼用動(dòng)態(tài)掃描方式顯示。為此,必須首先將 3 字節(jié)計(jì)時(shí)緩沖區(qū)中的時(shí) 、分、秒壓縮 BCD
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1