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

📄 t6963.lis

📁 LCD菜单的仿真及程序AVR_T6963.rar
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0054           ;     port_conp |= (1<<WR);        //WR=1;
 0054 D89A              sbi 0x1b,0
 0056                   .dbline -2
 0056                   .dbline 74
 0056           ; }
 0056           L7:
 0056                   .dbline 0 ; func end
 0056 0895              ret
 0058                   .dbsym r val 16 c
 0058                   .dbend
 0058                   .dbfunc e fnSTA01 _fnSTA01 fc
 0058           ;              i -> R20
                        .even
 0058           _fnSTA01::
 0058 0E940000          xcall push_gset1
 005C                   .dbline -1
 005C                   .dbline 80
 005C           ; /************************************************/
 005C           ; /* 状态位STA1,STA0判断读写指令和读写数据*/
 005C           ; /* 在读写数据或者写入命令前必须保证均为1 */
 005C           ; /************************************************/
 005C           ; unsigned char fnSTA01(void)
 005C           ; {
 005C                   .dbline 82
 005C           ;     unsigned char i;
 005C           ;     for(i=10;i>0;i--)
 005C 4AE0              ldi R20,10
 005E 07C0              xjmp L12
 0060           L9:
 0060                   .dbline 83
 0060           ;     {
 0060                   .dbline 84
 0060           ;         if((RD_LCM() & 0x03) == 0x03) // 读取状态
 0060 D5DF              xcall _RD_LCM
 0062 802F              mov R24,R16
 0064 8370              andi R24,3
 0066 8330              cpi R24,3
 0068 09F4              brne L13
 006A                   .dbline 85
 006A           ;         {
 006A                   .dbline 86
 006A           ;             break;
 006A 04C0              xjmp L11
 006C           L13:
 006C                   .dbline 88
 006C           L10:
 006C                   .dbline 82
 006C 4A95              dec R20
 006E           L12:
 006E                   .dbline 82
 006E 2224              clr R2
 0070 2416              cp R2,R20
 0072 B0F3              brlo L9
 0074           L11:
 0074                   .dbline 89
 0074           ;         }
 0074           ;     }
 0074           ;     return(i); // 若返回零说明错误
 0074 042F              mov R16,R20
 0076                   .dbline -2
 0076           L8:
 0076 0E940000          xcall pop_gset1
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbsym r i 20 c
 007C                   .dbend
 007C                   .dbfunc e fnSTA2 _fnSTA2 fc
 007C           ;              i -> R20
                        .even
 007C           _fnSTA2::
 007C 0E940000          xcall push_gset1
 0080                   .dbline -1
 0080                   .dbline 95
 0080           ; }
 0080           ; /********************************************/
 0080           ; /* 检查STA2,如果STA2=1 为自动读状态*/
 0080           ; /********************************************/
 0080           ; unsigned char fnSTA2(void)
 0080           ; {
 0080                   .dbline 97
 0080           ;     unsigned char i;
 0080           ;     for(i=10;i>0;i--)
 0080 4AE0              ldi R20,10
 0082 07C0              xjmp L19
 0084           L16:
 0084                   .dbline 98
 0084           ;     {
 0084                   .dbline 99
 0084           ;         if((RD_LCM() & 0x04) == 0x04)
 0084 C3DF              xcall _RD_LCM
 0086 802F              mov R24,R16
 0088 8470              andi R24,4
 008A 8430              cpi R24,4
 008C 09F4              brne L20
 008E                   .dbline 100
 008E           ;         {
 008E                   .dbline 101
 008E           ;             break;
 008E 04C0              xjmp L18
 0090           L20:
 0090                   .dbline 103
 0090           L17:
 0090                   .dbline 97
 0090 4A95              dec R20
 0092           L19:
 0092                   .dbline 97
 0092 2224              clr R2
 0094 2416              cp R2,R20
 0096 B0F3              brlo L16
 0098           L18:
 0098                   .dbline 104
 0098           ;         }
 0098           ;     }
 0098           ;     return(i); // 若返回零说明错误
 0098 042F              mov R16,R20
 009A                   .dbline -2
 009A           L15:
 009A 0E940000          xcall pop_gset1
 009E                   .dbline 0 ; func end
 009E 0895              ret
 00A0                   .dbsym r i 20 c
 00A0                   .dbend
 00A0                   .dbfunc e fnSTA3 _fnSTA3 fc
 00A0           ;              i -> R20
                        .even
 00A0           _fnSTA3::
 00A0 0E940000          xcall push_gset1
 00A4                   .dbline -1
 00A4                   .dbline 110
 00A4           ; }
 00A4           ; /***********************************************/
 00A4           ; /* 状态位STA3 判断STA3 = 1 数据自动写状态*/
 00A4           ; /***********************************************/
 00A4           ; unsigned char fnSTA3(void)
 00A4           ; {
 00A4                   .dbline 112
 00A4           ;     unsigned char i;
 00A4           ;     for(i=10;i>0;i--)
 00A4 4AE0              ldi R20,10
 00A6 07C0              xjmp L26
 00A8           L23:
 00A8                   .dbline 113
 00A8           ;     {
 00A8                   .dbline 114
 00A8           ;         if((RD_LCM() & 0x08) == 0x08)
 00A8 B1DF              xcall _RD_LCM
 00AA 802F              mov R24,R16
 00AC 8870              andi R24,8
 00AE 8830              cpi R24,8
 00B0 09F4              brne L27
 00B2                   .dbline 115
 00B2           ;         {
 00B2                   .dbline 116
 00B2           ;             break;
 00B2 04C0              xjmp L25
 00B4           L27:
 00B4                   .dbline 118
 00B4           L24:
 00B4                   .dbline 112
 00B4 4A95              dec R20
 00B6           L26:
 00B6                   .dbline 112
 00B6 2224              clr R2
 00B8 2416              cp R2,R20
 00BA B0F3              brlo L23
 00BC           L25:
 00BC                   .dbline 119
 00BC           ;         }
 00BC           ;     }
 00BC           ;     return(i); // 若返回零说明错误
 00BC 042F              mov R16,R20
 00BE                   .dbline -2
 00BE           L22:
 00BE 0E940000          xcall pop_gset1
 00C2                   .dbline 0 ; func end
 00C2 0895              ret
 00C4                   .dbsym r i 20 c
 00C4                   .dbend
 00C4                   .dbfunc e fnSTA6 _fnSTA6 fc
 00C4           ;              i -> R20
                        .even
 00C4           _fnSTA6::
 00C4 0E940000          xcall push_gset1
 00C8                   .dbline -1
 00C8                   .dbline 125
 00C8           ; }
 00C8           ; /************************************************/
 00C8           ; /* 状态位STA6 判断STA6 =1 屏读/屏拷贝状态*/
 00C8           ; /************************************************/
 00C8           ; unsigned char fnSTA6(void)
 00C8           ; {
 00C8                   .dbline 127
 00C8           ;     unsigned char i;
 00C8           ;     for(i=10;i>0;i--)
 00C8 4AE0              ldi R20,10
 00CA 07C0              xjmp L33
 00CC           L30:
 00CC                   .dbline 128
 00CC           ;     {
 00CC                   .dbline 129
 00CC           ;         if((RD_LCM() & 0x40) == 0x40)
 00CC 9FDF              xcall _RD_LCM
 00CE 802F              mov R24,R16
 00D0 8074              andi R24,64
 00D2 8034              cpi R24,64
 00D4 09F4              brne L34
 00D6                   .dbline 130
 00D6           ;         {
 00D6                   .dbline 131
 00D6           ;             break;
 00D6 04C0              xjmp L32
 00D8           L34:
 00D8                   .dbline 133
 00D8           L31:
 00D8                   .dbline 127
 00D8 4A95              dec R20
 00DA           L33:
 00DA                   .dbline 127
 00DA 2224              clr R2
 00DC 2416              cp R2,R20
 00DE B0F3              brlo L30
 00E0           L32:
 00E0                   .dbline 134
 00E0           ;         }
 00E0           ;     }
 00E0           ;     return(i); // 若返回零说明错误
 00E0 042F              mov R16,R20
 00E2                   .dbline -2
 00E2           L29:
 00E2 0E940000          xcall pop_gset1
 00E6                   .dbline 0 ; func end
 00E6 0895              ret
 00E8                   .dbsym r i 20 c
 00E8                   .dbend
 00E8                   .dbfunc e fnPR1 _fnPR1 fc
 00E8           ;          uPar2 -> y+4
 00E8           ;          uPar1 -> R22
 00E8           ;           uCmd -> R20
                        .even
 00E8           _fnPR1::
 00E8 0E940000          xcall push_gset2
 00EC 622F              mov R22,R18
 00EE 402F              mov R20,R16
 00F0                   .dbline -1
 00F0                   .dbline 140
 00F0           ; }
 00F0           ; /************************/
 00F0           ; /* 写双参数的指令*/
 00F0           ; /************************/
 00F0           ; unsigned char fnPR1(unsigned char uCmd,unsigned char uPar1,unsigned char uPar2)
 00F0           ; {
 00F0                   .dbline 141
 00F0           ;     if(fnSTA01() == 0)
 00F0 B3DF              xcall _fnSTA01
 00F2 0023              tst R16
 00F4 11F4              brne L37
 00F6                   .dbline 142
 00F6           ;     {
 00F6                   .dbline 143
 00F6           ;         return 1;
 00F6 01E0              ldi R16,1
 00F8 11C0              xjmp L36
 00FA           L37:
 00FA                   .dbline 145
 00FA           ;     }
 00FA           ;     WR_DAT(uPar1);
 00FA 062F              mov R16,R22
 00FC 9BDF              xcall _WR_DAT
 00FE                   .dbline 146
 00FE           ;     if(fnSTA01() == 0)
 00FE ACDF              xcall _fnSTA01
 0100 0023              tst R16
 0102 11F4              brne L39
 0104                   .dbline 147
 0104           ;     {
 0104                   .dbline 148
 0104           ;         return 2;
 0104 02E0              ldi R16,2
 0106 0AC0              xjmp L36
 0108           L39:
 0108                   .dbline 150
 0108           ;     }
 0108           ;     WR_DAT(uPar2);
 0108 0C81              ldd R16,y+4
 010A 94DF              xcall _WR_DAT
 010C                   .dbline 151
 010C           ;     if(fnSTA01() == 0)
 010C A5DF              xcall _fnSTA01
 010E 0023              tst R16
 0110 11F4              brne L41
 0112                   .dbline 152
 0112           ;     {
 0112                   .dbline 153
 0112           ;         return 3;
 0112 03E0              ldi R16,3
 0114 03C0              xjmp L36
 0116           L41:
 0116                   .dbline 155
 0116           ;     }
 0116           ;     WR_CMD(uCmd);
 0116 042F              mov R16,R20
 0118 96DF              xcall _WR_CMD
 011A                   .dbline 156
 011A           ;     return(0); // 返回0 成功
 011A 0027              clr R16
 011C                   .dbline -2
 011C           L36:
 011C 0E940000          xcall pop_gset2
 0120                   .dbline 0 ; func end
 0120 0895              ret
 0122                   .dbsym l uPar2 4 c
 0122                   .dbsym r uPar1 22 c
 0122                   .dbsym r uCmd 20 c
 0122                   .dbend
 0122                   .dbfunc e fnPR11 _fnPR11 fc
 0122           ;          uPar1 -> R22
 0122           ;           uCmd -> R20
                        .even
 0122           _fnPR11::
 0122 0E940000          xcall push_gset2
 0126 622F              mov R22,R18
 0128 402F              mov R20,R16
 012A                   .dbline -1
 012A                   .dbline 162
 012A           ; }
 012A           ; /************************/
 012A           ; /* 写单参数的指令*/
 012A           ; /************************/
 012A           ; unsigned char fnPR11(unsigned char uCmd,unsigned char uPar1)
 012A           ; {
 012A                   .dbline 163
 012A           ;     if(fnSTA01() == 0)
 012A 96DF              xcall _fnSTA01
 012C 0023              tst R16
 012E 11F4              brne L44
 0130                   .dbline 164
 0130           ;     {
 0130                   .dbline 165
 0130           ;         return 1;
 0130 01E0              ldi R16,1
 0132 0AC0              xjmp L43
 0134           L44:
 0134                   .dbline 167
 0134           ;     }
 0134           ;     WR_DAT(uPar1);
 0134 062F              mov R16,R22
 0136 7EDF              xcall _WR_DAT
 0138                   .dbline 168
 0138           ;     if(fnSTA01() == 0)
 0138 8FDF              xcall _fnSTA01
 013A 0023              tst R16
 013C 11F4              brne L46
 013E                   .dbline 169
 013E           ;     {
 013E                   .dbline 170

⌨️ 快捷键说明

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