📄 light_init.lst
字号:
1 000000 ;***********************************************************************************************
2 000000 ;File name :light_init.asm
3 000000 ;Author :guangyu_yang
4 000000 ;Purpose :Training
5 000000 ;Data :2/8/2007
6 000000 ;Dscription :系统初始化
7 000000 ;Version: v1.1
8 000000 ;Hardware&IDE: m2 1.14
9 000000 ;Copyright(C).SONIX TECHNOLOGY CO.,Ltd.
10 000000 ;*************************************************************************************************
11 000000 sysinit:
12 000000 mov a,#5ah
13 000000 b0mov wdtr,a ;清狗
14 000000 call init_oscm ;系统运行状态初始化
15 000000 call init_ram ;ram初始化
16 000000 call init_io ;io口初始化
17 000000 call init_t0 ;t0初始化
18 000000 call premain
19 000000 ret
20 000000
21 000000 init_oscm:
22 000000 mov a,#00h ;系统在正常状态运行
23 000000 b0mov oscm,a
24 000000 ret
25 000000
26 000000 ;初始化RAM
27 000000 init_ram: ;清BANK0
28 000000 clr Y
29 000000 b0mov Z , #7fh
30 000000 clr_bank0:
31 000000 clr @YZ
32 000000 decms Z
33 000000 jmp clr_bank0
34 000000 clr @YZ
35 000000 ;清BAKN1
36 000000 mov a,#1
37 000000 b0mov Y,A
38 000000 mov A,#0x7f
39 000000 b0mov Z,A ;Set @YZ address from 17fh
40 000000
41 000000 ClrRAM20:
42 000000 clr @YZ ;Clear @YZ content
43 000000 decms Z ;z = z - 1 , skip next if z=0
44 000000 jmp ClrRAM20
45 000000 clr @YZ ;Clear address 0x100
46 000000 ret
47 000000
48 000000
49 000000 init_io:
50 000000 ;p1口初始化
51 000000 mov a,#00h ;0输入,1输出
52 000000 mov p1m,a
53 000000 mov a,#0ffh ;设置IO口为输入,上拉
54 000000 mov p1ur,a
55 000000 ;p2口初始化
56 000000 b0mov a,#0ffh
57 000000 mov p2m,a
58 000000 clr p2 ;关闭所有的LED
59 000000
60 000000 mov a,#0ffh
61 000000 mov p0m,a
62 000000 mov p3m
63 000000 mov p4m
64 000000 mov p5m
65 000000 clr p0
66 000000 clr p3
67 000000 clr p4
68 000000 clr p5 ;将P5口设为输出低
69 000000 ret
70 000000
71 000000 init_t0:
72 000000 b0bclr ft0ien ;清定时中断
73 000000 b0bclr ft0enb
74 000000 mov a,div64 ;设置T0的分频数,64分频
75 000000 b0mov t0m,a
76 000000 mov a,#64h ;设置T0间隔时间的初始值10MS
77 000000 b0mov t0c,a
78 000000 b0bset ft0ien
79 000000 b0bset ft0enb
80 000000 b0bclr ft0irq
81 000000
82 000000 premain:
83 000000 mov a,#01h ;赋初值
84 000000 b0mov keyinbuf,a
85 000000 b0mov keychkbuf,a
86 000000 b0mov keycvtbuf,a
87 000000 b0mov keyoldbuf,a
88 000000 mov a,#64h ;用来做流水灯延时10*100MS
89 000000 b0mov delayvalue,a
90 000000 ;b0mov adddelaybuf,a
91 000000 ;bomov subdelaybuf,a
92 000000 ;bomov delayvalbuf,a
93 000000 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -