📄 lcd_test.lis
字号:
.module lcd_test.c
.area text(rom, con, rel)
0000 .dbfile F:\avr\lcdsd1330\lcd_test.c
.area data(ram, con, rel)
0000 .dbfile F:\avr\lcdsd1330\lcd_test.c
0000 _sec::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile F:\avr\lcdsd1330\lcd_test.c
0002 .dbsym e sec _sec I
0002 _min::
0002 .blkb 2
.area idata
0002 0000 .word 0
.area data(ram, con, rel)
0004 .dbfile F:\avr\lcdsd1330\lcd_test.c
0004 .dbsym e min _min I
.area text(rom, con, rel)
0000 .dbfile F:\avr\lcdsd1330\lcd_test.c
0000 .dbfunc e main _main fV
0000 ; o -> R10,R11
0000 ; j -> R20,R21
0000 ; i -> R22,R23
.even
0000 _main::
0000 2797 sbiw R28,7
0002 .dbline -1
0002 .dbline 41
0002 ; /***********************************************************************
0002 ; Content: Test for graphic library for Epson SED-1335 based LCD displays.
0002 ; Last modified: 15.05.2003
0002 ; Copyrights: Free to use, free to change, free to delete :-)
0002 ; Compiler: ImageCraft AVR
0002 ; Written by: Knut Baardsen @ Baardsen Software, Norway
0002 ; Updates: http://www.baso.no
0002 ; ***********************************************************************/
0002 ;
0002 ; /***********************************************************************
0002 ; This software is provided "as is"; Without warranties either express or
0002 ; implied, including any warranty regarding merchantability, fitness for
0002 ; a particular purpose or noninfringement.
0002 ; In no event shall Baardsen Software or its suppliers be liable for any
0002 ; special,indirect,incidential or concequential damages resulting from
0002 ; the use or inability to use this software.
0002 ; ***********************************************************************/
0002 ;
0002 ;
0002 ; /***********************************************************************
0002 ; Includes
0002 ; ***********************************************************************/
0002 ; #include "global.h"
0002 ;
0002 ;
0002 ; /***********************************************************************
0002 ; Defines and globals
0002 ; ***********************************************************************/
0002 ; #define ClockX 160
0002 ; #define ClockY 120
0002 ; #define ClockOR 40
0002 ; #define ClockIR 2
0002 ; int sec = 0;
0002 ; int min = 0;
0002 ;
0002 ;
0002 ; /***********************************************************************
0002 ; Main
0002 ; ***********************************************************************/
0002 ; void main()
0002 ; {
0002 .dbline 42
0002 ; int i = 0;
0002 6627 clr R22
0004 7727 clr R23
0006 .dbline 43
0006 ; int j = 0;
0006 4427 clr R20
0008 5527 clr R21
000A .dbline 44
000A ; int o = 0;
000A AA24 clr R10
000C BB24 clr R11
000E .dbline 46
000E ; // Init the display
000E ; lcd_init();
000E 0E940000 xcall _lcd_init
0012 .dbline 47
0012 ; lcd_clear_text();
0012 0E940000 xcall _lcd_clear_text
0016 .dbline 48
0016 ; lcd_clear_graphics();
0016 0E940000 xcall _lcd_clear_graphics
001A .dbline 50
001A ;
001A ; lcd_write_command(0x4f);
001A 0FE4 ldi R16,79
001C 0E940000 xcall _lcd_write_command
0020 .dbline 71
0020 ; /*lcd_write_command(0x46);
0020 ; lcd_write_data(0x00);
0020 ; lcd_write_data(0x10);
0020 ; lcd_show_cursor(1);
0020 ; // lcd_show_cursor(0);
0020 ; lcd_write_command(0x42);
0020 ; for (i = 0;i < 16; i++)
0020 ; {
0020 ; lcd_write_data(jian4[i]);
0020 ; }
0020 ; lcd_write_command(0x46);
0020 ; lcd_write_data(0x01);
0020 ; lcd_write_data(0x10);
0020 ;
0020 ; lcd_write_command(0x42);
0020 ; for (i = 16;i < 32; i++)
0020 ; {
0020 ; lcd_write_data(jian4[i]);
0020 ; }*/
0020 ;
0020 ; for(j= 0; j < 40 ; j++ )
0020 L2:
0020 .dbline 72
0020 ; {
0020 .dbline 73
0020 ; lcd_write_command(0x46);
0020 06E4 ldi R16,70
0022 0E940000 xcall _lcd_write_command
0026 .dbline 74
0026 ; lcd_write_data(0x00+j);
0026 042F mov R16,R20
0028 0E940000 xcall _lcd_write_data
002C .dbline 75
002C ; lcd_write_data(0x10);
002C 00E1 ldi R16,16
002E 0E940000 xcall _lcd_write_data
0032 .dbline 76
0032 ; lcd_write_command(0x42);
0032 02E4 ldi R16,66
0034 0E940000 xcall _lcd_write_command
0038 .dbline 77
0038 ; for(i = j*240; i < (240*j+240) ; i++)
0038 00EF ldi R16,240
003A 10E0 ldi R17,0
003C 9A01 movw R18,R20
003E 0E940000 xcall empy16s
0042 B801 movw R22,R16
0044 0BC0 xjmp L9
0046 L6:
0046 .dbline 78
0046 ; {
0046 .dbline 79
0046 ; lcd_write_data(~windows[i]);
0046 80E0 ldi R24,<_windows
0048 90E0 ldi R25,>_windows
004A FB01 movw R30,R22
004C E80F add R30,R24
004E F91F adc R31,R25
0050 0691 elpm R16,Z
0052 0095 com R16
0054 0E940000 xcall _lcd_write_data
0058 .dbline 80
0058 ; }
0058 L7:
0058 .dbline 77
0058 6F5F subi R22,255 ; offset = 1
005A 7F4F sbci R23,255
005C L9:
005C .dbline 77
005C 00EF ldi R16,240
005E 10E0 ldi R17,0
0060 9A01 movw R18,R20
0062 0E940000 xcall empy16s
0066 C801 movw R24,R16
0068 8051 subi R24,16 ; offset = 240
006A 9F4F sbci R25,255
006C 6817 cp R22,R24
006E 7907 cpc R23,R25
0070 54F3 brlt L6
0072 X0:
0072 .dbline 81
0072 ; }
0072 L3:
0072 .dbline 71
0072 4F5F subi R20,255 ; offset = 1
0074 5F4F sbci R21,255
0076 .dbline 71
0076 4832 cpi R20,40
0078 E0E0 ldi R30,0
007A 5E07 cpc R21,R30
007C 8CF2 brlt L2
007E X1:
007E L10:
007E .dbline 82
007E ; while(1);
007E L11:
007E .dbline 82
007E FFCF xjmp L10
0080 L16:
0080 .dbline 129
0080 ;
0080 ; // Disable all interrupts
0080 ; CLI();
0080 ; // Set up timer 1 for about 1 second
0080 ; TCCR1B = 0x00; //stop
0080 ; TCNT1H = 0xE3; //setup
0080 ; TCNT1L = 0xE1;
0080 ; OCR1AH = 0x1C;
0080 ; OCR1AL = 0x1F;
0080 ; OCR1BH = 0x1C;
0080 ; OCR1BL = 0x1F;
0080 ; OCR1CH = 0x1C;
0080 ; OCR1CL = 0x1F;
0080 ; ICR1H = 0x1C;
0080 ; ICR1L = 0x1F;
0080 ; TCCR1A = 0x00;
0080 ; TCCR1B = 0x05; //start Timer
0080 ; MCUCR = 0x00;
0080 ; EICRA = 0x00; //extended ext ints
0080 ; EICRB = 0x00; //extended ext ints
0080 ; EIMSK = 0x00;
0080 ; TIMSK = 0x04; //timer interrupt sources
0080 ; ETIMSK = 0x00; //extended timer interrupt sources
0080 ; //lcd_chinesechar(0, 0,jian4 ,2,16,0);
0080 ; // lcd_chinesechar(50, 50,jian4 ,2,16,1);
0080 ; //lcd_chinesechar(10, 12,jian4 ,2,16,1);
0080 ; //while(1);
0080 ; // Draw a frame
0080 ; lcd_rectangle(1,1,320,240,1);
0080 ; lcd_rectangle(3,3,318,238,1);
0080 ; // Write some text
0080 ;
0080 ;
0080 ; lcd_goto(10,4);
0080 ; lcd_write_string(" Baardsen Software");
0080 ; lcd_goto(10,5);
0080 ; lcd_write_string(" Svennahaugen 39");
0080 ; lcd_goto(10,6);
0080 ; lcd_write_string("5516 Haugesund, Norway");
0080 ; //DrawClockOutline();
0080 ; lcd_circle(ClockX,ClockY,ClockIR,1);
0080 ; lcd_circle(ClockX,ClockY,ClockOR,1);
0080 ; i = 0;
0080 ;
0080 ; SEI();
0080 ; while (i < 360)
0080 ; {
0080 .dbline 130
0080 ; lcd_degree_line(ClockX,ClockY,i,ClockOR-5,ClockOR,1);
0080 81E0 ldi R24,1
0082 8E83 std y+6,R24
0084 88E2 ldi R24,40
0086 90E0 ldi R25,0
0088 9D83 std y+5,R25
008A 8C83 std y+4,R24
008C 83E2 ldi R24,35
008E 9B83 std y+3,R25
0090 8A83 std y+2,R24
0092 7983 std y+1,R23
0094 6883 std y+0,R22
0096 28E7 ldi R18,120
0098 30E0 ldi R19,0
009A 00EA ldi R16,160
009C 10E0 ldi R17,0
009E 0E940000 xcall _lcd_degree_line
00A2 .dbline 131
00A2 ; i = i + 30;
00A2 625E subi R22,226 ; offset = 30
00A4 7F4F sbci R23,255
00A6 .dbline 132
00A6 ; }
00A6 L17:
00A6 .dbline 128
00A6 6836 cpi R22,104
00A8 E1E0 ldi R30,1
00AA 7E07 cpc R23,R30
00AC 4CF3 brlt L16
00AE X2:
00AE L19:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -