?? pic16f877-led.lst
字號(hào):
MPASM 5.03 PIC16F877-LED.ASM 10-27-2008 23:00:43 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 LIST P=16f877A
00002 #INCLUDE <P16f877A.INC>
00001 LIST
00002 ; P16F877A.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
00400 LIST
00003 ;***************************************************
00004 #define dis1 0x7f
00005 #define dis2 0xBf
00006 #define dis3 0xDf
00007 #define dis4 0xEf
00008 #define dis5 0xf7
00009 #define dis6 0xfB
00010 ;***************************************************
00000021 00011 R1 equ 0x21
00000022 00012 R2 equ 0x22
00000023 00013 R3 equ 0x23
00000024 00014 count equ 0x24
00000025 00015 disnum equ 0x25
00000026 00016 numg equ 0x26
00000027 00017 nums equ 0x27
00000028 00018 numb equ 0x28
00000030 00019 numq equ 0x30
00000030 00020 numw equ 0x30
00000031 00021 numsw equ 0x31
00000032 00022 num equ 0x32
00000033 00023 ADR equ 0x33
00024 ;***************************************************
0000 00025 org 0x0
0000 0000 00026 nop
0001 2820 00027 goto START
00028 ;-------------------PROGRAM------------------------
0020 00029 org 0X20
0020 00030 START:
0020 1683 1303 00031 banksel TRISD
0022 3000 00032 movlw 0x00
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0023 0088 00033 movwf TRISD
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0024 0086 00034 movwf TRISB
0025 30FF 00035 movlw 0xff
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0026 0087 00036 movwf TRISC
0027 1283 1303 00037 banksel PORTD
0029 30FF 00038 movlw 0xff
002A 0808 00039 movfw PORTD
002B 01A4 00040 clrf count
002C 01B2 00041 clrf num
002D 01A8 00042 clrf numb
002E 01A7 00043 clrf nums
002F 01A6 00044 clrf numg
0030 2856 00045 goto xx
0031 00046 tt:
0031 3001 00047 movlw .1
MPASM 5.03 PIC16F877-LED.ASM 10-27-2008 23:00:43 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0032 208F 00048 call GetDisNum
0033 0086 00049 movwf PORTB
0034 307F 00050 movlw dis1
0035 0088 00051 movwf PORTD
0036 20BC 00052 call delay10ms
0037 3002 00053 movlw .2
0038 208F 00054 call GetDisNum
0039 0086 00055 movwf PORTB
003A 30BF 00056 movlw dis2
003B 0088 00057 movwf PORTD
003C 20BC 00058 call delay10ms
003D 3003 00059 movlw .3
003E 208F 00060 call GetDisNum
003F 0086 00061 movwf PORTB
0040 30DF 00062 movlw dis3
0041 0088 00063 movwf PORTD
0042 20BC 00064 call delay10ms
0043 3004 00065 movlw .4
0044 208F 00066 call GetDisNum
0045 0086 00067 movwf PORTB
0046 30EF 00068 movlw dis4
0047 0088 00069 movwf PORTD
0048 20BC 00070 call delay10ms
0049 3005 00071 movlw .5
004A 208F 00072 call GetDisNum
004B 0086 00073 movwf PORTB
004C 30F7 00074 movlw dis5
004D 0088 00075 movwf PORTD
004E 20BC 00076 call delay10ms
004F 3006 00077 movlw .6
0050 208F 00078 call GetDisNum
0051 0086 00079 movwf PORTB
0052 30FB 00080 movlw dis6
0053 0088 00081 movwf PORTD
0054 20BC 00082 call delay10ms
0055 2831 00083 goto tt
0056 00084 xx:
0056 20AF 00085 call AD_trans
0057 0833 00086 movfw ADR
0058 00B2 00087 movwf num
0059 209A 00088 call bintobcd
005A 207C 00089 call displayBCD
005B 2856 00090 goto xx
00091 ;***************************************************
00092 ;======================按鍵子程序===================
00093 ;***************************************************
005C 00094 key:
005C 1807 00095 btfsc PORTC,0
005D 2862 00096 goto knext1
005E 20BC 00097 call delay10ms
005F 1807 00098 btfsc PORTC,0
0060 2862 00099 goto knext1
0061 2876 00100 goto key_back
MPASM 5.03 PIC16F877-LED.ASM 10-27-2008 23:00:43 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0062 00101 knext1:
0062 1887 00102 btfsc PORTC,1
0063 2868 00103 goto knext2
0064 20BC 00104 call delay10ms
0065 1887 00105 btfsc PORTC,1
0066 2868 00106 goto knext2
0067 2077 00107 call key_add
0068 00108 knext2:
0068 1907 00109 btfsc PORTC,2
0069 286E 00110 goto knext3
006A 20BC 00111 call delay10ms
006B 1907 00112 btfsc PORTC,2
006C 286E 00113 goto knext3
006D 2079 00114 call key_sub
006E 00115 knext3:
006E 1987 00116 btfsc PORTC,3
006F 2875 00117 goto knext4
0070 20BC 00118 call delay10ms
0071 1987 00119 btfsc PORTC,3
0072 2875 00120 goto knext4
0073 207B 00121 call key_cof
0074 285C 00122 goto key
0075 00123 knext4:
0075 0008 00124 return
0076 00125 key_back:
0076 0008 00126 return
0077 00127 key_add:
0077 0AA4 00128 incf count,f
0078 0008 00129 return
0079 00130 key_sub:
0079 03A4 00131 decf count,f
007A 0008 00132 return
007B 00133 key_cof:
007B 0008 00134 return
00135 ;***************************************************
00136 ;-------------------顯示程序------------------------
00137 ;***************************************************
007C 00138 displayBCD:
007C 0828 00139 movfw numb
007D 208F 00140 call GetDisNum
007E 0086 00141 movwf PORTB
007F 30EF 00142 movlw dis4
0080 0088 00143 movwf PORTD
0081 20BC 00144 call delay10ms
0082 0827 00145 movfw nums
0083 208F 00146 call GetDisNum
0084 0086 00147 movwf PORTB
0085 30F7 00148 movlw dis5
0086 0088 00149 movwf PORTD
0087 20BC 00150 call delay10ms
0088 0826 00151 movfw numg
0089 208F 00152 call GetDisNum
008A 0086 00153 movwf PORTB
MPASM 5.03 PIC16F877-LED.ASM 10-27-2008 23:00:43 PAGE 4
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
008B 30FB 00154 movlw dis6
008C 0088 00155 movwf PORTD
008D 20BC 00156 call delay10ms
008E 0008 00157 return
00158 ;*************************************************************
00159 ;*****************共陰極數(shù)碼管BCD碼顯示***********************
008F 00160 GetDisNum:
008F 0782 00161 addwf PCL,f
0090 343F 00162 retlw #3F
0091 3406 00163 retlw #06
0092 345B 00164 retlw #5B
0093 344F 00165 retlw #4F
0094 3466 00166 retlw #66
0095 346D 00167 retlw #6D
0096 347D 00168 retlw #7D
0097 3407 00169 retlw #07
0098 347F 00170 retlw #7F
0099 3467 00171 retlw #67
00172 ;***************************************************
00173 ;-------------------二進(jìn)制轉(zhuǎn)BCD碼子程序-------------
00174 ;***************************************************
009A 00175 bintobcd:
009A 01A6 00176 clrf numg
009B 01A7 00177 clrf nums
009C 01A8 00178 clrf numb
009D 3064 00179 movlw 64H
009E 02B2 00180 BAI subwf num,f ;NUM-100>0,則NUMB+1
009F 1C03 00181 btfss STATUS,0
00A0 28A3 00182 goto BAI1
00A1 0AA8 00183 incf numb,f
00A2 289E 00184 goto BAI
00A3 07B2 00185 BAI1 addwf num,f
00A4 300A 00186 movlw 0ah
00A5 02B2 00187 SHI subwf num,f
00A6 1C03 00188 btfss STATUS,0
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -