久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于PIC單片機(jī)電子萬(wàn)年歷實(shí)驗(yàn)報(bào)告

時(shí)間:2019-05-14 00:17:28下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《基于PIC單片機(jī)電子萬(wàn)年歷實(shí)驗(yàn)報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《基于PIC單片機(jī)電子萬(wàn)年歷實(shí)驗(yàn)報(bào)告》。

第一篇:基于PIC單片機(jī)電子萬(wàn)年歷實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)報(bào)告

姓名:文可鑫學(xué)號(hào):20072121010專業(yè):電子信息工程

1編寫(xiě)一個(gè)秒表程序,使用查詢方式。

listp=16f877a

include“p16f877a.inc”

include

countequ20h

count_sequ21h

org000h

startnop

callInitSPI

bankselOPTION_REG

movlw04h

movwfOPTION_REG

bankselINTCON

movlw00h

movwfINTCON

movlw06h

movwfTMR0

movlwd'131'

movwfcount

movlw00h

movwfcount_s

mainbtfssINTCON,T0IF

goto$-1

movlw06h

movwfTMR0

bcfINTCON,T0IF

incfcount,f

btfssSTATUS,Z

gotomain

movlwd'131'

movwfcount

incfcount_s,f

movfcount_s,w

sublwd'60'

btfscSTATUS,Z

clrfcount_s

movfcount_s,w

callBin2BCD

movfDIS_TEMP2,w

callCHAR_CODE1

movwfDIS_TEMP2movfDIS_TEMP1,wcallCHAR_CODE1movwfDIS_TEMP1callLEDlightnop

gotomain CHAR_CODE1;共陰極字符表

ADDWF PCL,F

RETLW 3fh;0RETLW 06h;1RETLW 5bh;2RETLW 4fh;3RETLW 66h;4RETLW 6dh;5RETLW 7dh;6RETLW 07h;7RETLW 7fh;8RETLW 6fh;9 Bin2BCD

CLRF DIS_TEMP1MOVWF DIS_TEMP2 Ttenth

MOVLW.10SUBWF DIS_TEMP2,WBTFSS STATUS,CGOTO OUT

MOVWF DIS_TEMP2INCF DIS_TEMP1,FGOTO Ttenth OUT

RETURN

end

2編寫(xiě)一個(gè)秒表程序,使用中斷方式。listp=16f877a

include“p16f877a.inc” include countequ20h count_sequ21h W_tempequ23H STA_tempequ24Horg000hgotostartorg004h

gotointp startnop

callInitSPIbankselOPTION_REGmovlw44h

movwfOPTION_REGbankselINTCONmovlw0a0hmovwfINTCONmovlw06hmovwfTMR0movlwd'131'movwfcountmovlw00hmovwfcount_s heregotohere intp

btfssINTCON,T0IFgoto$-1movlw06hmovwfTMR0

bcfINTCON,T0IFincfcount,fbtfssSTATUS,Zgotointpmovlwd'131'movwfcountincfcount_s,fmovfcount_s,wsublwd'60'btfscSTATUS,Zclrfcount_smovfcount_s,wcallBin2BCDmovfDIS_TEMP2,wcallCHAR_CODE1movwfDIS_TEMP2movfDIS_TEMP1,wcallCHAR_CODE1movwfDIS_TEMP1callLEDlightnop

RETFIE

CHAR_CODE1;共陰極字符表

ADDWF PCL,F

RETLW 3fh;0RETLW 06h;1RETLW 5bh;2RETLW 4fh;3RETLW 66h;4RETLW 6dh;5RETLW 7dh;6RETLW 07h;7RETLW 7fh;8RETLW 6fh;9 Bin2BCD

CLRF DIS_TEMP1MOVWF DIS_TEMP2 TtenthMOVLW.10SUBWF DIS_TEMP2,WBTFSS STATUS,CGOTO OUT

MOVWF DIS_TEMP2INCF DIS_TEMP1,FGOTO Ttenth OUT

RETURN

end CHAR_CODE1;共陰極字符表

ADDWF PCL,F

RETLW 3fh;0RETLW 06h;1RETLW 5bh;2RETLW 4fh;3RETLW 66h;4RETLW 6dh;5RETLW 7dh;6RETLW 07h;7RETLW 7fh;8RETLW 6fh;9 Bin2BCD

CLRF DIS_TEMP1MOVWF DIS_TEMP2 Ttenth

MOVLW.10SUBWF DIS_TEMP2,WBTFSS STATUS,CGOTO OUT

MOVWF DIS_TEMP2INCF DIS_TEMP1,FGOTO Ttenth OUT

RETURN

end

listp=16f877a

include“p16f877a.inc” include countequ20h count_sequ21horg000hgotostartorg004hgotointp startnop

callInitSPIbankselOPTION_REGmovlw04h

movwfOPTION_REGbankselINTCONmovlw00hmovwfINTCONmovlw06hmovwfTMR0movlwd'131'movwfcountmovlw00hmovwfcount_s heregotohere

intpbtfssINTCON,T0IFgoto$-1movlw06hmovwfTMR0

bcfINTCON,T0IFincfcount,fbtfssSTATUS,Zgotointpmovlwd'131'movwfcountincfcount_s,fmovfcount_s,w

sublwd'60'btfscSTATUS,Zclrfcount_smovfcount_s,wcallBin2BCDmovfDIS_TEMP2,wcallCHAR_CODE1movwfDIS_TEMP2movfDIS_TEMP1,wcallCHAR_CODE1movwfDIS_TEMP1callLEDlightnop

RETFIE

CHAR_CODE1;共陰極字符表

ADDWF PCL,F

RETLW 3fh;0RETLW 06h;1RETLW 5bh;2RETLW 4fh;3RETLW 66h;4RETLW 6dh;5RETLW 7dh;6RETLW 07h;7RETLW 7fh;8RETLW 6fh;9 Bin2BCD

CLRF DIS_TEMP1MOVWF DIS_TEMP2 Ttenth

MOVLW.10SUBWF DIS_TEMP2,WBTFSS STATUS,CGOTO OUT

MOVWF DIS_TEMP2INCF DIS_TEMP1,FGOTO Ttenth OUT

RETURN

end

第二篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)-電子萬(wàn)年歷

單片機(jī)及接口技術(shù)綜合實(shí)驗(yàn)

——————電子萬(wàn)年日歷系統(tǒng)一、題目:電子實(shí)時(shí)時(shí)鐘/萬(wàn)年日歷系統(tǒng)

二、功能要求:

1. 基本要求:

⑴ 顯示準(zhǔn)確的北京時(shí)間(時(shí)、分、秒),可用24小時(shí)制式; ⑵ 隨時(shí)可以調(diào)校時(shí)間。

2. 發(fā)揮要求:

⑴ 增加公歷日期顯示功能(年、月、日),年號(hào)只顯示最后兩位; ⑵ 隨時(shí)可以調(diào)校年、月、日;

⑶ 允許通過(guò)轉(zhuǎn)換功能鍵轉(zhuǎn)換顯示時(shí)間或日期。

三、方案考慮:

1、硬件方案:

⑴ 顯示器采用6位LED數(shù)碼管(共陽(yáng)),可分別顯示時(shí)間或日期;(通過(guò)KB鍵可切換)⑵ 顯示器的驅(qū)動(dòng)采用動(dòng)態(tài)掃描電路形式,以達(dá)到簡(jiǎn)化電路的目的。但要注意所需的驅(qū)動(dòng)電流比靜態(tài)驅(qū)動(dòng)時(shí)要大,因此要增加驅(qū)動(dòng)電路。可采用74LS244或者晶體管;其中74ls244是用來(lái)驅(qū)動(dòng)段選碼,晶體管是驅(qū)動(dòng)位選碼!⑶采用“一鍵多用方案”,以減少按鍵數(shù)目。本方案只采用了兩個(gè)按鍵 ⑷ 整體上要考慮:結(jié)構(gòu)簡(jiǎn)單、布局美觀、操作方便、成本低廉。

2、設(shè)計(jì)電路圖如下:

3、元件清單:

⑴ 89C51

1個(gè)

⑵ IC座(40腳)

3個(gè)(其中1個(gè)用于接插89C51、2個(gè)用于接插LED段數(shù)碼管)。⑶ 74LS244

1個(gè)(用于驅(qū)動(dòng)6個(gè)共陽(yáng)的LED段數(shù)碼管)。⑷ IC座(20腳)

1個(gè)(用于接插74LS244)。(5)顯示器:LED_8段數(shù)碼管(共陽(yáng)型)6個(gè)三極管:

(6)PNP(8550)

6個(gè)(用于驅(qū)動(dòng)6個(gè)共陽(yáng)型LED段數(shù)碼管)。

(7)微型開(kāi)關(guān):

3個(gè)(其中1個(gè)用于復(fù)位電路、其它用于鍵盤(pán))。(8)晶體振蕩器(12MHz):1個(gè)(用于振蕩電路)。(9)電阻器:

⑴ 3KΩ

1個(gè)(用于系統(tǒng)復(fù)位電路)。

⑵ 1KΩ

6個(gè)(用作PNP三極管基極電阻)。⑶ 100Ω

7個(gè)(驅(qū)動(dòng)器用作74LS244輸出限流電阻)。(10)電容器:

⑴ 10μF

1個(gè)(用于系統(tǒng)復(fù)位電路)。⑵ 30 pF

2個(gè)(用于系統(tǒng)振蕩電路)。(11)其它:

⑴ 萬(wàn)能電路板(10×15):

1塊 ⑵ 焊錫條:

2米 ⑶ 帶插頭、座的電源端子:

1條 ⑷ 各種顏色外皮的導(dǎo)線:

各1米(12)工具:

1.電烙鐵:

1把 2.剪鉗:

1把 3.鑷子:

1把 4.萬(wàn)用表:

1個(gè)(13)設(shè)備:

編程器(MEP300或TOP851)

6個(gè)

4、軟件方案:

只使用第一組工作寄存器,功能分布如下:

⑴ “時(shí)鐘”基準(zhǔn)時(shí)間由單片機(jī)內(nèi)部定時(shí)中斷來(lái)提供,定時(shí)時(shí)間應(yīng)該乘以一個(gè)整數(shù)得到“秒”,且不宜太長(zhǎng)或太短,最長(zhǎng)不能超過(guò)16位定時(shí)器的最長(zhǎng)定時(shí)時(shí)間,最短不能少于定時(shí)中斷服務(wù)程序的執(zhí)行時(shí)間。一般來(lái)說(shuō),基準(zhǔn)時(shí)間越短,越有利于提高時(shí)鐘運(yùn)行的精確度。本實(shí)驗(yàn)定時(shí)5mS。乘以一個(gè)整數(shù)200得到“1秒”.⑵ 用一個(gè)計(jì)數(shù)器(R4)對(duì)定時(shí)中斷的次數(shù)進(jìn)行計(jì)數(shù),從而可以實(shí)現(xiàn)“秒”定時(shí),同理可以實(shí)現(xiàn)“分”定時(shí)和“時(shí)”定時(shí),甚至于“日”、“月”、“年”定時(shí)。

⑶ 顯示器采用動(dòng)態(tài)驅(qū)動(dòng)時(shí)要注意到:LED的 “啟輝時(shí)間”和 “余輝時(shí)間”。驅(qū)動(dòng)信號(hào)的維持時(shí)間必須大于啟輝時(shí)間;而驅(qū)動(dòng)信號(hào)的間歇時(shí)間必須小于余輝時(shí)間。“啟輝時(shí)間”和 “余輝時(shí)間”與驅(qū)動(dòng)電流的大小有關(guān),驅(qū)動(dòng)電流越大,啟輝時(shí)間越短,而余輝時(shí)間越長(zhǎng)。但是,驅(qū)動(dòng)電流的大小受到驅(qū)動(dòng)電路的驅(qū)動(dòng)能力和LED極限功耗的限制。本實(shí)驗(yàn)采用了74ls244和晶體管8550驅(qū)動(dòng),并進(jìn)行適當(dāng)?shù)难訒r(shí)3ms解決上述問(wèn)題。

⑷ LED的余輝時(shí)間使動(dòng)態(tài)驅(qū)動(dòng)顯示得到保證,但也要注意到它在更新顯示內(nèi)容時(shí),可能造成顯示字符的混亂模糊。為此,在把“更新顯示內(nèi)容”寫(xiě)入顯示器之前,必須把所有的LED熄滅,即要把一個(gè)“熄滅驅(qū)動(dòng)信號(hào)”先寫(xiě)入顯示器。

⑸對(duì)于按鍵的處理,采用中斷。產(chǎn)生中斷后先判有無(wú)按鍵被按下,還要考慮到“去抖動(dòng)影響”問(wèn)題,可采用軟件延遲法解決這個(gè)問(wèn)題,延遲時(shí)間至少10mS。而單純進(jìn)行軟件延時(shí)的話會(huì)令到顯示管產(chǎn)生斷續(xù)的情況,故調(diào)用顯示程序作為延時(shí)時(shí)間。這樣就合理地處理好這兩者的矛盾了。

⑹ 把鍵盤(pán)的按鍵分兩種情況來(lái)處理,操作簡(jiǎn)單。

調(diào)整時(shí)間時(shí),先按下KA鍵,(KA鍵為選擇調(diào)整位置的鍵,如選調(diào)整秒或分),而此時(shí)的KB鍵只是用來(lái)加一操作。在調(diào)整時(shí)間狀態(tài)下,若在十秒內(nèi)檢測(cè)到?jīng)]有任何按鍵按下,則返回正常顯示時(shí)鐘狀態(tài)。

而不調(diào)整時(shí)間,即不按下KA鍵,KB的鍵只用來(lái)切換顯示日期和時(shí)鐘。⑺ 對(duì)于自動(dòng)識(shí)別“月大、月小”和“平年、閏年”的問(wèn)題,主要考慮: ① 月大、月小:

1~7月:逢單月為31天;逢雙月為30天,其中2月另行處理。8~12月:逢單月為30天;逢雙月為31天。②平年、閏年:

僅僅處理2月份的天數(shù):平年的2月份天數(shù)為28天,閏年的2月份天數(shù)為29天。

5、程序流程圖如下:(1)電子時(shí)鐘計(jì)算程序圖

(2)調(diào)整流程圖

程序編寫(xiě)如下:

;///////////////////////////////////////////////////////// ORG 0000H

LJMP START ORG 0003H LJMP PROINT0

;int0用來(lái)切換時(shí)鐘調(diào)整位置

ORG 0013H

;用來(lái)調(diào)整時(shí)間,只加不減 LJMP PROINT1

ORG 001BH

;5ms的延遲,計(jì)數(shù)200次則為1秒

LJMP PROTIME

ORG 0030H

;主程序

TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

;0 1 2 3 4 5 6 7 8 9

ORG 0050H

START: MOV TCON,#05H

;中斷初始化

MOV IE ,#8DH MOV TMOD,#10H MOV TH1,#0eCH

;定時(shí)器初始化

MOV TL1,#78H

MOV 31H,#0AH

;10秒 MOV 32H,#1EH;30分 MOV 33H,#09H;9點(diǎn) MOV 34H,#0AH MOV 35H,#06H MOV 36H,#05H MOV 37H,#14H

;10號(hào);6月;2005年

;R7 存放切換標(biāo)志 0 NORMAL , 1 HOUR ,2 MINUTE ,3 SECOND ,4 YEAR,5 MONTH,6 DAY

MOV R1,#00H

;確定在調(diào)時(shí)不按鍵的最長(zhǎng)時(shí)間,10秒后返回normal狀態(tài)

MOV R7,#00H

;切換標(biāo)志

MOV 40H,#00H

;十六進(jìn)制轉(zhuǎn)換BCD的高位 MOV 41H,#00H

;十六進(jìn)制轉(zhuǎn)換BCD的低位

MOV R6,#00H

;調(diào)時(shí)的位閃爍的時(shí)間間隔

MOV R4,#00H

;用來(lái)計(jì)數(shù)5ms的中斷次數(shù),200次則一秒

mov r3,#00h

SETB TR1

;開(kāi)始計(jì)時(shí) AGAIN:

ACALL PROSHOW

;顯示

AJMP AGAIN

PROSHOW:

CJNE R3,#00H,SHOWDATE

;如果r3等于1就顯示日期,等于0就顯示時(shí)鐘 CJNE R7,#04H,DATE1

;顯示程序

AJMP SHOWDATE

;showdate顯示年月日 AJMP SHOWDATE DATE1: CJNE R7,#05H,DATE2 DATE2: CJNE R7,#06H,SHOWCLOCK AJMP SHOWDATE

showCLOCK: MOV R0,33H

;showclock顯示時(shí)分秒,先顯示時(shí)

ACALL PROHTOD

CJNE R7,#01H,CLK1 INC R6

CJNE R6,#03H,CLK2

;若處于調(diào)時(shí)狀態(tài),則該位閃爍

MOV R6 ,#00H CLK1: clr P2.4 mov a,41H MOV P0, a

;顯示時(shí)的低位 ACALL DELAY3MS CLK2: SETB P2.4 CLR P2.5 mov a,40H

MOV P0,a

;顯示時(shí)的高位 ACALL DELAY3MS SETB P2.5

MOV R0,32H

;顯示分 ACALL PROHTOD CJNE R7,#02H,CLK3 INC R6

CJNE R6,#03H,CLK4

;若處于調(diào)時(shí)狀態(tài),則該位閃爍

MOV R6,#00H CLK3: CLR P2.2

mov a,41H MOV P0, a

;顯示分的低位 ACALL DELAY3MS CLK4:

SETB P2.2 CLR P2.3 mov a,40h MOV P0,a

;顯示分的高位 ACALL DELAY3MS SETB P2.3

MOV R0,31H

;顯示秒

ACALL PROHTOD CJNE R7,#03H,CLK5 INC R6

CJNE R6,#03H,CLK6

MOV R6,#00H CLK5: CLR P2.0 mov a,41H MOV P0, a

ACALL DELAY3MS CLK6: SETB P2.0 CLR P2.1 mov a,40h MOV P0,a

ACALL DELAY3MS SETB P2.1

RET

SHOWDATE: MOV R0,36H

ACALL PROHTOD CJNE R7,#04H,DAY1 INC R6

CJNE R6,#03H,DAY2

MOV R6,#00H DAY1: CLR P2.4 MOV P0,41H

ACALL DELAY3MS DAY2: SETB P2.4 CLR P2.5 MOV P0,40H

ACALL DELAY3MS SETB P2.5

MOV R0,35H

ACALL PROHTOD CJNE R7,#05H,MONTH1

;若處于調(diào)時(shí)狀態(tài),則該位閃爍

;顯示秒的低位

;顯示秒的高位

;顯示年

;若處于調(diào)時(shí)狀態(tài),則該位閃爍;顯示年的低位

;顯示年的高位

;顯示月

INC R6

CJNE R6,#03H,MONTH2

;若處于調(diào)時(shí)狀態(tài),則該位閃爍

MOV R6,#00H MONTH1: CLR P2.2 MOV P0,41H

;顯示月的低位

ACALL DELAY3MS MONTH2: SETB P2.2

CLR P2.3 MOV P0,40H

;顯示月的高位

ACALL DELAY3MS SETB P2.3

MOV R0,34H

ACALL PROHTOD CJNE R7,#06H,YEAR1 INC R6

CJNE R6,#03H,YEAR2

MOV R6,#00H YEAR1: CLR P2.0

MOV P0,41H

ACALL DELAY3MS YEAR2: SETB P2.0 CLR P2.1 MOV P0,40H

ACALL DELAY3MS SETB P2.1

RET

PROHTOD:PUSH ACC

MOV A,R0 MOV B,#0AH DIV AB MOV DPTR,#0030H MOVC A,@A+DPTR MOV 40H,A MOV A,B MOVC A,@A+DPTR MOV 41H,A POP ACC RET

;顯示日

;若處于調(diào)時(shí)狀態(tài),則該位閃爍

;十六進(jìn)制數(shù)轉(zhuǎn)換成bcd碼,且可以直接輸出p0口

DELAY3MS:

;DELAY3MS MOV 45H,#08H DELAY1: MOV 46H,#0FFH DELAY2: DJNZ 46H,DELAY2 DJNZ 45H,DELAY1 RET

PROINT0:

CLR EX0

;切換鍵中斷程序 MOV R3,#00H ACALL PROSHOW MOV C,P3.2 JC IEXIT0 MOV R1,#00H INC R7 CJNE R7,#07H,IEXIT0

MOV R7,#00H INT01: MOV C,P3.2 JC INT02 ACALL PROSHOW AJMP INT01 INT02: ACALL PROSHOW IEXIT0: SETB EX0 RETI

PROINT1:CLR EX1

ACALL PROSHOW MOV C,P3.3 JC IEXIT1 LCALL ISYEAR

;判斷平年閏年

LCALL ISMONTH

;判斷月份,確定最大日數(shù)

MOV R1,#00H CJNE R7,#00H,NEXT1

;若不是調(diào)時(shí)狀態(tài),按此鍵就是切換顯示日期、時(shí)鐘

INC R3 CJNE R3,#02H,IEXIT1 MOV R3,#00H AJMP IEXIT1 NEXT1: mov r3,#00h

CJNE R7,#03H,NEXT2

;修改秒位 INC 31H MOV A,31H CJNE A,#3CH,INT11

;遇60變0 MOV 31H,#00H AJMP IEXIT1

NEXT2: CJNE R7,#02H,NEXT3

;修改分位

INC 32H MOV A,31H

CJNE A,#3CH,INT11

;遇60變0 MOV 31H,#00H AJMP IEXIT1 NEXT3: CJNE R7,#01H,NEXT4

;修改時(shí)位

INC 33H MOV A,33H CJNE A,#18H,INT11

;遇24變0 MOV 33H,#00H AJMP IEXIT1 NEXT4: CJNE R7,#06H,NEXT5

;修改日

INC 34H MOV A,34H CJNE A,49H,INT11

;到月底就返回月初 MOV 34H,#01H AJMP IEXIT1

NEXT5: CJNE R7,#05H,NEXT6

;修改月

INC 35H

MOV A,35H CJNE A,#0DH,INT11

;十二月過(guò)后就跳回1月 MOV 35H,#01H AJMP IEXIT1 NEXT6: CJNE R7,#04H,INT11

;修改年

INC 36H

MOV A,36H CJNE A,#64H,INT11

MOV 36H,#00H MOV C,P3.3 INT11: JC INT12 ACALL PROSHOW AJMP INT11 INT12: ACALL PROSHOW IEXIT1: setb EX1

RETI PROTIME:

MOV TMOD,#10H MOV TH1,#3CH

;定時(shí)器初始化 MOV TL1,#60H setb tr1 INC R4

CJNE R4,#0c8H,EXIT

MOV R4,#00H

;計(jì)滿1秒則清零 CJNE R7,#00H,DIAOSHI

AJMP NORMAL DIAOSHI:INC R1

;調(diào)時(shí)不按鍵的最長(zhǎng)時(shí)間為10秒,在此期間又鍵按下重新計(jì)時(shí)

CJNE R1,#0AH,EXIT MOV R7,#00H

;到10秒則返回正常顯示狀態(tài) MOV R1,#00H AJMP EXIT

NORMAL:ACALL ISYEAR

;判斷平閏年,返回標(biāo)志48h,0為平年,1為閏年

ACALL ISMONTH

;判斷哪個(gè)月,返回該月的最大日數(shù),存放在49h

INC 31H

MOV A,31H

;秒加一 CJNE A,#3CH,EXIT MOV 31H,#00H

INC 32H

;分加一 MOV A,32H CJNE A,#3CH,EXIT MOV 32H,#00H INC 33H

;時(shí)加一 MOV A,33H CJNE A,#18H,EXIT MOV 33H,#00H INC 34H

MOV A,34H CJNE A,49H,EXIT MOV 34H,#01H INC 35H

MOV A,35H CJNE A,#0DH,EXIT MOV 35H,#01H INC 36H

MOV A,36H CJNE A,#64H,EXIT MOV 36H,#00H;年加一;月加一;日加一 EXIT:

RETI

ISYEAR: MOV A,36H;判斷平閏年

MOV B,#04H

DIV AB MOV A,B CJNE A,#00H,EXITYEAR1 MOV 48H,#01H

;閏年 SJMP EXITYEAR MOV 48H,#00H

;平年 EXITYEAR1: EXITYEAR: RETI

ISMONTH:

MOV A,35H

;開(kāi)始檢查月份 CJNE A,#02H,NEXTMON1

;判斷二月 MOV R2,48H

CJNE R2,#00H,RUNNIAN MOV 49H,#1DH

;平年為28天,賦29給49h AJMP EXITMONTH RUNNIAN:MOV 49H,#1EH

;閏年為29天,賦30天給49h

AJMP EXITMONTH

NEXTMON1: CJNE A,#04H,NEXTMON2

AJMP XIAOYUE

NEXTMON2:CJNE A,#06H,NEXTMON3 AJMP XIAOYUE

NEXTMON3:CJNE A,#09H,NEXTMON4 AJMP XIAOYUE NEXTMON4:CJNE A,#0BH,DAYUE XIAOYUE: MOV 49H,#1FH

;四,六,九,十一月是小月,30天,但應(yīng)該賦31天給比較值49h,AJMP EXITMONTH DAYUE: MOV 49H,#20H

;其他月份為大月,31天,賦32天給49h EXITMONTH: RETI END

第三篇:PIC單片機(jī)報(bào)告

PIC單片機(jī)實(shí)驗(yàn)報(bào)告

一、定時(shí)器的使用

(1)實(shí)驗(yàn)?zāi)康模和ㄟ^(guò)學(xué)習(xí)和實(shí)驗(yàn)理解PIC單片機(jī)定時(shí)器的內(nèi)部工作原理,學(xué)會(huì)定時(shí)器 初始化配置編程,并能利用實(shí)驗(yàn)板對(duì)定時(shí)器有簡(jiǎn)單的應(yīng)用。

