📄 ylf240128a.lst
字号:
(1425) uint temp;
(1426) temp=32*o_y;
044B E280 LDI R24,0x20
044C 9F86 MUL R24,R22
044D 01B0 MOVW R22,R0
(1427) temp=temp+o_x;//得到位置存储器
044E 2C2A MOV R2,R10
044F 2433 CLR R3
0450 0D62 ADD R22,R2
0451 1D73 ADC R23,R3
(1428) temp=temp+0x00;//加上字符区启始位置
(1429) WriteTwoData((uchar)temp,(uchar)(temp>>8),0x24);//设置地址指针
0452 E284 LDI R24,0x24
0453 8388 STD Y+0,R24
0454 019B MOVW R18,R22
0455 2F23 MOV R18,R19
0456 2733 CLR R19
0457 2F06 MOV R16,R22
0458 DF14 RCALL _WriteTwoData
(1430) WriteOneData(code,0xc0);//数据写,地址加1
0459 EC20 LDI R18,0xC0
045A 2F04 MOV R16,R20
045B DF21 RCALL _WriteOneData
(1431) WriteOneData(code+2,0xc0);//数据写,地址加1
045C EC20 LDI R18,0xC0
045D 2F04 MOV R16,R20
045E 5F0E SUBI R16,0xFE
045F DF1D RCALL _WriteOneData
(1432) temp+=32;
0460 5E60 SUBI R22,0xE0
0461 4F7F SBCI R23,0xFF
(1433) WriteTwoData((uchar)temp,(uchar)(temp>>8),0x24);//设置地址指针
0462 E284 LDI R24,0x24
0463 8388 STD Y+0,R24
0464 019B MOVW R18,R22
0465 2F23 MOV R18,R19
0466 2733 CLR R19
0467 2F06 MOV R16,R22
0468 DF04 RCALL _WriteTwoData
(1434) WriteOneData(code+1,0xc0);//数据写,地址加1
0469 EC20 LDI R18,0xC0
046A 2F04 MOV R16,R20
046B 5F0F SUBI R16,0xFF
046C DF10 RCALL _WriteOneData
(1435) WriteOneData(code+3,0xc0);//数据写,地址加1
046D EC20 LDI R18,0xC0
046E 2F04 MOV R16,R20
046F 5F0D SUBI R16,0xFD
0470 DF0C RCALL _WriteOneData
0471 9621 ADIW R28,1
0472 940E054C CALL pop_gset3
0474 9508 RET
_DispChinaPic16:
num --> R20
temp --> R22
disp --> R10
o_y --> R22
o_x --> R20
0475 940E0553 CALL push_gset3
0477 2F62 MOV R22,R18
0478 2F40 MOV R20,R16
0479 9721 SBIW R28,1
047A 80AF LDD R10,Y+7
047B 84B8 LDD R11,Y+8
(1436) }
(1437)
(1438) //通过点阵图层写入字符,字符大小为32*32
(1439) //写入速度较慢
(1440) //位置为x*32,y*32,显示数据为disp[]
(1441) void DispChinaPic16(uchar o_x,uchar o_y,const uchar disp[])
(1442) {
(1443) uint temp;
(1444) uchar num;
(1445) temp=32*8*o_y;
047C 2F26 MOV R18,R22
047D 2733 CLR R19
047E E000 LDI R16,0
047F E011 LDI R17,1
0480 940E0539 CALL empy16s
0482 01B8 MOVW R22,R16
(1446) temp=temp+o_x;
0483 2E24 MOV R2,R20
0484 2433 CLR R3
0485 0D62 ADD R22,R2
0486 1D73 ADC R23,R3
(1447) temp=temp+0x800;//加上图形区启始位置
0487 5060 SUBI R22,0
0488 4F78 SBCI R23,0xF8
(1448) num=16;
0489 E140 LDI R20,0x10
048A C020 RJMP 0x04AB
(1449) while(num)
(1450) {
(1451) WriteTwoData((uchar)temp,(uchar)(temp>>8),0x24);//设置地址指针
048B E284 LDI R24,0x24
048C 8388 STD Y+0,R24
048D 019B MOVW R18,R22
048E 2F23 MOV R18,R19
048F 2733 CLR R19
0490 2F06 MOV R16,R22
0491 DEDB RCALL _WriteTwoData
(1452) temp=temp+32;// 换行
0492 5E60 SUBI R22,0xE0
0493 4F7F SBCI R23,0xFF
(1453) WriteOneData(disp[32-num*2],0xc0);//数据写,地址加1
0494 EC20 LDI R18,0xC0
0495 E082 LDI R24,2
0496 9F84 MUL R24,R20
0497 E2E0 LDI R30,0x20
0498 E0F0 LDI R31,0
0499 19E0 SUB R30,R0
049A 09F1 SBC R31,R1
049B 0DEA ADD R30,R10
049C 1DFB ADC R31,R11
049D 9104 LPM R16,0(Z)
049E DEDE RCALL _WriteOneData
(1454) WriteOneData(disp[33-num*2],0xc0);//数据写,地址加1
049F EC20 LDI R18,0xC0
04A0 E082 LDI R24,2
04A1 9F84 MUL R24,R20
04A2 E2E1 LDI R30,0x21
04A3 E0F0 LDI R31,0
04A4 19E0 SUB R30,R0
04A5 09F1 SBC R31,R1
04A6 0DEA ADD R30,R10
04A7 1DFB ADC R31,R11
04A8 9104 LPM R16,0(Z)
04A9 DED3 RCALL _WriteOneData
(1455) num--;
04AA 954A DEC R20
04AB 2344 TST R20
04AC F6F1 BNE 0x048B
04AD 9621 ADIW R28,1
04AE 940E054C CALL pop_gset3
04B0 9508 RET
_main:
04B1 9722 SBIW R28,2
(1456) }
(1457) }
(1458)
(1459) /*
(1460) void DispChinaPic24(uchar o_x,uchar o_y,const uchar disp[])
(1461) {
(1462) uint temp;
(1463) uchar num;
(1464) temp=32*8*o_y;
(1465) temp=temp+o_x;
(1466) temp=temp+0x800;//加上图形区启始位置
(1467) num=24;
(1468) while(num)
(1469) {
(1470) WriteTwoData((uchar)temp,(uchar)(temp>>8),0x24);//设置地址指针
(1471) temp=temp+32;// 换行
(1472) WriteOneData(disp[72-num*3],0xc0);//数据写,地址加1
(1473) WriteOneData(disp[73-num*3],0xc0);//数据写,地址加1
(1474) WriteOneData(disp[74-num*3],0xc0);//数据写,地址加1
(1475) num--;
(1476) }
(1477) }
(1478) */
(1479)
(1480) void main()
(1481) {
(1482) McuInit();
04B2 DE7A RCALL _McuInit
(1483) LcdInit();
04B3 DED6 RCALL _LcdInit
(1484) ClearLcd();
04B4 DF06 RCALL _ClearLcd
(1485) /* CGRamGen(0,CGTAB);
(1486) CGRamGen(0x80,yi16_1);
(1487) CGRamGen(0x84,er16_2);
(1488) CGRamGen(0x88,san16_3);
(1489) CGRamGen(0x8c,si16_4);
(1490) CGRamGen(0x90,wu16_5);
(1491) CGRamGen(0x94,liu16_6);
(1492) CGRamGen(0x98,qi16_7);
(1493) CGRamGen(0x9c,ba16_8);
(1494) CGRamGen(0xa0,jiu16_9);
(1495) CGRamGen(0xa4,ling16_0);*/
(1496)
(1497) CGRamGen(number);
04B5 E504 LDI R16,0x54
04B6 E010 LDI R17,0
04B7 DF36 RCALL _CGRamGen
(1498) // CGRamGenTry(numbertry);
(1499)
(1500)
(1501) // CGRamGen(0x80,ling16_0);
(1502)
(1503)
(1504) DispChinaCode(24,0,0x80);
04B8 E880 LDI R24,0x80
04B9 8388 STD Y+0,R24
04BA 2722 CLR R18
04BB E108 LDI R16,0x18
04BC DF88 RCALL _DispChinaCode
(1505) DispChinaCode(26,0,0x84);
04BD E884 LDI R24,0x84
04BE 8388 STD Y+0,R24
04BF 2722 CLR R18
04C0 E10A LDI R16,0x1A
04C1 DF83 RCALL _DispChinaCode
(1506) DispChinaCode(28,0,0x88);
04C2 E888 LDI R24,0x88
04C3 8388 STD Y+0,R24
04C4 2722 CLR R18
04C5 E10C LDI R16,0x1C
04C6 DF7E RCALL _DispChinaCode
(1507) DispChinaCode(24,2,0x8c);
04C7 E88C LDI R24,0x8C
04C8 8388 STD Y+0,R24
04C9 E022 LDI R18,2
04CA E108 LDI R16,0x18
04CB DF79 RCALL _DispChinaCode
(1508) DispChinaCode(26,2,0x90);
04CC E980 LDI R24,0x90
04CD 8388 STD Y+0,R24
04CE E022 LDI R18,2
04CF E10A LDI R16,0x1A
04D0 DF74 RCALL _DispChinaCode
(1509) DispChinaCode(28,2,0x94);
04D1 E984 LDI R24,0x94
04D2 8388 STD Y+0,R24
04D3 E022 LDI R18,2
04D4 E10C LDI R16,0x1C
04D5 DF6F RCALL _DispChinaCode
(1510) DispChinaCode(24,4,0x98);
04D6 E988 LDI R24,0x98
04D7 8388 STD Y+0,R24
04D8 E024 LDI R18,4
04D9 E108 LDI R16,0x18
04DA DF6A RCALL _DispChinaCode
(1511)
(1512) /* DispChinaPic24(0,0,yang24);
(1513) DispChinaPic24(3,0,jian24);
(1514) DispChinaPic24(6,0,hao24);
(1515) DispChinaPic24(0,3,ci24);//次
(1516) DispChinaPic24(3,3,shu24);//数
(1517) DispChinaPic24(0,6,su24);//速
(1518) DispChinaPic24(3,6,du24);//度
(1519) DispChinaPic24(0,9,xing24);//行
(1520) DispChinaPic24(3,9,cheng24);//程
(1521) DispChinaPic24(0,12,ding24);//定
(1522) DispChinaPic24(3,12,dian24);//点
(1523) DispChinaPic24(6,12,pen24);//喷
(1524) DispChinaPic24(9,12,sshe24);//射
(1525) */
(1526) DispChinaPic16(0,0,yang16);//样
04DB ED84 LDI R24,0xD4
04DC E092 LDI R25,2
04DD 8399 STD Y+1,R25
04DE 8388 STD Y+0,R24
04DF 2722 CLR R18
04E0 2700 CLR R16
04E1 DF93 RCALL _DispChinaPic16
(1527) DispChinaPic16(2,0,jian16);//件
04E2 EF84 LDI R24,0xF4
04E3 E092 LDI R25,2
04E4 8399 STD Y+1,R25
04E5 8388 STD Y+0,R24
04E6 2722 CLR R18
04E7 E002 LDI R16,2
04E8 DF8C RCALL _DispChinaPic16
(1528) DispChinaPic16(4,0,hao16);//号
04E9 E184 LDI R24,0x14
04EA E093 LDI R25,3
04EB 8399 STD Y+1,R25
04EC 8388 STD Y+0,R24
04ED 2722 CLR R18
04EE E004 LDI R16,4
04EF DF85 RCALL _DispChinaPic16
(1529) DispChinaPic16(0,3,ci16);//次
04F0 E388 LDI R24,0x38
04F1 E093 LDI R25,3
04F2 8399 STD Y+1,R25
04F3 8388 STD Y+0,R24
04F4 E023 LDI R18,3
04F5 2700 CLR R16
04F6 DF7E RCALL _DispChinaPic16
(1530) DispChinaPic16(2,3,shu16);//数
04F7 E588 LDI R24,0x58
04F8 E093 LDI R25,3
04F9 8399 STD Y+1,R25
04FA 8388 STD Y+0,R24
04FB E023 LDI R18,3
04FC E002 LDI R16,2
04FD DF77 RCALL _DispChinaPic16
(1531) DispChinaPic16(0,6,su16);//速
04FE EF88 LDI R24,0xF8
04FF E093 LDI R25,3
0500 8399 STD Y+1,R25
0501 8388 STD Y+0,R24
0502 E026 LDI R18,6
0503 2700 CLR R16
0504 DF70 RCALL _DispChinaPic16
(1532) DispChinaPic16(2,6,du16);//度
0505 E188 LDI R24,0x18
0506 E094 LDI R25,4
0507 8399 STD Y+1,R25
0508 8388 STD Y+0,R24
0509 E026 LDI R18,6
050A E002 LDI R16,2
050B DF69 RCALL _DispChinaPic16
(1533) DispChinaPic16(0,9,xing16);//行
050C E388 LDI R24,0x38
050D E094 LDI R25,4
050E 8399 STD Y+1,R25
050F 8388 STD Y+0,R24
0510 E029 LDI R18,0x9
0511 2700 CLR R16
0512 DF62 RCALL _DispChinaPic16
(1534) DispChinaPic16(2,9,cheng16);//程
0513 E588 LDI R24,0x58
0514 E094 LDI R25,4
0515 8399 STD Y+1,R25
0516 8388 STD Y+0,R24
0517 E029 LDI R18,0x9
0518 E002 LDI R16,2
0519 DF5B RCALL _DispChinaPic16
(1535) DispChinaPic16(0,12,ding16);//定
051A E988 LDI R24,0x98
051B E093 LDI R25,3
051C 8399 STD Y+1,R25
051D 8388 STD Y+0,R24
051E E02C LDI R18,0xC
051F 2700 CLR R16
0520 DF54 RCALL _DispChinaPic16
(1536) DispChinaPic16(2,12,dian16);//点
0521 ED88 LDI R24,0xD8
0522 E094 LDI R25,4
0523 8399 STD Y+1,R25
0524 8388 STD Y+0,R24
0525 E02C LDI R18,0xC
0526 E002 LDI R16,2
0527 DF4D RCALL _DispChinaPic16
(1537) DispChinaPic16(4,12,pen16);//喷
0528 EF88 LDI R24,0xF8
0529 E094 LDI R25,4
052A 8399 STD Y+1,R25
052B 8388 STD Y+0,R24
052C E02C LDI R18,0xC
052D E004 LDI R16,4
052E DF46 RCALL _DispChinaPic16
(1538) DispChinaPic16(6,12,sshe16);//射
052F E188 LDI R24,0x18
0530 E095 LDI R25,5
0531 8399 STD Y+1,R25
0532 8388 STD Y+0,R24
0533 E02C LDI R18,0xC
0534 E006 LDI R16,6
0535 DF3F RCALL _DispChinaPic16
(1539)
(1540) /* DispChinaPic16(13,0,ba16_8);//
(1541) DispChinaPic16(15,0,ba16_8);//
(1542) DispChinaPic16(17,0,ba16_8);//
(1543) DispChinaPic16(13,3,ba16_8);//
(1544) DispChinaPic16(15,3,ba16_8);//
(1545) DispChinaPic16(17,3,ba16_8);//
(1546) DispChinaPic16(13,6,ba16_8);//
(1547) DispChinaPic16(15,6,ba16_8);//
(1548) DispChinaPic16(17,6,ba16_8);//
(1549) DispChinaPic16(8,9,ba16_8);//
(1550) DispChinaPic16(10,9,ba16_8);//
(1551) DispChinaPic16(12,9,ba16_8);//
(1552) DispChinaPic16(13,9,ba16_8);//
(1553) DispChinaPic16(15,9,ba16_8);//
(1554) DispChinaPic16(17,9,ba16_8);//
(1555) DispChinaPic16(10,12,ba16_8);//
(1556) DispChinaPic16(12,12,ba16_8);//
(1557) DispChinaPic16(15,12,ba16_8);//
(1558) DispChinaPic16(17,12,ba16_8);//
(1559) */
(1560) while(1);
FILE: <library>
0536 CFFF RJMP 0x0536
0537 9622 ADIW R28,2
0538 9508 RET
empy16s:
0539 920A ST R0,-Y
053A 921A ST R1,-Y
053B 938A ST R24,-Y
053C 939A ST R25,-Y
053D 9F02 MUL R16,R18
053E 01C0 MOVW R24,R0
053F 9F12 MUL R17,R18
0540 0D90 ADD R25,R0
0541 9F03 MUL R16,R19
0542 0D90 ADD R25,R0
0543 018C MOVW R16,R24
0544 9199 LD R25,Y+
0545 9189 LD R24,Y+
0546 9019 LD R1,Y+
0547 9009 LD R0,Y+
0548 9508 RET
pop_gset2:
0549 E0E2 LDI R30,2
054A 940C055B JMP pop
pop_gset3:
054C E0E4 LDI R30,4
054D 940C055B JMP pop
push_gset5:
054F 92FA ST R15,-Y
0550 92EA ST R14,-Y
push_gset4:
0551 92DA ST R13,-Y
0552 92CA ST R12,-Y
push_gset3:
0553 92BA ST R11,-Y
0554 92AA ST R10,-Y
push_gset2:
0555 937A ST R23,-Y
0556 936A ST R22,-Y
push_gset1:
0557 935A ST R21,-Y
0558 934A ST R20,-Y
0559 9508 RET
pop_gset1:
055A E0E1 LDI R30,1
pop:
055B 9149 LD R20,Y+
055C 9159 LD R21,Y+
055D FDE0 SBRC R30,0
055E 9508 RET
055F 9169 LD R22,Y+
0560 9179 LD R23,Y+
0561 FDE1 SBRC R30,1
0562 9508 RET
0563 90A9 LD R10,Y+
0564 90B9 LD R11,Y+
0565 FDE2 SBRC R30,2
0566 9508 RET
0567 90C9 LD R12,Y+
0568 90D9 LD R13,Y+
0569 FDE3 SBRC R30,3
056A 9508 RET
056B 90E9 LD R14,Y+
056C 90F9 LD R15,Y+
056D 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -