基于PIC16F877的LED旋轉時鐘單片機設計實驗報告_第1頁
基于PIC16F877的LED旋轉時鐘單片機設計實驗報告_第2頁
基于PIC16F877的LED旋轉時鐘單片機設計實驗報告_第3頁
基于PIC16F877的LED旋轉時鐘單片機設計實驗報告_第4頁
基于PIC16F877的LED旋轉時鐘單片機設計實驗報告_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2013年小學期單片機設計實驗報告題目:基于pic16f877單片機的led旋轉時鐘班 級: 學 號: 班內序號: 實驗組號: 學生姓名: 指導教師: 期中檢查教師評語指導教師簽字: 年 月 日基于pic16f877單片機的led旋轉時鐘 班 實驗摘要 本次我們制作的基于pic16f877單片機的led旋轉時鐘是能夠輸入、顯示時間的時鐘。結構新穎,效果奇特。加入了現(xiàn)代科技的元素,利用人眼的視覺暫留特性,解決了傳統(tǒng)時鐘結構單一,顯示效果固定的缺陷,更好了滿足了人們對美的追求。整個系統(tǒng)中,微控制器采用了microchip公司的pic16f877,軟件設計中涉及porta用作普通數字i/o腳控制按鍵

2、輸入,portb、portc控制燈的亮滅,portd向時鐘芯片ds1302寫入和讀出時間。概括來說,本實驗就是用人眼的視覺暫留特性,用pic16f877單片機作為主控芯片,采用電機帶動發(fā)光二極管高速旋轉,利用頻閃顯示原理呈現(xiàn)時鐘畫面。abstractin this experiment, we made a led rotating clock base on pic16f877 mcu. it can input and show time. its structure is novel and its effect is amazing. its full of modern techno

3、logy element. with human eyes persistence of vision, it solves traditional clocks structure and effects disadvantage, fits human pursue for beauty better.the system uses the production of the microchip cord-pic16f877. the design includes the drive of porta as general digital ports to input time, the

4、 drive of portb and portc to control the leds on, the drive of portd to write and read time on ds1302. in conclusion, with human eyes persistence of vision, this experiment uses pic16f877 mcu as master chip, uses motor to drive led rotate at high speed, uses strobe display principle to show the cloc

5、k.關鍵字單片機microcontroller 芯片cmos chip led旋轉時鐘- led rotating clock一.實驗論證與比較1.led顯示模塊led的特點非常明顯,壽命長、光效高、無輻射與低功耗。led的光譜幾乎全部集中于可見光頻段,其發(fā)光效率可達8090%。將led與普通白熾燈、螺旋節(jié)能燈及t5三基色熒光燈進行對比,結果顯示:普通白熾燈的光效為12lmw,壽命小于2000小時,螺旋節(jié)能燈的光效為60lmw,壽命小于8000小時,t5熒光燈則為96lmw,壽命大約為10000小時,而直徑為5毫米的白光led為2028lmw,壽命可大于100000小時。有人還預測,未來的le

6、d壽命上限將無窮大。由于led的種種優(yōu)勢,使得其在現(xiàn)在的各個領域里運用越來越廣泛,我們設計的旋轉led顯示屏幕,具有結構新穎,節(jié)約材料的特點,一列16個led燈旋轉顯示之后,可以代替顯示近似于16x120像素的顯示寬度和內容。旋轉時鐘是利用視覺暫留效應設計出來的,物體在快速運動時, 當人眼所看到的影像消失后,人眼仍能繼續(xù)保留其影像0.1-0.4秒左右的圖像,這種現(xiàn)象被稱為視覺暫留現(xiàn)象。是人眼具有的一種性質。人眼觀看物體時,成像于視網膜上,并由視神經輸入人腦,感覺到物體的像。但當物體移去時,視神經對物體的印象不會立即消失,而要延續(xù)0.1 -0.4秒的時間,人眼的這種性質被稱為“眼睛的視覺暫留”。

7、假設我們設定我們的眼睛的暫留時間是0.4秒,如果我們的16個led旋轉一周的時間快過0.4秒,那么我們看到的圖像就是這一列l(wèi)ed在各個位置顯示的圖像的疊加,如右圖,如果我們用定時器把led旋轉一周的各個位置分割出120分,讓它在相應的位置顯示相應的圖像,那么我們就可以得到一個累加的圖像效果了。旋轉led時鐘的實現(xiàn)方法是把一組led(16個左右) 緊密的排列成一條直線,組成一條led列,每個led都由pic單片機來控制其點滅。把整個電路板固定在電機上,使得緊密排列的led條的一端固定在電機的旋轉軸附近,如圖所示。電路板轉過一圈的時間極短,遠小于0.1秒。通過單片機控制led燈在一圈內轉到不同位置

8、時的亮滅,來顯示圖像或文字。2.ds1302時鐘模塊大多數的單片機沒有實時時鐘部件,一旦系統(tǒng)掉電時鐘就不能運行,下次再運行,時間就不準確了。即便使用備用電池,但要維持單片機系統(tǒng)的較大功耗也是堅持不了多久的。而我所做的旋轉時鐘用到的單片機主要是來準確顯示時間的,因此實時時鐘部件必不可少,這里我用了maxim公司的ds1302時鐘芯片作為實時時鐘部件,保證時間的長久準確性。ds1302 有著很強的功能。包括時鐘/日歷寄存器和31 字節(jié)(8位)的數據暫存寄存器,數據通信僅通過一條串行輸入輸出口。實時時鐘/日歷提供包括秒、分、時、日期、月份和年份信息。閏年可自行調整,可選擇am/pm的12 小時制或2

9、4小時制。只通過三根線進行數據的控制和傳遞:ce(輸入信號,在讀、寫數據期間,必須為高。該引腳有兩個功能:第一,ce開始控制字訪問移位寄存器的控制邏輯;其次,ce提供結束單字節(jié)或多字節(jié)數據傳輸的方法。);i/o(三線接口時的雙向數據線);sclk(串行時鐘輸入)。通過備用電源可以讓芯片在小于1mw的功率下運作。對時鐘寄存器初始化可以設定當前時間,控制芯片的運行,時間是用bcd碼保存的,ram可以用來存取用戶數據,在用了備用電池后ram內的數據在系統(tǒng)掉電時能夠保持不丟失。芯片采用了簡單的i2c 三線通信方式,便于節(jié)省芯片資源和與之接口的mcu的引腳。芯片有著2.05.5v的寬供電電壓范圍,在5v

10、供電時其接口與ttl電平兼容。并且有著很低的功耗,在2.0v供電時僅耗300na 的電流。引腳x1 和x2 連接32.768khz 晶體,與內部振蕩器組成時鐘。晶體的精度直接影響著芯片時間的準確與否。ds1302有兩個電源引腳vcc1和vcc2,分別連接備用電池和電源vcc。vcc2與主電源連接,vcc1接備用電池。當vcc2低于vcc1時,芯片由vcc1供電;當vcc2-vcc10.2v時,備用電池為芯片供電。在vcc2供電時芯片能夠對接在vcc1的備用電池充電,并且是否充電和充電電流都可以由芯片內地址為08h的時鐘寄存器進行控制。ds1302與單片機的硬件接線圖如圖三所示。 圖三 ds13

11、02硬件接線圖在進行任何數據傳輸時,ce必須被制高電平(雖然ce被置為高電平,但內部時鐘還是在晶振作用下不停地計時的),在每個sclk上升沿時讀入數據,下降沿時寫出數據。每個字節(jié)的傳輸都是由控制字節(jié)(如表1所示)指定的,控制字節(jié)的最高位bit7必須是“1”,否則讀寫將會被禁止。bit6 為“0”則指定對時鐘/日歷寄存器進行讀寫操作,為“1”則對ram區(qū)的數據進行讀寫操作,bit1-bit5 指定相關寄存器進行輸入輸出操作,最低位bit0 指定是輸入還是輸出,為“0”則為寫,相反則為讀,輸入輸出根據脈沖的上升沿和下降沿串行進行。765432101ram/用來表示相關寄存器的地址rd/表1 ds1

12、302控制字節(jié)控制字總是從最低位開始輸出。在控制字指令輸入后的下一個sclk時鐘的上升沿時,數據被寫入ds1302,數據輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個sclk脈沖的下降沿,讀出ds1302的數據,讀出的數據也是從最低位到最高位。數據讀寫時序如圖四所示。圖四 ds1302數據讀寫時序通過8個脈沖便可讀取一個字節(jié),從而實現(xiàn)串行輸入與輸出。最初通過8個時鐘周期載入控制字節(jié)到移位寄存器。如果控制指令選擇的是單字節(jié)模式,連續(xù)的8個時鐘脈沖可以進行8位數據的讀寫操作。8個脈沖便可讀寫一個字節(jié)。載入控制字節(jié)后就可以對時鐘/日歷寄存器進行相應操作,時鐘/日歷寄存器如下表所示。

