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

📄 keynum-ts12864a-3.lst

📁 单片机中LED显示/数码管显示/键盘控制/蜂鸣器输出/中断应用/定时器和计数器/串口通信/键控看门狗/数据交换
💻 LST
📖 第 1 页 / 共 2 页
字号:
0106 C2A2            177               CLR EN
0108 22              178               RET
                     179     ;=============================================
                     180     ;写数据使能子程序
                     181     ;RS=H,RW=L,D0-D7=数据,E=高脉冲
                     182     ;=============================================
0109                 183     WDATA:
0109 F580            184               MOV   P0,A
010B D2A0            185               SETB  RS
010D C2A1            186               CLR   RW
010F D2A2            187               SETB  EN
0111 3116            188               CALL  DELAY0
0113 C2A2            189               CLR   EN
0115 22              190               RET
                     191     
0116 7FFA            192     DELAY0:   MOV  R7,#250      ;延时500微秒
0118 DFFE            193               DJNZ  R7,$
011A 22              194               RET
                     195     ;===============================================
                     196     ;在 LCM 第三行、第四行显示字符
                     197     ;A=ASC DATA, B=LINE X POS
                     198     ;===============================================
011B                 199     LCDP3:                    ;在LCD的第三行显示字符
011B C0E0            200              PUSH  ACC        ;
011D E5F0            201              MOV  A,B         ;设置显示地址
011F 2488            202              ADD  A,#088H     ;设置LCD的第三行地址
0121 11FC            203              CALL  WCOM       ;写入命令
0123 D0E0            204              POP  ACC         ;由堆栈取出A
0125 3109            205              CALL  WDATA      ;写入数据
0127 22              206              RET
                     207     
                     208     ;LCDP4:                    ;在LCD的第四行显示字符
0128 C0E0            209              PUSH  ACC        ;
012A E5F0            210              MOV  A,B         ;设置显示地址
012C 2498            211              ADD  A,#098H     ;设置LCD的第四行地址
012E 11FC            212              CALL  WCOM       ;写入命令
0130 D0E0            213              POP  ACC         ;由堆栈取出A
0132 3109            214              CALL  WDATA      ;写入数据
0134 22              215              RET
                     216     ;========================================================
                     217     ;矩阵键盘键值读取子程序
                     218     ;(A)=键值
                     219     ;========================================================
0135 7590F0          220     KEY_IN:    MOV  P1,#0F0H          ;置列线为0,行线为1
0138 E590            221                MOV  A,P1
013A 54F0            222                ANL  A,#0F0H
013C F5F0            223                MOV  B,A
013E 75900F          224                MOV  P1,#0FH           ;置列线为1,行线为0
0141 E590            225                MOV  A,P1
0143 540F            226                ANL  A,#0FH
0145 45F0            227                ORL  A,B               ;高四位与低四位重新组合
0147 B4FF01          228                CJNE  A,#0FFH,KEY_IN1  ;0FFH为末按键
014A 22              229                RET
014B F5F0            230     KEY_IN1:   MOV  B,A
014D 9001A3          231                MOV  DPTR,#KEYTABLE
0150 7BFF            232                MOV  R3,#0FFH
0152 0B              233     KEY_IN2:   INC  R3
0153 EB              234                MOV  A,R3
0154 93              235                MOVC  A,@A+DPTR
0155 B5F006          236                CJNE  A,B,KEY_IN3
0158 EB              237                MOV  A,R3              ;找到,取顺序码
0159 7D08            238                MOV  R5,#08H           ;延时
015B 318F            239                CALL  DELAY
015D 22              240                RET
015E B4FFF1          241     KEY_IN3:   CJNE  A,#0FFH,KEY_IN2  ;末完,继续查
A51 MACRO ASSEMBLER  KEYNUM_TS12864A_3                                                    12/20/2006 22:45:45 PAGE     5

0161 22              242                RET                    ;0FFH为结束码
                     243     
                     244     
                     245     ;===============================================
                     246     ;编码转换为 ASCII 码并显示
                     247     ;===============================================
0162                 248     KEY_CONV:
0162 F522            249               MOV   22H,A
0164 752605          250               MOV   X,#5        ;设置显示起始位置
0167 540F            251               ANL   A,#0FH        ;取出低四位二进制数
0169 C0E0            252               PUSH  ACC
016B C3              253               CLR   C
016C 940A            254               SUBB  A,#0AH        ;减10
016E D0E0            255               POP   ACC
0170 4002            256               JC    ASCII1        ;该数小于10,转ASCII0
0172 2407            257               ADD   A,#07H        ;大于10的数加上37H
0174 2430            258     ASCII1:   ADD   A,#30H        ;小于10的数加上30H
0176 8526F0          259               MOV   B,X
0179 311B            260               CALL  LCDP3
017B 22              261               RET
                     262     ;===================================================
                     263     ;蜂鸣器响一声子程序
                     264     ;===================================================
