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

📄 test.lis

📁 液晶屏源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module test.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\iccavr\mega16\11\10bit_adc\test.c
 0000                   .dbfile D:\iccavr\mega16\11\10bit_adc\delay.h
 0000                   .dbfunc e delay_us _delay_us fV
                        .even
 0000           _delay_us::
 0000                   .dbline -1
 0000                   .dbline 6
 0000           ; /**********延时函数*****************/
 0000           ; /*-----------------------------------------------
 0000           ; delay_us         :1us延时函数
 0000           ; ------------------------------------------------*/
 0000           ; void delay_us(void)
 0000           ; {
 0000                   .dbline 7
 0000           ;  asm("nop");
 0000 0000              nop
 0002                   .dbline -2
 0002           L1:
 0002                   .dbline 0 ; func end
 0002 0895              ret
 0004                   .dbend
 0004                   .dbfunc e delay_nus _delay_nus fV
 0004           ;              t -> R20,R21
                        .even
 0004           _delay_nus::
 0004 4A93              st -y,R20
 0006 5A93              st -y,R21
 0008 A801              movw R20,R16
 000A                   .dbline -1
 000A                   .dbline 14
 000A           ; }
 000A           ; /*-----------------------------------------------
 000A           ; delay_nus          :长延时函数
 000A           ; 输入参数: t        :延时时间 us
 000A           ; ------------------------------------------------*/
 000A           ; void delay_nus(unsigned int t)
 000A           ; {
 000A 01C0              xjmp L4
 000C           L3:
 000C                   .dbline 16
 000C           ;  while(t--)
 000C           ;   delay_us();
 000C F9DF              xcall _delay_us
 000E           L4:
 000E                   .dbline 15
 000E 1A01              movw R2,R20
 0010 4150              subi R20,1
 0012 5040              sbci R21,0
 0014 2220              tst R2
 0016 D1F7              brne L3
 0018 3320              tst R3
 001A C1F7              brne L3
 001C           X0:
 001C                   .dbline -2
 001C           L2:
 001C                   .dbline 0 ; func end
 001C 5991              ld R21,y+
 001E 4991              ld R20,y+
 0020 0895              ret
 0022                   .dbsym r t 20 i
 0022                   .dbend
 0022                   .dbfunc e delay_ms _delay_ms fV
 0022           ;              i -> R16,R17
                        .even
 0022           _delay_ms::
 0022                   .dbline -1
 0022                   .dbline 22
 0022           ; }
 0022           ; /*----------------------------------------------
 0022           ; delay_ms         :1ms延时函数
 0022           ; -----------------------------------------------*/
 0022           ; void delay_ms(void)
 0022           ; {
 0022                   .dbline 24
 0022           ;  unsigned int i;
 0022           ;  for(i=0;i<1140;i++);
 0022 0027              clr R16
 0024 1127              clr R17
 0026 02C0              xjmp L10
 0028           L7:
 0028                   .dbline 24
 0028           L8:
 0028                   .dbline 24
 0028 0F5F              subi R16,255  ; offset = 1
 002A 1F4F              sbci R17,255
 002C           L10:
 002C                   .dbline 24
 002C 0437              cpi R16,116
 002E E4E0              ldi R30,4
 0030 1E07              cpc R17,R30
 0032 D0F3              brlo L7
 0034           X1:
 0034                   .dbline -2
 0034           L6:
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbsym r i 16 i
 0036                   .dbend
 0036                   .dbfunc e delay_nms _delay_nms fV
 0036           ;              t -> R20,R21
                        .even
 0036           _delay_nms::
 0036 4A93              st -y,R20
 0038 5A93              st -y,R21
 003A A801              movw R20,R16
 003C                   .dbline -1
 003C                   .dbline 31
 003C           ; }
 003C           ; /*----------------------------------------------
 003C           ; delay_nms          :长延时函数
 003C           ; 输入参数: t        :延时时间 ms
 003C           ; -----------------------------------------------*/
 003C           ; void delay_nms(unsigned int t)
 003C           ; {
 003C 01C0              xjmp L13
 003E           L12:
 003E                   .dbline 33
 003E           ;  while(t--)
 003E           ;   delay_ms();
 003E F1DF              xcall _delay_ms
 0040           L13:
 0040                   .dbline 32
 0040 1A01              movw R2,R20
 0042 4150              subi R20,1
 0044 5040              sbci R21,0
 0046 2220              tst R2
 0048 D1F7              brne L12
 004A 3320              tst R3
 004C C1F7              brne L12
 004E           X2:
 004E                   .dbline -2
 004E           L11:
 004E                   .dbline 0 ; func end
 004E 5991              ld R21,y+
 0050 4991              ld R20,y+
 0052 0895              ret
 0054                   .dbsym r t 20 i
 0054                   .dbend
 0054                   .dbfile D:\iccavr\mega16\11\10bit_adc\lcd12232.h
 0054                   .dbfunc e lcd_write _lcd_write fV
 0054           ;              j -> R22
 0054           ;              a -> R20
 0054           ;              i -> R10
 0054           ;        content -> R10
 0054           ;       dat_comm -> R12
                        .even
 0054           _lcd_write::
 0054 0E940000          xcall push_xgsetF03C
 0058 A22E              mov R10,R18
 005A C02E              mov R12,R16
 005C                   .dbline -1
 005C                   .dbline 18
 005C           ; //定义LCD口线
 005C           ; #define lcd_cs   PA4
 005C           ; #define lcd_std  PA3
 005C           ; #define lcd_sclk PA2
 005C           ; #define lcd_port PORTA
 005C           ; #define lcd_ddr  DDRA
 005C           ; 
 005C           ; //LCD显示坐标定义
 005C           ; #define x1    0x80    //lcd初始坐标1
 005C           ; #define x2    0x90    //lcd初始坐标2
 005C           ; 
 005C           ; //LCD数据/命令格式定义
 005C           ; #define command  0       //lcd命令
 005C           ; #define data     1       //lcd数据
 005C           ; 
 005C           ; //传送单个字节到LCD
 005C           ; void lcd_write(unsigned char dat_comm,unsigned char content) 
 005C           ; {
 005C                   .dbline 20
 005C           ;   unsigned char a,i,j;
 005C           ;   delay_ms();//延时时间要根据实际使用的芯片采用不同的延时时间
 005C E2DF              xcall _delay_ms
 005E                   .dbline 21
 005E           ;   a=content;   //数据记录
 005E 4A2D              mov R20,R10
 0060                   .dbline 23
 0060           ;   //delay_ms();//这个延时要根据实际需要看是否需要增加//如8515就要加
 0060           ;   lcd_port|=BIT(lcd_cs);//cs=1
 0060 DC9A              sbi 0x1b,4
 0062                   .dbline 24
 0062           ;   lcd_port&=~BIT(lcd_sclk);//sclk=0;
 0062 DA98              cbi 0x1b,2
 0064                   .dbline 25
 0064           ;   lcd_port|=(1<<lcd_std);//PORTC|=BIT(lcd_std);//std=1;
 0064 DB9A              sbi 0x1b,3
 0066                   .dbline 26
 0066           ;   for(i=0;i<5;i++)   //启动命令
 0066 AA24              clr R10
 0068 03C0              xjmp L19
 006A           L16:
 006A                   .dbline 27
 006A           ;   {
 006A                   .dbline 28
 006A           ;     lcd_port|=BIT(lcd_sclk);//sclk=1;
 006A DA9A              sbi 0x1b,2
 006C                   .dbline 29
 006C           ;       lcd_port&=~BIT(lcd_sclk);//sclk=0;
 006C DA98              cbi 0x1b,2
 006E                   .dbline 30
 006E           ;   }
 006E           L17:
 006E                   .dbline 26
 006E A394              inc R10
 0070           L19:
 0070                   .dbline 26
 0070 8A2D              mov R24,R10
 0072 8530              cpi R24,5
 0074 D0F3              brlo L16
 0076           X3:
 0076                   .dbline 31
 0076           ;   lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;
 0076 DB98              cbi 0x1b,3
 0078                   .dbline 32
 0078           ;   lcd_port|=BIT(lcd_sclk);//sclk=1;
 0078 DA9A              sbi 0x1b,2
 007A                   .dbline 33
 007A           ;   lcd_port&=~BIT(lcd_sclk);//sclk=0;
 007A DA98              cbi 0x1b,2
 007C                   .dbline 34
 007C           ;   if(dat_comm)
 007C CC20              tst R12
 007E 11F0              breq L20
 0080           X4:
 0080                   .dbline 35
 0080           ;     lcd_port|=(1<<lcd_std);//PORTC|=BIT(lcd_std);//std=1;   //数据
 0080 DB9A              sbi 0x1b,3
 0082 01C0              xjmp L21
 0084           L20:
 0084                   .dbline 37
 0084           ;   else
 0084           ;     lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;   //命令
 0084 DB98              cbi 0x1b,3
 0086           L21:
 0086                   .dbline 38
 0086           ;   lcd_port|=BIT(lcd_sclk);//sclk=1;
 0086 DA9A              sbi 0x1b,2
 0088                   .dbline 39
 0088           ;   lcd_port&=~BIT(lcd_sclk);//sclk=0;
 0088 DA98              cbi 0x1b,2
 008A                   .dbline 40
 008A           ;   lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;
 008A DB98              cbi 0x1b,3
 008C                   .dbline 41
 008C           ;   lcd_port|=BIT(lcd_sclk);//sclk=1;
 008C DA9A              sbi 0x1b,2
 008E                   .dbline 42
 008E           ;   lcd_port&=~BIT(lcd_sclk);//sclk=0;
 008E DA98              cbi 0x1b,2
 0090                   .dbline 43
 0090           ;   for(j=0;j<2;j++)       //循环发送8个位数据
 0090 6627              clr R22
 0092 1AC0              xjmp L25
 0094           L22:
 0094                   .dbline 44
 0094           ;   {
 0094                   .dbline 45
 0094           ;     for(i=0;i<4;i++)
 0094 AA24              clr R10
 0096 0BC0              xjmp L29
 0098           L26:
 0098                   .dbline 46
 0098           ;     {
 0098                   .dbline 47
 0098           ;       if ((a&0x80)==0x80) 
 0098 842F              mov R24,R20
 009A 8078              andi R24,128
 009C 8038              cpi R24,128
 009E 11F4              brne L30
 00A0           X5:
 00A0                   .dbline 48
 00A0           ;           lcd_port|=(1<<lcd_std);//PORTC|=BIT(lcd_std);//单字节传送
 00A0 DB9A              sbi 0x1b,3
 00A2 01C0              xjmp L31
 00A4           L30:
 00A4                   .dbline 50
 00A4           ;         else                
 00A4           ;           lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);
 00A4 DB98              cbi 0x1b,3
 00A6           L31:
 00A6                   .dbline 51
 00A6           ;         a=a<<1;
 00A6 440F              lsl R20
 00A8                   .dbline 52
 00A8           ;       lcd_port|=BIT(lcd_sclk);//sclk=1;
 00A8 DA9A              sbi 0x1b,2
 00AA                   .dbline 53
 00AA           ;         lcd_port&=~BIT(lcd_sclk);//sclk=0;
 00AA DA98              cbi 0x1b,2
 00AC                   .dbline 54
 00AC           ;     }
 00AC           L27:
 00AC                   .dbline 45
 00AC A394              inc R10
 00AE           L29:
 00AE                   .dbline 45
 00AE 8A2D              mov R24,R10
 00B0 8430              cpi R24,4
 00B2 90F3              brlo L26
 00B4           X6:
 00B4                   .dbline 55
 00B4           ;     lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;
 00B4 DB98              cbi 0x1b,3
 00B6                   .dbline 56
 00B6           ;     for(i=0;i<4;i++)      //发送4个空数据
 00B6 AA24              clr R10
 00B8 03C0              xjmp L35
 00BA           L32:
 00BA                   .dbline 57
 00BA           ;     {
 00BA                   .dbline 58
 00BA           ;       lcd_port|=BIT(lcd_sclk);//sclk=1;
 00BA DA9A              sbi 0x1b,2
 00BC                   .dbline 59
 00BC           ;         lcd_port&=~BIT(lcd_sclk);//sclk=0;
 00BC DA98              cbi 0x1b,2
 00BE                   .dbline 60
 00BE           ;     }
 00BE           L33:
 00BE                   .dbline 56
 00BE A394              inc R10
 00C0           L35:
 00C0                   .dbline 56
 00C0 8A2D              mov R24,R10
 00C2 8430              cpi R24,4
 00C4 D0F3              brlo L32
 00C6           X7:
 00C6                   .dbline 61
 00C6           ;   }
 00C6           L23:
 00C6                   .dbline 43
 00C6 6395              inc R22
 00C8           L25:
 00C8                   .dbline 43
 00C8 6230              cpi R22,2
 00CA 20F3              brlo L22
 00CC           X8:
 00CC                   .dbline 62
 00CC           ;   lcd_port|=BIT(lcd_cs);
 00CC DC9A              sbi 0x1b,4
 00CE                   .dbline -2
 00CE           L15:
 00CE                   .dbline 0 ; func end
 00CE 0C940000          xjmp pop_xgsetF03C
 00D2                   .dbsym r j 22 c
 00D2                   .dbsym r a 20 c
 00D2                   .dbsym r i 10 c
 00D2                   .dbsym r content 10 c
 00D2                   .dbsym r dat_comm 12 c

⌨️ 快捷键说明

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