13、讀寄存器寫寄存器bit7bit6bit5bit4bit3bit2-bit0范圍81h80hch16-59秒0-15秒00-5983h82h16-59分0-15分00-5985h84h12020-2315-19時0-15時1-12/0-23/pm87h86h00016-31日0-15日1-3189h88h00010月月1-128bh8ah000001-7周1-78dh8ch015-99年0-15年00-998fh8ehwp0秒寄存器(81h、80h)的位7定義為時鐘暫停標志(ch)。當該位置1時,時鐘振蕩器停止,ds1302處于低功耗狀態(tài);當該位置為0時,時鐘開始運行。小時寄存器(85h、84h

14、)的位7用于定義ds1302是運行于12小時模式還是24小時模式。當為高時,選擇12小時模式。在12小時模式下,位5為1時,表示pm。在24小時模式時,位5是第二個10小時位(20-23時)??刂萍拇嫫鳎?fh、8eh)的位7是寫保護位(wp),其它7位均置為0。在任何的對時鐘和ram的寫操作之前,wp位必須為0。當wp位為1時,寫保護位防止對任一寄存器的寫操作。二.系統(tǒng)總體設計系統(tǒng)模塊總體框圖如下:6v電源2.7v電源單片機(pic16f877)控制亮滅顯示模塊(led燈)控制轉動電動機輸入時間時間存儲模塊 ds1302輸入模塊(按鍵)底座 轉動部分開始程序總體框圖:輸入時間時間寫入ds13

15、02開始旋轉,顯示時鐘界面結束輸入時間模塊框圖該模塊利用兩個按鍵sw1和sw2實現(xiàn)時間輸入。sw1按一次時間加1,sw2按一次切換時、分、秒的輸入。按完三次sw2結束。通過八個led燈顯示輸入的時間的二進制數。開始程序框圖如下:是否切換否是輸入時,亮燈是否切換否 是輸入分,亮燈是否切換否是輸入秒,亮燈結束ds1302讀寫模塊寫時間程序框圖:開始關閉寫保護寫入地址寫入1字節(jié)打開寫保護結束讀時間程序框圖:開始關閉寫保護寫入地址讀取1字節(jié)打開寫保護結束4.led顯示模塊單片機轉20圈(小于1秒)從ds1302讀一次數。將表盤分成120格,走一格計數器加1。開始程序框圖:判斷是否轉20圈,轉20圈從d

16、s1302讀一次時間判斷計數器是否為120,是120則清0。判斷是否為表盤位置,是則點亮表盤是否秒針?否是否分針?否是是否時針?否延時點亮指針,延時計數器加1三. 硬件連接兩個按鍵sw1和sw2接porta0和porta1。portb和portc接16個led燈。portd0接ds1302的slck(時鐘),portd1接ds1302的i/o接口, portd2接ds1302的ce(使能端)。馬達上套一個輪子,用萬能膠粘在電路板上。pic單片機和led燈由電路板上兩個紐扣電池供電。實物連接圖:正面圖:背面圖:側面圖:局部細節(jié)圖:效果圖:電路原理圖:四.調試過程在此,列舉幾個調試過程中遇到的的問

17、題。1.ra端口的輸入和輸出問題上述提到我們用ra0、ra1接上兩個按鍵給單片機輸入時間,但是,我在編寫好程序進行單步調試時,發(fā)現(xiàn)盡管我用異步激勵將這三個端口設置為高電平,在觀察窗口中ra的值沒有絲毫變化。經過思考,并聯(lián)系提高篇中講到的ra端口兼?zhèn)?條數/模轉換器的模擬量輸入通道,在將ra端口當作普通數字輸入/輸出端口時需要將其控制寄存器adcon1的低四位送入011x(x取0或1均可)。因此,修改程序后,再次編譯和調試,問題得到解決。2.ds1302的編碼問題開始我沒有注意ds1302里存的是bcd碼而不是普通二進制碼,結果秒針一跳一跳的不能連續(xù)地走。修改完后時間恢復正常。3.讀取時間的問題

