📄 main.lst
字号:
1 000000 ;***********************************************
2 000000 start:
3 000000 nop
4 000000 call PortInitial
5 000000 call RAMInitial
6 000000 call SysInitial
7 000000 call pdelay100ms
8 000000 call PortInitial
9 000000 call RAMInitial
10 000000 call SysInitial
11 000000
12 000000 ;***********************************************
13 000000
14 000000 mainloop:
15 000000 mov a,#5ah
16 000000 mov wdtr,a
17 000000 ; call mnchkrx
18 000000 call mnint
19 000000 call mnkey
20 000000 call mnapp
21 000000 jmp mainloop
22 000000
23 000000 ;***********************************************
24 000000 RAMInitial:
25 000000 clr Y ;Select bank 0
26 000000 mov A,#0x2f
27 000000 b0mov Z,A ;Set @YZ address from 7fh
28 000000
29 000000 ClrRAM10:
30 000000 clr @YZ ;Clear @YZ content
31 000000 decms Z ;z = z - 1 , skip next if z=0
32 000000 jmp ClrRAM10
33 000000 clr @YZ ;Clear address 0x00
34 000000 ;--------------------set some content----------------
35 000000 ;设定各控制脚归零点
36 000000 mov a,#33
37 000000 b0mov wingbuf,a
38 000000 b0mov wingloadbuf,a
39 000000 ;// mov a,#33
40 000000 b0mov empennagebuf,a
41 000000 b0mov empennageloadbuf,a
42 000000 ;// mov a,#33
43 000000 b0mov screwbuf,a
44 000000 b0mov screwloadbuf,a
45 000000 ;// b0mov a,#20
46 000000 b0mov swingbuf,a
47 000000 b0mov swingloadbuf,a
48 000000 ret
49 000000 ;***********************************************
50 000000 PortInitial:
51 000000 clr p0
52 000000 clr p1
53 000000 clr p5
54 000000
55 000000 mov A,#00h ;//don't Pull up p5,p1,p0 port
56 000000 b0mov p0ur,a
57 000000 b0mov P1UR,A
58 000000 mov A,#0ffh
59 000000 b0mov P5UR,A
60 000000
61 000000 mov A,#0feh
62 000000 mov p0m,a
63 000000 mov A,#0ffh
64 000000 mov P1M,A
65 000000 mov A,#0ffh
66 000000 mov P5M,A
67 000000
68 000000 nop
69 000000 nop
70 000000 nop
71 000000 clr p0
72 000000 clr p1
73 000000 clr p5
74 000000 ret
75 000000 ;***********************************************
76 000000 ;**********************************************
77 000000 ;Name :SysInitial
78 000000 ;Function:
79 000000 ;Input :
80 000000 ;Output :
81 000000 ;Register Used:
82 000000 ;***********************************************
83 000000 SysInitial:
84 000000 clr PFLAG ;pflag = x,x,x,x,x,c,dc,z
85 000000 mov A,#00h ;Clear watchdog timer and initial system mode
86 000000 b0mov OSCM,A
87 000000
88 000000 mov A,#00110000B
89 000000 b0mov T0M,A ; Set the T0 rate=Fcpu/64
90 000000 mov A,#0h
91 000000 b0mov T0C,A
92 000000 bclr FT0enb ; Enable TIMER0
93 000000 bset ft0ien ; Enable T0 interrupt
94 000000 bclr ft0irq ; CLEAR TIMER0 INTERRUPT FLAG
95 000000
96 000000 MOV A,#01110100B
97 000000 B0MOV TC0M,A ;Set the TC0 rate=Fcpu/2
98 000000 mov A,#156;206;
99 000000
100 000000 ; MOV A,#01100100B
101 000000 ; B0MOV TC0M,A ; Set the TC0 rate=Fcpu/64
102 000000 ; mov A,#206 ;200us
103 000000 b0mov TC0C,A ; Set the TC0 timer
104 000000 b0mov tc0r,a
105 000000 ; bclr fpwm0out
106 000000 b0bset FTC0ENB ; Enable TIMER0
107 000000 bset FTC0IEN ; Enable TC0 interrupt
108 000000 bclr ftc0irq ; CLEAR TIMER0 INTERRUPT FLAG
109 000000
110 000000 ; Enable P00 interrup
111 000000 @P00_EDGE 2 ;@P00_EDGE=1-->Rising Edge ,=2-->falling EDg,=3-->bi-direction;
112 000000 b0bclr FP00IRQ
113 000000 b0bset FP00IEN
114 000000
115 000000 b0bset FGIE ;//enable Interrupt gain
116 000000 ret
117 000000
118 000000 ;***********************************************
119 000000 Pdelay100ms:
120 000000 mov a,#100
121 000000 mov r2,a
122 000000 Pdelay1ms:
123 000000 mov a,#100
124 000000 mov r1,a
125 000000 Pdelay10us:
126 000000 jmp $+1
127 000000 jmp $+1
128 000000 jmp $+1
129 000000 decms r1
130 000000 jmp Pdelay10us
131 000000 decms r2
132 000000 jmp Pdelay1ms
133 000000 Pdelay90:
134 000000 ret
135 000000
136 000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -