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

📄 12864.lst

📁 ICCAVR编写128*64液晶程序测试已经通过
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0610 011B      MOVW	R2,R22
    0611 9420      COM	R2
    0612 9430      COM	R3
    0613 012A      MOVW	R4,R20
    0614 2042      AND	R4,R2
    0615 2053      AND	R5,R3
    0616 8248      STD	Y+0,R4
    0617 E021      LDI	R18,1
    0618 E001      LDI	R16,1
    0619 DC1D      RCALL	_write_LCD
(0469)    }
    061A 9621      ADIW	R28,1
    061B 940E1809  CALL	pop_gset5
    061D 9508      RET
_main:
    061E 972D      SBIW	R28,0xD
FILE: C:\DOCUME~1\Administrator\桌面\12864-ICC\main.c
(0001) #include <iom16v.h>
(0002) #include "lcd.h"
(0003) #include "gui.h"
(0004) 
(0005) void delay_nms(unsigned int n);
(0006) 
(0007) 
(0008) //-----------------------------------------------------------
(0009) //主函数
(0010) //-----------------------------------------------------------
(0011) void main(void)
(0012) {
(0013)    //unsigned char  j=0;
(0014) 
(0015)    LCD_Init();
    061F 940E02D4  CALL	_LCD_Init
(0016)    LCD_clr();                     //显示清屏
    0621 940E02EF  CALL	_LCD_clr
(0017)    delay_nms(1); 
    0623 E001      LDI	R16,1
    0624 E010      LDI	R17,0
    0625 940E01F6  CALL	_delay_nms
(0018) //GUI绘图演示
(0019)    GUI_Rectangle(0, 0, GUI_LCM_XMAX-1, GUI_LCM_YMAX-1, 1);
    0627 E081      LDI	R24,1
    0628 838C      STD	Y+4,R24
    0629 E38F      LDI	R24,0x3F
    062A 838A      STD	Y+2,R24
    062B E78F      LDI	R24,0x7F
    062C E090      LDI	R25,0
    062D 8399      STD	Y+1,R25
    062E 8388      STD	Y+0,R24
    062F 2722      CLR	R18
    0630 2700      CLR	R16
    0631 2711      CLR	R17
    0632 940E0710  CALL	_GUI_Rectangle
(0020) 
(0021)    GUI_Rectangle(60, 5, 123, 59, 1);
    0634 E081      LDI	R24,1
    0635 838C      STD	Y+4,R24
    0636 E38B      LDI	R24,0x3B
    0637 838A      STD	Y+2,R24
    0638 E78B      LDI	R24,0x7B
    0639 E090      LDI	R25,0
    063A 8399      STD	Y+1,R25
    063B 8388      STD	Y+0,R24
    063C E025      LDI	R18,5
    063D E30C      LDI	R16,0x3C
    063E E010      LDI	R17,0
    063F 940E0710  CALL	_GUI_Rectangle
(0022)    GUI_HLine(60, 13, 123, 1);
    0641 E081      LDI	R24,1
    0642 838A      STD	Y+2,R24
    0643 E78B      LDI	R24,0x7B
    0644 E090      LDI	R25,0
    0645 8399      STD	Y+1,R25
    0646 8388      STD	Y+0,R24
    0647 E02D      LDI	R18,0xD
    0648 E30C      LDI	R16,0x3C
    0649 E010      LDI	R17,0
    064A 940E06DA  CALL	_GUI_HLine
(0023)    GUI_RLine(68, 5, 13, 1);
    064C E081      LDI	R24,1
    064D 838A      STD	Y+2,R24
    064E E08D      LDI	R24,0xD
    064F 8388      STD	Y+0,R24
    0650 E025      LDI	R18,5
    0651 E404      LDI	R16,0x44
    0652 E010      LDI	R17,0
    0653 940E06F8  CALL	_GUI_RLine
(0024)    GUI_Line(60, 5, 68, 13, 1);
    0655 E081      LDI	R24,1
    0656 878C      STD	Y+12,R24
    0657 E04D      LDI	R20,0xD
    0658 E050      LDI	R21,0
    0659 E060      LDI	R22,0
    065A E070      LDI	R23,0
    065B 8748      STD	Y+8,R20
    065C 8759      STD	Y+9,R21
    065D 876A      STD	Y+10,R22
    065E 877B      STD	Y+11,R23
    065F E444      LDI	R20,0x44
    0660 E050      LDI	R21,0
    0661 E060      LDI	R22,0
    0662 E070      LDI	R23,0
    0663 834C      STD	Y+4,R20
    0664 835D      STD	Y+5,R21
    0665 836E      STD	Y+6,R22
    0666 837F      STD	Y+7,R23
    0667 E045      LDI	R20,5
    0668 E050      LDI	R21,0
    0669 E060      LDI	R22,0
    066A E070      LDI	R23,0
    066B 8348      STD	Y+0,R20
    066C 8359      STD	Y+1,R21
    066D 836A      STD	Y+2,R22
    066E 837B      STD	Y+3,R23
    066F E30C      LDI	R16,0x3C
    0670 E010      LDI	R17,0
    0671 E020      LDI	R18,0
    0672 E030      LDI	R19,0
    0673 940E07EE  CALL	_GUI_Line
(0025)    GUI_Line(60, 13, 68, 5, 1);
    0675 E081      LDI	R24,1
    0676 878C      STD	Y+12,R24
    0677 E045      LDI	R20,5
    0678 E050      LDI	R21,0
    0679 E060      LDI	R22,0
    067A E070      LDI	R23,0
    067B 8748      STD	Y+8,R20
    067C 8759      STD	Y+9,R21
    067D 876A      STD	Y+10,R22
    067E 877B      STD	Y+11,R23
    067F E444      LDI	R20,0x44
    0680 E050      LDI	R21,0
    0681 E060      LDI	R22,0
    0682 E070      LDI	R23,0
    0683 834C      STD	Y+4,R20
    0684 835D      STD	Y+5,R21
    0685 836E      STD	Y+6,R22
    0686 837F      STD	Y+7,R23
    0687 E04D      LDI	R20,0xD
    0688 E050      LDI	R21,0
    0689 E060      LDI	R22,0
    068A E070      LDI	R23,0
    068B 8348      STD	Y+0,R20
    068C 8359      STD	Y+1,R21
    068D 836A      STD	Y+2,R22
    068E 837B      STD	Y+3,R23
    068F E30C      LDI	R16,0x3C
    0690 E010      LDI	R17,0
    0691 E020      LDI	R18,0
    0692 E030      LDI	R19,0
    0693 940E07EE  CALL	_GUI_Line
(0026) 
(0027)    GUI_Circle(20, 20, 15, 1);
    0695 E081      LDI	R24,1
    0696 8788      STD	Y+8,R24
    0697 E04F      LDI	R20,0xF
    0698 E050      LDI	R21,0
    0699 E060      LDI	R22,0
    069A E070      LDI	R23,0
    069B 834C      STD	Y+4,R20
    069C 835D      STD	Y+5,R21
    069D 836E      STD	Y+6,R22
    069E 837F      STD	Y+7,R23
    069F E144      LDI	R20,0x14
    06A0 E050      LDI	R21,0
    06A1 E060      LDI	R22,0
    06A2 E070      LDI	R23,0
    06A3 8348      STD	Y+0,R20
    06A4 8359      STD	Y+1,R21
    06A5 836A      STD	Y+2,R22
    06A6 837B      STD	Y+3,R23
    06A7 E104      LDI	R16,0x14
    06A8 E010      LDI	R17,0
    06A9 E020      LDI	R18,0
    06AA E030      LDI	R19,0
    06AB 940E0AE6  CALL	_GUI_Circle
(0028)    GUI_CircleFill(20, 40, 15, 1);
    06AD E081      LDI	R24,1
    06AE 8788      STD	Y+8,R24
    06AF E04F      LDI	R20,0xF
    06B0 E050      LDI	R21,0
    06B1 E060      LDI	R22,0
    06B2 E070      LDI	R23,0
    06B3 834C      STD	Y+4,R20
    06B4 835D      STD	Y+5,R21
    06B5 836E      STD	Y+6,R22
    06B6 837F      STD	Y+7,R23
    06B7 E248      LDI	R20,0x28
    06B8 E050      LDI	R21,0
    06B9 E060      LDI	R22,0
    06BA E070      LDI	R23,0
    06BB 8348      STD	Y+0,R20
    06BC 8359      STD	Y+1,R21
    06BD 836A      STD	Y+2,R22
    06BE 837B      STD	Y+3,R23
    06BF E104      LDI	R16,0x14
    06C0 E010      LDI	R17,0
    06C1 E020      LDI	R18,0
    06C2 E030      LDI	R19,0
    06C3 940E0FC0  CALL	_GUI_CircleFill
    06C5 C011      RJMP	0x06D7
(0029) 
(0030)    while(1)
(0031)    {
(0032)     GUI_Rectangle(0, 0, GUI_LCM_XMAX-1, GUI_LCM_YMAX-1, 1);
    06C6 E081      LDI	R24,1
    06C7 838C      STD	Y+4,R24
    06C8 E38F      LDI	R24,0x3F
    06C9 838A      STD	Y+2,R24
    06CA E78F      LDI	R24,0x7F
    06CB E090      LDI	R25,0
    06CC 8399      STD	Y+1,R25
    06CD 8388      STD	Y+0,R24
    06CE 2722      CLR	R18
    06CF 2700      CLR	R16
    06D0 2711      CLR	R17
    06D1 940E0710  CALL	_GUI_Rectangle
(0033)       delay_nms(500);
    06D3 EF04      LDI	R16,0xF4
    06D4 E011      LDI	R17,1
    06D5 940E01F6  CALL	_delay_nms
    06D7 CFEE      RJMP	0x06C6
    06D8 962D      ADIW	R28,0xD
    06D9 9508      RET
_GUI_HLine:
  bak                  --> R14
  color                --> R20
  x1                   --> R22
  y0                   --> R10
  x0                   --> R12
    06DA 940E180C  CALL	push_gset5
    06DC 2EA2      MOV	R10,R18
    06DD 0168      MOVW	R12,R16
    06DE 9721      SBIW	R28,1
    06DF 856B      LDD	R22,Y+11
    06E0 857C      LDD	R23,Y+12
    06E1 854D      LDD	R20,Y+13
FILE: C:\DOCUME~1\Administrator\桌面\12864-ICC\gui.c
(0001) /****************************************************************************************
(0002) * 文件名:GUI.C
(0003) * 功能:GUI基本绘图函数。进行基本绘图运算,并调用相应的刷新程序更新LCD显示。
(0004) * 作者:黄绍斌
(0005) * 修改:冯建辉
(0006) * 日期:2006.09.13
(0007) * 备注:图形操作层,进行各种图形运算操作。
(0008) ****************************************************************************************/
(0009) #include "gui.h"
(0010) #include <math.h>
(0011) 
(0012) /****************************************************************************
(0013) * 名称:GUI_HLine()
(0014) * 功能:画水平线。
(0015) * 入口参数:x0		水平线起点所在列的位置
(0016) *           y0		水平线起点所在行的位置
(0017) *           x1          水平线终点所在列的位置
(0018) *           color	显示颜色(对于黑白色LCM,为0时灭,为1时显示)
(0019) * 出口参数:无
(0020) * 说明:操作失败原因是指定地址超出缓冲区范围。
(0021) ****************************************************************************/
(0022) void  GUI_HLine(unsigned int x0, unsigned char y0, unsigned int x1, TCOLOR color)
(0023) {
(0024)     unsigned char  bak;
(0025)     if(x0>x1) 				// 对x0、x1大小进行排列,以便画图
    06E2 156C      CP	R22,R12
    06E3 057D      CPC	R23,R13
    06E4 F420      BCC	0x06E9
(0026)     {
(0027)         bak = x1;
    06E5 2EE6      MOV	R14,R22
(0028)         x1 = x0;
    06E6 01B6      MOVW	R22,R12
(0029)         x0 = bak;
    06E7 2CCE      MOV	R12,R14
    06E8 24DD      CLR	R13
(0030)     }   
(0031)     do
(0032)     {
(0033)         GUI_Point(x0, y0, color);	// 逐点显示,描出垂直线
    06E9 8348      STD	Y+0,R20
    06EA 2D2A      MOV	R18,R10
    06EB 2D0C      MOV	R16,R12
    06EC 940E05B7  CALL	_GUI_Point
(0034)         x0++;
    06EE 01C6      MOVW	R24,R12
    06EF 9601      ADIW	R24,1
    06F0 016C      MOVW	R12,R24
(0035)     }
(0036)     while(x1>=x0);
    06F1 156C      CP	R22,R12
    06F2 057D      CPC	R23,R13
    06F3 F7A8      BCC	0x06E9
    06F4 9621      ADIW	R28,1
    06F5 940E1809  CALL	pop_gset5
    06F7 9508      RET
_GUI_RLine:
  bak                  --> R14
  color                --> R20
  y1                   --> R22
  y0                   --> R10
  x0                   --> R12
    06F8 940E180C  CALL	push_gset5
    06FA 2EA2      MOV	R10,R18
    06FB 0168      MOVW	R12,R16
    06FC 9721      SBIW	R28,1
    06FD 856B      LDD	R22,Y+11
    06FE 854D      LDD	R20,Y+13
(0037) }
(0038) 
(0039) /***********************************************************************
(0040) * 名称:GUI_RLine()
(0041) * 功能:画竖直线。根据硬件特点,实现加速。
(0042) * 入口参数:x0		垂直线起点所在列的位置
(0043) *           y0		垂直线起点所在行的位置
(0044) *           y1          垂直线终点所在行的位置
(0045) *           color	显示颜色(对于黑白色LCM,为0时灭,为1时显示)
(0046) * 出口参数:	无
(0047) * 说明:操作失败原因是指定地址超出缓冲区范围。
(0048) ***********************************************************************/
(0049) void  GUI_RLine(unsigned int x0, unsigned char y0, unsigned char y1, TCOLOR color)
(0050) {
(0051)     unsigned char  bak;
(0052)     if(y0>y1)                           // 对y0、y1大小进行排列,以便画图
    06FF 156A      CP	R22,R10
    0700 F418      BCC	0x0704
(0053)     {
(0054)         bak = y1;
    0701 2EE6      MOV	R14,R22
(0055)         y1 = y0;
    0702 2D6A      MOV	R22,R10
(0056)         y0 = bak;
    0703 2CAE      MOV	R10,R14
(0057)     }
(0058)     do
(0059)     {
(0060)         GUI_Point(x0, y0, color);	// 逐点显示,描出垂直线
    0704 8348      STD	Y+0,R20
    0705 2D2A      MOV	R18,R10
    0706 2D0C      MOV	R16,R12
    0707 940E05B7  CALL	_GUI_Point
(0061)         y0++;
    0709 94A3      INC	R10
(0062)     }
(0063)     while(y1>=y0);
    070A 156A      CP	R22,R10
    070B F7C0      BCC	0x0704
    070C 9621      ADIW	R28,1
    070D 940E1809  CALL	pop_gset5
    070F 9508      RET
_GUI_Rectangle:
  color                --> R22
  y1                   --> Y+11
  x1                   --> Y+9
  y0                   --> R20
  x0                   --> R10
    0710 940E1810  CALL	push_gset3
    0712 2F42      MOV	R20,R18
    0713 0158      MOVW	R10,R16
    0714 9723      SBIW	R28,3
    0715 856D      LDD	R22,Y+13
(0064) }
(0065) 
(0066) /****************************************************************************
(0067) * 名称:GUI_Rectangle()
(0068) * 功能:画矩形。
(0069) * 入口参数:x0		矩形左上角的x坐标值
(0070) *           y0		矩形左上角的y坐标值
(0071) *           x1          矩形右下角的x坐标值
(0072) *           y1          矩形右下角的y坐标值
(0073) *           color	显示颜色
(0074) * 出口参数:无
(0075) * 说明:操作失败原因是指定地址超出有效范围。
(0076) ****************************************************************************/
(0077) void  GUI_Rectangle(uint16 x0, uint8 y0, uint16 x1, uint8 y1, TCOLOR color)
(0078) {
(0079)    GUI_HLine(x0, y0, x1, color);
    0716 836A      STD	Y+2,R22
    0717 8409      LDD	R0,Y+9
    0718 841A      LDD	R1,Y+10
    0719 8219      STD	Y+1,R1
    071A 8208      STD	Y+0,R0
    071B 2F24      MOV	R18,R20
    071C 0185      MOVW	R16,R10
    071D DFBC      RCALL	_GUI_HLine
(0080)    GUI_HLine(x0, y1, x1, color);
    071E 836A      STD	Y+2,R22
    071F 8409      LDD	R0,Y+9
    0720 841A      LDD	R1,Y+10
    0721 8219      STD	Y+1,R1
    0722 8208      STD	Y+0,R0
    0723 852B      LDD	R18,Y+11
    0724 0185      MOVW	R16,R10
    0725 DFB4      RCALL	_GUI_HLine
(0081)    GUI_RLine(x0, y0, y1, color);
    0726 836A      STD	Y+2,R22
    0727 840B      LDD	R0,Y+11
    0728 8208      STD	Y+0,R0
    0729 2F24      MOV	R18,R20
    072A 0185      MOVW	R16,R10
    072B DFCC      RCALL	_GUI_RLine
(0082)    GUI_RLine(x1, y0, y1, color);
    072C 836A      STD	Y+2,R22
    072D 840B      LDD	R0,Y+11
    072E 8208      STD	Y+0,R0
    072F 2F24      MOV	R18,R20
    0730 8509      LDD	R16,Y+9
    0731 851A      LDD	R17,Y+10
    0732 DFC5      RCALL	_GUI_RLine
    0733 9623      ADIW	R28,3
    0734 940E1803  CALL	pop_gset3
    0736 9508      RET
_GUI_Rectang

⌨️ 快捷键说明

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