18、單片機讀取ds1302需要一定的時間。每秒鐘時鐘大概轉二十幾轉,每轉一圈讀一次時間沒有必要,所以我設定轉20圈(一秒鐘內)讀一次時間。五.參考文獻:pic單片機實用教程基礎篇 (五號 宋體)李學海北京航空航天大學出版社使用說明:的確是一本不可或缺的教材,本書列舉了很多實用的具有實戰(zhàn)意義的例子,單片機入門就是通過把這本書里的好例子一字一行敲進電腦去來實現(xiàn)的。pic單片機實用教程提高篇李學海北京航空航天大學出版社使用說明:繼承了前面基礎篇的風格,例子也具有實戰(zhàn)意義,主要講ra、tmr2的使用和ccp模塊的pwm脈寬調制功能。六.實驗心得體會通過本次實驗,我對單片機有了一個初步的認識,也能用匯編編寫

19、一些簡單的程序。這次的程序800行左右,不長,但絕大多數是我自己打的??粗鴨纹瑱C能夠實現(xiàn)自己編寫的程序所設定的功能,還是很有自豪感的。這次實驗對我的動手實踐能力是一次極大的考驗,我也從中學到了很多東西。除了動手能力有所提高外,得益于二人組隊的形式,我也明白了團隊協(xié)作的重要性,獲得了許多與他人合作的經驗。在這里也要感謝我的兩位老師和隊友,他們在實驗過程中給予了我非常大的幫助,沒有他們,這個單片機很難完成。我也非常希望能夠在以后還能遇上這種動手實踐的機會,這是一個很好的提升能力的機遇。下附匯編代碼:注意,此代碼有bug,秒針會先用55秒走完60秒,然后消失5秒,再出現(xiàn)在0秒處。去掉按鍵輸入時間的模

20、塊,直接在程序里把時間打進去,秒針又恢復正常。我研究了幾個小時也沒找到問題在哪。#define t_io portd,1 ;1302 i_o #define t_clk portd,0 ;1302時鐘 #define t_rst portd,2 ;1302使能位 #define ds1302_rx 27h ;保存接受的1個數據 #define ds1302_tx 28h ;準備寫入到ds1302的一個數據 indfequ00hstatus equ 03hrp0 equ 5hcequ0hzequ2hfsrequ04hadcon1equ9fhtrisb equ 86htrisc equ 87htr

21、isdequ88hportb equ 06hportc equ 07hportdequ08hportaequ05htrisaequ85hn equ 20h ;延時循環(huán)變量counter equ 21h;指針位置計數器secnequ22h;秒針列數minnequ23h;分針列數hournequ24h;時針列數jumpdecequ25h;跳轉判斷,0位秒,1位分,2位時hourcequ26h;d10,時鐘計數循環(huán)變量counter1 equ 29h temp_cnt equ 2ah w_secondequ2bhw_minuteequ2chw_hourequ2dhsecaddrequ2ehseceq

22、u2fhminequ30hhourequ31hreadnequ32htr1equ33htr2equ34hbcdnequ35hdata1 equ 36hdata2 equ 37hn1 equ d13n2 equ 0ffhtb1equ38h;十位tb2equ39h;個位;-;主程序;-;-;輸入時間;-org0000hgotomainorg0005hmain bsf status,rp0 clrf trisc ;設置c口輸出 clrf trisb ;設置b口輸出clrftrisd ;設置d口輸出 movlw 0ffh movwf trisa;a口定義為輸入movlw06hmovwfadcon1;a

23、口設為數字i/o bcf status,rp0;體0clrfsecnclrfminnclrfhournclrfjumpdecclrfportbclrfportc;c口燈滅clrfportdclrfw_hourclrfw_minuteclrfw_secondsetw_hourbtfssporta,1 ;sw2是否按下 gotosetw_minute1check btfsc porta,0;測開關sw1按下否?是,跳過下條指令 goto setw_hour;否!則循環(huán)檢測 call delay btfsc porta,0;再次測開關sw1按下否?是,跳過下條指令 goto check;否!則循環(huán)檢