(2)實(shí)驗(yàn)器材:16位PIC單片機(jī)學(xué)習(xí)板。

(3)實(shí)驗(yàn)過(guò)程:

1、PIC單片機(jī)定時(shí)器概述:根據(jù)具體器件,dsPIC30F 器件系列提供了幾個(gè)16 位定時(shí)器。這些定時(shí)器被指定為T(mén)imer1、Timer2、Timer3 ……等。可分為三種類型:A類型時(shí)基、B類型時(shí)基和C類型時(shí)基。

A類型時(shí)基:在大多數(shù)dsPIC30F 器件上,至少有一個(gè)A 類型定時(shí)器。通常Timer1 是A 類型定時(shí)器。A 類型定時(shí)器與其他類型的定時(shí)器相比,有下列獨(dú)特的功能:

可以使用器件的低功耗32 kHz 振蕩器作為時(shí)鐘源工作

可以在使用外部時(shí)鐘源的異步模式下工作

A 類型定時(shí)器獨(dú)特的功能使它可以用于實(shí)時(shí)時(shí)鐘應(yīng)用(Real-Time Clock,RTC)。16 位定時(shí)器模式:在16 位定時(shí)器模式下,定時(shí)器在每個(gè)指令周期遞增,直到與預(yù)先裝入周期寄存器PR1 中的值匹配,然后復(fù)位至0,繼續(xù)計(jì)數(shù)。當(dāng)CPU 進(jìn)入空閑模式時(shí),定時(shí)器將停止遞增,除非TSIDL(T1CON<13>)位 = 0。如果TSIDL = 1,定時(shí)器模塊邏輯將繼續(xù)遞增,直到CPU 空閑模式終止。位同步計(jì)數(shù)器模式:在16 位同步計(jì)數(shù)器模式下,定時(shí)器將在外部時(shí)鐘信號(hào)的上升沿遞增,外部時(shí)鐘信號(hào)與內(nèi)部相位時(shí)鐘同步。定時(shí)器計(jì)數(shù),直到等于PR1 中預(yù)先裝入的值,然后復(fù)位至0,繼續(xù)計(jì)數(shù)。當(dāng)CPU 進(jìn)入空閑模式時(shí),同上。位異步計(jì)數(shù)器模式:在16 位異步計(jì)數(shù)器模式下,定時(shí)器在外部時(shí)鐘信號(hào)的上升沿遞增。定時(shí)器計(jì)數(shù),直到等于PR1 中預(yù)先裝入的值,然后復(fù)位至0,繼續(xù)計(jì)數(shù)。當(dāng)定時(shí)器配置為異步工作模式時(shí),CPU 進(jìn)入空閑模式,如果TSIDL = 1,則定時(shí)器將停止遞增。

B類型時(shí)基:在大多數(shù)dsPIC30F 器件上,如果存在Timer2 和Timer4,它們是B 類型定時(shí)器。與其他類型的定時(shí)器相比,B 類型定時(shí)器有下列獨(dú)特的功能:

B 類型定時(shí)器可以和C 類型定時(shí)器相連形成32 位定時(shí)器。B 類型定時(shí)器的TxCON

寄存器具備T32 控制位,用來(lái)使能32 位定時(shí)器功能。B 類型定時(shí)器的時(shí)鐘同步在預(yù)分頻邏輯后執(zhí)行。為輸入捕捉,輸出比較/ 簡(jiǎn)單PWM 模塊提供時(shí)基

C類型時(shí)基:在大多數(shù)dsPIC30F 器件上,Timer3 和Timer5 是C 類型定時(shí)器。與其他類型的定時(shí)器相比,C 類型定時(shí)器有下列獨(dú)特的功能:

C 類型定時(shí)器可以和B 類型定時(shí)器相連形成32 位定時(shí)器。在某個(gè)給定的器件上,至少有一個(gè)C 類型定時(shí)器能夠觸發(fā)A/D 轉(zhuǎn)換。

相關(guān)寄存器:要使用定時(shí)器,首先要了解定時(shí)器相關(guān)寄存器,dspic30f4011的定時(shí)器相關(guān)寄存器有:

以A類時(shí)基定時(shí)器(Timer1)為例,要用到的相關(guān)寄存器有:T1CON(定時(shí)器1控制寄存器)、IFS0bits(中斷標(biāo)志狀態(tài)寄存器)、IPC0bits(中斷優(yōu)先級(jí)控制寄存器)、IEC0bits(中斷允許控制寄存器)、PR1(定時(shí)器初值寄存器)

定時(shí)器模式:所有類型的定時(shí)器都可以在定時(shí)器模式下工作。在定時(shí)器模式下,定時(shí)器的輸入時(shí)鐘由內(nèi)部系統(tǒng)時(shí)鐘(FOSC/4)提供。當(dāng)使能為該模式時(shí),對(duì)于1:1 的預(yù)分頻器設(shè)置,定時(shí)器的計(jì)數(shù)值在每個(gè)指令周期都會(huì)加1。

通過(guò)清零TCS 控制位(TxCON<1>)選擇定時(shí)器模式。

同步模式控制位TSYNC(T1CON<2>)在該模式下不起作用,因?yàn)槭褂昧讼到y(tǒng)時(shí)鐘源產(chǎn)生定時(shí)器時(shí)鐘。

定時(shí)器初值計(jì)算:指令周期=1/(fosc/4),定時(shí)器初值=所需定時(shí)時(shí)間/(指令周期×分頻比)

程序代碼:

#include “p30f4011.h” void timer_init()

{

T1CON=0X8030;

//預(yù)分頻256,ton=1,開(kāi)始計(jì)時(shí),其余都為0//清除TMR1的中斷標(biāo)志 //中斷優(yōu)先級(jí)為7 //使能中斷

//在預(yù)分頻256模式下,計(jì)時(shí)1秒

IFS0bits.T1IF = 0;

IPC0bits.T1IP = 7;IEC0bits.T1IE = 1;}

PR1=0x1c20;

void __attribute__((__interrupt__))_T1Interrupt(void)//中斷服務(wù)程序 {}

void main(){}

TRISE=0x100;

//將LED相連IO口設(shè)為輸出 //執(zhí)行定時(shí)器1初始化 //PORTE初始化輸出為低

IFS0bits.T1IF=0;PORTE++;

//軟件清除定時(shí)器1中斷標(biāo)志位 //實(shí)現(xiàn)每一秒對(duì)PORTE加1,用LED顯示

timer_init();PORTE=0;

while(1);//程序進(jìn)入死循環(huán),定時(shí)執(zhí)行定定時(shí)器中斷程序

二、中斷

實(shí)驗(yàn)?zāi)康模和ㄟ^(guò)學(xué)習(xí)和實(shí)踐理解PIC單片機(jī)中斷的特性及工作原理,學(xué)會(huì)中斷的初始化配置,并能對(duì)中斷進(jìn)行簡(jiǎn)單的應(yīng)用。

實(shí)驗(yàn)器材:16位PIC單片機(jī)學(xué)習(xí)板。

實(shí)驗(yàn)過(guò)程:

dsPIC30F的中斷特性:

多達(dá)8 個(gè)處理器異常和軟件陷阱 7 個(gè)用戶可選擇的優(yōu)先級(jí)

具有多達(dá)62 個(gè)向量的中斷向量表(Interrupt Vector Table,IVT)每個(gè)中斷或異常源都有唯一的向量 指定的用戶優(yōu)先級(jí)中的固定優(yōu)先級(jí)

用于支持調(diào)試的備用中斷向量表(Alternate Interrupt Vector Table,AIVT)固定的中斷入口和返回延時(shí)

中斷優(yōu)先級(jí):

(1)可以為每個(gè)外設(shè)中斷源分配7 個(gè)優(yōu)先級(jí)之一。

可用的優(yōu)先級(jí)從1 開(kāi)始為最低優(yōu)先級(jí),7 級(jí)為最高優(yōu)先級(jí)。如果與中斷源有關(guān)的IPC 位被全部清零,則中斷源被有效禁止。

(2)由于特定的優(yōu)先級(jí)會(huì)被分配給一個(gè)以上的中斷請(qǐng)求源,所以在給定的用戶分配

級(jí)別內(nèi)提供了一種解決優(yōu)先級(jí)沖突的方法。

根據(jù)每個(gè)中斷源在IVT中的位置,它們都有一個(gè)自然順序優(yōu)先級(jí)。中斷向量的編號(hào)越低,自然優(yōu)先級(jí)越高,而向量的編號(hào)越高,自然優(yōu)先級(jí)越低。

(3)任何待處理的中斷源的總優(yōu)先級(jí)都首先由該中斷源在IPCx 寄存器中用戶分配的優(yōu)先級(jí)決定,然后由IVT 中的自然順序優(yōu)先級(jí)決定。

相關(guān)寄存器:INTCON1 和INTCON2(全局中斷控制寄存器)、IFSx(中斷標(biāo)志狀態(tài)寄存器)、IECx(中斷使能控制寄存器)、IPCx(中斷優(yōu)先級(jí)控制寄存器)、SR(CPU狀態(tài)寄存器)、CORCON(內(nèi)核控制寄存器)。

初始化配置:

1.如果不需要中斷嵌套,將NSTDIS 控制位置1。

2.通過(guò)寫(xiě)相應(yīng)的IPCx 控制寄存器中的控制位選擇中斷源的用戶分配優(yōu)先級(jí)。如果不需要多個(gè)優(yōu)先級(jí),所有允許的中斷源的IPCx 寄存器控制位均可以編程為同一個(gè)非零值。3.在相關(guān)的IFSx 狀態(tài)寄存器中清零與外設(shè)相關(guān)的中斷標(biāo)志狀態(tài)位。

4.通過(guò)在相應(yīng)的IECx 控制寄存器中置1 與中斷源相關(guān)的中斷允許控制位,使能中斷源。

程序代碼:

void init(){

IFS0bits.INT0IF = 0;//清除INT0的中斷標(biāo)志

IPC0bits.INT0IP = 7;//中斷優(yōu)先級(jí)為7 IEC0bits.INT0IE = 1;}

void __attribute__((__interrupt__))_INT0Interrupt(void)//中斷服務(wù)程序 {

IFS0bits.INT0IF = 0;Led=~Led;}

int main(){

unsigned char Led=0;init();while(1){

PORTE = Led;

//清INT0中斷標(biāo)志//實(shí)現(xiàn)LED亮滅變化 //使能中斷

}}

第四篇:PIC單片機(jī)課程設(shè)計(jì)報(bào)告

河北聯(lián)合大學(xué)輕工學(xué)院

QINGGONG COLLEGE, HEBEI UNITED UNIVERSITY

《PIC單片機(jī)課程設(shè)計(jì)》

學(xué)生姓名: 學(xué)號(hào): 學(xué)部:專業(yè)班級(jí):指導(dǎo)教師:

年月日

一、課程設(shè)計(jì)目的本課程設(shè)計(jì)是在《PIC單片機(jī)原理及應(yīng)用》及《單片機(jī)C語(yǔ)言編程》課程的基礎(chǔ)上,通過(guò)硬件設(shè)計(jì)、軟件編程及仿真調(diào)試的實(shí)踐,進(jìn)一步掌握PIC單片機(jī)的應(yīng)用方法,熟練掌握PICC C語(yǔ)言程序的編寫(xiě)與調(diào)試,是畢業(yè)設(shè)計(jì)前的一次重要實(shí)踐,為今后走上工作崗位打下堅(jiān)實(shí)的單片機(jī)應(yīng)用基礎(chǔ)。

二、設(shè)計(jì)題目及要求

2.1 設(shè)計(jì)題目:

基于PIC16F877單片機(jī)的多功能電子時(shí)鐘 2.2 功能實(shí)現(xiàn):

實(shí)時(shí)時(shí)鐘顯示,時(shí)間可調(diào);實(shí)時(shí)溫度顯示,并具有超限報(bào)警功能。輸出顯示采用LCD1602或LED七段數(shù)碼顯示器。2.3 設(shè)計(jì)要求:

自己設(shè)計(jì)硬件和程序編程,畫(huà)出完整的電路原理圖,用Multisim或Proteus仿真,最終可實(shí)現(xiàn)脫機(jī)運(yùn)行。

三、設(shè)計(jì)原理說(shuō)明

3.1 時(shí)鐘模塊

DS1307是美國(guó)DALLAS公司推出的I2C總線接口實(shí)時(shí)時(shí)鐘芯片,它可獨(dú)立于CPU 工作,不受CPU主晶振及其電容的影響,且計(jì)時(shí)準(zhǔn)確,月累積誤差一般小于10秒。芯片還具有主電源掉電情況下的時(shí)鐘保護(hù)電路,DS1307的時(shí)鐘靠后備電池維持工作,拒絕CPU對(duì)其讀出和寫(xiě)入訪問(wèn)。同時(shí)還具有備用電源自動(dòng)切換控制電路,因而可在主電源掉電和其它一些惡劣環(huán)境場(chǎng)合中保證系統(tǒng)時(shí)鐘的定時(shí)準(zhǔn)確性。

DS1307具有產(chǎn)生秒、分、時(shí)、日、月、年等功能,且具有閏年自動(dòng)調(diào)整功能。同時(shí),DS1307芯片內(nèi)部還集成有一定容量、具有掉電保護(hù)特性的靜態(tài)RAM,可用于保存一些關(guān)鍵數(shù)據(jù)。3.2 顯示模塊

如用LCD1602作為顯示設(shè)備,要求顯示屏分兩行顯示,第一行顯示日期(年-月-日)和星期,第二行顯示時(shí)間(時(shí):分:秒)和溫度。顯示秒由00一直加到59,分鐘數(shù)也由00加到59,小時(shí)采用24小時(shí)制,由00加到23,如此循環(huán)顯示。

3.3 按鍵模塊

按鍵用來(lái)作為時(shí)間調(diào)整。要求至少設(shè)計(jì)4個(gè)按鍵,按鍵1作為設(shè)置鍵;按鍵

2、按鍵3分別為增加、減少鍵,在設(shè)置鍵按下時(shí),此兩個(gè)按鍵方有效;按鍵4是確定鍵,在設(shè)置鍵按下時(shí)方才有效。3.4 溫度采集模塊

DS18B20是美國(guó)DALLAS公司推出的單總線數(shù)字溫度傳感器。DS18B20內(nèi)部集成了溫敏元件、數(shù)據(jù)轉(zhuǎn)換芯片、存儲(chǔ)器芯片和計(jì)算機(jī)接口芯片等多功能模塊。其主要技術(shù)特點(diǎn)有:具有獨(dú)特的單線接口方式;可以通過(guò)數(shù)據(jù)線供電,具有超低功耗工作方式;測(cè)溫范圍為-55℃~125℃,測(cè)溫精度為0.5℃;溫度轉(zhuǎn)換精度9~12位可編程,直接將溫度轉(zhuǎn)換值以二進(jìn)制數(shù)碼的方式串行輸出。

四、硬件原理圖

(含原理圖、電路仿真圖)

五、軟件設(shè)計(jì)

(含流程圖、帶注釋的程序清單)

六、設(shè)計(jì)總結(jié)

設(shè)計(jì)成績(jī):

教師簽名:

年月

第五篇:萬(wàn)年歷單片機(jī)課程設(shè)計(jì)報(bào)告

課程設(shè)計(jì)報(bào)告 任務(wù)和設(shè)計(jì)要求

首先要學(xué)會(huì)安裝軟件,要熟悉會(huì)使用。系統(tǒng)設(shè)計(jì) 系統(tǒng)框圖 硬件設(shè)計(jì) 3.1 電路原理圖

課程設(shè)計(jì)報(bào)告

課程設(shè)計(jì)報(bào)告

課程設(shè)計(jì)報(bào)告

3.2 主要單元電路

3.3 元件清單 軟件設(shè)計(jì) 4.1 程序流程圖

課程設(shè)計(jì)報(bào)告

4.2程序清單

TIME_WEEK DATA 52H TIME_YEAR DATA 5DH TIME_MONTH DATA 5EH TIME_DATA DATA 5FH YEARH DATA 36H YEAR DATA 35H MONTH DATA 34H DAY DATA 33H HOUR DATA 32H MINUTE DATA 31H SEC DATA 30H

課程設(shè)計(jì)報(bào)告

AAA BIT P3.0 BBB BIT P3.1 AA BIT P3.3 BB BIT P3.4 CC BIT P3.5 BL BIT P3.2 BZ1 BIT 21H.0 TIMES DATA

20H COM

DATA

P1 ORG

0000H LJMP

START ORG

0003H RETI ORG

000BH LJMP INTT0 ORG

0013H RETI ORG

001BH RETI ORG

0023H RETI START:

課程設(shè)計(jì)報(bào)告

MOV

R0,#30H MOV

R7,#9 CLEETE: MOV

@R0,#00H INC

R0 DJNZ

R7,CLEETE MOV

TIMES,#00H MOV

TMOD,#01H MOV

TL0,#0C0H MOV

TH0,#63H MOV

SEC,#0 MOV

MINUTE,#0H MOV

HOUR,#0H MOV

DAY,#01H MOV

MONTH,#01H MOV

YEAR,#01H MOV

YEARH,#20H SETB

EA SETB

ET0 SETB

TR0 MOV

R4,#19 START1:

課程設(shè)計(jì)報(bào)告

CALL

DISP JNB

AA,SETMM1 JMP

START1 SETMM1: CALL

