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

📄 ylf240128a.lst

📁 自己编制的北京友力发公司的液晶显示模块驱动程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
  o_x                  --> R20
    04A7 940E05CC  CALL	push_gset3
    04A9 2F62      MOV	R22,R18
    04AA 2F40      MOV	R20,R16
    04AB 9721      SBIW	R28,1
    04AC 80AF      LDD	R10,Y+7
    04AD 84B8      LDD	R11,Y+8
(1420) }
(1421) 
(1422) //通过点阵图层写入字符,字符大小为32*32
(1423) //写入速度较慢
(1424) //位置为x*32,y*32,显示数据为disp[]
(1425) void DispChinaPic16(uchar o_x,uchar o_y,const uchar disp[])
(1426) {
(1427)     uint temp;
(1428)     uchar num;
(1429)     temp=32*8*o_y;
    04AE 2F26      MOV	R18,R22
    04AF 2733      CLR	R19
    04B0 E000      LDI	R16,0
    04B1 E011      LDI	R17,1
    04B2 940E05B2  CALL	empy16s
    04B4 01B8      MOVW	R22,R16
(1430)     temp=temp+o_x;
    04B5 2E24      MOV	R2,R20
    04B6 2433      CLR	R3
    04B7 0D62      ADD	R22,R2
    04B8 1D73      ADC	R23,R3
(1431)     temp=temp+0x800;//加上图形区启始位置
    04B9 5060      SUBI	R22,0
    04BA 4F78      SBCI	R23,0xF8
(1432)     num=16;
    04BB E140      LDI	R20,0x10
    04BC C020      RJMP	0x04DD
(1433)     while(num)
(1434)     {
(1435)         WriteTwoData((uchar)temp,(uchar)(temp>>8),0x24);//设置地址指针
    04BD E284      LDI	R24,0x24
    04BE 8388      STD	Y+0,R24
    04BF 019B      MOVW	R18,R22
    04C0 2F23      MOV	R18,R19
    04C1 2733      CLR	R19
    04C2 2F06      MOV	R16,R22
    04C3 DEB7      RCALL	_WriteTwoData
(1436)         temp=temp+32;//  换行
    04C4 5E60      SUBI	R22,0xE0
    04C5 4F7F      SBCI	R23,0xFF
(1437)         WriteOneData(disp[32-num*2],0xc0);//数据写,地址加1
    04C6 EC20      LDI	R18,0xC0
    04C7 E082      LDI	R24,2
    04C8 9F84      MUL	R24,R20
    04C9 E2E0      LDI	R30,0x20
    04CA E0F0      LDI	R31,0
    04CB 19E0      SUB	R30,R0
    04CC 09F1      SBC	R31,R1
    04CD 0DEA      ADD	R30,R10
    04CE 1DFB      ADC	R31,R11
    04CF 9104      LPM	R16,0(Z)
    04D0 DEBA      RCALL	_WriteOneData
(1438)         WriteOneData(disp[33-num*2],0xc0);//数据写,地址加1
    04D1 EC20      LDI	R18,0xC0
    04D2 E082      LDI	R24,2
    04D3 9F84      MUL	R24,R20
    04D4 E2E1      LDI	R30,0x21
    04D5 E0F0      LDI	R31,0
    04D6 19E0      SUB	R30,R0
    04D7 09F1      SBC	R31,R1
    04D8 0DEA      ADD	R30,R10
    04D9 1DFB      ADC	R31,R11
    04DA 9104      LPM	R16,0(Z)
    04DB DEAF      RCALL	_WriteOneData
(1439)         num--;
    04DC 954A      DEC	R20
    04DD 2344      TST	R20
    04DE F6F1      BNE	0x04BD
    04DF 9621      ADIW	R28,1
    04E0 940E05C5  CALL	pop_gset3
    04E2 9508      RET
_DispChinaPic24:
  temp                 --> R20
  num                  --> R22
  disp                 --> R10
  o_y                  --> R20
  o_x                  --> R22
    04E3 940E05CC  CALL	push_gset3
    04E5 2F42      MOV	R20,R18
    04E6 2F60      MOV	R22,R16
    04E7 9721      SBIW	R28,1
    04E8 80AF      LDD	R10,Y+7
    04E9 84B8      LDD	R11,Y+8
(1440)     }    
(1441) }
(1442) 
(1443) 
(1444) void DispChinaPic24(uchar o_x,uchar o_y,const uchar disp[])
(1445) {
(1446)     uint temp;
(1447)     uchar num;
(1448)     temp=32*8*o_y;
    04EA 2F24      MOV	R18,R20
    04EB 2733      CLR	R19
    04EC E000      LDI	R16,0
    04ED E011      LDI	R17,1
    04EE 940E05B2  CALL	empy16s
    04F0 01A8      MOVW	R20,R16
(1449)     temp=temp+o_x;
    04F1 2E26      MOV	R2,R22
    04F2 2433      CLR	R3
    04F3 0D42      ADD	R20,R2
    04F4 1D53      ADC	R21,R3
(1450)     temp=temp+0x800;//加上图形区启始位置
    04F5 5040      SUBI	R20,0
    04F6 4F58      SBCI	R21,0xF8
(1451)     num=24;
    04F7 E168      LDI	R22,0x18
    04F8 C02B      RJMP	0x0524
(1452)     while(num)
(1453)     {
(1454)         WriteTwoData((uchar)temp,(uchar)(temp>>8),0x24);//设置地址指针
    04F9 E284      LDI	R24,0x24
    04FA 8388      STD	Y+0,R24
    04FB 019A      MOVW	R18,R20
    04FC 2F23      MOV	R18,R19
    04FD 2733      CLR	R19
    04FE 2F04      MOV	R16,R20
    04FF DE7B      RCALL	_WriteTwoData
(1455)         temp=temp+32;//  换行
    0500 5E40      SUBI	R20,0xE0
    0501 4F5F      SBCI	R21,0xFF
(1456)         WriteOneData(disp[72-num*3],0xc0);//数据写,地址加1
    0502 EC20      LDI	R18,0xC0
    0503 E083      LDI	R24,3
    0504 9F86      MUL	R24,R22
    0505 E4E8      LDI	R30,0x48
    0506 E0F0      LDI	R31,0
    0507 19E0      SUB	R30,R0
    0508 09F1      SBC	R31,R1
    0509 0DEA      ADD	R30,R10
    050A 1DFB      ADC	R31,R11
    050B 9104      LPM	R16,0(Z)
    050C DE7E      RCALL	_WriteOneData
(1457)         WriteOneData(disp[73-num*3],0xc0);//数据写,地址加1
    050D EC20      LDI	R18,0xC0
    050E E083      LDI	R24,3
    050F 9F86      MUL	R24,R22
    0510 E4E9      LDI	R30,0x49
    0511 E0F0      LDI	R31,0
    0512 19E0      SUB	R30,R0
    0513 09F1      SBC	R31,R1
    0514 0DEA      ADD	R30,R10
    0515 1DFB      ADC	R31,R11
    0516 9104      LPM	R16,0(Z)
    0517 DE73      RCALL	_WriteOneData
(1458)         WriteOneData(disp[74-num*3],0xc0);//数据写,地址加1
    0518 EC20      LDI	R18,0xC0
    0519 E083      LDI	R24,3
    051A 9F86      MUL	R24,R22
    051B E4EA      LDI	R30,0x4A
    051C E0F0      LDI	R31,0
    051D 19E0      SUB	R30,R0
    051E 09F1      SBC	R31,R1
    051F 0DEA      ADD	R30,R10
    0520 1DFB      ADC	R31,R11
    0521 9104      LPM	R16,0(Z)
    0522 DE68      RCALL	_WriteOneData
(1459)         num--;
    0523 956A      DEC	R22
    0524 2366      TST	R22
    0525 F699      BNE	0x04F9
    0526 9621      ADIW	R28,1
    0527 940E05C5  CALL	pop_gset3
    0529 9508      RET
_main:
    052A 9722      SBIW	R28,2
(1460)     }
(1461) }
(1462) 
(1463) void main()
(1464) {
(1465)     McuInit();
    052B DE11      RCALL	_McuInit
(1466)     LcdInit();
    052C DE6B      RCALL	_LcdInit
(1467)     ClearLcd();
    052D DE9B      RCALL	_ClearLcd
(1468) /*    CGRamGen(0,CGTAB);
(1469)     CGRamGen(0x80,yi16_1);
(1470)     CGRamGen(0x84,er16_2);
(1471)     CGRamGen(0x88,san16_3);
(1472)     CGRamGen(0x8c,si16_4);
(1473)     CGRamGen(0x90,wu16_5);
(1474)     CGRamGen(0x94,liu16_6);
(1475)     CGRamGen(0x98,qi16_7);
(1476)     CGRamGen(0x9c,ba16_8);
(1477)     CGRamGen(0xa0,jiu16_9);
(1478)     CGRamGen(0xa4,ling16_0);*/
(1479) 
(1480)     CGRamGen(number);
    052E E704      LDI	R16,0x74
    052F E010      LDI	R17,0
    0530 DECB      RCALL	_CGRamGen
(1481) //    CGRamGenTry(numbertry);
(1482) 
(1483) 
(1484) //    CGRamGen(0x80,ling16_0);
(1485) 
(1486) 
(1487)     DispChinaCode(24,0,0x80);
    0531 E880      LDI	R24,0x80
    0532 8388      STD	Y+0,R24
    0533 2722      CLR	R18
    0534 E108      LDI	R16,0x18
    0535 DF41      RCALL	_DispChinaCode
(1488)     DispChinaCode(26,0,0x84);
    0536 E884      LDI	R24,0x84
    0537 8388      STD	Y+0,R24
    0538 2722      CLR	R18
    0539 E10A      LDI	R16,0x1A
    053A DF3C      RCALL	_DispChinaCode
(1489)     DispChinaCode(28,0,0x88);
    053B E888      LDI	R24,0x88
    053C 8388      STD	Y+0,R24
    053D 2722      CLR	R18
    053E E10C      LDI	R16,0x1C
    053F DF37      RCALL	_DispChinaCode
(1490)     DispChinaCode(24,2,0x8c);
    0540 E88C      LDI	R24,0x8C
    0541 8388      STD	Y+0,R24
    0542 E022      LDI	R18,2
    0543 E108      LDI	R16,0x18
    0544 DF32      RCALL	_DispChinaCode
(1491)     DispChinaCode(26,2,0x90);
    0545 E980      LDI	R24,0x90
    0546 8388      STD	Y+0,R24
    0547 E022      LDI	R18,2
    0548 E10A      LDI	R16,0x1A
    0549 DF2D      RCALL	_DispChinaCode
(1492)     DispChinaCode(28,2,0x94);
    054A E984      LDI	R24,0x94
    054B 8388      STD	Y+0,R24
    054C E022      LDI	R18,2
    054D E10C      LDI	R16,0x1C
    054E DF28      RCALL	_DispChinaCode
(1493)     DispChinaCode(24,4,0x98);
    054F E988      LDI	R24,0x98
    0550 8388      STD	Y+0,R24
    0551 E024      LDI	R18,4
    0552 E108      LDI	R16,0x18
    0553 DF23      RCALL	_DispChinaCode
(1494)     
(1495)  /*   DispChinaPic24(0,0,yang24);
(1496)     DispChinaPic24(3,0,jian24);
(1497)     DispChinaPic24(6,0,hao24);
(1498)    DispChinaPic24(0,3,ci24);//次
(1499)     DispChinaPic24(3,3,shu24);//数
(1500)     DispChinaPic24(0,6,su24);//速
(1501)     DispChinaPic24(3,6,du24);//度
(1502)     DispChinaPic24(0,9,xing24);//行
(1503)     DispChinaPic24(3,9,cheng24);//程
(1504)     DispChinaPic24(0,12,ding24);//定
(1505)     DispChinaPic24(3,12,dian24);//点
(1506)     DispChinaPic24(6,12,pen24);//喷
(1507)     DispChinaPic24(9,12,sshe24);//射
(1508) */
(1509)      DispChinaPic16(0,0,yang16);//样
    0554 EF84      LDI	R24,0xF4
    0555 E092      LDI	R25,2
    0556 8399      STD	Y+1,R25
    0557 8388      STD	Y+0,R24
    0558 2722      CLR	R18
    0559 2700      CLR	R16
    055A DF4C      RCALL	_DispChinaPic16
(1510)     DispChinaPic16(2,0,jian16);//件
    055B E184      LDI	R24,0x14
    055C E093      LDI	R25,3
    055D 8399      STD	Y+1,R25
    055E 8388      STD	Y+0,R24
    055F 2722      CLR	R18
    0560 E002      LDI	R16,2
    0561 DF45      RCALL	_DispChinaPic16
(1511)     DispChinaPic16(4,0,hao16);//号
    0562 E384      LDI	R24,0x34
    0563 E093      LDI	R25,3
    0564 8399      STD	Y+1,R25
    0565 8388      STD	Y+0,R24
    0566 2722      CLR	R18
    0567 E004      LDI	R16,4
    0568 DF3E      RCALL	_DispChinaPic16
(1512)    DispChinaPic16(0,3,ci16);//次
    0569 E588      LDI	R24,0x58
    056A E093      LDI	R25,3
    056B 8399      STD	Y+1,R25
    056C 8388      STD	Y+0,R24
    056D E023      LDI	R18,3
    056E 2700      CLR	R16
    056F DF37      RCALL	_DispChinaPic16
(1513)     DispChinaPic16(2,3,shu16);//数
    0570 E788      LDI	R24,0x78
    0571 E093      LDI	R25,3
    0572 8399      STD	Y+1,R25
    0573 8388      STD	Y+0,R24
    0574 E023      LDI	R18,3
    0575 E002      LDI	R16,2
    0576 DF30      RCALL	_DispChinaPic16
(1514)     DispChinaPic16(0,6,su16);//速
    0577 E188      LDI	R24,0x18
    0578 E094      LDI	R25,4
    0579 8399      STD	Y+1,R25
    057A 8388      STD	Y+0,R24
    057B E026      LDI	R18,6
    057C 2700      CLR	R16
    057D DF29      RCALL	_DispChinaPic16
(1515)     DispChinaPic16(2,6,du16);//度
    057E E388      LDI	R24,0x38
    057F E094      LDI	R25,4
    0580 8399      STD	Y+1,R25
    0581 8388      STD	Y+0,R24
    0582 E026      LDI	R18,6
    0583 E002      LDI	R16,2
    0584 DF22      RCALL	_DispChinaPic16
(1516)     DispChinaPic16(0,9,xing16);//行
    0585 E588      LDI	R24,0x58
    0586 E094      LDI	R25,4
    0587 8399      STD	Y+1,R25
    0588 8388      STD	Y+0,R24
    0589 E029      LDI	R18,0x9
    058A 2700      CLR	R16
    058B DF1B      RCALL	_DispChinaPic16
(1517)     DispChinaPic16(2,9,cheng16);//程
    058C E788      LDI	R24,0x78
    058D E094      LDI	R25,4
    058E 8399      STD	Y+1,R25
    058F 8388      STD	Y+0,R24
    0590 E029      LDI	R18,0x9
    0591 E002      LDI	R16,2
    0592 DF14      RCALL	_DispChinaPic16
(1518)     DispChinaPic16(0,12,ding16);//定
    0593 EB88      LDI	R24,0xB8
    0594 E093      LDI	R25,3
    0595 8399      STD	Y+1,R25
    0596 8388      STD	Y+0,R24
    0597 E02C      LDI	R18,0xC
    0598 2700      CLR	R16
    0599 DF0D      RCALL	_DispChinaPic16
(1519)     DispChinaPic16(2,12,dian16);//点
    059A EF88      LDI	R24,0xF8
    059B E094      LDI	R25,4
    059C 8399      STD	Y+1,R25
    059D 8388      STD	Y+0,R24
    059E E02C      LDI	R18,0xC
    059F E002      LDI	R16,2
    05A0 DF06      RCALL	_DispChinaPic16
(1520)     DispChinaPic16(4,12,pen16);//喷
    05A1 E188      LDI	R24,0x18
    05A2 E095      LDI	R25,5
    05A3 8399      STD	Y+1,R25
    05A4 8388      STD	Y+0,R24
    05A5 E02C      LDI	R18,0xC
    05A6 E004      LDI	R16,4
    05A7 DEFF      RCALL	_DispChinaPic16
(1521)     DispChinaPic16(6,12,sshe16);//射
    05A8 E388      LDI	R24,0x38
    05A9 E095      LDI	R25,5
    05AA 8399      STD	Y+1,R25
    05AB 8388      STD	Y+0,R24
    05AC E02C      LDI	R18,0xC
    05AD E006      LDI	R16,6
    05AE DEF8      RCALL	_DispChinaPic16
(1522)     
(1523) /*     DispChinaPic16(13,0,ba16_8);//
(1524)     DispChinaPic16(15,0,ba16_8);//
(1525)     DispChinaPic16(17,0,ba16_8);//
(1526)    DispChinaPic16(13,3,ba16_8);//
(1527)     DispChinaPic16(15,3,ba16_8);//
(1528)     DispChinaPic16(17,3,ba16_8);//
(1529)     DispChinaPic16(13,6,ba16_8);//
(1530)     DispChinaPic16(15,6,ba16_8);//
(1531)     DispChinaPic16(17,6,ba16_8);//
(1532)     DispChinaPic16(8,9,ba16_8);//
(1533)     DispChinaPic16(10,9,ba16_8);//
(1534)     DispChinaPic16(12,9,ba16_8);//
(1535)     DispChinaPic16(13,9,ba16_8);//
(1536)     DispChinaPic16(15,9,ba16_8);//
(1537)     DispChinaPic16(17,9,ba16_8);//
(1538)     DispChinaPic16(10,12,ba16_8);//
(1539)     DispChinaPic16(12,12,ba16_8);//
(1540)     DispChinaPic16(15,12,ba16_8);//
(1541)     DispChinaPic16(17,12,ba16_8);//
(1542)     */
(1543)     while(1);
FILE: <library>
    05AF CFFF      RJMP	0x05AF
    05B0 9622      ADIW	R28,2
    05B1 9508      RET
empy16s:
    05B2 920A      ST	R0,-Y
    05B3 921A      ST	R1,-Y
    05B4 938A      ST	R24,-Y
    05B5 939A      ST	R25,-Y
    05B6 9F02      MUL	R16,R18
    05B7 01C0      MOVW	R24,R0
    05B8 9F12      MUL	R17,R18
    05B9 0D90      ADD	R25,R0
    05BA 9F03      MUL	R16,R19
    05BB 0D90      ADD	R25,R0
    05BC 018C      MOVW	R16,R24
    05BD 9199      LD	R25,Y+
    05BE 9189      LD	R24,Y+
    05BF 9019      LD	R1,Y+
    05C0 9009      LD	R0,Y+
    05C1 9508      RET
pop_gset2:
    05C2 E0E2      LDI	R30,2
    05C3 940C05D4  JMP	pop
pop_gset3:
    05C5 E0E4      LDI	R30,4
    05C6 940C05D4  JMP	pop
push_gset5:
    05C8 92FA      ST	R15,-Y
    05C9 92EA      ST	R14,-Y
push_gset4:
    05CA 92DA      ST	R13,-Y
    05CB 92CA      ST	R12,-Y
push_gset3:
    05CC 92BA      ST	R11,-Y
    05CD 92AA      ST	R10,-Y
push_gset2:
    05CE 937A      ST	R23,-Y
    05CF 936A      ST	R22,-Y
push_gset1:
    05D0 935A      ST	R21,-Y
    05D1 934A      ST	R20,-Y
    05D2 9508      RET
pop_gset1:
    05D3 E0E1      LDI	R30,1
pop:
    05D4 9149      LD	R20,Y+
    05D5 9159      LD	R21,Y+
    05D6 FDE0      SBRC	R30,0
    05D7 9508      RET
    05D8 9169      LD	R22,Y+
    05D9 9179      LD	R23,Y+
    05DA FDE1      SBRC	R30,1
    05DB 9508      RET
    05DC 90A9      LD	R10,Y+
    05DD 90B9      LD	R11,Y+
    05DE FDE2      SBRC	R30,2
    05DF 9508      RET
    05E0 90C9      LD	R12,Y+
    05E1 90D9      LD	R13,Y+
    05E2 FDE3      SBRC	R30,3
    05E3 9508      RET
    05E4 90E9      LD	R14,Y+
    05E5 90F9      LD	R15,Y+
    05E6 9508      RET

⌨️ 快捷键说明

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