24、測incfw_hour,1 ;時針加1movlwd12subwfw_hour,0 ;看是否等于12 btfsc status,zclrfw_hourmovfw_hour,0movwfportccheck1 btfss porta,0;測開關sw1斷開否?是,跳過下條指令 goto check1;否!則循環(huán)檢測 call delay btfss porta,0;再次測開關sw1斷開否?是,跳過下條指令 goto check1;否!則循環(huán)檢測 goto setw_hour;返回setw_minute1btfssporta,1;sw2松開否gotosetw_minute1calldelaybtfss

25、porta,1gotosetw_minute1setw_minutebtfssporta,1 ;sw2是否按下 gotosetw_second1check2 btfsc porta,0;測開關sw1按下否?是,跳過下條指令 goto setw_minute;否!則循環(huán)檢測 call delay btfsc porta,0;再次測開關sw1按下否?是,跳過下條指令 goto check2;否!則循環(huán)檢測incfw_minute,1 ;分針加1movlwd60subwfw_minute,0 ;看是否等于60 btfsc status,zclrfw_minutemovfw_minute,0movwf

26、portccheck3 btfss porta,0;測開關sw1斷開否?是,跳過下條指令 goto check3;否!則循環(huán)檢測 call delay btfss porta,0;再次測開關sw1斷開否?是,跳過下條指令 goto check3;否!則循環(huán)檢測 goto setw_minute;返回setw_second1btfssporta,1gotosetw_second1calldelaybtfssporta,1gotosetw_second1setw_secondbtfssporta,1 ;sw2是否按下 gotobegincheck4 btfsc porta,0;測開關sw1按下否?

27、是,跳過下條指令 goto setw_second;否!則循環(huán)檢測 call delay btfsc porta,0;再次測開關sw1按下否?是,跳過下條指令 goto check4;否!則循環(huán)檢測incfw_second,1 ;秒針加1movlwd60subwfw_second,0 ;看是否等于60 btfsc status,zclrfw_secondmovfw_second,0movwfportccheck5 btfss porta,0;測開關sw1斷開否?是,跳過下條指令 goto check5;否!則循環(huán)檢測 call delay btfss porta,0;再次測開關sw1斷開否?是

28、,跳過下條指令 goto check5;否!則循環(huán)檢測 goto setw_second;返回begin calltbcd;-;顯示時間;-callset_ds1302rsrnmovlwd20movwfreadn;20圈讀一次時間showmovlwd20subwfreadn,0btfscstatus,zcallget_ds1302callbcdtdecfreadn,1clrfcounter;指針位置計數器清零 judgecallclearc;清表盤movlwd119subwfcounter,0btfscstatus,zgotorsrn ;判斷指針位置計數器是否達到119;*是否顯示刻度*mov

29、lwd0subwfcounter,0btfscstatus,zcalldraw2_0movlwd1subwfcounter,0btfscstatus,zcalldraw2_1movlwd2subwfcounter,0btfscstatus,zcalldraw2_2movlwd3subwfcounter,0btfscstatus,zcalldraw2_3movlwd10subwfcounter,0btfscstatus,zcalldrawgramovlwd20subwfcounter,0btfscstatus,zcalldrawgramovlwd27subwfcounter,0btfscstat

30、us,zcalldraw3_0movlwd28subwfcounter,0btfscstatus,zcalldraw3_1movlwd29subwfcounter,0btfscstatus,zcalldraw3_2movlwd30subwfcounter,0btfscstatus,zcalldraw3_3movlwd31subwfcounter,0btfscstatus,zcalldraw3_4movlwd32subwfcounter,0btfscstatus,zcalldraw3_5movlwd33subwfcounter,0btfscstatus,zcalldraw3_6movlwd40s

31、ubwfcounter,0btfscstatus,zcalldrawgramovlwd50subwfcounter,0btfscstatus,zcalldrawgramovlwd58subwfcounter,0btfscstatus,zcalldraw6_0movlwd59subwfcounter,0btfscstatus,zcalldraw6_1movlwd60subwfcounter,0btfscstatus,zcalldraw6_2movlwd61subwfcounter,0btfscstatus,zcalldraw6_3movlwd62subwfcounter,0btfscstatus

32、,zcalldraw6_4movlwd70subwfcounter,0btfscstatus,zcalldrawgramovlwd80subwfcounter,0btfscstatus,zcalldrawgramovlwd87subwfcounter,0btfscstatus,zcalldraw9_0movlwd88subwfcounter,0btfscstatus,zcalldraw9_1movlwd89subwfcounter,0btfscstatus,zcalldraw9_2movlwd90subwfcounter,0btfscstatus,zcalldraw9_3movlwd91sub

33、wfcounter,0btfscstatus,zcalldraw9_4movlwd92subwfcounter,0btfscstatus,zcalldraw9_5movlwd93subwfcounter,0btfscstatus,zcalldraw9_6movlwd100subwfcounter,0btfscstatus,zcalldrawgramovlwd110subwfcounter,0btfscstatus,zcalldrawgramovlwd116subwfcounter,0btfscstatus,zcalldraw1_0movlwd117subwfcounter,0btfscstat

34、us,zcalldraw1_1movlwd118subwfcounter,0btfscstatus,zcalldraw1_2;*是否顯示秒針*movfsec,0movwfsecnaddwfsecn,1movfsecn,0subwfcounter,0btfscstatus,zcalldrawsecclrfsecnbtfssjumpdec,0gotodec_mingotosd04;*是否顯示分針*dec_minmovfmin,0movwfminnaddwfminn,1movfminn,0subwfcounter,0btfscstatus,zcalldrawminclrfminnbtfssjumpd

35、ec,1gotodec_hourgotosd04;*是否顯示時針*dec_hourmovlwd10movwfhourcaddhmovfhour,0addwfhourn,1decfszhourc,1gotoaddhmovfmin,0movwfminnjudhmovlwd6subwfminn,1btfscstatus,cgotopoint1gotopoint2point1incfhourn,1gotojudhpoint2movfhourn,0subwfcounter,0btfscstatus,zcalldrawhourclrfhournclrfminnbtfssjumpdec,1gotosd05g

36、otosd04sd04calldelay04;callclearc;calldelay01;gotoadd;sd05calldelay05addincfcounter,1;指針位置計數器加1clrfjumpdecgotojudge;*delay ;10ms延時子程序,防抖 movlw n1 movwf data1ip0 movlw n2 movwf data2ip1 decfsz data2,1 goto ip1 decfsz data1,1 goto ip0 return;-;2進制轉bcd;-tbcdclrftb1movfw_hour,0movwftb2movlwd10divsubwftb

37、2,1btfssstatus,cgotopoint3incftb1,1gotodivpoint3movlwd10addwftb2,1swapftb1,1movftb1,0iorwftb2,0movwfw_hourclrftb1movfw_minute,0movwftb2movlwd10div1subwftb2,1btfssstatus,cgotopoint4incftb1,1gotodiv1point4movlwd10addwftb2,1swapftb1,1movftb1,0iorwftb2,0movwfw_minuteclrftb1movfw_second,0movwftb2movlwd10

38、div2subwftb2,1btfssstatus,cgotopoint5incftb1,1gotodiv2point5movlwd10addwftb2,1swapftb1,1movftb1,0iorwftb2,0movwfw_secondreturn;* ;子程序名:set_ds1302 ;功 能:設置ds1302 初始時間,并啟動計時。 ;說 明: ;調 用:write_byte ;入口參數:初始時間在:w_second,w_minute,w_hour(地址連續(xù)) ;出口參數:無 ;消耗資源:counter1,secaddr(預定義) ;* set_ds1302 bcf t_rst bcf

39、 t_clk bsf t_rst movlw 8eh movwf ds1302_tx ;數據發(fā)送寄存器 call write_byte ;發(fā)送字節(jié) movlw 00h ;wp=0 movwf ds1302_tx call write_byte bsf t_clk bcf t_rst movlw w_second movwf fsr movlw d3 movwfcounter1 movlw 80h movwf secaddr ;秒寫地址 s13021 bcf t_rst bcf t_clk bsf t_rst movf secaddr,0 movwf ds1302_tx call write_b

40、yte ;寫秒地址 movf indf,0 movwf ds1302_tx call write_byte ;寫秒數據 incf fsr,1 incf secaddr,1 incf secaddr,1 bsf t_clk bcf t_rst decfsz counter1,1 goto s13021 bcf t_rst bcf t_clk bsf t_rst movlw 8eh ;控制寄存器 movwf ds1302_tx call write_byte movlw 80h ;控制wp=1,寫保護 movwf ds1302_tx call write_byte bsf t_clk bcf t_rst return;* ;子

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論