SETMM JMP START1 SETMM: CALL

DISP CALL

DISP JB AA,SETMM0 SETMM2: JNB AA,SETMM3 CLR ET0 CLR TR0 MOV

SEC,#0 MOV

TIMES,#01H MOV

R0,#MINUTE SETMM4: NOP INC22: CALL

OFFL CALL

INC11

課程設(shè)計(jì)報(bào)告

CALL

DISP JB AA,INC22 CALL DISP JB AA,INC22 INC R0 MOV A,TIMES RL A MOV TIMES,A JNB

TIMES.5, SETMM4 SETMM12: JNB AA , SETMM11 SETMM0: SETB

TR0 SETB

ET0 RET SETMM11: CALL DISP JMP

SETMM12 SETMM3: CALL

DISP JMP

SETMM2 INC11:

課程設(shè)計(jì)報(bào)告

MOV

R3,#40 INC111: MOV A,@R0 JB

BB,INC17 ADD

A,#1 DA A CALL INC000 INC13: JNB BB , INC14 INC17: MOV

@R0,A CALL

DISP DJNZ R3,INC111 RET INC14: CALL

DISP JMP

INC13 OFFL: MOV

22H,@R0 MOV

R6,#10 OFF1: MOV

R7,#10

課程設(shè)計(jì)報(bào)告

OFF2: MOV

@ R0, # 0AAH CALL

DISP DJNZ R7 , OFF2 DJNZ R6 , OFF1 MOV

@ R0 , 22H RET INC000: JB

TIMES.0, INC001 JB

TIMES.1, INC002 JB

TIMES.2, INC003 JB

TIMES.3, INC004 JB

TIMES.4, INC005 JMP

INCOUT INC005: CJNE A, #99H, INCOUT MOV

A,#00H JMP

INCOUT INC004: CJNE A, # 13H, INCOUT MOV

A,#01H JMP

INCOUT

課程設(shè)計(jì)報(bào)告

INC003: CJNE A,# 32H ,INCOUT MOV

A,#01H JMP

INCOUT INC002: CJNE A,#24H,INCOUT MOV

A,#00H JMP

INCOUT INC001: CJNE A,# 60H , INCOUT MOV

A,#00H INCOUT: RET INTT0: PUSH

ACC PUSH

PSW ORL TL0,#0C0H MOV

TH0,#63H DJNZ R4 , CLKE111 JMP

LOOP11 CLKE111: JMP

CLKE

課程設(shè)計(jì)報(bào)告

LOOP11: MOV

R4,#19H MOV

A,SEC ADD

A,#1 DA A MOV

SEC,A CJNE A, #60H , CLKE99 MOV

SEC,#0 MOV

A,MINUTE ADD

A,#1 DA A MOV

MINUTE,A CLK0: CJNE A, # 60H, CLKE MOV

MINUTE,#0 MOV

A,HOUR ADD

A,#1 DA

A MOV

HOUR,A CJNE A, # 24H, CLKE MOV

HOUR,#0 MOV

A,DAY

課程設(shè)計(jì)報(bào)告

ADD

A,#1 DA A MOV

DAY,A MOV

A,MONTH INC

A MOVC A, @A + PC SJMP

CLK1 DB

31H,28H,31H DB

30H,31H,30H DB

31H,31H,30H DB

00H,00H,00H DB

00H,00H,00H DB

31H,30H,31H CLK1: CLR C SUBB A,DAY JNC

CLKE MOV

A,MONTH CJNE A,#2,CLK3 MOV

A,YEAR ANL A,#13H JNB

ACC.4,CLK2

課程設(shè)計(jì)報(bào)告

ADD

A,#2 CLK2: ANL A,#3 JNZ

CLK3 MOV

A,DAY XRL A,#29H JZ

CLKE CLK3: MOV

DAY,#1 MOV

A,MONTH ADD

A,#1 DA

A MOV

MONTH,A CJNE A,#13H,CLKE MOV

MONTH,#1 MOV

A,YEAR ADD

A,#1 DA

A MOV

YEAR,A CLKE99: CALL

CONVERT CLKE:

課程設(shè)計(jì)報(bào)告

POP

PSW POP

ACC RETI DISP: PUSH

PSW PUSH

ACC MOV

23H,R0 DISP99: MOV

R1,#40H MOV

R0,#30H MOV

R2,#9 DISP1: MOV A,@R0 ANL A,#0FH MOV @R1,A MOV A,@R0 SWAP A ANL A,#0FH INC R1 MOV @R1,A DJNZ R2,DISP2 CALL DISPLAY

課程設(shè)計(jì)報(bào)告

MOV R0,23H POP ACC POP PSW RET DISP2: INC R1 INC R0 JMP DISP1 DISPLAY: MOV R1,#40H MOV R5,#19 SETB AAA PLAY: SETB BBB NOP CLR BBB CLR AAA MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV COM,A CALL DL1MS

課程設(shè)計(jì)報(bào)告

MOV COM,#0FFH DJNZ R5,PLAY1 CLR BBB SETB AAA RET PLAY1: INC R1 JMP PLAY TAB: DB 0C0H,0F9H,0A4H, 0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0A3H,8EH,0ABH DL1MS: MOV 25H,R7 MOV 24H,R6 MOV R7,#20 DS1: MOV R6,#10 DJNZ R6,$ DJNZ R7,DS1 MOV R7,25H MOV R6,24H RET

課程設(shè)計(jì)報(bào)告

START_YEAR EQU 01 CONVERT_YEAR DATA 5CH CONVERT_MONTH DATA 38H CONVERT_DATE DATA 37H TEMP_BYTE1 DATA 57H TEMP_BYTE2 DATA 58H TEMP_BYTE3 DATA 59H TEMP_BYTE4 DATA 5AH TEMP_BYTE5 DATA 5BH CONVERT: MOV A, YEAR MOV TIME_YEAR,A MOV A,MONTH MOV TIME_MONTH,A MOV A,DAY MOV TIME_DATA,A MOV A,TIME_YEAR MOV B,#16 DIV AB MOV CONVERT_YEAR,B MOV B,#10 MUL AB

課程設(shè)計(jì)報(bào)告

ADD A,CONVERT_YEAR MOV CONVERT_YEAR,A MOV A,TIME_MONTH JNB ACC.4,CON_02 CLR ACC.4 ADD A,#10 CON_02:MOV CONVERT_MONTH,A MOV A,TIME_DATA MOV B,#16 DIV AB MOV CONVERT_DATE,B MOV B,#10 MUL AB ADD A,CONVERT_DATE MOV CONVERT_DATE,A MOV DPTR,#MONTH_DATA MOV A,CONVERT_YEAR CON_06:CLR C SUBB A,#START_YEAR MOV B,#3 MUL AB ADD A,DPL

課程設(shè)計(jì)報(bào)告

MOV DPL,A MOV A,B ADDC A,DPH MOV DPH,A MOV A, #2 MOVC A, @A+DPTR CLR ACC.7 MOV B, #32 DIV AB MOV TEMP_BYTE1,A MOV TEMP_BYTE2,B MOV TEMP_BYTE3,#0 MOV A,CONVERT_MONTH CJNE A,#10,CON_08 CON_08:JC CON_09 MOV TEMP_BYTE3,#1 CON_09:MOV A,CONVERT_YEAR ANL A,#03H JNZ CON_10 MOV A,CONVERT_MONTH LCALL GET_RUN_DAYS_LOW SJMP CON_12

課程設(shè)計(jì)報(bào)告

CON_10:MOV A,CONVERT_MONTH LCALL GET_DAYS_LOW CON_12:MOV B,CONVERT_DATE DEC B ADD A,B MOV TEMP_BYTE4,A JNC CON_14 INC TEMP_BYTE3 CON_14:MOV A,TEMP_BYTE1 LCALL GET_DAYS_LOW DEC A ADD A,TEMP_BYTE2 MOV TEMP_BYTE5,A MOV A,CONVERT_MONTH CJNE A,TEMP_BYTE1,CON_20 MOV A,CONVERT_DATE CJNE A,TEMP_BYTE2,CON_20 CON_20:JC CON_22 LJMP CON_60 CON_22:MOV A,CONVERT_YEAR JNZ CON_24 MOV A,#100

課程設(shè)計(jì)報(bào)告

CON_24:DEC A MOV CONVERT_YEAR,A MOV A,DPL CLR C SUBB A,#3 MOV DPL,A JNC CON_26 DEC DPH CON_26:MOV A,TEMP_BYTE5 CLR C SUBB A,TEMP_BYTE4 MOV TEMP_BYTE3,A MOV CONVERT_MONTH,#12 CLR F0 CLR A MOVC A,@A+DPTR ANL A,#0F0H SWAP A;MOV TEMP_BYTE4,A JZ CON_30 MOV A, #2 MOVC A , @A+DPTR

