⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 light.lst

📁 系统采用SONIX单片机作为控制核心
💻 LST
📖 第 1 页 / 共 3 页
字号:
     1  000000             ;***********************************************************************************************
     2  000000             ;File name	:light_main.asm
     3  000000             ;Author		:bili
     4  000000             ;Purpose	:Training
     5  000000             ;Data		:12/8/2008
     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             CHIP    SN8P2708A
    12  000000             //{{SONIX_CODE_OPTION
    13  000000             	.Code_Option	Noise_Filter	Enable
    14  000000             	.Code_Option	Watch_Dog	Enable		; Normal mode: Enable Watchdog Green mode : Enable Watchdog Sleep mode : Stop Watchdog
    15  000000             	.Code_Option	High_Clk	4M_X'tal	; Crystal/Resonator: 2Mhz~10Mhz
    16  000000             	.Code_Option	Fcpu		#2     ; Fcpu = Fosc/4
    17  000000             	.Code_Option	Security	Enable
    18  000000             //}}SONIX_CODE_OPTION
    19  000000             
    20  000000             
    21  000000             .CONST
    22  000000             	INCLUDE		light_equ.asm
    23  000000             ;***********************************************************************************************
    24  000000             ;File name	:light_equ.asm
    25  000000             ;Author		:guangyu_yang
    26  000000             ;Purpose	:Training
    27  000000             ;Data		:2/8/2007
    28  000000             ;Dscription	:常量定义				
    29  000000             ;Version:	v1.1
    30  000000             ;Hardware&IDE:	m2 1.14
    31  000000             ;Copyright(C).SONIX TECHNOLOGY CO.,Ltd.		   
    32  000000             ;*************************************************************************************************
    33  E 00000003         	keydelaytime	equ	3	;按键扫描延迟时间
    34  E 000000D1         	portrange	equ	p1	;p1口的寄存器
    35  E 00000040         	div64		equ	64
    36  E 0000000A         	adddelayval	equ	10	;加速进度
    37  E 0000000A         	subdelayval	equ	10	;减速进度
    38  000000             .DATA
    39  000000             	INCLUDE		light_ram.asm
    40  000000             ;***********************************************************************************************
    41  000000             ;File name	:light_ram.asm
    42  000000             ;Author		:guangyu_yang
    43  000000             ;Purpose	:Training
    44  000000             ;Data		:2/8/2007
    45  000000             ;Dscription	:系统变量定义				
    46  000000             ;Version:	v1.1
    47  000000             ;Hardware&IDE:	m2 1.14
    48  000000             ;Copyright(C).SONIX TECHNOLOGY CO.,Ltd.		   
    49  000000             ;*************************************************************************************************
    50  000000             	
    51  000000             	
    52  0000 D             		keyinbuf	ds	1	;按键扫描寄存器
    53  000001             	
    54  0001 D             		keychkbuf	ds	1	;按键检测寄存器
    55  000002             
    56  0002 D             		keycvtbuf	ds	1	;按键处理结果寄存器
    57  000003             
    58  0003 D             		keyoldbuf	ds	1	;保留上次按键的处理结果
    59  000004             	
    60  000004             	
    61  0004 D             		accbuf		ds	1	;累加器寄存器
    62  000005             		
    63  0005 D             		keychat		ds	1	;按键消抖处理时间100ms
    64  0006 D             		keyresult	ds	1
    65  000007             
    66  0007 D             		delayvalbuf	ds	1	
    67  0008 D             		delayvalue	ds	1
    68  000009             
    69  0009 D             		leftledbuf	ds	1
    70  000A D             		rightledbuf	ds	1
    71  000B D             		lrledbuf	ds	1
    72  00000C             		
    73  000C D             		mode		ds	1	;mode=0,close the led
    74  00000D             						;mode=1;shift left the led
    75  00000D             						;mode=2;shift right the led
    76  00000D             						;mode=3,shift from middle
    77  000D D             		test		ds	1
    78  00000E             
    79  000E D             		flag1		ds	1	;标志寄存器
    80  E 0000000E         		fkey_timer	equ	flag1.0	;10ms时间标志位
    81  E 0001000E         		ft0_10ms	equ	flag1.1	;1ms的昂市标志位
    82  E 0002000E         		fkey_in		equ	flag1.2
    83  E 0003000E         		fkeycvt		equ	flag1.3
    84  E 0004000E         		timeout		equ	flag1.4
    85  E 0005000E         		delayflag	equ	flag1.5
    86  000F D             		flag2		ds	1
    87  E 0000000F         		fleftled	equ	flag2.0
    88  E 0001000F         		frightled	equ	flag2.1
    89  E 0002000F         		flrled		equ	flag2.2
    90  E 0003000F         		addledflag	equ	flag2.3
    91  E 0004000F         		subledflag	equ	flag2.4
    92  000000             .CODE
    93  000000             		ORG	00H
    94  000000   8010(2)  	jmp		reset
    95  000008             		ORG	08H
    96  000008   8063(2)  	jmp		isr
    97  000010             		ORG	10H
    98  000010             /**************************************************
    99  000010               Subroutine:        RESET
   100  000010               Description:       initial all of the system reg ,user define reg ,Variables and I/O 
   101  000010               Calls:            sysinit
   102  000010               Input:            no                                      
   103  000010               Output:           no
   104  000010               Stack:            1
   105  000010              
   106  000010             *************************************************/
   107  000010             
   108  000010             reset:
   109  000010   2D7F(1)  	mov	a,#7fh			;初始化堆栈指针
   110  000011   2FDF(1)  	b0mov	stkp,a
   111  000012   2B86(1)  	clr	pflag
   112  000013   C02C(2)  	call	sysinit	       		;调用系统初始化程序
   113  000014   2D0E(1)  	mov	a,#0Eh			;初始化按键状态
   114  000015   2F00(1)  	b0mov	keyinbuf,a
   115  000016   2F01(1)  	b0mov	keychkbuf,a
   116  000017   2F02(1)  	b0mov	keycvtbuf,a
   117  000018   2F03(1)  	b0mov	keyoldbuf,a
   118  000019   2D01(1)  	mov	a,#01h			;流水灯初始化值
   119  00001A   1F09(1)  	mov	leftledbuf,a
   120  00001B   2D08(1)  	mov	a,#08h
   121  00001C   1F0A(1)  	mov	rightledbuf,a
   122  00001D   2D09(1)  	mov	a,#09h
   123  00001E   1F0B(1)  	mov	lrledbuf,a
   124  00001F   2D64(1)  	mov	a,#64h			;用来做流水灯延时10*100MS
   125  000020   2F08(1)  	b0mov	delayvalue,a
   126  000021   2F07(1)  	b0mov	delayvalbuf,a
   127  000022   2D00(1)  	mov	a,#00h			;初始化按键模式
   128  000023   1F0C(1)  	mov	mode,a
   129  000024             
   130  000024             
   131  000024   6FDF(1)  	b0bset	fgie		
   132  000025             /**************************************************
   133  000025               Subroutine:           main                          
   134  000025             *************************************************/
   135  000025             
   136  000025             main:
   137  000025             	clrwdr
   138  000025   2D5A(1)  	mov	a,#5ah
   139  000026   2FCC(1)  	b0mov	wdtr,a		;清狗
   140  000027   C06E(2)  	call	mn_intgnd		;中断与底层驱动的中间函数
   141  000028   C07D(2)  	call	mn_key			;按键扫描
   142  000029   C0B9(2)  	call	mn_app			;用户应用程序
   143  00002A   C0CC(2)  	call	mn_led
   144  00002B   8025(2)  	jmp	main
   145  00002C             /************************************************
   146  00002C               include file                          
   147  00002C             *************************************************/
   148  00002C             	INCLUDE		light_init.asm
   149  00002C             ;***********************************************************************************************
   150  00002C             ;File name	:light_init.asm
   151  00002C             ;Author		:guangyu_yang
   152  00002C             ;Purpose	:Training
   153  00002C             ;Data		:2/8/2007
   154  00002C             ;Dscription	:系统初始化				
   155  00002C             ;Version:	v1.1
   156  00002C             ;Hardware&IDE:	m2 1.14
   157  00002C             ;Copyright(C).SONIX TECHNOLOGY CO.,Ltd.		   
   158  00002C             ;*************************************************************************************************
   159  00002C             sysinit:
   160  00002C             	clrwdr			;清狗
   161  00002C   2D5A(1)  	mov	a,#5ah
   162  00002D   2FCC(1)  	b0mov	wdtr,a		;清狗
   163  00002E   C033(2)  	call	init_oscm	;系统运行状态初始化
   164  00002F   C036(2)  	call	init_ram	;ram初始化
   165  000030   C045(2)  	call	init_io		;io口初始化
   166  000031   C059(2)  	call	init_t0		;t0初始化
   167  000032   0E00(2)  	ret
   168  000033              /**************************************************
   169  000033               Subroutine:        init_oscm                                  
   170  000033               Description:       初始化震荡模式                                
   171  000033               Calls:     	     N0                                              
   172  000033               Variables:         N0                                  
   173  000033               Input:             N0                                    
   174  000033               Output:            N0                                   
   175  000033             *************************************************/
   176  000033             
   177  000033             init_oscm:
   178  000033   2D00(1)  	mov	a,#00h		;系统在正常状态运行
   179  000034   2FCA(1)  	b0mov	oscm,a
   180  000035   0E00(2)   	ret
   181  000036             
   182  000036             
   183  000036              /**************************************************
   184  000036               Subroutine:        init_oscm                                  
   185  000036               Description:       初始化RAM,将RAM中的单元清0                          
   186  000036               Calls:     	     N0                                              
   187  000036               Variables:         N0                                  
   188  000036               Input:             N0                                    
   189  000036               Output:            N0                                   
   190  000036             *************************************************/
   191  000036             ;clear BANK0
   192  000036             
   193  000036             init_ram:                    		   	
   194  000036   2B84(1)          clr	Y               
   195  000037   337F(1)  	b0mov   Z , #7fh
   196  000038             clr_bank0:               
   197  000038   2BE7(1)  	clr     @YZ
   198  000039   2683(1+S)  	decms   Z
   199  00003A   8038(2)  	jmp     clr_bank0
   200  00003B   2BE7(1)  	clr     @YZ
   201  00003C             
   202  00003C             ;clear BAKN1
   203  00003C   2D01(1)  	mov	a,#1
   204  00003D   2F84(1)  	b0mov	Y,A
   205  00003E   2D7F(1)  	mov	A,#0x7f
   206  00003F   2F83(1)  	b0mov	Z,A					;Set @YZ address from 17fh
   207  000040             
   208  000040             ClrRAM20:
   209  000040   2BE7(1)  	clr 		@YZ				;Clear @YZ content
   210  000041   2683(1+S)  	decms		Z   				;z = z - 1 , skip next if z=0
   211  000042   8040(2)  	jmp 		ClrRAM20
   212  000043   2BE7(1)  	clr 		@YZ				;Clear address 0x100
   213  000044   0E00(2)  	ret
   214  000045             		 
   215  000045              /**************************************************
   216  000045               Subroutine:        init_i/o                                  
   217  000045               Description:       初始化I/O                               
   218  000045               Calls:     	     N0                                              
   219  000045               Variables:         N0                                  
   220  000045               Input:             N0                                    
   221  000045               Output:            N0                                   
   222  000045             *************************************************/
   223  000045             init_io:
   224  000045             ;p1口初始化
   225  000045   2DFF(1)  	mov	a,#0ffh		;设置p1口为输入,上拉
   226  000046   2FE1(1)  	b0mov	p1ur,a
   227  000047   2D00(1)  	mov	a,#0		;注意这里,否则读入的结果有错误。
   228  000048   2FC1(1)  	b0mov	p1m,a
   229  000049             ;p2口初始化
   230  000049   2D00(1)   	mov	a,#0
   231  00004A   1FD2(1)  	mov	p2,a	
   232  00004B   1FC2(1)  	mov	p2m,a	
   233  00004C             
   234  00004C             ;P0口初始化
   235  00004C   2BD0(1)  	clr	p0
   236  00004D   2D00(1)  	mov	a,#0
   237  00004E   1FB8(1)  	mov	p0m,a
   238  00004F             ;P3口初始化
   239  00004F   2BD3(1)  	clr	p3
   240  000050   2D00(1)  	mov	a,#0
   241  000051   1FC3(1)  	mov	p3m,a

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -