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

📄 putchar.ls1

📁 单片机实现消息队列的例子
💻 LS1
📖 第 1 页 / 共 2 页
字号:
                     166     ; /*
                     167     ;  * putchar (mini version): outputs charcter only
                     168     ;  */
                     169     ; char putchar (char c)  
                     170     ; {
                     171     ;   while (!TI);
                     172     ;   TI = 0;
                     173     ;   return (SBUF = c);
                     174     ; }
                     175     ; #endif
                     176     ; 
                     177     ; #if 1                                         
                     178     ; /****************************************************************************************
                             **
                     179     ; *函数名:              putchar
                     180     ; *参数:                        c
                     181     ; *返回值:              无
                     182     ; *描述:                        为配合UART中断接收而修改的函数,主要修改TI和ES
                     183     ; *编写:                        王绍伟
                     184     ; *版本信息:            V1.0                    2003年8月15日
                     185     ; *****************************************************************************************
                             */
                     186     ; char putchar (char c)
                     187     
A51 MACRO ASSEMBLER  PUTCHAR                                                              10/31/2003 02:22:25 PAGE     4

----                 188             RSEG  ?PR?_putchar?PUTCHAR
0000                 189     _putchar:
                     190             USING   0
                     191                             ; SOURCE LINE # 108
                     192     ;---- Variable 'c?040' assigned to Register 'R7' ----
                     193     ; {
                     194                             ; SOURCE LINE # 109
                     195     ;       bit bES;
                     196     ;       bES=ES;                 /*r暂存ES内容*/
                     197                             ; SOURCE LINE # 111
0000 A2AC            198             MOV     C,ES
0002 9200     F      199             MOV     bES?041,C
                     200     ;       ES=0;                   /*r若 想利用TI标志位,就必须先禁止串口中断,否则会冲突*/
                     201                             ; SOURCE LINE # 112
0004 C2AC            202             CLR     ES
                     203     ;       if (c == '\n')  /*r如果c为换行*/        
                     204                             ; SOURCE LINE # 113
0006 EF              205             MOV     A,R7
0007 B40A08          206             CJNE    A,#0AH,?C0001
                     207     ;       {
                     208                             ; SOURCE LINE # 114
                     209     ;               SBUF = 0x0d;
                     210                             ; SOURCE LINE # 115
000A 75990D          211             MOV     SBUF,#0DH
000D                 212     ?C0002:
                     213     ;               while(!TI);     /*r当TI为0时一直在循环*/
                     214                             ; SOURCE LINE # 116
000D 3099FD          215             JNB     TI,?C0002
0010                 216     ?C0003:
                     217     ;               TI=0;   /*r当TI为1时跳出循环,再将TI置为0*/
                     218                             ; SOURCE LINE # 117
0010 C299            219             CLR     TI
                     220     ;       }
                     221                             ; SOURCE LINE # 118
0012                 222     ?C0001:
                     223     ;       SBUF = c;
                     224                             ; SOURCE LINE # 119
0012 8F99            225             MOV     SBUF,R7
0014                 226     ?C0004:
                     227     ;       while(!TI);
                     228                             ; SOURCE LINE # 120
0014 3099FD          229             JNB     TI,?C0004
0017                 230     ?C0005:
                     231     ;       TI=0;
                     232                             ; SOURCE LINE # 121
0017 C299            233             CLR     TI
                     234     ;       ES=bES;                 /*待字符发送完毕后,再恢复串口中断允许*/
                     235                             ; SOURCE LINE # 122
0019 A200     F      236             MOV     C,bES?041
001B 92AC            237             MOV     ES,C
                     238     ;       return(1);
                     239                             ; SOURCE LINE # 123
001D 7F01            240             MOV     R7,#01H
                     241     ; }
                     242                             ; SOURCE LINE # 124
001F                 243     ?C0006:
001F 22              244             RET     
                     245     ; END OF _putchar
                     246     
                     247             END
A51 MACRO ASSEMBLER  PUTCHAR                                                              10/31/2003 02:22:25 PAGE     5

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


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

