?? 綜合a.lst
字號:
00058d 9ae2 sbi eecr,$02
00058e 9ae1 sbi eecr,$01
00058f 99e1 epwrwtnc:sbic eecr,$01
000590 cffe rjmp epwrwtnc
000591 3f1f epnextc:cpi temp1,$ff
000592 f419 brne epnextkey1c
000593 3021 cpi temp2,$01
000594 f409 brne epnextkey1c
000595 cfae rjmp epscannc
000596 9513 epnextkey1c:inc temp1
000597 f409 brne epnextkey2c
000598 9523 inc temp2
000599 dbfd epnextkey2c:rcall dviadd
00059a cf9b rjmp epmemtc ;整段EEPROM讀寫結束。
00059b dbf4 srmemtc:rcall meradd ;調用由R7-R4產生的地址入TEMP2TEMP1。
00059c 3022 cpi temp2,$02
00059d f438 brcc srbeginc
00059e 3021 cpi temp2,$01
00059f f039 breq srdownc
0005a0 3710 cpi temp1,$70
0005a1 f428 brcc srdownc
0005a2 e710 ldi temp1,$70
0005a3 2722 clr temp2
0005a4 c002 rjmp srdownc
0005a5 e021 srbeginc:ldi temp2,$01
0005a6 ef1f ldi temp1,$ff
0005a7 dbef srdownc:rcall dviadd
0005a8 dbe7 rcall meradd
0005a9 2fd2 mov yh,temp2
0005aa 2fc1 mov yl,temp1
0005ab 8118 ld temp1,y
0005ac 2e21 mov r2,temp1
0005ad 2e81 mov r8,temp1
0005ae dbce rcall dtor32 ;數據放入R3R2中。
0005af dbbe rcall disbyregc ;改變顯示內存。
0005b0 d05f srscannc:rcall scan1c ;鍵掃
0005b1 f3f6 brts srscannc
0005b2 d05d srscankc:rcall scan1c
0005b3 f7f6 brtc srscankc
0005b4 d05b rcall scan1c
0005b5 3183 srscansc:cpi keyn,$13
0005b6 f409 brne srreturnc
0005b7 ca78 rjmp reset
0005b8 3180 srreturnc:cpi keyn,$10
0005b9 f478 brcc srcommkeyc
0005ba 2e38 mov r3,keyn
0005bb dbb2 rcall disbyregc
0005bc d053 sscannc:rcall scan1c
0005bd f3f6 brts sscannc
0005be d051 sscankc:rcall scan1c
0005bf f7f6 brtc sscankc
0005c0 d04f rcall scan1c
0005c1 3183 sscansc:cpi keyn,$13
0005c2 f409 brne sreturnc
0005c3 ca6c rjmp reset
0005c4 3180 sreturnc:cpi keyn,$10
0005c5 f458 brcc scommkeyc
0005c6 2e28 mov r2,keyn
0005c7 dba6 rcall disbyregc
0005c8 cfe7 rjmp srscannc
0005c9 3183 srcommkeyc:cpi keyn,$13
0005ca f409 brne srreturn1c
0005cb ca64 rjmp reset
0005cc 318e srreturn1c:cpi keyn,$1e
0005cd f059 breq srlastkeyc
0005ce 318f cpi keyn,$1f
0005cf f0f1 breq srnextkeyc
0005d0 cfdf rjmp srscannc
0005d1 3183 scommkeyc:cpi keyn,$13
0005d2 f409 brne srreturn2c
0005d3 ca5c rjmp reset
0005d4 318e srreturn2c:cpi keyn,$1e
0005d5 f019 breq srlastkeyc
0005d6 318f cpi keyn,$1f
0005d7 f0b1 breq srnextkeyc
0005d8 cfe3 rjmp sscannc
0005d9 dbb6 srlastkeyc:rcall meradd
0005da 2d03 mov temp,r3
0005db 9502 swap temp
0005dc 2902 or temp,r2
0005dd 1508 cp temp,r8
0005de f029 breq srlastc
0005df 2fd2 mov yh,temp2
0005e0 2fc1 mov yl,temp1
0005e1 8308 st y,temp
0005e2 0000 nop
0005e3 0000 nop
0005e4 3710 srlastc:cpi temp1,$70
0005e5 f419 brne srlastkey1c
0005e6 3020 cpi temp2,$00
0005e7 f409 brne srlastkey1c
0005e8 cfc7 rjmp srscannc
0005e9 9488 srlastkey1c:clc
0005ea 5011 subi temp1,$01
0005eb 4020 sbci temp2,$00
0005ec dbaa rcall dviadd
0005ed cfad rjmp srmemtc
0005ee dba1 srnextkeyc:rcall meradd
0005ef 2d03 mov temp,r3
0005f0 9502 swap temp
0005f1 2902 or temp,r2
0005f2 1508 cp temp,r8
0005f3 f029 breq srnextc
0005f4 2fd2 mov yh,temp2
0005f5 2fc1 mov yl,temp1
0005f6 8308 st y,temp
0005f7 0000 nop
0005f8 0000 nop
0005f9 3f1f srnextc:cpi temp1,$ff
0005fa f419 brne srnextkey1c
0005fb 3021 cpi temp2,$01
0005fc f409 brne srnextkey1c
0005fd cfb2 rjmp srscannc
0005fe 9513 srnextkey1c:inc temp1
0005ff f409 brne srnextkey2c
000600 9523 inc temp2
000601 db95 srnextkey2c:rcall dviadd
000602 cf98 rjmp srmemtc ;整段EEPROM讀寫結束。
000603 e1fe indipramc: ldi zh,high(label*2) ;初始化顯示內存。
000604 e0e0 ldi zl,low(label*2)
000605 e6a0 ldi xl,$60
000606 e500 ldi temp,$50
000607 930d st x+,temp
000608 e200 LDI TEMP,$20
000609 2711 clr temp1
00060a 930d inlpc:st x+,temp
00060b 9513 inc temp1
00060c 3015 cpi temp1,$05
00060d f7e1 brne inlpc
00060e e6a0 ldi xl,$60
00060f 9508 ret
000610 93bf SCAN1c: push xh ;鍵掃顯示子程序。
000611 93af PUSH XL
000612 933f PUSH TEMP3
000613 932f PUSH TEMP2
000614 931f PUSH TEMP1
000615 930f PUSH TEMP
000616 e6a0 LDI XL,$60
000617 9468 SET
000618 e044 LDI CNT,$04
00061a ef67 LDI KSNI,0B11110111
00061b e00f COL1c:ldi temp,$0f
00061c bb04 OUT DDRC,TEMP
00061d bb65 OUT PORTC,KSNI
00061e dd85 RCALL DELAY
00061f e014 LDI TEMP1,$04
000620 dd8f RCALL DELYT
000621 b303 IN TEMP,PINc
000622 7f00 ANDI TEMP,0B11110000
000623 9502 SWAP TEMP
000624 9408 KROWc:SEC
000625 9507 ROR TEMP
000626 f038 BRCS NOKEYc
000627 94e8 CLT
000628 2f85 MOV KEYN,SCNN
000629 988f CBI DDRD,$07
00062a 9897 CBI PORTD,$07
00062b 9b87 SBIS PINd,$07
00062c 9640 ADIW KEYN,$10
00062d c007 RJMP WDISLCD
00062e 9553 NOKEYc: INC SCNN
00062f 951a DEC TEMP1
000630 f799 BRNE KROWc
000631 9408 SEC
000632 9567 ROR KSNI
000633 954a NOSKc: DEC CNT
000634 f731 BRNE COL1c
000635 d00a WDISLCD:RCALL DISLCD
000636 ef0f LDI TEMP,$FF
000637 bb04 OUT DDRC,TEMP
000638 bb05 OUT PORTC,TEMP
000639 910f POP TEMP
00063a 911f POP TEMP1
00063b 912f POP TEMP2
00063c 913f POP TEMP3
00063d 91af POP XL
00063e 91bf pop xh
00063f 9508 RET
000640 ef0f DISLCD:ldi temp,$ff
000641 bb01 out ddrd,temp
000642 bb02 out portd,temp
000643 e000 ldi temp,$00
000644 bb07 out ddrb,temp
000645 bb08 out portb,temp
000646 d001 rcall wr2ram
000647 9508 ret
000648 e054 wr2ram: LDI CNT1,04
000649 ea18 LDI TEMP1,$a8
00064a d1fa RCALL CONTD
00064b 27ff clr zh
00064c e6e0 ldi zl,$60
00064d 9001 LPC: LD R0,Z+
00064e 2d10 MOV TEMP1,R0
00064f d20d RCALL WRITD
000650 955a DEC CNT1
000651 f7d9 BRNE LPC
000652 e210 ldi temp1,$20
000653 d209 rcall writd
000654 9001 ld r0,z+
000655 2d10 mov temp1,r0
000656 d206 rcall writd
000657 8000 ld r0,z
000658 2d10 mov temp1,r0
000659 d203 rcall writd
00065a 9508 ret
.org $0700
000700 e048 ldi cnt,$8
000701 ea18 ldi temp1,$a8
000702 d142 rcall contd
000703 e210 lp80: ldi temp1,$20
000704 d158 rcall writd
000705 954a dec cnt
000706 f7e1 brne lp80
000707 2755 lp8: clr cnt1 ;循環程序。
000708 2744 lp81: clr cnt
000709 ea18 ldi temp1,$a8
00070a d13a rcall contd
00070b 1754 lp82: cp cnt1,cnt
00070c f459 brne lp83
00070d e71e ldi temp1,$7E ;字符代碼。
00070e d14e lp84: rcall writd
00070f 9543 inc cnt
000710 3140 cpi cnt,$10
000711 f7c9 brne lp82
000712 e400 ldi temp,$40
000713 d166 rcall delaypa
000714 9553 inc cnt1
000715 3150 cpi cnt1,$10
000716 f789 brne lp81
000717 c002 rjmp lp88
000718 e210 lp83: ldi temp1,$20
000719 cff4 rjmp lp84
00071a e150 lp88: ldi cnt1,$10 ;循環程序。
00071b e040 lp881: ldi cnt,$00
00071c ea18 ldi temp1,$a8
00071d d127 rcall contd
00071e 1754 lp882: cp cnt1,cnt
00071f f451 brne lp883
000720 e71f ldi temp1,$7f ;字符代碼。
000721 d13b lp884: rcall writd
000722 9543 inc cnt
000723 3140 cpi cnt,$10
000724 f7c9 brne lp882
000725 e400 ldi temp,$40
000726 d153 rcall delaypa
000727 955a dec cnt1
000728 f791 brne lp881
000729 cfdd rjmp lp8
00072a e210 lp883: ldi temp1,$20
00072b cff5 rjmp lp884
.org $0740
000740 e048 ldi cnt,$8 ;0--F循環程序。
000741 ea18 ldi temp1,$a8
000742 d102 rcall contd
000743 e210 lpw0: ldi temp1,$20
000744 d118 rcall writd
000745 954a dec cnt
000746 f7e1 brne lpw0
000747 2733 lpw: clr temp3
000748 e1fe ldi zh,high(labelc*2)
000749 e2e0 ldi zl,low(labelc*2)
00074a 2755 lpww: clr cnt1
00074b 95c8 lpm
00074c 95e3 inc zl
00074d 2744 lpw1: clr cnt
00074e ea18 ldi temp1,$a8
00074f d0f5 rcall contd
000750 1754 lpw2: cp cnt1,cnt
000751 f471 brne lpw3
000752 2d10 mov temp1,r0
000753 d109 lpw4: rcall writd
000754 9543 inc cnt
000755 3140 cpi cnt,$10
000756 f7c9 brne lpw2
000757 e400 ldi temp,$40 ;設置時間常數TEMP。
000758 d121 rcall delaypa ;調用延時子程序。
000759 9553 inc cnt1
00075a 3150 cpi cnt1,$10
00075b f789 brne lpw1
00075c 9533 inc temp3
00075d 3130 cpi temp3,$10
00075e f759 brne lpww
00075f cfe7 rjmp lpw
000760 e210 lpw3: ldi temp1,$20
000761 cff1 rjmp lpw4
.org $0800 ;LCD顯示LCD字符
000800 e8e0 wr2ram1:LDI ZL,LOW($0BC0*2)
000801 e1f7 LDI ZH,HIGH($0BC0*2)
000802 e057 ldi cnt1,$07
000803 e140 lp1: LDI CNT,16
000804 ea18 LDI TEMP1,$a8
000805 d03f RCALL CONTD
000806 95c8 LP: LPM
000807 2d10 MOV TEMP1,R0
000808 d054 RCALL WRITD
000809 9001 LD R0,Z+
00080a 954a DEC CNT
00080b f7d1 BRNE LP
00080c 955a dec cnt1
00080d f019 breq lp2
00080e d06a rcall delayY
00080f d069 rcall delayY
000810 cff2 rjmp lp1
000811 d067 lp2: rcall delayY
000812 e8e0 ldi zl,low($Cc0*2)
000813 e1f9 ldi zh,high($Cc0*2)
000814 ea48 ldi cnt,168
000815 2f6e mov prl,zl
000816 2f7f mov prh,zh
000817 e156 rout: ldi cnt1,$16
000818 ea18 ldi temp1,$a8
000819 d02b rcall contd
00081a 95c8 rout1: lpm
00081b 2d10 mov temp1,r0
00081c d040 rcall writd
00081d 9001 ld r0,z+
00081e 955a dec cnt1
00081f f7d1 brne rout1
000820 d058 rcall delayY
000821 954a dec cnt
000822 f2e9 breq wr2ram1
000823 d001 rcall incprlh
000824 cff2 rjmp rout
000825 2fa6 incprlh:mov xl,prl
000826 2fb7 mov xh,prh
000827 900d ld r0,x+
000828 2f6a mov prl,xl
000829 2f7b mov prh,xh
00082a 2fe6 mov zl,prl
00082b 2ff7 mov zh,prh
00082c 9508 ret
00082d 95a8 wr1ram: wdr
00082e e810 ldi temp1,$80
00082f d015 rcall contd
000830 e052 ldi cnt1,$02
000831 e144 w1r:ldi cnt,20
000832 e4e0 ldi zl,low($Ba0*2)
000833 e1f7 ldi zh,high($Ba0*2)
000834 95c8 redsp:lpm
000835 2d10 mov temp1,r0
000836 d026 rcall writd
000837 9001 ld r0,z+
000838 954a dec cnt
000839 f7d1 brne redsp
00083a 955a dec cnt1
00083b f7a9 brne w1r
00083c 9508 ret
00083d 95a8 syset: wdr
00083e e011 ldi temp1,$01
00083f d005 RCALL contd
000840 e318 ldi temp1,$38
000841 d003 rcall contd
000842 e016 ldi temp1,$06
000843 d001 rcall contd
000844 9508 ret
000845 e300 CONTD: LDI TEMP,0B00110000
000846 bb02 OUT PORTD,TEMP
000847 d02c RCALL DELT3
000848 9895 CBI PORTD,$05
000849 d02a RCALL DELT3
00084a 9a95 sbi portd,$05
00084b 95a8 BUSYY: WDR
00084c 99b7 SBIC PINB,$07
00084d cffd RJMP BUSYY
00084e e200 ldi temp,0b00100000
00084f bb02 OUT PORTD,TEMP
000850 d023 RCALL DELT3
000851 ef0f LDI TEMP,$ff
000852 bb07 OUT DDRB,TEMP
000853 bb18 OUT PORTB,TEMP1
000854 95a8 WDR
000855 9895 cBI PORTD,$05
000856 d01d RCALL DELT3
000857 e308 LDI TEMP,0B00111000
000858 bb02 OUT PORTD,TEMP
000859 2700 CLR TEMP
00085a bb07 OUT DDRB,TEMP
00085b bb08 OUT PORTB,TEMP
00085c 9508 RET
00085d e300 WRITD: LDI TEMP,0B00110000
00085e bb02 OUT PORTD,TEMP
00085f d014 RCALL DELT3
000860 9895 cbi portd,$05
000861 d012 rcall delt3
000862 9a95 sbi portd,$05
000863 95a8 BUZY1:WDR
000864 99b7 SBIC PINB,$07
000865 cffd RJMP BUZY1
000866 e208 LDI TEMP,0B00101000
000867 bb02 OUT PORTD,TEMP
000868 bb18 OUT PORTB,TEMP1
000869 ef0f LDI TEMP,$ff
00086a bb07 OUT DDRB,TEMP
00086b 9895 cbi PORTD,$05
00086c d007 RCALL DELT3
00086d e308 LDI TEMP,0B00111000
00086e bb02 OUT PORTD,TEMP
00086f d004 RCALL DELT3
000870 2700 CLR TEMP
000871 bb07 OUT DDRB,TEMP
000872 bb08 OUT PORTB,TEMP
000873 9508 RET
000874 e224 DELT3: LDI TEMP2,$24
000875 95a8 DT111:WDR
000876 952a DEC TEMP2
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -