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

📄 n8bit.lis

📁 128X128的TFT并口驱动测试程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module n8bit.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\taobao\src\n8bit.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 50
 0000           ; //ICC-AVR application builder : 2008-11-2 11:21:49
 0000           ; // Target : M32
 0000           ; // Crystal: 8.0000Mhz
 0000           ; /******************************************************************************
 0000           ; Copyright 2008 海景电子
 0000           ; All rights reserved.
 0000           ; 
 0000           ; 1.6寸彩屏AVR DEMO
 0000           ; 
 0000           ; 版本:1.0.0
 0000           ; Auther:康锦海
 0000           ; 完成日期:2008.12.14
 0000           ; 主频:8.000M
 0000           ; 液晶型号:  128X128 26万色      驱动芯片:三星S6D0117
 0000           ; 淘宝长期供货:http://shop36350482.taobao.com/
 0000           ; 
 0000           ; 技术支持:
 0000           ; 康锦海    手机:  13316518267(接听免费)
 0000           ;             QQ:   546829846
 0000           ;          email:luckroll@yahoo.com.cn
 0000           ; 
 0000           ; ******************************************************************************/
 0000           ; #include <iom32v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; //Signal bit definitions
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; #define  lcd_data   PORTD
 0000           ; #define        lcd_cs     0
 0000           ; #define        lcd_rst        1
 0000           ; #define        lcd_rs     2
 0000           ; #define  lcd_rd     3
 0000           ; #define  lcd_led    4
 0000           ; #define        lcd_wr         5
 0000           ; #define  SetLcdRS   PORTA|=(1<<lcd_rs);
 0000           ; #define  ClrLcdRS   PORTA&=~(1<<lcd_rs);
 0000           ; #define  SetLcdWR   PORTA |=(1<<lcd_wr);
 0000           ; #define  ClrLcdWR   PORTA &=~(1<<lcd_wr);
 0000           ; #define  Setled     PORTA|=(1<<lcd_led);
 0000           ; #define  Clrled     PORTA&=~(1<<lcd_led);
 0000           ; #define  SetLcdRST  PORTA|=(1<<lcd_rst);
 0000           ; #define  ClrLcdRST  PORTA&=~(1<<lcd_rst);
 0000           ; #define  SetLcdCS   PORTA|=(1<<lcd_cs);
 0000           ; #define  ClrLcdCS   PORTA&=~(1<<lcd_cs);
 0000           ; const unsigned char AVR_LOGO[18624];
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 51
 0000           ;      PORTA = 0x2F;
 0000 8FE2              ldi R24,47
 0002 8BBB              out 0x1b,R24
 0004                   .dbline 52
 0004           ;      DDRA  = 0xFF;
 0004 8FEF              ldi R24,255
 0006 8ABB              out 0x1a,R24
 0008                   .dbline 53
 0008           ;      PORTB = 0x00;
 0008 2224              clr R2
 000A 28BA              out 0x18,R2
 000C                   .dbline 54
 000C           ;      DDRB  = 0x00;
 000C 27BA              out 0x17,R2
 000E                   .dbline 55
 000E           ;      PORTC = 0x00; 
 000E 25BA              out 0x15,R2
 0010                   .dbline 56
 0010           ;      DDRC  = 0x00;
 0010 24BA              out 0x14,R2
 0012                   .dbline 57
 0012           ;      PORTD = 0xff;
 0012 82BB              out 0x12,R24
 0014                   .dbline 58
 0014           ;      DDRD  = 0xff;
 0014 81BB              out 0x11,R24
 0016                   .dbline -2
 0016           L1:
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbend
 0018                   .dbfunc e init_devices _init_devices fV
                        .even
 0018           _init_devices::
 0018                   .dbline -1
 0018                   .dbline 63
 0018           ; }
 0018           ; 
 0018           ; //call this routine to initialize all peripherals
 0018           ; void init_devices(void)
 0018           ; {
 0018                   .dbline 64
 0018           ;      CLI(); //disable all interrupts
 0018 F894              cli
 001A                   .dbline 65
 001A           ;      port_init();
 001A F2DF              xcall _port_init
 001C                   .dbline 67
 001C           ; 
 001C           ;      MCUCR = 0x00;
 001C 2224              clr R2
 001E 25BE              out 0x35,R2
 0020                   .dbline 68
 0020           ;      GICR  = 0x00;
 0020 2BBE              out 0x3b,R2
 0022                   .dbline 69
 0022           ;      TIMSK = 0x00; //timer interrupt sources
 0022 29BE              out 0x39,R2
 0024                   .dbline 70
 0024           ;      SEI(); //re-enable interrupts
 0024 7894              sei
 0026                   .dbline -2
 0026           L2:
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbend
 0028                   .dbfunc e Delay_1us _Delay_1us fV
                        .even
 0028           _Delay_1us::
 0028                   .dbline -1
 0028                   .dbline 74
 0028           ;      //all peripherals are now initialized
 0028           ; }
 0028           ; void Delay_1us(void)//1us延时函数
 0028           ; {
 0028                   .dbline 75
 0028           ;      asm("nop");
 0028 0000              nop
 002A                   .dbline -2
 002A           L3:
 002A                   .dbline 0 ; func end
 002A 0895              ret
 002C                   .dbend
 002C                   .dbfunc e Delay_nus _Delay_nus fV
 002C           ;              i -> R20,R21
 002C           ;              n -> R22,R23
                        .even
 002C           _Delay_nus::
 002C 0E940000          xcall push_gset2
 0030 B801              movw R22,R16
 0032                   .dbline -1
 0032                   .dbline 78
 0032           ; }
 0032           ; void Delay_nus(unsigned int n)//N us延时函数
 0032           ; {
 0032                   .dbline 79
 0032           ;      unsigned int i=0;
 0032 4427              clr R20
 0034 5527              clr R21
 0036                   .dbline 80
 0036           ;      for (i=0;i<n;i++)
 0036 03C0              xjmp L8
 0038           L5:
 0038                   .dbline 81
 0038 F7DF              xcall _Delay_1us
 003A           L6:
 003A                   .dbline 80
 003A 4F5F              subi R20,255  ; offset = 1
 003C 5F4F              sbci R21,255
 003E           L8:
 003E                   .dbline 80
 003E 4617              cp R20,R22
 0040 5707              cpc R21,R23
 0042 D0F3              brlo L5
 0044                   .dbline -2
 0044           L4:
 0044 0E940000          xcall pop_gset2
 0048                   .dbline 0 ; func end
 0048 0895              ret
 004A                   .dbsym r i 20 i
 004A                   .dbsym r n 22 i
 004A                   .dbend
 004A                   .dbfunc e Delay_1ms _Delay_1ms fV
 004A           ;              i -> R16,R17
                        .even
 004A           _Delay_1ms::
 004A                   .dbline -1
 004A                   .dbline 84
 004A           ;      Delay_1us();
 004A           ; }
 004A           ; void Delay_1ms(void)//1ms延时函数
 004A           ; {
 004A                   .dbline 86
 004A 0027              clr R16
 004C 1127              clr R17
 004E 02C0              xjmp L13
 0050           L10:
 0050                   .dbline 86
 0050           L11:
 0050                   .dbline 86
 0050 0F5F              subi R16,255  ; offset = 1
 0052 1F4F              sbci R17,255
 0054           L13:
 0054                   .dbline 86
 0054           ;      unsigned int i;
 0054           ;      for (i=0;i<1140;i++);
 0054 0437              cpi R16,116
 0056 E4E0              ldi R30,4
 0058 1E07              cpc R17,R30
 005A D0F3              brlo L10
 005C                   .dbline -2
 005C           L9:
 005C                   .dbline 0 ; func end
 005C 0895              ret
 005E                   .dbsym r i 16 i
 005E                   .dbend
 005E                   .dbfunc e Delay_nms _Delay_nms fV
 005E           ;              i -> R20,R21
 005E           ;              n -> R22,R23
                        .even
 005E           _Delay_nms::
 005E 0E940000          xcall push_gset2
 0062 B801              movw R22,R16
 0064                   .dbline -1
 0064                   .dbline 89
 0064           ; }
 0064           ; void Delay_nms(unsigned int n)//N ms延时函数
 0064           ; {
 0064                   .dbline 90
 0064           ;      unsigned int i=0;
 0064 4427              clr R20
 0066 5527              clr R21
 0068                   .dbline 91
 0068           ;      for (i=0;i<n;i++)
 0068 03C0              xjmp L18
 006A           L15:
 006A                   .dbline 92
 006A EFDF              xcall _Delay_1ms
 006C           L16:
 006C                   .dbline 91
 006C 4F5F              subi R20,255  ; offset = 1
 006E 5F4F              sbci R21,255
 0070           L18:
 0070                   .dbline 91
 0070 4617              cp R20,R22
 0072 5707              cpc R21,R23
 0074 D0F3              brlo L15
 0076                   .dbline -2
 0076           L14:
 0076 0E940000          xcall pop_gset2
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbsym r i 20 i
 007C                   .dbsym r n 22 i
 007C                   .dbend
 007C                   .dbfunc e write_data _write_data fV
 007C           ;           data -> R16
                        .even
 007C           _write_data::
 007C                   .dbline -1
 007C                   .dbline 96
 007C           ;      Delay_1ms();
 007C           ; }
 007C           ; 
 007C           ; void write_data(unsigned char data)
 007C           ; {
 007C                   .dbline 99
 007C           ; 
 007C           ; 
 007C           ;        SetLcdRS;
 007C DA9A              sbi 0x1b,2
 007E                   .dbline 99
 007E                   .dbline 100
 007E           ;        ClrLcdCS;
 007E D898              cbi 0x1b,0
 0080                   .dbline 100
 0080                   .dbline 102
 0080           ; 
 0080           ;        lcd_data=data;
 0080 02BB              out 0x12,R16
 0082                   .dbline 103
 0082           ;        ClrLcdWR;
 0082 DD98              cbi 0x1b,5
 0084                   .dbline 103
 0084                   .dbline 105
 0084           ; //     asm("nop");
 0084           ;        SetLcdWR;
 0084 DD9A              sbi 0x1b,5
 0086                   .dbline 105
 0086                   .dbline 110
 0086           ; 
 0086           ;       
 0086           ;       
 0086           ;       
 0086           ;        SetLcdCS;
 0086 D89A              sbi 0x1b,0
 0088                   .dbline 110
 0088                   .dbline -2
 0088           L19:
 0088                   .dbline 0 ; func end
 0088 0895              ret
 008A                   .dbsym r data 16 c
 008A                   .dbend
 008A                   .dbfunc e write_data16 _write_data16 fV
 008A           ;          dataL -> R18
 008A           ;          dataH -> R16
                        .even
 008A           _write_data16::
 008A                   .dbline -1
 008A                   .dbline 114
 008A           ; 
 008A           ; }
 008A           ; void write_data16(unsigned char dataH,unsigned char dataL)
 008A           ; {
 008A                   .dbline 117
 008A           ;       
 008A           ; 
 008A           ;        SetLcdRS;
 008A DA9A              sbi 0x1b,2
 008C                   .dbline 117
 008C                   .dbline 118
 008C           ;        ClrLcdCS;
 008C D898              cbi 0x1b,0
 008E                   .dbline 118
 008E                   .dbline 119
 008E           ;        lcd_data=dataH;
 008E 02BB              out 0x12,R16
 0090                   .dbline 120
 0090           ;      ClrLcdWR;
 0090 DD98              cbi 0x1b,5
 0092                   .dbline 120
 0092                   .dbline 122
 0092           ; //     asm("nop");
 0092           ;        SetLcdWR;
 0092 DD9A              sbi 0x1b,5
 0094                   .dbline 122
 0094                   .dbline 123
 0094           ;        lcd_data=dataL;
 0094 22BB              out 0x12,R18
 0096                   .dbline 124
 0096           ;        ClrLcdWR;
 0096 DD98              cbi 0x1b,5
 0098                   .dbline 124
 0098                   .dbline 126
 0098           ; //     asm("nop");
 0098           ;        SetLcdWR;
 0098 DD9A              sbi 0x1b,5
 009A                   .dbline 126

⌨️ 快捷键说明

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