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

📄 ylf240128a.lst

📁 自己编制的北京友力发公司的液晶显示模块驱动程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
(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 + -