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

📄 12864-7920.lis

📁 16个单片机c语言实验程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00B8                   .dbline 83
 00B8           ;               s_ms(100);
 00B8 04E6              ldi R16,100
 00BA 10E0              ldi R17,0
 00BC A1DF              xcall _s_ms
 00BE                   .dbline 84
 00BE           ;               PORTA&=~EN;     //EN=0
 00BE DF98              cbi 0x1b,7
 00C0                   .dbline 85
 00C0           ;               s_ms(100);
 00C0 04E6              ldi R16,100
 00C2 10E0              ldi R17,0
 00C4 9DDF              xcall _s_ms
 00C6                   .dbline 86
 00C6           ;               if(temp>>7==0)
 00C6 2A2C              mov R2,R10
 00C8 2694              lsr R2
 00CA 2694              lsr R2
 00CC 2694              lsr R2
 00CE 2694              lsr R2
 00D0 2694              lsr R2
 00D2 2694              lsr R2
 00D4 2694              lsr R2
 00D6 09F4              brne L12
 00D8           X1:
 00D8                   .dbline 87
 00D8           ;               flag = 0;
 00D8 4427              clr R20
 00DA           L12:
 00DA                   .dbline 88
 00DA           ;       }
 00DA           L10:
 00DA                   .dbline 69
 00DA 4130              cpi R20,1
 00DC A1F2              breq L9
 00DE           X2:
 00DE                   .dbline -2
 00DE           L8:
 00DE                   .dbline 0 ; func end
 00DE 4991              ld R20,y+
 00E0 A990              ld R10,y+
 00E2 0895              ret
 00E4                   .dbsym r flag 20 c
 00E4                   .dbsym r temp 10 c
 00E4                   .dbend
 00E4                   .dbfunc e LCMInit _LCMInit fV
                        .even
 00E4           _LCMInit::
 00E4                   .dbline -1
 00E4                   .dbline 93
 00E4           ; }
 00E4           ; 
 00E4           ; //LCM初始化
 00E4           ; void LCMInit(void) 
 00E4           ; {
 00E4                   .dbline 94
 00E4           ;       WriteCommandLCM(0x38);    //三次显示模式设置,不检测忙信号
 00E4 08E3              ldi R16,56
 00E6 B0DF              xcall _WriteCommandLCM
 00E8                   .dbline 95
 00E8           ;       s_ms(1000);
 00E8 08EE              ldi R16,1000
 00EA 13E0              ldi R17,3
 00EC 89DF              xcall _s_ms
 00EE                   .dbline 96
 00EE           ;       WriteCommandLCM(0x38);
 00EE 08E3              ldi R16,56
 00F0 ABDF              xcall _WriteCommandLCM
 00F2                   .dbline 97
 00F2           ;       s_ms(1000); 
 00F2 08EE              ldi R16,1000
 00F4 13E0              ldi R17,3
 00F6 84DF              xcall _s_ms
 00F8                   .dbline 98
 00F8           ;       WriteCommandLCM(0x38);
 00F8 08E3              ldi R16,56
 00FA A6DF              xcall _WriteCommandLCM
 00FC                   .dbline 99
 00FC           ;       s_ms(1000); 
 00FC 08EE              ldi R16,1000
 00FE 13E0              ldi R17,3
 0100 7FDF              xcall _s_ms
 0102                   .dbline 100
 0102           ;       WriteCommandLCM(0x38);    //显示模式设置,开始要求每次检测忙信号
 0102 08E3              ldi R16,56
 0104 A1DF              xcall _WriteCommandLCM
 0106                   .dbline 101
 0106           ;       WriteCommandLCM(0x08);    //关闭显示
 0106 08E0              ldi R16,8
 0108 9FDF              xcall _WriteCommandLCM
 010A                   .dbline 102
 010A           ;       WriteCommandLCM(0x01);    //显示清屏
 010A 01E0              ldi R16,1
 010C 9DDF              xcall _WriteCommandLCM
 010E                   .dbline 103
 010E           ;       WriteCommandLCM(0x06);    //显示光标移动设置
 010E 06E0              ldi R16,6
 0110 9BDF              xcall _WriteCommandLCM
 0112                   .dbline 104
 0112           ;       WriteCommandLCM(0x0C);    //显示开及光标设置
 0112 0CE0              ldi R16,12
 0114 99DF              xcall _WriteCommandLCM
 0116                   .dbline -2
 0116           L14:
 0116                   .dbline 0 ; func end
 0116 0895              ret
 0118                   .dbend
 0118                   .dbfunc e DisplayList _DisplayList fV
 0118           ;              p -> R14,R15
 0118           ;         length -> R14
 0118           ;              i -> R10
 0118           ;          DData -> R12,R13
 0118           ;              X -> R20
                        .even
 0118           _DisplayList::
 0118 0E940000          xcall push_xgset30FC
 011C 6901              movw R12,R18
 011E 402F              mov R20,R16
 0120                   .dbline -1
 0120                   .dbline 116
 0120           ; }
 0120           ; 
 0120           ; //按指定位置显示一串字符
 0120           ; //液晶显示:汉字为16*16,字母及数字为8*16,此次显示的文本
 0120           ; //          从第一行第一列开始,依次向左,如果想在不同的
 0120           ; //          位置显示,只需修改相应的行值即可。液晶显示
 0120           ; //          完毕后,转入语音文本发送。
 0120           ; //DisplsyList(X,DData)函数:X为0x80在第一行显示;X为0x90在
 0120           ; //                    第二行显示;X为0x88在第三行显示;X为0x98在
 0120           ; //                    第四行显示;DData为显示数组。
 0120           ; void DisplayList(unsigned char X,char *DData)
 0120           ; {
 0120                   .dbline 118
 0120           ;       unsigned char length;
 0120           ;       unsigned char i=0;
 0120 AA24              clr R10
 0122                   .dbline 120
 0122           ;       char *p;
 0122           ;       p = DData;
 0122 7601              movw R14,R12
 0124                   .dbline 121
 0124           ;       length = strlen(p);
 0124 8701              movw R16,R14
 0126 0E940000          xcall _strlen
 012A E02E              mov R14,R16
 012C                   .dbline 122
 012C           ;       WriteCommandLCM(0x08);
 012C 08E0              ldi R16,8
 012E 8CDF              xcall _WriteCommandLCM
 0130                   .dbline 123
 0130           ;       WriteCommandLCM(X);
 0130 042F              mov R16,R20
 0132 8ADF              xcall _WriteCommandLCM
 0134                   .dbline 124
 0134           ;       WriteCommandLCM(0x06);
 0134 06E0              ldi R16,6
 0136 88DF              xcall _WriteCommandLCM
 0138                   .dbline 125
 0138           ;       WriteCommandLCM(0x0C);
 0138 0CE0              ldi R16,12
 013A 86DF              xcall _WriteCommandLCM
 013C                   .dbline 126
 013C           ;       WriteCommandLCM(X);
 013C 042F              mov R16,R20
 013E 84DF              xcall _WriteCommandLCM
 0140                   .dbline 127
 0140           ;       for(i=0;i<length;i++)
 0140 0EC0              xjmp L19
 0142           L16:
 0142                   .dbline 128
 0142           ;       {
 0142                   .dbline 129
 0142           ;               WriteDataLCM(DData[i]);
 0142 EA2D              mov R30,R10
 0144 FF27              clr R31
 0146 EC0D              add R30,R12
 0148 FD1D              adc R31,R13
 014A 0081              ldd R16,z+0
 014C 62DF              xcall _WriteDataLCM
 014E                   .dbline 130
 014E           ;               i++;
 014E A394              inc R10
 0150                   .dbline 131
 0150           ;               WriteDataLCM(DData[i]);
 0150 EA2D              mov R30,R10
 0152 FF27              clr R31
 0154 EC0D              add R30,R12
 0156 FD1D              adc R31,R13
 0158 0081              ldd R16,z+0
 015A 5BDF              xcall _WriteDataLCM
 015C                   .dbline 132
 015C           ;       }
 015C           L17:
 015C                   .dbline 127
 015C A394              inc R10
 015E           L19:
 015E                   .dbline 127
 015E AE14              cp R10,R14
 0160 80F3              brlo L16
 0162           X3:
 0162                   .dbline -2
 0162           L15:
 0162                   .dbline 0 ; func end
 0162 0C940000          xjmp pop_xgset30FC
 0166                   .dbsym r p 14 pc
 0166                   .dbsym r length 14 c
 0166                   .dbsym r i 10 c
 0166                   .dbsym r DData 12 pc
 0166                   .dbsym r X 20 c
 0166                   .dbend
 0166                   .dbfunc e main _main fV
                        .even
 0166           _main::
 0166                   .dbline -1
 0166                   .dbline 137
 0166           ; }
 0166           ; 
 0166           ; //主函数
 0166           ; void main(void)
 0166           ; {
 0166                   .dbline 139
 0166           ;     //端口初始化
 0166           ;       DDRA=0xff;
 0166 8FEF              ldi R24,255
 0168 8ABB              out 0x1a,R24
 016A                   .dbline 140
 016A           ;       PORTA=0xff;
 016A 8BBB              out 0x1b,R24
 016C                   .dbline 141
 016C           ;       DDRB=0xff;
 016C 87BB              out 0x17,R24
 016E                   .dbline 142
 016E           ;       PORTB=0xff;
 016E 88BB              out 0x18,R24
 0170                   .dbline 143
 0170           ;       DDRD=0xff;
 0170 81BB              out 0x11,R24
 0172                   .dbline 144
 0172           ;       PORTD=0x00;
 0172 2224              clr R2
 0174 22BA              out 0x12,R2
 0176                   .dbline 146
 0176           ;       
 0176           ;       s_ms(200); 
 0176 08EC              ldi R16,200
 0178 10E0              ldi R17,0
 017A 42DF              xcall _s_ms
 017C                   .dbline 147
 017C           ;       s_ms(200);  
 017C 08EC              ldi R16,200
 017E 10E0              ldi R17,0
 0180 3FDF              xcall _s_ms
 0182                   .dbline 148
 0182           ;       LCMInit(); //LCM初始化   //液晶初始化
 0182 B0DF              xcall _LCMInit
 0184                   .dbline 150
 0184           ; 
 0184           ;     DisplayList(0x80,text_1);     //显示第一行
 0184 20E0              ldi R18,<_text_1
 0186 30E0              ldi R19,>_text_1
 0188 00E8              ldi R16,128
 018A C6DF              xcall _DisplayList
 018C                   .dbline 151
 018C           ;       DisplayList(0x90,text_2);     //显示第二行
 018C 20E0              ldi R18,<_text_2
 018E 30E0              ldi R19,>_text_2
 0190 00E9              ldi R16,144
 0192 C2DF              xcall _DisplayList
 0194                   .dbline 152
 0194           ;       DisplayList(0x88,text_3);     //显示第三行
 0194 20E0              ldi R18,<_text_3
 0196 30E0              ldi R19,>_text_3
 0198 08E8              ldi R16,136
 019A BEDF              xcall _DisplayList
 019C                   .dbline 153
 019C           ;       DisplayList(0x98,text_4);     //显示第四行
 019C 20E0              ldi R18,<_text_4
 019E 30E0              ldi R19,>_text_4
 01A0 08E9              ldi R16,152
 01A2 BADF              xcall _DisplayList
 01A4           L21:
 01A4                   .dbline 154
 01A4           ;       while(1);
 01A4           L22:
 01A4                   .dbline 154
 01A4 FFCF              xjmp L21
 01A6           X4:
 01A6                   .dbline -2
 01A6           L20:
 01A6                   .dbline 0 ; func end
 01A6 0895              ret
 01A8                   .dbend
 01A8           ; }

⌨️ 快捷键说明

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