課程設(shè)計(jì)報(bào)告

MOV C, ACC.7 MOV A, #1 MOVC A, @A+DPTR RLC A SJMP CON_34 CON_30:MOV A, #1 MOVC A, @A+DPTR CON_34:MOV TEMP_BYTE5, A CON_40:MOV A, TEMP_BYTE5 RRC A MOV TEMP_BYTE5, A JC CON_42 MOV B, #29 SJMP CON_44 CON_42:MOV B, #30 CON_44:MOV A, TEMP_BYTE3 CLR C SUBB A, B JZ CON_46 JNC CON_50 CPL A INC A

課程設(shè)計(jì)報(bào)告

CON_46: INC A MOV B, #10 DIV AB SWAP A ORL A, B MOV CONVERT_DATE, A MOV A, CONVERT_MONTH MOV B, #10 DIV AB SWAP A ORL A, B MOV CONVERT_MONTH, A MOV A, CONVERT_YEAR MOV B, #10 DIV AB SWAP A ORL A, B MOV CONVERT_YEAR, A CALL WEEK RET CON_50:MOV TEMP_BYTE3, A JB F0, CON_52

課程設(shè)計(jì)報(bào)告

DEC CONVERT_MONTH CON_52:MOV A, CONVERT_MONTH CJNE A, TEMP_BYTE4, CON_54 CPL F0 CON_54:SJMP CON_40 CON_60:MOV A, TEMP_BYTE4 CLR C SUBB A, TEMP_BYTE5 MOV TEMP_BYTE4, A JNC CON_62 DEC TEMP_BYTE3 CON_62:MOV CONVERT_MONTH, #1 CLR A MOVC A, @A+DPTR MOV TEMP_BYTE5, A ANL A, #0F0H SWAP A XCH A, TEMP_BYTE5 CLR F0 ANL A, #0FH MOV TEMP_BYTE1, A MOV A, #1

課程設(shè)計(jì)報(bào)告

MOVC A, @A+DPTR MOV TEMP_BYTE2, A ANL A, #0F0H ORL A, TEMP_BYTE1 SWAP A MOV TEMP_BYTE1, A MOV A, #2 MOVC A, @A+DPTR MOV C, ACC.7 MOV A, TEMP_BYTE2 ANL A, # 0FH SWAP A MOV ACC.3, C MOV TEMP_BYTE2, A CON_70:MOV A, TEMP_BYTE2 RLC A MOV TEMP_BYTE2, A MOV A, TEMP_BYTE1 RLC A MOV TEMP_BYTE1, A JC CON_72 MOV B, #29

課程設(shè)計(jì)報(bào)告

SJMP CON_74 CON_72:MOV B, #30 CON_74:MOV A, TEMP_BYTE4 CLR C SUBB A,B JNC CON_78 MOV B, A MOV A, TEMP_BYTE3 JZ CON_76 DEC TEMP_BYTE3 MOV TEMP_BYTE4, B SJMP CON_80 CON_76:MOV A, TEMP_BYTE4 LJMP CON_46

CON_78:MOV TEMP_BYTE4, A CON_80:MOV A, CONVERT_MONTH CJNE A, TEMP_BYTE5, CON_82 CPL F0 JNB F0, CON_82 SJMP CON_70 CON_82:INC CONVERT_MONTH SJMP CON_70

課程設(shè)計(jì)報(bào)告

GET_DAYS_LOW: MOVC A, @A+PC RET DB 0,31,59,90,120,151,181,212,243,17,48,78 GET_RUN_DAYS_LOW: MOVC A, @A+PC RET DB 0,31,60,91,121,152,182,213,244,18,49,79 MONTH_DATA:

DB 04DH,04AH,0B8H;2001 DB 00DH,04AH,04CH;2002 DB 00DH,0A5H,041H;2003 DB 025H,0AAH,0B6H;2004 DB 005H,06AH,049H;2005 DB 07AH,0ADH,0BDH;2006 DB 002H,05DH,052H;2007 DB 009H,02DH,047H;2008 DB 05CH,095H,0BAH;2009 DB 00AH,095H,04EH;2010 DB 00BH,04AH,043H;2011

課程設(shè)計(jì)報(bào)告

DB 04BH,055H,037H;2012 DB 00AH,0D5H,04AH;2013 DB 095H,05AH,0BFH;2014 DB 004H,0BAH,053H;2015 DB 00AH,05BH,048H;2016 DB 065H,02BH,0BCH;2017 DB 005H,02BH,050H;2018 DB 00AH,093H,045H;2019 DB 047H,04AH,0B9H;2020 DB 006H,0AAH,04CH;2021 DB 00AH,0D5H,041H;2022 DB 024H,0DAH,0B6H;2023 DB 004H,0B6H,04AH;2024 DB 069H,057H,03DH;2025 DB 00AH,04EH,051H;2026 DB 00DH,026H,046H;2027 DB 05EH,093H,03AH;2028 DB 00DH,053H,04DH;2029 DB 005H,0AAH,043H;2030 DB 036H,0B5H,037H;2031 DB 009H,06DH,04BH;2032 DB 0B4H,0AEH,0BFH;2033

課程設(shè)計(jì)報(bào)告

DB 004H,0ADH,053H;2034 DB 00AH,04DH,048H;2035 DB 06DH,025H,0BCH;2036 DB 00DH,025H,04FH;2037 DB 00DH,052H,044H;2038 DB 05DH,0AAH,038H;2039 DB 00BH,05AH,04CH;2040 DB 005H,06DH,041H;2041 DB 024H,0ADH,0B6H;2042 DB 004H,09BH,04AH;2043 DB 07AH,04BH,0BEH;2044 DB 00AH,04BH,051H;2045 DB 00AH,0A5H,046H;2046 DB 05BH,052H,0BAH;2047 DB 006H,0D2H,04EH;2048 DB 00AH,0DAH,042H;2049 DB 035H,05BH,037H;2050 DB 009H,037H,04BH;2051 DB 084H,097H,0C1H;2052 DB 004H,097H,053H;2053 DB 006H,04BH,048H;2054 DB 066H,0A5H,03CH;2055

課程設(shè)計(jì)報(bào)告

DB 00EH,0A5H,04FH;2056 DB 006H,0B2H,044H;2057 DB 04AH,0B6H,038H;2058 DB 00AH,0AEH,04CH;2059 DB 009H,02EH,042H;2060 DB 03CH,097H,035H;2061 DB 00CH,096H,049H;2062 DB 07DH,04AH,0BDH;2063 DB 00DH,04AH,051H;2064 DB 00DH,0A5H,045H;2065 DB 055H,0AAH,0BAH;2066 DB 005H,06AH,04EH;2067 DB 00AH,06DH,043H;2068 DB 045H,02EH,0B7H;2069 DB 005H ,02DH, 04BH;2070 DB 08AH, 095H, 0BFH;2071 DB 00AH, 095H, 053H;2072 DB 00BH, 04AH, 047H;2073 DB 06BH, 055H, 03BH;2074 DB 00AH, 0D5H, 04FH;2075 DB 005H, 05AH, 045H;2076 DB 04AH, 05DH, 038H;2077

課程設(shè)計(jì)報(bào)告

DB 00AH, 05BH, 04CH;2078 DB 005H, 02BH, 042H;2079 DB 03AH, 093H, 0B6H;2080 DB 006H, 093H, 049H;2081 DB 077H, 029H, 0BDH;2082 DB 006H, 0AAH, 051H;2083 DB 00AH, 0D5H, 046H;2084 DB 054H, 0DAH, 0BAH;2085 DB 004H, 0B6H, 04EH;2086 DB 00AH, 057H, 043H;2087 DB 045H, 027H, 038H;2088 DB 00DH, 026H, 04AH;2089 DB 08EH, 093H, 03EH;2090 DB 00DH, 052H, 052H;2091 DB 00DH, 0AAH, 047H;2092 DB 066H, 0B5H, 03BH;2093 DB 005H, 06DH, 04FH;2094 DB 004H, 0AEH, 045H;2095 DB 04AH, 04EH, 0B9H;2096 DB 00AH, 04DH, 04CH;2097 DB 00DH, 015H, 041H;2098 DB 02DH, 092H, 0B5H;2090

課程設(shè)計(jì)報(bào)告

DB 00DH, 053H, 049H;2100 TIME_WEEK1 DATA 52H WEEK: MOV A, TIME_YEAR MOV B, #16 DIV AB MOV TEMP_BYTE1, B MOV B, #10 MUL AB ADD A, TEMP_BYTE1 MOV TEMP_BYTE1, A MOV A, TIME_MONTH JB ACC.7, GETW02 MOV A, #100 ADD A, TEMP_BYTE1 MOV TEMP_BYTE1, A MOV A, TIME_MONTH CLR ACC.7 GETW02: JNB ACC.4, GETW04 ADD A , #10 CLR ACC.4 GETW04: MOV TEMP_BYTE2,A

