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

📄 traffic light firmware.lst

📁 交通灯汇编程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
   192  00008A             CHECKE18:
   193  00008A   2D18(1)  	MOV	A,#18H
   194  00008B   07D1(1+S)  	CMPRS	A,P1
   195  00008C   808E(2)  	JMP	CHECKE14
   196  00008D   809A(2)  	JMP	SETE20		;检查led是否为18h,设定东边为20s
   197  00008E             CHECKE14:
   198  00008E   2D14(1)  	MOV	A,#14H
   199  00008F   07D1(1+S)  	CMPRS	A,P1
   200  000090   8092(2)  	JMP	CHECKE42
   201  000091   809F(2)  	JMP	SETE03		;检查led是否为14h,设定东边为03s
   202  000092             CHECKE42:
   203  000092   2D42(1)  	MOV	A,#42H
   204  000093   07D1(1+S)  	CMPRS	A,P1
   205  000094   8096(2)  	JMP	CHECKE22
   206  000095   80A4(2)  	JMP	SETE17		;检查led是否为14h,设定东边为17s
   207  000096             CHECKE22:
   208  000096   2D22(1)  	MOV	A,#22H
   209  000097   07D1(1+S)  	CMPRS	A,P1
   210  000098   80B9(2)  	JMP	NORMAL01
   211  000099   809F(2)  	JMP	SETE03		;检查led是否为22h,设定东边为03s
   212  00009A             SETE20:
   213  00009A   2D01(1)  	MOV	A,#01
   214  00009B   1F12(1)  	MOV	E_L,A
   215  00009C   2D02(1)  	MOV	A,#02
   216  00009D   1F13(1)  	MOV	E_H,A
   217  00009E   80B9(2)  	JMP	NORMAL01
   218  00009F             SETE03:
   219  00009F   2D03(1)  	MOV	A,#03
   220  0000A0   1F12(1)  	MOV	E_L,A
   221  0000A1   2D00(1)  	MOV	A,#00
   222  0000A2   1F13(1)  	MOV	E_H,A
   223  0000A3   80B9(2)  	JMP	NORMAL01	
   224  0000A4             SETE17:
   225  0000A4   2D08(1)  	MOV	A,#08
   226  0000A5   1F12(1)  	MOV	E_L,A
   227  0000A6   2D01(1)  	MOV	A,#01
   228  0000A7   1F13(1)  	MOV	E_H,A
   229  0000A8   80B9(2)  	JMP	NORMAL01
   230  0000A9             ;*********************************
   231  0000A9             ;北边减一秒
   232  0000A9             ;*********************************
   233  0000A9             NORMAL00:
   234  0000A9   1E10(1)  	MOV	A,N_L		;北边秒低位
   235  0000AA   2401(1)  	SUB	A,#01		;减1
   236  0000AB   1F10(1)  	MOV	N_L,A
   237  0000AC             
   238  0000AC   1E10(1)  	MOV	A,N_L	
   239  0000AD   06FF(1+S)  	CMPRS	A,#0FFH		;比较是否为FF
   240  0000AE   80FA(2)  	JMP	EXIT_IRQ	;no,跳出中断
   241  0000AF   2D09(1)  	MOV	A,#09		;yes,赋值09
   242  0000B0   1F10(1)  	MOV	N_L,A
   243  0000B1             
   244  0000B1   1E11(1)  	MOV	A,N_H		;北边秒高位
   245  0000B2   2401(1)  	SUB	A,#01		;减1
   246  0000B3   1F11(1)  	MOV	N_H,A
   247  0000B4             
   248  0000B4   06FF(1+S)  	CMPRS	A,#0FFH		;比较是否为FF
   249  0000B5   80FA(2)  	JMP	EXIT_IRQ	;no,跳出中断
   250  0000B6   2D09(1)  	MOV	A,#09		;yes,赋值09
   251  0000B7   1F11(1)  	MOV	N_H,A
   252  0000B8             
   253  0000B8   80FA(2)  	JMP	EXIT_IRQ	;跳出中断
   254  0000B9             ;*********************************
   255  0000B9             ;南边减一秒
   256  0000B9             ;*********************************
   257  0000B9             NORMAL01:
   258  0000B9   1E12(1)  	MOV	A,E_L		;东边秒低位
   259  0000BA   2401(1)  	SUB	A,#01		;减1
   260  0000BB   1F12(1)  	MOV	E_L,A	
   261  0000BC             
   262  0000BC   1E12(1)  	MOV	A,E_L	
   263  0000BD   06FF(1+S)  	CMPRS	A,#0FFH		;比较是否为FF
   264  0000BE   80FA(2)  	JMP	EXIT_IRQ	;no,跳出中断
   265  0000BF   2D09(1)  	MOV	A,#09		;yes,赋值09
   266  0000C0   1F12(1)  	MOV	E_L,A
   267  0000C1             
   268  0000C1   1E13(1)  	MOV	A,E_H		;东边秒高位
   269  0000C2   2401(1)  	SUB	A,#01		;减1
   270  0000C3   1F13(1)  	MOV	E_H,A
   271  0000C4   06FF(1+S)  	CMPRS	A,#0FFH		;比较是否为FF
   272  0000C5   80FA(2)  	JMP	EXIT_IRQ	;no,跳出中断
   273  0000C6   2D09(1)  	MOV	A,#09		;yes,赋值09
   274  0000C7   1F13(1)  	MOV	E_H,A
   275  0000C8   80FA(2)  	JMP	EXIT_IRQ	;跳出中断
   276  0000C9             ;*********************************
   277  0000C9             ;选择中断
   278  0000C9             ;*********************************
   279  0000C9             CYC:
   280  0000C9   7EC9(1+S)  	B0BTS1	FTC1IEN
   281  0000CA   80CD(2)  	JMP	@F
   282  0000CB   76C8(1+S)  	B0BTS0	FTC1IRQ
   283  0000CC   803E(2)  	JMP	MY_IRQ
   284  0000CD             @@:
   285  0000CD   7CC9(1+S)  	B0BTS1	FT0IEN
   286  0000CE   80FA(2)  	JMP	EXIT_IRQ
   287  0000CF   74C8(1+S)  	B0BTS0	FT0IRQ
   288  0000D0   807A(2)  	JMP	INTT0
   289  0000D1   0E00(2)  	RET
   290  0000D2             ;*********************************
   291  0000D2             ;初始化
   292  0000D2             ;*********************************
   293  0000D2             INIT_IO:
   294  0000D2   2DFF(1)  	MOV	A,#0FFH
   295  0000D3   1FC1(1)  	MOV	P1M,A
   296  0000D4   1FC2(1)  	MOV	P2M,A
   297  0000D5   1FC5(1)  	MOV	P5M,A
   298  0000D6   1FD2(1)  	MOV	P2,A
   299  0000D7   2BD1(1)  	CLR	P1
   300  0000D8   0E00(2)  	RET
   301  0000D9             INIT_DATA:
   302  0000D9   2B00(1)  	CLR	DLY1
   303  0000DA   2B02(1)  	CLR	DLY2
   304  0000DB   2B10(1)  	CLR	N_L
   305  0000DC   2B11(1)  	CLR	N_H
   306  0000DD   2B12(1)  	CLR	E_L
   307  0000DE   2B13(1)  	CLR	E_H
   308  0000DF   0E00(2)  	RET
   309  0000E0             ;初始化TC1
   310  0000E0             INIT_TIMER:
   311  0000E0   66C9(1)  	B0BCLR	FTC1IEN		;关闭中断
   312  0000E1   67DC(1)  	B0BCLR	FTC1ENB
   313  0000E2   2D04(1)  	MOV	A,#00000100B
   314  0000E3   1FDC(1)  	MOV	TC1M,A		;设定tc1 clock=Fcpu/256
   315  0000E4   2D3D(1)  	MOV	A,#61
   316  0000E5   1FDD(1)  	MOV	TC1C,A		;设定每50ms中断一次
   317  0000E6   2D14(1)  	MOV	A,#20
   318  0000E7   1F04(1)  	MOV	TIMER00,A
   319  0000E8             
   320  0000E8   6EC9(1)  	B0BSET	FTC1IEN
   321  0000E9   66C8(1)  	B0BCLR	FTC1IRQ
   322  0000EA   6FDC(1)  	B0BSET	FTC1ENB
   323  0000EB   6FDF(1)  	B0BSET	FGIE
   324  0000EC   0E00(2)  	RET
   325  0000ED             ;初始化T0
   326  0000ED             INIT_TC0:
   327  0000ED   64C9(1)  	B0BCLR	FT0IEN		;关闭中断
   328  0000EE   67D8(1)  	B0BCLR	FT0ENB
   329  0000EF   2D04(1)  	MOV	A,#00000100B
   330  0000F0   1FD8(1)  	MOV	T0M,A		;设定tc1 clock=Fcpu/256
   331  0000F1   2D3D(1)  	MOV	A,#61
   332  0000F2   1FD9(1)  	MOV	T0C,A		;设定每50ms中断一次
   333  0000F3   2D14(1)  	MOV	A,#20
   334  0000F4   1F05(1)  	MOV	TIMER01,A
   335  0000F5             
   336  0000F5   6CC9(1)  	B0BSET	FT0IEN
   337  0000F6   64C8(1)  	B0BCLR	FT0IRQ
   338  0000F7   6FD8(1)  	B0BSET	FT0ENB
   339  0000F8   6FDF(1)  	B0BSET	FGIE
   340  0000F9   0E00(2)  	RET
   341  0000FA             EXIT_IRQ:
   342  0000FA   0500(1)  	POP
   343  0000FB   0F00(2)  	RETI
   344  0000FC             ;********************************
   345  0000FC             ;查表
   346  0000FC             ;********************************
   347  0000FC             BCD_DISP:
   348  0000FC   3401(1)  	B0MOV	Y,#TABLE$M
   349  0000FD   3302(1)  	B0MOV	Z,#TABLE$L
   350  0000FE   1283(1)  	ADD	A,Z
   351  0000FF   1F83(1)  	MOV	Z,A
   352  000100   0D00(2)  	MOVC
   353  000101   0E00(2)  	RET
   354  000102             ;********************************
   355  000102             ;数据表
   356  000102             ;********************************
   357  000102             TABLE:
   358  000102   01C0(1)  	DW	01C0H
   359  000103   01F9(1)  	DW	01F9H
   360  000104   01A4(1)  	DW	01A4H
   361  000105   01B0(1)  	DW	01B0H
   362  000106   0199(1)  	DW	0199H
   363  000107   0192(1)  	DW	0192H
   364  000108   0182(1)  	DW	0182H
   365  000109   01F8(1)  	DW	01F8H
   366  00010A   0180(1)  	DW	0180H
   367  00010B   0190(1)  	DW	0190H
   368  00010C             DELAY:
   369  00010C   2D60(1)  	MOV	A,#60H
   370  00010D   1F00(1)  	MOV	DLY1,A
   371  00010E             
   372  00010E   2D04(1)  	MOV	A,#04H
   373  00010F   1F02(1)  	MOV	DLY2,A
   374  000110             @@:
   375  000110   2600(1+S)  	DECMS	DLY1
   376  000111   8110(2)  	JMP	@B
   377  000112   2602(1+S)  	DECMS	DLY2
   378  000113   8110(2)  	JMP	@B
   379  000114   0E00(2)  	RET
   380  000115             	ENDP	
   381  000115             	

⌨️ 快捷键说明

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