基于PIC单片机电子万年历实验报告_pic单片机实验报告
基于PIC单片机电子万年历实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“pic单片机实验报告”。
实验报告
姓名:文可鑫学号:20072121010专业:电子信息工程
1编写一个秒表程序,使用查询方式。
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
mainbtfINTCON,T0IF
goto$-1
movlw06h
movwfTMR0
bcfINTCON,T0IF
incfcount,f
btfSTATUS,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编写一个秒表程序,使用中断方式。listp=16f877a
include“p16f877a.inc” include countequ20h count_sequ21h W_tempequ23H STA_tempequ24Horg000hgotostartorg004h
gotointp startnop
callInitSPIbankselOPTION_REGmovlw44h
movwfOPTION_REGbankselINTCONmovlw0a0hmovwfINTCONmovlw06hmovwfTMR0movlwd'131'movwfcountmovlw00hmovwfcount_s heregotohere intp
btfINTCON,T0IFgoto$-1movlw06hmovwfTMR0
bcfINTCON,T0IFincfcount,fbtfSTATUS,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
intpbtfINTCON,T0IFgoto$-1movlw06hmovwfTMR0
bcfINTCON,T0IFincfcount,fbtfSTATUS,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