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

📄 8563.lis

📁 基于ATMEGA16的时钟芯片原代码
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 03B6 21E0              ldi R18,1
 03B8 01E8              ldi R16,129
 03BA 3BDF              xcall _i2c_Write
 03BC                   .dbline 176
 03BC           ;       i2c_Write(0x50,0x02);
 03BC 22E0              ldi R18,2
 03BE 00E5              ldi R16,80
 03C0 38DF              xcall _i2c_Write
 03C2                   .dbline 177
 03C2           ;       i2c_Write(0x04,0x03);
 03C2 23E0              ldi R18,3
 03C4 04E0              ldi R16,4
 03C6 35DF              xcall _i2c_Write
 03C8                   .dbline 178
 03C8           ;       i2c_Write(0x09,0x04);
 03C8 24E0              ldi R18,4
 03CA 09E0              ldi R16,9
 03CC 32DF              xcall _i2c_Write
 03CE                   .dbline 179
 03CE           ;       i2c_Write(0x01,0x05);
 03CE 25E0              ldi R18,5
 03D0 01E0              ldi R16,1
 03D2 2FDF              xcall _i2c_Write
 03D4                   .dbline 180
 03D4           ;       i2c_Write(0x05,0x06);
 03D4 26E0              ldi R18,6
 03D6 05E0              ldi R16,5
 03D8 2CDF              xcall _i2c_Write
 03DA                   .dbline 181
 03DA           ;       i2c_Write(0x08,0x07);
 03DA 27E0              ldi R18,7
 03DC 08E0              ldi R16,8
 03DE 29DF              xcall _i2c_Write
 03E0                   .dbline 182
 03E0           ;       i2c_Write(0x08,0x02);
 03E0 22E0              ldi R18,2
 03E2 08E0              ldi R16,8
 03E4 26DF              xcall _i2c_Write
 03E6                   .dbline -2
 03E6           L104:
 03E6                   .dbline 0 ; func end
 03E6 0895              ret
 03E8                   .dbend
 03E8                   .dbfunc e main _main fV
                        .even
 03E8           _main::
 03E8 2297              sbiw R28,2
 03EA                   .dbline -1
 03EA                   .dbline 192
 03EA           ;       
 03EA           ; }
 03EA           ; /*******************************************************/
 03EA           ; /******   函数名称: main()                        ******/
 03EA           ; /******   功    能: 在液晶屏显示时间              ******/
 03EA           ; /******   参    数: 无                            ******/
 03EA           ; /******   返回值  : 无                            ******/
 03EA           ; /*******************************************************/
 03EA           ; void main(void)
 03EA           ; {     CLI(); 
 03EA                   .dbline 192
 03EA F894              cli
 03EC                   .dbline 193
 03EC           ;     Lcd_INT();
 03EC B9DE              xcall _Lcd_INT
 03EE                   .dbline 194
 03EE           ;     lcd_clear();
 03EE 55DE              xcall _lcd_clear
 03F0                   .dbline 195
 03F0           ;       delay_nms(500);                                                 //延时
 03F0 04EF              ldi R16,500
 03F2 11E0              ldi R17,1
 03F4 F2DE              xcall _delay_nms
 03F6                   .dbline 196
 03F6           ;       Twi_Init();                                                             //初始化TWI总线
 03F6 CFDF              xcall _Twi_Init
 03F8                   .dbline 197
 03F8           ;       LCD_Write_string(0,0,"AVR_XQV1.2开发板");//向液晶屏写入初始数据
 03F8 80E0              ldi R24,<L106
 03FA 90E0              ldi R25,>L106
 03FC 9983              std y+1,R25
 03FE 8883              std y+0,R24
 0400 2227              clr R18
 0402 0027              clr R16
 0404 83DE              xcall _LCD_Write_string
 0406                   .dbline 198
 0406           ;       LCD_Write_string(1,0,"20");
 0406 80E0              ldi R24,<L107
 0408 90E0              ldi R25,>L107
 040A 9983              std y+1,R25
 040C 8883              std y+0,R24
 040E 2227              clr R18
 0410 01E0              ldi R16,1
 0412 7CDE              xcall _LCD_Write_string
 0414                   .dbline 199
 0414           ;       LCD_Write_string(1,2,"年");
 0414 80E0              ldi R24,<L108
 0416 90E0              ldi R25,>L108
 0418 9983              std y+1,R25
 041A 8883              std y+0,R24
 041C 22E0              ldi R18,2
 041E 01E0              ldi R16,1
 0420 75DE              xcall _LCD_Write_string
 0422                   .dbline 200
 0422           ;       LCD_Write_string(1,4,"月");
 0422 80E0              ldi R24,<L109
 0424 90E0              ldi R25,>L109
 0426 9983              std y+1,R25
 0428 8883              std y+0,R24
 042A 24E0              ldi R18,4
 042C 01E0              ldi R16,1
 042E 6EDE              xcall _LCD_Write_string
 0430                   .dbline 201
 0430           ;       LCD_Write_string(1,6,"日");
 0430 80E0              ldi R24,<L110
 0432 90E0              ldi R25,>L110
 0434 9983              std y+1,R25
 0436 8883              std y+0,R24
 0438 26E0              ldi R18,6
 043A 01E0              ldi R16,1
 043C 67DE              xcall _LCD_Write_string
 043E                   .dbline 202
 043E           ;       LCD_Write_string(2,0,"星");
 043E 80E0              ldi R24,<L111
 0440 90E0              ldi R25,>L111
 0442 9983              std y+1,R25
 0444 8883              std y+0,R24
 0446 2227              clr R18
 0448 02E0              ldi R16,2
 044A 60DE              xcall _LCD_Write_string
 044C                   .dbline 203
 044C           ;       LCD_Write_string(2,1,"期");
 044C 80E0              ldi R24,<L112
 044E 90E0              ldi R25,>L112
 0450 9983              std y+1,R25
 0452 8883              std y+0,R24
 0454 21E0              ldi R18,1
 0456 02E0              ldi R16,2
 0458 59DE              xcall _LCD_Write_string
 045A                   .dbline 204
 045A           ;       LCD_Write_string(3,1,"时");
 045A 80E0              ldi R24,<L113
 045C 90E0              ldi R25,>L113
 045E 9983              std y+1,R25
 0460 8883              std y+0,R24
 0462 21E0              ldi R18,1
 0464 03E0              ldi R16,3
 0466 52DE              xcall _LCD_Write_string
 0468                   .dbline 205
 0468           ;       LCD_Write_string(3,3,"分");
 0468 80E0              ldi R24,<L114
 046A 90E0              ldi R25,>L114
 046C 9983              std y+1,R25
 046E 8883              std y+0,R24
 0470 23E0              ldi R18,3
 0472 03E0              ldi R16,3
 0474 4BDE              xcall _LCD_Write_string
 0476                   .dbline 206
 0476           ;       LCD_Write_string(3,5,"秒");
 0476 80E0              ldi R24,<L115
 0478 90E0              ldi R25,>L115
 047A 9983              std y+1,R25
 047C 8883              std y+0,R24
 047E 25E0              ldi R18,5
 0480 03E0              ldi R16,3
 0482 44DE              xcall _LCD_Write_string
 0484                   .dbline 207
 0484           ;       SEI();                                                                  //开中断
 0484 7894              sei
 0486 9EC0              xjmp L117
 0488           L116:
 0488                   .dbline 209
 0488           ;       while(1) 
 0488           ;       {
 0488                   .dbline 210
 0488           ;       i2c_Write(0x19,0x01);                                           //向PCF8563写命令
 0488 21E0              ldi R18,1
 048A 09E1              ldi R16,25
 048C D2DE              xcall _i2c_Write
 048E                   .dbline 211
 048E           ;       i2c_Read(0x02);                                                         //读取时间数据
 048E 02E0              ldi R16,2
 0490 30DF              xcall _i2c_Read
 0492                   .dbline 212
 0492           ;       ToStr(read_shijian[0]&0x7f);                            //转换成字符串
 0492 00910000          lds R16,_read_shijian
 0496 0F77              andi R16,127
 0498 6EDF              xcall _ToStr
 049A                   .dbline 213
 049A           ;       LCD_Write_string(3,4,temp);                                     //刷新时间
 049A 80E0              ldi R24,<_temp
 049C 90E0              ldi R25,>_temp
 049E 9983              std y+1,R25
 04A0 8883              std y+0,R24
 04A2 24E0              ldi R18,4
 04A4 03E0              ldi R16,3
 04A6 32DE              xcall _LCD_Write_string
 04A8                   .dbline 214
 04A8           ;       ToStr(read_shijian[1]&0x7f);                            //转换成字符串
 04A8 00910100          lds R16,_read_shijian+1
 04AC 0F77              andi R16,127
 04AE 63DF              xcall _ToStr
 04B0                   .dbline 215
 04B0           ;       LCD_Write_string(3,2,temp);                                     //刷新时间
 04B0 80E0              ldi R24,<_temp
 04B2 90E0              ldi R25,>_temp
 04B4 9983              std y+1,R25
 04B6 8883              std y+0,R24
 04B8 22E0              ldi R18,2
 04BA 03E0              ldi R16,3
 04BC 27DE              xcall _LCD_Write_string
 04BE                   .dbline 216
 04BE           ;       ToStr(read_shijian[2]&0x3f);                            //转换成字符串
 04BE 00910200          lds R16,_read_shijian+2
 04C2 0F73              andi R16,63
 04C4 58DF              xcall _ToStr
 04C6                   .dbline 217
 04C6           ;       LCD_Write_string(3,0,temp);                                     //刷新时间
 04C6 80E0              ldi R24,<_temp
 04C8 90E0              ldi R25,>_temp
 04CA 9983              std y+1,R25
 04CC 8883              std y+0,R24
 04CE 2227              clr R18
 04D0 03E0              ldi R16,3
 04D2 1CDE              xcall _LCD_Write_string
 04D4                   .dbline 218
 04D4           ;       ToStr(read_shijian[3]&0x3f);                            //转换成字符串
 04D4 00910300          lds R16,_read_shijian+3
 04D8 0F73              andi R16,63
 04DA 4DDF              xcall _ToStr
 04DC                   .dbline 219
 04DC           ;       LCD_Write_string(1,5,temp);                                     //刷新时间
 04DC 80E0              ldi R24,<_temp
 04DE 90E0              ldi R25,>_temp
 04E0 9983              std y+1,R25
 04E2 8883              std y+0,R24
 04E4 25E0              ldi R18,5
 04E6 01E0              ldi R16,1
 04E8 11DE              xcall _LCD_Write_string
 04EA                   .dbline 220
 04EA           ;       switch(read_shijian[4]&0x07)                            //转换成字符串
 04EA 40910400          lds R20,_read_shijian+4
 04EE 5527              clr R21
 04F0 4770              andi R20,7
 04F2 5070              andi R21,0
 04F4 4030              cpi R20,0
 04F6 4507              cpc R20,R21
 04F8 C9F0              breq L126
 04FA           X4:
 04FA 4130              cpi R20,1
 04FC E0E0              ldi R30,0
 04FE 5E07              cpc R21,R30
 0500 E9F0              breq L127
 0502 4230              cpi R20,2
 0504 E0E0              ldi R30,0
 0506 5E07              cpc R21,R30
 0508 09F1              breq L129
 050A 4330              cpi R20,3
 050C E0E0              ldi R30,0
 050E 5E07              cpc R21,R30
 0510 29F1              breq L131
 0512 4430              cpi R20,4
 0514 E0E0              ldi R30,0
 0516 5E07              cpc R21,R30
 0518 49F1              breq L133
 051A 4530              cpi R20,5
 051C E0E0              ldi R30,0
 051E 5E07              cpc R21,R30
 0520 69F1              breq L135
 0522 4630              cpi R20,6
 0524 E0E0              ldi R30,0
 0526 5E07              cpc R21,R30
 0528 89F1              breq L137
 052A 37C0              xjmp L122
 052C           X5:
 052C                   .dbline 221
 052C           ;       {                                                                                       
 052C           L126:
 052C                   .dbline 222
 052C           ;               case 0:LCD_Write_string(2,2,"日");break;//刷新时间
 052C 80E0              ldi R24,<L110
 052E 90E0              ldi R25,>L110
 0530 9983              std y+1,R25
 0532 8883              std y+0,R24
 0534 22E0              ldi R18,2
 0536 02E0              ldi R16,2
 0538 E9DD              xcall _LCD_Write_string
 053A                   .dbline 222
 053A 2FC0              xjmp L123
 053C           L127:
 053C                   .dbline 223
 053C           ;               case 1:LCD_Write_string(2,2,"一");break;//刷新时间
 053C 80E0              ldi R24,<L128
 053E 90E0              ldi R25,>L128
 0540 9983              std y+1,R25
 0542 8883              std y+0,R24
 0544 22E0              ldi R18,2
 0546 02E0              ldi R16,2
 0548 E1DD              xcall _LCD_Write_string
 054A                   .dbline 223
 054A 27C0              xjmp L123
 054C           L129:
 054C                   .dbline 224
 054C           ;               case 2:LCD_Write_string(2,2,"二");break;//刷新时间
 054C 80E0              ldi R24,<L130
 054E 90E0              ldi R25,>L130
 05

⌨️ 快捷键说明

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