017C                 265     BEEP_BL:
017C 7E64            266              MOV  R6,#100
017E 3189            267       BL1:   CALL  DEX1
0180 B2B7            268              CPL  BEEP
0182 DEFA            269              DJNZ  R6,BL1
0184 7D19            270              MOV  R5,#25
0186 318F            271              CALL  DELAY
0188 22              272              RET
0189 7FB4            273      DEX1:   MOV  R7,#180
018B 00              274      DEX2:   NOP
018C DFFD            275              DJNZ  R7,DEX2
018E 22              276              RET
018F                 277      DELAY:                    ;延时R5×10MS
018F 7E32            278              MOV  R6,#50
0191 7F64            279       D1:    MOV  R7,#100
0193 DFFE            280              DJNZ  R7,$
0195 DEFA            281              DJNZ  R6,D1
0197 DDF6            282              DJNZ  R5,DELAY
0199 22              283              RET
                     284     ;======================================================
                     285     ;延时5MS
                     286     ;======================================================
019A                 287      DELAY1:
019A 7E19            288              MOV  R6,#25
019C 7F64            289       DL2:   MOV  R7,#100
019E DFFE            290              DJNZ  R7,$
01A0 DEFA            291              DJNZ  R6,DL2
01A2 22              292              RET
                     293     ;======================================================
                     294     ;键值顺序码
                     295     ;======================================================
01A3                 296      KEYTABLE:
                     297     
01A3 EEEDEBE7        298         DB  0EEH,0EDH,0EBH,0E7H,0DEH  ;0,1,2,3,4,  顺序码
01A7 DE                      
01A8 DDDBD7BE        299         DB  0DDH,0DBH,0D7H,0BEH,0BDH  ;5,6,7,8,9,
01AC BD                      
01AD BBB77E7D        300         DB  0BBH,0B7H,07EH,07DH,07BH  ;A,B,C,D,E,
01B1 7B                      
01B2 77FF            301         DB  077H,0FFH                 ;F      0FF为结束码
                     302     ;======================================================
                     303             END
A51 MACRO ASSEMBLER  KEYNUM_TS12864A_3                                                    12/20/2006 22:45:45 PAGE     6

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ACC. . . . . . . .  D ADDR   00E0H   A   
ASCII1 . . . . . .  C ADDR   0174H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
BEEP . . . . . . .  B ADDR   00B0H.7 A   
BEEP_BL. . . . . .  C ADDR   017CH   A   
BL1. . . . . . . .  C ADDR   017EH   A   
CL1. . . . . . . .  C ADDR   0092H   A   
CLR_LINE . . . . .  C ADDR   0090H   A   
D1 . . . . . . . .  C ADDR   0191H   A   
DELAY. . . . . . .  C ADDR   018FH   A   
DELAY0 . . . . . .  C ADDR   0116H   A   
DELAY1 . . . . . .  C ADDR   019AH   A   
DEX1 . . . . . . .  C ADDR   0189H   A   
DEX2 . . . . . . .  C ADDR   018BH   A   
DL2. . . . . . . .  C ADDR   019CH   A   
EN . . . . . . . .  B ADDR   00A0H.2 A   
FILL . . . . . . .  C ADDR   0084H   A   
KEYTABLE . . . . .  C ADDR   01A3H   A   
KEY_CONV . . . . .  C ADDR   0162H   A   
KEY_IN . . . . . .  C ADDR   0135H   A   
KEY_IN1. . . . . .  C ADDR   014BH   A   
KEY_IN2. . . . . .  C ADDR   0152H   A   
KEY_IN3. . . . . .  C ADDR   015EH   A   
LC1. . . . . . . .  C ADDR   008AH   A   
LCDP3. . . . . . .  C ADDR   011BH   A   
LCD_SHOW . . . . .  C ADDR   004AH   A   
LINE1. . . . . . .  C ADDR   004DH   A   
LINE2. . . . . . .  C ADDR   0059H   A   
LINE3. . . . . . .  C ADDR   0068H   A   
LINE4. . . . . . .  C ADDR   0077H   A   
LINE5. . . . . . .  C ADDR   0089H   A   
LOOP0. . . . . . .  C ADDR   0009H   A   
LOOP1. . . . . . .  C ADDR   001DH   A   
LOOP2. . . . . . .  C ADDR   0027H   A   
MAIN . . . . . . .  C ADDR   0002H   A   
MENU1. . . . . . .  C ADDR   0099H   A   
MENU1A . . . . . .  C ADDR   00A1H   A   
MENU2. . . . . . .  C ADDR   00B2H   A   
MENU2A . . . . . .  C ADDR   00BAH   A   
MENU3. . . . . . .  C ADDR   00CBH   A   
MENU3A . . . . . .  C ADDR   00D3H   A   
MENU4. . . . . . .  C ADDR   00E3H   A   
MENU4A . . . . . .  C ADDR   00EBH   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
PSB. . . . . . . .  B ADDR   00A0H.3 A   
RELAY. . . . . . .  B ADDR   0090H.3 A   
RS . . . . . . . .  B ADDR   00A0H.0 A   
RST. . . . . . . .  B ADDR   00A0H.5 A   
RW . . . . . . . .  B ADDR   00A0H.1 A   
SET_LCD. . . . . .  C ADDR   002FH   A   
SP . . . . . . . .  D ADDR   0081H   A   
WCOM . . . . . . .  C ADDR   00FCH   A   
WDATA. . . . . . .  C ADDR   0109H   A   
X. . . . . . . . .  N NUMB   0026H   A   


REGISTER BANK(S) USED: 0 
A51 MACRO ASSEMBLER  KEYNUM_TS12864A_3                                                    12/20/2006 22:45:45 PAGE     7


ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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