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

📄 lcd.asl

📁 一款智能老鼠的玩具源代码
💻 ASL
字号:
+                     1 ;*###################################################;
+                     2 ;company:cansum			writed by:he qigrang
+                     3 ; 				date:2004-7-2
+                     4 ;
+                     5 ;####################################################;
+                     6 
+B 00 01

+                     7 	.area	display_var(data)
+                     8 
+                     9 ;===============================;以下的都是临时寄存器,可释放的。
+                    10 ;-------------------------------;十进制数
0000                 11 	h_temp0::	.ds	1	;要显示的低位	
0001                 12 	h_temp1::	.ds	1	;要显示的中位
0002                 13 	h_temp2::	.ds	1	;要显示的高位
+                    14 ;------------------------------difine RAM(DISPLAY)
0003                 15 	h_dis_ram0::	.ds	1
0004                 16 	h_dis_ram1::	.ds	1
0005                 17 	h_dis_ram2::	.ds	1
0006                 18 	h_dis_ram3::	.ds	1
0007                 19 	h_dis_ram4::	.ds	1
+                    20 ;------------------------------
0008                 21 	adrptr::        .ds	2
000A                 22 	temp0::		.ds	1
000B                 23 	temp1::		.ds	1
000C                 24 	temp2::		.ds	1
+                    25 ;===============================;
+B 00 02

+                    26 	.area	display_code(code)
+                    27 	
0000                 28 lcd_display::	
0000 20 00 0D        29 	call	h_clr_dis_ram		;清除显存
0003 20 00 1A        30 	call	h_x_to_a		;16进制变为10进制
0006 20 00 6A        31 	call	h_check_table		;查表得到显示数据
0009 20 01 2C        32 	call	h_dis_all		;把数据送到显存
000C 24              33 	ret
+                    34  ;***************************************;
000D                 35 h_clr_dis_ram:
000D F3 00           36 	lda	#0
000F FD 03           37 	sta	h_dis_ram0
0011 FD 04           38 	sta	h_dis_ram1
0013 FD 05           39 	sta	h_dis_ram2
0015 FD 06           40 	sta	h_dis_ram3
0017 FD 07           41 	sta	h_dis_ram4
0019 24              42 	ret
+                    43 ;****************************************;
+                    44 ;有个转换公式的(可以把程序写得好短),但我忘了,
+                    45 ;又查不到资料,我就是差的。现用了最笨的方法,。
+                    46 ;-----------------------------------------
001A                 47 h_x_to_a:
001A F1 00           48 	lda	cnt_point
001C FD 0A           49 	sta	temp0
001E F1 01           50 	lda	cnt_point+1
0020 FD 0B           51 	sta	temp1
0022 F3 00           52 	lda	#0
0024 FD 00           53 	sta	h_temp0
0026 FD 01           54 	sta	h_temp1
0028 FD 02           55 	sta	h_temp2
002A                 56 h_x_to_a_1:				
002A F1 0A           57 	lda	temp0
002C A7 0A           58 	cmpe	#10			;低位是小于十吗?
002E 05 00 4B        59 	brnc	h_x_to_a_2
+                    60 	;lda	temp0
0031 AB 0A           61 	suba    #10
0033 FD 0A           62 	sta     temp0
0035 F1 01           63 	lda	h_temp1
0037 1F              64 	inca
0038 FD 01           65 	sta	h_temp1
003A A7 0A           66 	cmpe	#10
003C 05 00 2A        67 	brnc	h_x_to_a_1
+                    68 	;lda	h_temp1
003F AB 0A           69 	suba	#10
0041 FD 01           70 	sta	h_temp1
0043 F1 02           71 	lda	h_temp2
0045 1F              72 	inca
0046 FD 02           73 	sta	h_temp2
0048 02 00 2A        74 	br	h_x_to_a_1
004B                 75 h_x_to_a_2:
004B F1 0B           76 	lda	temp1
004D A7 00           77 	cmpe	#0
004F 06 00 65        78 	brz	h_x_to_a_3
0052 F1 01           79 	lda	h_temp1
0054 1F              80 	inca
0055 FD 01           81 	sta	h_temp1
0057 F3 F6           82 	lda	#246
0059 89 0A           83 	adda	temp0
005B FD 0A           84 	sta	temp0
005D F1 0B           85 	lda	temp1
005F 3F              86 	deca				;高位减一
0060 FD 0B           87 	sta	temp1
0062 02 00 2A        88 	br	h_x_to_a_1
0065                 89 h_x_to_a_3:
0065 F1 0A           90 	lda	temp0
0067 FD 00           91 	sta	h_temp0
0069 24              92 	ret
+                    93 	
+                    94 ;*******************************************;
+                    95 ;*******************************************;
+                    96 
006A                 97 h_check_table:
006A F1 02           98 	lda	h_temp2			;求高位的表值数
006C A7 00           99 	cmpe	#0			;如高位是零,不用显示
006E 06 00 7E       100 	brz	h_dis_middle
0071 FD 0A          101 	sta	temp0
0073 20 00 CE       102 	call	h_get_table
0076 F1 0A          103 	lda	temp0
0078 FD 03          104 	sta	h_dis_ram0
007A F1 0B          105 	lda	temp1
007C FD 04          106 	sta	h_dis_ram1
007E                107 h_dis_middle:
007E F1 01          108 	lda	h_temp1
0080 A7 00          109 	cmpe	#0
0082 06 00 88       110 	brz	h_check_high
0085 02 00 8F       111 	br	h_dis_middle1
0088                112 h_check_high:
0088 F1 02          113 	lda	h_temp2
008A A7 00          114 	cmpe	#0
008C 06 00 BE       115 	brz	h_dis_low
008F                116 h_dis_middle1:	
008F F1 01          117 	lda	h_temp1			;求中间位的表值
0091 FD 0A          118 	sta	temp0
0093 20 00 CE       119 	call	h_get_table
0096 F1 0A          120 	lda	temp0
0098 8B 00          121 	adda	#0			;clear cy
009A 7E             122 	rolc				;左移四位
009B 7E             123 	rolc
009C 7E             124 	rolc
009D 7E             125 	rolc
009E CB F0          126 	anda	#11110000b
00A0 D9 04          127 	ora	h_dis_ram1
00A2 FD 04          128 	sta	h_dis_ram1
00A4 F1 0A          129 	lda	temp0
00A6 8B 00          130 	adda	#0			;clear cy
00A8 7F             131 	rorc				;右移四位
00A9 7F             132 	rorc
00AA 7F             133 	rorc
00AB 7F             134 	rorc
00AC CB 0F          135 	anda	#00001111b
00AE FD 05          136 	sta	h_dis_ram2
00B0 F1 0B          137 	lda	temp1
00B2 8B 00          138 	adda	#0			;clear cy
00B4 7E             139 	rolc				;左移四位
00B5 7E             140 	rolc
00B6 7E             141 	rolc
00B7 7E             142 	rolc
00B8 CB F0          143 	anda	#11110000b
00BA D9 05          144 	ora	h_dis_ram2
00BC FD 05          145 	sta	h_dis_ram2
00BE                146 h_dis_low:
00BE F1 00          147 	lda	h_temp0			;求低位的表值
00C0 FD 0A          148 	sta	temp0
00C2 20 00 CE       149 	call	h_get_table
00C5 F1 0A          150 	lda	temp0
00C7 FD 06          151 	sta	h_dis_ram3
00C9 F1 0B          152 	lda	temp1
00CB FD 07          153 	sta	h_dis_ram4
00CD 24             154 	ret
+                   155 ;=====================================;
+                   156 ;intput:temp0
+                   157 ;output:temp0,temp1
+                   158 ;-------------------------------------	
00CE                159 h_get_table:
00CE F3 01          160 	lda	#>(h_table)		;送表头值
00D0 FD 09          161 	sta	adrptr+1
00D2 F3 18          162 	lda	#<(h_table)
00D4 FD 08          163 	sta	adrptr
00D6                164 h_getnum:
00D6 F1 0A          165 	lda  	temp0			;
00D8 A7 00          166       	cmpe 	#0
00DA 06 00 F1       167       	brz  	h_ready
00DD F1 0A          168       	lda  	temp0
00DF 3F             169       	deca
00E0 FD 0A          170       	sta  	temp0
+                   171       
00E2 F1 08          172       	lda  	adrptr
00E4 8B 02          173       	adda 	#2
00E6 FD 08          174       	sta  	adrptr
00E8 F3 00          175       	lda  	#0
00EA 99 09          176       	addc 	adrptr+1
00EC FD 09          177       	sta  	adrptr+1
00EE 02 00 D6       178       	br	h_getnum
00F1                179 h_ready:
00F1 F1 09          180 	lda  	adrptr+1
00F3 FC 02          181       	sta  	tph
00F5 F1 08          182       	lda  	adrptr
00F7 FC 01          183       	sta  	tpl
00F9                184 h_ready_ok:
00F9 F0 22          185 	lda	r_op1
00FB CB 80          186 	anda	#10000000b
00FD 06 00 F9       187 	brz	h_ready_ok
0100 F8             188       	ldv
0101 FD 0A          189 	sta	temp0
0103 F1 08          190 	lda  	adrptr
0105 1F             191       	inca
0106 FD 08          192       	sta  	adrptr
0108 F3 00          193       	lda  	#0
010A 99 09          194       	addc 	adrptr+1
010C FD 09          195       	sta  	adrptr+1
010E FC 02          196       	sta  	tph
0110 F1 08          197       	lda  	adrptr
0112 FC 01          198       	sta  	tpl
0114 F8             199       	ldv
0115 FD 0B          200       	sta	temp1
0117 24             201       	ret
0118                202 h_table:
0118 56 03          203 	db	01010110b,00000011b	;0
011A 00 03          204 	db      00000000b,00000011b	;1
011C 74 01          205 	db	01110100b,00000001b	;2
011E 70 03          206 	db	01110000b,00000011b	;3
0120 22 03          207 	db	00100010b,00000011b	;4
0122 72 02          208 	db	01110010b,00000010b	;5
0124 76 02          209 	db	01110110b,00000010b	;6
0126 10 03          210 	db	00010000b,00000011b	;7
0128 76 03          211 	db	01110110b,00000011b	;8
012A 72 03          212 	db	01110010b,00000011b	;9
+                   213 ;=========================================;	
+                   214 ;*****************************************;
+                   215 ;*****************************************;
012C                216 h_dis_all:				;送到真正的显存
012C F1 03          217 	lda	h_dis_ram0
012E FD F0          218 	sta	0f0h
0130 F1 04          219 	lda	h_dis_ram1
0132 FD F1          220 	sta	0f1h
0134 F1 05          221 	lda	h_dis_ram2
0136 FD F2          222 	sta	0f2h
0138 F1 06          223 	lda	h_dis_ram3
013A FD F3          224 	sta	0f3h
013C F1 07          225 	lda	h_dis_ram4
013E FD F4          226 	sta	0f4h
0140 24             227 	ret
+                   228 ;****************************************;
+
+Symbol Table
+
+  1 adrptr                             0008 GR
+    cnt_point                          **** GX
+  2 h_check_high                       0088 R
+  2 h_check_table                      006A R
+  2 h_clr_dis_ram                      000D R
+  2 h_dis_all                          012C R
+  2 h_dis_low                          00BE R
+  2 h_dis_middle                       007E R
+  2 h_dis_middle1                      008F R
+  1 h_dis_ram0                         0003 GR
+  1 h_dis_ram1                         0004 GR
+  1 h_dis_ram2                         0005 GR
+  1 h_dis_ram3                         0006 GR
+  1 h_dis_ram4                         0007 GR
+  2 h_get_table                        00CE R
+  2 h_getnum                           00D6 R
+  2 h_ready                            00F1 R
+  2 h_ready_ok                         00F9 R
+  2 h_table                            0118 R
+  1 h_temp0                            0000 GR
+  1 h_temp1                            0001 GR
+  1 h_temp2                            0002 GR
+  2 h_x_to_a                           001A R
+  2 h_x_to_a_1                         002A R
+  2 h_x_to_a_2                         004B R
+  2 h_x_to_a_3                         0065 R
+  2 lcd_display                        0000 GR
+  1 temp0                              000A GR
+  1 temp1                              000B GR
+  1 temp2                              000C GR
+
+
+Area Table
+
+   0 .                                  size    0   flags 0
+   1 display_var                        size    D   flags 2
+   2 display_code                       size  141   flags 1

⌨️ 快捷键说明

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