課程設(shè)計(jì)報(bào)告

MOV A, TIME_DATA MOV B, #16 DIV AB MOV TEMP_BYTE3, B MOV B, #10 MUL AB ADD A, TEMP_BYTE3 MOV TEMP_BYTE3, A MOV A ,TEMP_BYTE1 ANL A, #03H JNZ GETW10 MOV A, TEMP_BYTE2 CJNE A, #3,GETW06 GETW06: JNC GETW10 DEC TEMP_BYTE3 GETW10: MOV A,TEMP_BYTE2 LCALL GET_CORRECT ADD A, TEMP_BYTE1 MOV B, #7 DIV AB

MOV A, TEMP_BYTE1

課程設(shè)計(jì)報(bào)告

ANL A, #0FCH RR A RR A ADD A, B ADD A, TEMP_BYTE3 MOV B, #7 DIV AB MOV A, B CJNE A, #0,OUTOUT MOV B, #8 OUTOUT: MOV TIME_WEEK, B RET GET_CORRECT: MOVC A, @A+PC RET DB 0,3,3,6,1,4,6,2,5,0,3,5 END 系統(tǒng)仿真及調(diào)試

課程設(shè)計(jì)報(bào)告 仿真結(jié)果及分析

課程設(shè)計(jì)報(bào)告

上圖為運(yùn)行時(shí)的顯示,左邊兩個(gè)數(shù)碼管顯示器顯示的是年、月、日,中間的顯示的是時(shí)、分、秒,右邊顯示的是農(nóng)歷日期以及星期。若想要調(diào)試時(shí)間,可通過(guò)右下方兩個(gè)并聯(lián)開(kāi)關(guān)調(diào)試,左邊開(kāi)關(guān)調(diào)試數(shù)碼管顯示位置,右邊的調(diào)試增1。此刻是2013年11月29日下午15:02,星期五,時(shí)間準(zhǔn)確。訓(xùn)練體會(huì)

在整個(gè)單片機(jī)課程設(shè)計(jì)中,想要做出這個(gè)完整的設(shè)計(jì)過(guò)程,必須突破幾個(gè)難點(diǎn):

1、元件得找準(zhǔn)卻,6路驅(qū)動(dòng)可以用74LS244代替。

2、連線不能連錯(cuò),對(duì)應(yīng)的輸入輸出端標(biāo)上序號(hào)。

3、程序代碼不能敲錯(cuò)。

4、由于單管顯示的星期數(shù)不穩(wěn)定,可以采用雙管顯示。參考文獻(xiàn):?jiǎn)纹瑱C(jī)課程設(shè)計(jì)指導(dǎo)。

下載基于PIC單片機(jī)電子萬(wàn)年歷實(shí)驗(yàn)報(bào)告word格式文檔
下載基于PIC單片機(jī)電子萬(wàn)年歷實(shí)驗(yàn)報(bào)告.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    萬(wàn)年歷單片機(jī)綜合實(shí)驗(yàn)[推薦閱讀]

    綜合實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)題目: 萬(wàn)年歷 學(xué)生班級(jí): 學(xué)生姓名: 學(xué)生學(xué)號(hào): 指導(dǎo)教師: 實(shí)驗(yàn)時(shí)間: 摘要 本設(shè)計(jì)是電子萬(wàn)年歷。具備三個(gè)功能:能顯示:年、月、日、時(shí)、分、秒及星期信息,并......

    單片機(jī)萬(wàn)年歷實(shí)訓(xùn)報(bào)告

    單片機(jī)萬(wàn)年歷實(shí)訓(xùn)報(bào)告 系部:電氣自動(dòng)化系 班級(jí):13電信2班姓名:周祝福 指導(dǎo)老師:黃麗英、侯聰玲 實(shí)訓(xùn)時(shí)間:2015年1月19日~23日 用AT89C51與LCD1602設(shè)計(jì) 的可調(diào)式電子日歷時(shí)鐘......

    單片機(jī)實(shí)驗(yàn)報(bào)告[范文模版]

    實(shí) 實(shí) 驗(yàn) 驗(yàn) 報(bào) 報(bào) 告實(shí)驗(yàn)課程: 單片機(jī)原理及應(yīng)用班級(jí): 12 自動(dòng)化 2 班 學(xué)號(hào):姓名:教師:張玲 成績(jī):實(shí) 驗(yàn) 日 期 :年 月 日 實(shí)驗(yàn)名稱: 實(shí)驗(yàn) 1-—計(jì)數(shù)顯示器一、實(shí)驗(yàn)?zāi)康? 學(xué)習(xí)Prot......

    單片機(jī)實(shí)驗(yàn)報(bào)告

    《單片機(jī)原理及應(yīng)用》 實(shí) 驗(yàn) 報(bào) 告 2017—2018學(xué)年第一學(xué)期 班級(jí): 152 專業(yè): 電子科學(xué)與技術(shù) 姓名: 子路 學(xué)號(hào): 教師: 實(shí)驗(yàn)一:Keil C51 一、實(shí)驗(yàn)?zāi)康?1、熟悉Keil C51單片機(jī)應(yīng)用......

    單片機(jī)實(shí)驗(yàn)報(bào)告

    目錄 第一章單片機(jī)簡(jiǎn)介.................................................... 2 第二章實(shí)驗(yàn)要求.................................................. 3 第三章實(shí)驗(yàn)設(shè)備.........

    單片機(jī)實(shí)驗(yàn)報(bào)告

    單片機(jī)實(shí)驗(yàn)報(bào)告 一、實(shí)驗(yàn)?zāi)康?1.熟練使用Keil、Protues兩款軟件 2.通過(guò)上機(jī)操作,增強(qiáng)個(gè)人動(dòng)手實(shí)踐能力 3.加深對(duì)理論知識(shí)的理解 4.培養(yǎng)運(yùn)用匯編語(yǔ)言進(jìn)行初步編寫(xiě)程序的能力......

    單片機(jī)實(shí)驗(yàn)報(bào)告

    實(shí)驗(yàn)四、中斷交通燈實(shí)驗(yàn) 林立強(qiáng)1000850116 一、實(shí)驗(yàn)?zāi)康?1、了解MCS-51單片機(jī)的組成、中斷原理,中斷處理過(guò)程、外部中斷的中斷方式。 2、掌握中斷響應(yīng)及處理的編程方法。 二......

    單片機(jī)實(shí)驗(yàn)報(bào)告

    51單片機(jī)控制流水燈 目錄 (1)51精簡(jiǎn)開(kāi)發(fā)板簡(jiǎn)介 (2)實(shí)驗(yàn)?zāi)康?(3)實(shí)驗(yàn)內(nèi)容 (4)元件 (5)原理圖 (6)實(shí)驗(yàn)步驟 (7)主要功能介紹(8)實(shí)驗(yàn)錯(cuò)誤及分析 (9)調(diào)試及程序 (10)系統(tǒng)測(cè)試 (11)實(shí)驗(yàn)心得 一、51精簡(jiǎn)......

主站蜘蛛池模板: 亚洲午夜爱爱香蕉片| 国产精品国产av国产三级| 爆乳喷奶水无码正在播放| 国产激情久久久久影院| 西西午夜无码大胆啪啪国模| 人妻有码中文字幕在线| 久久久精品无码中文天美| 久久久久久国产精品免费免费男同| 强行糟蹋人妻hd中文| 亚洲国产日韩a在线乱码| 日本无遮挡真人祼交视频| 黑人巨大精品欧美黑寡妇| 18禁黄网站禁片免费观看国产| 99精品久久精品一区二区| 成人伊人亚洲人综合网| 东京热无码av一区二区| 性色av一区二区三区咪爱四虎| 亚洲中字慕日产2020| 国产乱子伦视频大全亚瑟影院| 97在线无码免费人妻短视频| 国产日产欧产精品精品app| 国产人妻精品一区二区三区| 成人福利国产午夜av免费不卡在线| 日本一卡2卡3卡4卡无卡免费网站| 色yeye香蕉凹凸视频在线观看| 冲田杏梨av一区二区三区| 99热精品久久只有精品| 国产又黄又爽无遮挡不要vip| 欧美做爰性生交视频| 少妇高潮喷水正在播放| 亚洲а∨天堂久久精品2021| 久久免费的精品国产v∧| 男女做爰猛烈啪啪吃奶动| 国产人妻熟女高跟丝袜图片| 欧美日韩国产va另类| 国产精品无码专区| 寂寞骚妇被后入式爆草抓爆| 一本一道vs无码中文字幕| 久久午夜无码鲁丝片午夜精品| 国产乱码卡一卡2卡三卡四| 欧美大肥婆大肥bbbbb|