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

正文內(nèi)容

三位倒計(jì)時(shí)器pic單片機(jī)課程設(shè)計(jì)含全部匯編程序清單-wenkub

2023-04-27 05:00:52 本頁面
 

【正文】 SUBWF NUM11,F BTFSS STATUS,Z CALL JIABAI 。現(xiàn)在已知NUM11為第一次鍵入的數(shù),NUM6為第二次鍵入的數(shù),NUM8為第三次鍵入的數(shù),NUM10初值為0,其流程如下。否,繼續(xù)加十 RETURN 。加十1子程序JIASHI1 MOVLW .10 。十位是否為0 SUBWF NUM5,F BTFSS STATUS,Z CALL JIASHI1 。延時(shí) BSF PORTB,2 。延時(shí) BSF PORTB,1 。鍵盤顯示2子程序,用于2位數(shù)的鍵入顯示XIANSHI2 BCF PORTB,1 。由于多位顯示同樣需要該位的碼值,且新鍵入的變量相同,所以我們應(yīng)將該碼值備份兩份,為多位顯示做準(zhǔn)備。鍵按下一次,KEYFLAG左移一位 RETURN 該倒計(jì)時(shí)器將鍵盤鍵入數(shù)字的顯示和倒計(jì)時(shí)時(shí)數(shù)字的顯示分開,即兩者的顯示不是在同一個(gè)顯示子程序里。將1放入W寄存器 MOVWF NUM8 。調(diào)用查表子程序 MOVWF BIAN 。0到9按鍵,用于鍵入數(shù)字JIAN0 CALL SFANG 。為了判斷按下的次數(shù),設(shè)置變量KEFLAG,每調(diào)用一次鍵子程序變量左移一位,當(dāng)需要顯示時(shí),只需判斷KEFLAG的第幾位為1,就可判斷該鍵入的數(shù)字在數(shù)碼管的哪一個(gè)位上顯示。判斷鍵2 GOTO JIAN2 。判斷鍵0 GOTO JIAN0 。再判斷一次是否鍵入 ANDWF PORTC,W SUBLW 0F0H BTFSC STATUS,Z RETURN 。屏蔽低四位 SUBLW 0F0H BTFSC STATUS,Z 。 鍵盤掃描子程序鍵盤連接有4個(gè)輸入端和4個(gè)輸出端,輸入端連在RC低四位,輸出端連在RC高四位,先讓低四位賦值低電平,若有鍵按下,高四位必有低電平出現(xiàn),之后繼續(xù)判斷具體哪個(gè)鍵被按下。主程序鍵盤掃描模塊鍵盤顯示模塊TMR0定時(shí)模塊動(dòng)態(tài)顯示模塊倒計(jì)時(shí)結(jié)束提示模塊附加功能模塊圖18 程序模塊第二章 軟件設(shè)計(jì)基于硬件工作的軟件部分的編寫是通過匯編語言實(shí)現(xiàn)的。圖13 LED及蜂鳴器電路連接圖本次設(shè)計(jì)采用的單片機(jī)為PIC16F887,其功能強(qiáng)大,應(yīng)用靈活。習(xí)慣上,我們將段選接入RD的8個(gè)端口,4個(gè)位選接入RB的1到4位。 矩陣鍵盤電路設(shè)計(jì)一般鍵盤控制有4*5*5等類型方式,考慮到功能所需和單片機(jī)引腳的限制,我們采用4*4矩陣鍵盤。當(dāng)?shù)褂?jì)時(shí)到0時(shí),小燈立即閃爍,同時(shí)蜂鳴器鳴叫,小燈閃爍3次以后,倒計(jì)時(shí)器恢復(fù)初始狀態(tài),無需復(fù)位可以重新使用。根據(jù)以上設(shè)計(jì)內(nèi)容的介紹及我們的設(shè)計(jì)目的,總結(jié)出以下的設(shè)計(jì)要求:;,報(bào)警提示;;;“開始”、“暫?!?、“繼續(xù)”、“加一”、“減一”、“復(fù)位”等功能鍵;。另外,倒計(jì)時(shí)器在生活中應(yīng)用廣泛,因此它的功能靈活性和精度的要求就更加顯得重要。目前倒計(jì)時(shí)器的發(fā)展已經(jīng)相當(dāng)先進(jìn),我做這次設(shè)計(jì)的主要目的是想更進(jìn)一步了解基本電路的設(shè)計(jì)流程,以提高自己的設(shè)計(jì)理念,使自己的動(dòng)手動(dòng)腦能力有更進(jìn)一步提高。通過解決現(xiàn)實(shí)生活中的問題,鞏固和加深單片機(jī)課程中所學(xué)的理論知識和實(shí)驗(yàn)?zāi)芰Γ由顚纹瑱C(jī)軟硬件知識的理解,以獲得初步的應(yīng)用經(jīng)驗(yàn),為以后從事生產(chǎn)和科研工作打下一定的基礎(chǔ)。通過此次練習(xí),我為自己設(shè)下了很多要求,力求此倒計(jì)時(shí)器的功能完美性和精度精細(xì)性,以加深自己對電子產(chǎn)品設(shè)計(jì)的認(rèn)知。為實(shí)現(xiàn)使用的靈活性和計(jì)數(shù)的精準(zhǔn)性,我們采用TMR0定時(shí)器計(jì)時(shí),功能鍵包括計(jì)時(shí)開始、暫停、繼續(xù)、加一、減一和復(fù)位。按鍵過程中為確保使用人員知道鍵是否按下,按下時(shí)蜂鳴器應(yīng)該響起以示提醒。該鍵盤有4個(gè)輸入端,4個(gè)輸出端,我們習(xí)慣于把它連接在單片機(jī)的RC端口。圖12 數(shù)碼管設(shè)計(jì)電路圖 LED及蜂鳴器電路設(shè)計(jì)蜂鳴器的設(shè)計(jì)就簡單許多,只需將其一端接入高電平,另一端接入單片機(jī),為保證其正常工作,接入100歐姆的電阻。在使用它進(jìn)行工作的前提是對其基本的引腳進(jìn)行分配,這里我們只考慮VCC和GND以及晶振的接入,晶振選擇4MHz的晶振。由以上分析可知,該部分大致包括鍵盤掃描,鍵盤顯示,TMR0定時(shí)器,動(dòng)態(tài)顯示,結(jié)束提示和其他功能模塊等六大部分,其中每大部分又包括不等的若干小部分,下面通過總體到局部的過程介紹它的工作原理。以RC0為0為例,若令RC0=0,即判斷第一行是否有鍵按下,依次判斷高四位是否為低電平,若為低電平,則該鍵被按下,轉(zhuǎn)入相應(yīng)功能子程序。判斷高四位是否為全1 RETURN 。虛假輸入,返回 BCF PORTB,5 。是,跳至鍵0功能子程序 BTFSS PORTC,5 。是,跳至鍵2功能子程序 BTFSS PORTC,7 。同時(shí),鍵入的位數(shù)不同會(huì)調(diào)用不同的鍵盤顯示子程序,我們設(shè)計(jì)的三位倒計(jì)時(shí)器有三個(gè)鍵盤顯示子程序,當(dāng)按下一個(gè)數(shù)時(shí),調(diào)用XIANSHI1,為靜態(tài)顯示;當(dāng)按下第二個(gè)數(shù)時(shí),數(shù)碼管動(dòng)態(tài)掃描,顯示兩位數(shù),就需要調(diào)用XIANSHI2,同理按下3位數(shù)調(diào)用3位顯示子程序XIANSHI3。釋放 MOVLW 00H 。BIAN帶0顯示碼返回 RLF KEYFLAG,1 。NUM8帶1返回 CALL CHABIAO 。因此這里需要簡要的介紹一下鍵盤顯示子程。圖23 選擇第幾個(gè)顯示子程序顯示2子程序和顯示3子程序與顯示1子程序相似,只是送入兩個(gè)數(shù)進(jìn)行動(dòng)態(tài)掃描。個(gè)位位選打開 MOVF BIAN,W 。個(gè)位位選關(guān)閉 BCF PORTB,2 。位選關(guān)閉 。否,調(diào)用加十1子程序 MOVF NUM9,W 。NUM9加十 ADDWF NUM9,F DECF NUM5,F 。是,返回 一位轉(zhuǎn)多位十進(jìn)制子程序由鍵盤顯示子程序我們發(fā)現(xiàn)其后多出一個(gè)多個(gè)一位數(shù)轉(zhuǎn)化為一個(gè)多位數(shù)的轉(zhuǎn)化子程序,它的作用是,在鍵入之后將該多位數(shù)送入倒計(jì)時(shí)顯示子程序開始倒計(jì)時(shí),這是由倒計(jì)時(shí)顯示子程序決定的,只要送入任意一個(gè)三位數(shù),它都能夠?qū)崿F(xiàn)準(zhǔn)確的顯示。圖24 多位數(shù)轉(zhuǎn)化流程圖程序:。不為0,調(diào)用加百子程序 MOVLW 00H 。組成的數(shù)放入顯示變量NUMB RETURN 。判斷是否為0 GOTO JIABAI 。NUM10加10 ADDWF NUM10,F DECF NUM6,F 。是,返回 TMR0中斷服務(wù)子程序?yàn)閷?shí)現(xiàn)精準(zhǔn)定時(shí),我們采用TMR0定時(shí)器,它能夠?qū)崿F(xiàn)精確到微秒的計(jì)時(shí)?;诖嗽?,我們寫出程序如下:ORG 0x004 。 save off contents of STATUS register BCF INTCON,T0IF 。是,計(jì)數(shù)變量減1 MOVLW .20 。 restore preisr STATUS register contents swapf w_temp,f swapf w_temp,w 。分頻比為1:256 MOVWF OPTION_REG 倒計(jì)時(shí)顯示子程序基本的輸入及輔助程序準(zhǔn)備完畢,接下來是主體的顯示程序。圖25 分解流程圖當(dāng)送入的數(shù)值被分解之后,調(diào)用3位數(shù)碼管顯示子程序,實(shí)現(xiàn)3位數(shù)的動(dòng)態(tài)掃描,當(dāng)計(jì)時(shí)器計(jì)時(shí)時(shí)間到1秒之后,變量值減1,分解子程序分解,送入顯示,數(shù)碼管顯示三位數(shù)減1,實(shí)現(xiàn)了1秒倒計(jì)時(shí)功能??刂贫〞r(shí)器的中斷開關(guān)是本節(jié)的關(guān)鍵。T0使能關(guān)閉,計(jì)數(shù)停止 RETURN 。其程序如下:。E鍵,用于計(jì)數(shù)減一JIANE CALL SFANG 。鍵盤次數(shù)判斷恢復(fù)初始值 MOVWF KEYFLAG CLRF NUM9 。LIGHT BCF INTCON,5 。中間變量的初始化 CLRF NUM10 GOTO LOOP 。這里采用大循環(huán)的方式,不停地對程序進(jìn)行掃描,當(dāng)掃描到某一部分發(fā)現(xiàn)需要調(diào)用或跳轉(zhuǎn)時(shí)會(huì)相應(yīng)的調(diào)用或跳轉(zhuǎn)至其他子程序。因?yàn)槊刻齑蟛糠謺r(shí)間都用在設(shè)計(jì)上,而我們對單片機(jī)的設(shè)計(jì)還不夠熟練,總是花上大量的時(shí)間弄明白一個(gè)小小的問題,有時(shí)一個(gè)錯(cuò)誤會(huì)耽誤上半天而無法發(fā)現(xiàn),所以,當(dāng)我們?nèi)〉靡稽c(diǎn)點(diǎn)進(jìn)步之后才會(huì)發(fā)現(xiàn)已經(jīng)過去了很長的時(shí)間。第二個(gè)問題是編程過程中經(jīng)常出現(xiàn)理想思維,以為自己的思路能夠走通但是調(diào)試之后才發(fā)現(xiàn)無法實(shí)現(xiàn),經(jīng)過無數(shù)遍的理順之后才發(fā)現(xiàn)有些地方是明顯的錯(cuò)誤,有時(shí)是語言的使用錯(cuò)誤,有時(shí)是思路的局限,然而經(jīng)過不斷的發(fā)現(xiàn)問題、解決問題我們的程序逐漸完善。不僅復(fù)習(xí)了課本上所學(xué)的內(nèi)容,還把理論付諸于實(shí)踐,并使我們切身的體會(huì)到理論用于實(shí)踐時(shí)會(huì)出現(xiàn)的各種問題,通過解決這些問題,我們處理實(shí)際問題的能力有了很大的提高。這次課程設(shè)計(jì)提高了我們解決實(shí)際問題的能力,為我們積累了寶貴的實(shí)踐經(jīng)驗(yàn)。但是該計(jì)時(shí)器局限于255秒以內(nèi)的的計(jì)時(shí),計(jì)時(shí)長度有限制;而且體積較大,線路較為復(fù)雜,不適合攜帶。 list directive to define processorinclude 。_PWRTE_ONamp。 variable used for context saving status_temp EQU 0x72 。********************************************************************** ORG 0x000 。 interrupt vector location movwf w_temp 。清TMR0溢出標(biāo)志位 DECFSZ COUNTER 。循環(huán)數(shù)賦初值20 MOVWF COUNTERRT MOVLW 3DH 。 restore preisr STATUS register contents swapf w_temp,f swapf w_temp,w 。 remaining code goes here BSF STATUS,RP1 。進(jìn)入體1 CLRF TRISD 。RD低四位輸入,高四位輸出 MOVWF TRISC MOVLW 08H 。 。RE關(guān)閉 MOVWF PORTE CLRF NUM5 。調(diào)用分解子程序 CALL DISPLAY 。是,調(diào)用為0提示及恢復(fù)子程序 GOTO LOOP6 。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1