?BI?_PUTCHAR?PUTCHAR  B SEG    0001H       REL=UNIT
?C0001 . . . . . . .  C ADDR   0012H   R   SEG=?PR?_PUTCHAR?PUTCHAR
?C0002 . . . . . . .  C ADDR   000DH   R   SEG=?PR?_PUTCHAR?PUTCHAR
?C0003 . . . . . . .  C ADDR   0010H   R   SEG=?PR?_PUTCHAR?PUTCHAR
?C0004 . . . . . . .  C ADDR   0014H   R   SEG=?PR?_PUTCHAR?PUTCHAR
?C0005 . . . . . . .  C ADDR   0017H   R   SEG=?PR?_PUTCHAR?PUTCHAR
?C0006 . . . . . . .  C ADDR   001FH   R   SEG=?PR?_PUTCHAR?PUTCHAR
?PR?_PUTCHAR?PUTCHAR  C SEG    0020H       REL=UNIT
?_PUTCHAR?BIT. . . .  B ADDR   0000H.0 R   SEG=?BI?_PUTCHAR?PUTCHAR
AC . . . . . . . . .  B ADDR   00D0H.6 A   
ACC. . . . . . . . .  D ADDR   00E0H   A   
B. . . . . . . . . .  D ADDR   00F0H   A   
BES?041. . . . . . .  B ADDR   0000H.0 R   SEG=?BI?_PUTCHAR?PUTCHAR
CY . . . . . . . . .  B ADDR   00D0H.7 A   
DPH. . . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . . .  D ADDR   0082H   A   
EA . . . . . . . . .  B ADDR   00A8H.7 A   
ES . . . . . . . . .  B ADDR   00A8H.4 A   
ET0. . . . . . . . .  B ADDR   00A8H.1 A   
ET1. . . . . . . . .  B ADDR   00A8H.3 A   
EX0. . . . . . . . .  B ADDR   00A8H.0 A   
EX1. . . . . . . . .  B ADDR   00A8H.2 A   
F0 . . . . . . . . .  B ADDR   00D0H.5 A   
IE . . . . . . . . .  D ADDR   00A8H   A   
IE0. . . . . . . . .  B ADDR   0088H.1 A   
IE1. . . . . . . . .  B ADDR   0088H.3 A   
INT0 . . . . . . . .  B ADDR   00B0H.2 A   
INT1 . . . . . . . .  B ADDR   00B0H.3 A   
IP . . . . . . . . .  D ADDR   00B8H   A   
IT0. . . . . . . . .  B ADDR   0088H.0 A   
IT1. . . . . . . . .  B ADDR   0088H.2 A   
OV . . . . . . . . .  B ADDR   00D0H.2 A   
P. . . . . . . . . .  B ADDR   00D0H.0 A   
P0 . . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . . .  D ADDR   00B0H   A   
PCON . . . . . . . .  D ADDR   0087H   A   
PS . . . . . . . . .  B ADDR   00B8H.4 A   
PSW. . . . . . . . .  D ADDR   00D0H   A   
PT0. . . . . . . . .  B ADDR   00B8H.1 A   
PT1. . . . . . . . .  B ADDR   00B8H.3 A   
PUTCHAR. . . . . . .  N NUMB   -----       
PX0. . . . . . . . .  B ADDR   00B8H.0 A   
PX1. . . . . . . . .  B ADDR   00B8H.2 A   
RB8. . . . . . . . .  B ADDR   0098H.2 A   
RD . . . . . . . . .  B ADDR   00B0H.7 A   
REN. . . . . . . . .  B ADDR   0098H.4 A   
RI . . . . . . . . .  B ADDR   0098H.0 A   
RS0. . . . . . . . .  B ADDR   00D0H.3 A   
RS1. . . . . . . . .  B ADDR   00D0H.4 A   
RXD. . . . . . . . .  B ADDR   00B0H.0 A   
SBUF . . . . . . . .  D ADDR   0099H   A   
SCON . . . . . . . .  D ADDR   0098H   A   
SM0. . . . . . . . .  B ADDR   0098H.7 A   
SM1. . . . . . . . .  B ADDR   0098H.6 A   
SM2. . . . . . . . .  B ADDR   0098H.5 A   
SP . . . . . . . . .  D ADDR   0081H   A   
T0 . . . . . . . . .  B ADDR   00B0H.4 A   
T1 . . . . . . . . .  B ADDR   00B0H.5 A   
A51 MACRO ASSEMBLER  PUTCHAR                                                              10/31/2003 02:22:25 PAGE     6

TB8. . . . . . . . .  B ADDR   0098H.3 A   
TCON . . . . . . . .  D ADDR   0088H   A   
TF0. . . . . . . . .  B ADDR   0088H.5 A   
TF1. . . . . . . . .  B ADDR   0088H.7 A   
TH0. . . . . . . . .  D ADDR   008CH   A   
TH1. . . . . . . . .  D ADDR   008DH   A   
TI . . . . . . . . .  B ADDR   0098H.1 A   
TL0. . . . . . . . .  D ADDR   008AH   A   
TL1. . . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . . .  B ADDR   0088H.4 A   
TR1. . . . . . . . .  B ADDR   0088H.6 A   
TXD. . . . . . . . .  B ADDR   00B0H.1 A   
WR . . . . . . . . .  B ADDR   00B0H.6 A   
_PUTCHAR . . . . . .  C ADDR   0000H   R   SEG=?PR?_PUTCHAR?PUTCHAR


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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