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

📄 serialr.lst

📁 USB9602 source code for C 8051
💻 LST
📖 第 1 页 / 共 2 页
字号:
MCS-51 MACRO ASSEMBLER    SERIALR                                                                   12/02/99   PAGE    1


DOS 7.10 (038-N) MCS-51 MACRO ASSEMBLER, V2.3
OBJECT MODULE PLACED IN SERIALR.OBJ
ASSEMBLER INVOKED BY:  C:\C51\BIN\ASM51.EXE SERIALR.ASM
                       

LOC  OBJ            LINE     SOURCE

                       1     ;* PSI                                                      Stabl Robrt */
                       2     ;*                                                                      */
                       3     ;* SerialR (Funkce pro komunikaci po SCI)                   23.06.1998  */
                       4     ;************************************************************************/
                       5     ; Revize 5.3.1999
                       6     
                       7     
                       8     serialR_seg     SEGMENT CODE
                       9     serialData_seg  SEGMENT DATA
                      10     
  0008                11     VelBafr         equ     8
                      12     
----                  13     RSEG            serialData_seg
0000                  14     RxBafr:         ds      VelBafr         ; bafr vstupnich vzorku
0008                  15     RxPoint:        ds      1               ; Pozice posledniho cteneho znaku
0009                  16     RxPointG:       ds      1               ; Pozice znaku pro f-ci get
000A                  17     RxCount:        ds      1               ; Pocet znaku v bafru
000B                  18     LinkFlg:        ds         1                                     ; Fleg volne linty (1 voln
                             o)
                      19     
  0008                20     RxBafrMax       equ     RxBafr+8        ; Max hodnota bafru
  0000                21     RxBafrMin       equ     RxBafr          ; Min hodnota begru
                      22     
                      23     
                      24     ;CSEG
                      25     ;              ORG     0023h
                      26     ;              push    psw
                      27     ;              ljmp    serial_int
                      28     
----                  29     RSEG           serialR_seg
                      30     PUBLIC         serial_int              ; interrupt handler
                      31     PUBLIC         getkeyR                 ; Vycteni 1B z prijmaciho bafru
                      32     PUBLIC         getCharR                ; Vycte 1B (neni-li v bafru tak ceka)
                      33     PUBLIC                  getWordR                ; Vycte 2B (neni-li...) cte Lo Hi
                      34     PUBLIC         _putkeyR                ; Poslani 1B na seriak
                      35     PUBLIC         _putWordR               ; Poslani 2B na seriak (Lo Hi)
                      36     PUBLIC         in_Rx                   ; Pocet B v prijmacim bafru
                      37     PUBLIC         init_Bafr               ; Inicializace prijm. bafru
                      38     PUBLIC         LinkFlg                 ; Priznak vysilaci linka volna
                      39     PUBLIC                  RxCount                 ; Pocet znaku v prijmacim bafru
                      40     PUBLIC                  Tim_out_Int                                     ; Funkce pro obsluh
                             u time out
                      41     ; ********************************************************************
                      42     _putkeyR:
0000 E500     F       43                     mov     a,LinkFlg
0002 60FC             44                     jz     _putkeyR
0004 C000             45                     push   00h             ; r0
0006 EF               46                     mov    a,r7
0007 D299             47                     setb   ti
0009 F599             48                     mov    sbuf,a
MCS-51 MACRO ASSEMBLER    SERIALR                                                                   12/02/99   PAGE    2


LOC  OBJ            LINE     SOURCE

000B C299             49                     clr    ti
000D 750000   F       50                     mov    LinkFlg,#0
0010 D000             51                     pop    00h             ; r0
0012 22               52                     ret
                      53     
                      54     ; ********************************************************************
0013 750000   F       55     init_Bafr:      mov    RxPoint,#RxBafr
0016 750000   F       56                     mov    RxPointG,#RxBafr
0019 750000   F       57                     mov    RxCount,#0
001C 22               58                     ret
                      59     
                      60     ; ********************************************************************
                      61     
                      62     serial_int:
001D 309905           63                     jnb    ti,testri
0020 750001   F       64                     mov    LinkFlg,#1
0023 C299             65                     clr    ti
                      66     
0025 109801           67     testri:         jbc     ri,got_ri               ; check for character in buffer
0028 22               68                     ret                                     ; reti
                      69     
                      70     got_ri:
0029 C000             71                     push    00h                     ; r0 to stack
002B E500     F       72                     mov     a,RxCount               ; V bafru je volne misto
002D 04               73                     inc     a
002E B40804           74                     cjne    a,#VelBafr,dal
0031 E599             75                     mov     a,sbuf
0033 8010             76                     sjmp    keyexit                 ; Bafr je plny, konec
                      77     dal:
0035 F500     F       78                     mov     RxCount,a
0037 E500     F       79                     mov     a,RxPoint               ; Rotace bafru
0039 04               80                     inc     a                       ;
003A B40002   F       81                     cjne    a,#RxBafrMax,keyptok
003D 7400     F       82                     mov     a,#RxBafrMin            ; rotace bafru preteceni
                      83                                                                                                
                                                  ;
003F F8               84     keyptok:        mov     r0,a                    ; load the Buffer pointer
0040 E599             85                     mov     a,sbuf                  ; get the character waiting
0042 F6               86                     mov     @r0,a                   ; save the character
0043 8800     F       87                     mov     RxPoint,r0              ; save Point
0045 D000             88     keyexit:        pop     00h
0047 22               89                     ret                             ; reti
                      90     ; ************************************************************************
                      91     
0048 C2AC             92     getkeyR:    clr     ES
004A C0E0             93                 push    acc             ;save acc
004C C000             94                     push    00h             ;save r0
                      95     
004E E500     F       96                     mov     a,RxCount       ;Test Count
0050 B40002           97                           cjne    a,#0,pokr
0053 0100     F       98                     ajmp    kbfrd_ok        ;Neni co precist
                      99     pokr:
0055 14              100                 dec     a
0056 F500     F      101                     mov     RxCount,a       ;
0058 E500     F      102                     mov     a,RxPointG
MCS-51 MACRO ASSEMBLER    SERIALR                                                                   12/02/99   PAGE    3


LOC  OBJ            LINE     SOURCE

005A 04              103                     inc     a
005B B40002   F      104                     cjne    a,#RxBafrMax,pokr2
005E 7400     F      105                     mov     a,#RxBafrMin

⌨️ 快捷键说明

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