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

📄 child.lis

📁 一个单片机的完整开发程序AVR的
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module child.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\赵一\edu6000_1125\child.c
 0000                   .dbfunc e delay_us _delay_us fV
 0000           ;             us -> R16
                        .even
 0000           _delay_us::
 0000                   .dbline -1
 0000                   .dbline 6
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; #include "head.h"
 0000           ; 
 0000           ; void delay_us(unsigned char us) //when the xtal is 8M, the delay time is 1 us.
 0000           ; {
 0000           L2:
 0000                   .dbline 8
 0000           ;   do
 0000           ;   {
 0000                   .dbline 9
 0000           ;       us--;
 0000 0A95              dec R16
 0002                   .dbline 10
 0002           ;       asm("nop");
 0002 0000              nop
 0004                   .dbline 11
 0004           ;       asm("nop");
 0004 0000              nop
 0006                   .dbline 12
 0006           ;       asm("nop");
 0006 0000              nop
 0008                   .dbline 13
 0008           ;       asm("nop");
 0008 0000              nop
 000A                   .dbline 14
 000A           L3:
 000A                   .dbline 14
 000A           ;   }while(us);
 000A 0023              tst R16
 000C C9F7              brne L2
 000E                   .dbline -2
 000E                   .dbline 15
 000E           ; }
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbsym r us 16 c
 0010                   .dbend
 0010                   .dbfunc e delay_ms _delay_ms fV
 0010           ;              i -> R22,R23
 0010           ;             ms -> R20
                        .even
 0010           _delay_ms::
 0010 0E940000          xcall push_gset2
 0014 402F              mov R20,R16
 0016                   .dbline -1
 0016                   .dbline 18
 0016           ; 
 0016           ; void delay_ms(unsigned char ms)
 0016           ; {
 0016           L6:
 0016                   .dbline 21
 0016           ;   unsigned int i;
 0016           ;   do
 0016           ;   {
 0016                   .dbline 22
 0016           ;    ms--;
 0016 4A95              dec R20
 0018                   .dbline 23
 0018           ;    for(i=0;i<5;i++)
 0018 6627              clr R22
 001A 7727              clr R23
 001C 04C0              xjmp L12
 001E           L9:
 001E                   .dbline 24
 001E 08EC              ldi R16,200
 0020 EFDF              xcall _delay_us
 0022           L10:
 0022                   .dbline 23
 0022 6F5F              subi R22,255  ; offset = 1
 0024 7F4F              sbci R23,255
 0026           L12:
 0026                   .dbline 23
 0026 6530              cpi R22,5
 0028 E0E0              ldi R30,0
 002A 7E07              cpc R23,R30
 002C C0F3              brlo L9
 002E                   .dbline 25
 002E           L7:
 002E                   .dbline 25
 002E           ;    delay_us(200);
 002E           ;   }while(ms);
 002E 4423              tst R20
 0030 91F7              brne L6
 0032                   .dbline -2
 0032                   .dbline 26
 0032           ; }
 0032           L5:
 0032 0E940000          xcall pop_gset2
 0036                   .dbline 0 ; func end
 0036 0895              ret
 0038                   .dbsym r i 22 i
 0038                   .dbsym r ms 20 c
 0038                   .dbend
 0038                   .dbfunc e send_cmd _send_cmd fV
 0038           ;              i -> R20
 0038           ;            mod -> R22
 0038           ;            cmd -> R10
                        .even
 0038           _send_cmd::
 0038 0E940000          xcall push_gset3
 003C A02E              mov R10,R16
 003E                   .dbline -1
 003E                   .dbline 29
 003E           ; 
 003E           ; void send_cmd(unsigned char cmd)  //send comend to the lcd.
 003E           ; {
 003E                   .dbline 31
 003E           ;       unsigned char i,mod;
 003E           ;       clr_cs;
 003E 9798              cbi 0x12,7
 0040                   .dbline 32
 0040           ;       mod=0x80;
 0040 60E8              ldi R22,128
 0042                   .dbline 33
 0042           ;       for(i=0;i<3;i++)
 0042 4427              clr R20
 0044 0FC0              xjmp L17
 0046           L14:
 0046                   .dbline 34
 0046           ;       {
 0046                   .dbline 35
 0046           ;               if((mod&0x80)==0x80)
 0046 862F              mov R24,R22
 0048 8078              andi R24,128
 004A 8038              cpi R24,128
 004C 11F4              brne L18
 004E                   .dbline 36
 004E           ;                       set_data;
 004E C39A              sbi 0x18,3
 0050 01C0              xjmp L19
 0052           L18:
 0052                   .dbline 38
 0052           ;               else
 0052           ;                       clr_data;
 0052 C398              cbi 0x18,3
 0054           L19:
 0054                   .dbline 40
 0054 C498              cbi 0x18,4
 0056                   .dbline 41
 0056 08E0              ldi R16,8
 0058 D3DF              xcall _delay_us
 005A                   .dbline 42
 005A C49A              sbi 0x18,4
 005C                   .dbline 43
 005C 660F              lsl R22
 005E                   .dbline 44
 005E 08E0              ldi R16,8
 0060 CFDF              xcall _delay_us
 0062                   .dbline 45
 0062           L15:
 0062                   .dbline 33
 0062 4395              inc R20
 0064           L17:
 0064                   .dbline 33
 0064 4330              cpi R20,3
 0066 78F3              brlo L14
 0068                   .dbline 46
 0068           ;               
 0068           ;               clr_wr;
 0068           ;               delay_us(8);
 0068           ;               set_wr;
 0068           ;               mod=mod<<1;
 0068           ;               delay_us(8);
 0068           ;        }
 0068           ;       mod=cmd;
 0068 6A2D              mov R22,R10
 006A                   .dbline 47
 006A           ;       for(i=0;i<9;i++)
 006A 4427              clr R20
 006C 0FC0              xjmp L23
 006E           L20:
 006E                   .dbline 48
 006E           ;       {
 006E                   .dbline 49
 006E           ;               if((mod&0x80)==0x80)
 006E 862F              mov R24,R22
 0070 8078              andi R24,128
 0072 8038              cpi R24,128
 0074 11F4              brne L24
 0076                   .dbline 50
 0076           ;                       set_data;
 0076 C39A              sbi 0x18,3
 0078 01C0              xjmp L25
 007A           L24:
 007A                   .dbline 52
 007A           ;               else
 007A           ;                       clr_data;
 007A C398              cbi 0x18,3
 007C           L25:
 007C                   .dbline 53
 007C C498              cbi 0x18,4
 007E                   .dbline 54
 007E 08E0              ldi R16,8
 0080 BFDF              xcall _delay_us
 0082                   .dbline 55
 0082 C49A              sbi 0x18,4
 0084                   .dbline 56
 0084 660F              lsl R22
 0086                   .dbline 57
 0086 08E0              ldi R16,8
 0088 BBDF              xcall _delay_us
 008A                   .dbline 58
 008A           L21:
 008A                   .dbline 47
 008A 4395              inc R20
 008C           L23:
 008C                   .dbline 47
 008C 4930              cpi R20,9
 008E 78F3              brlo L20
 0090                   .dbline 59
 0090           ;               clr_wr;
 0090           ;               delay_us(8);
 0090           ;               set_wr;
 0090           ;               mod=mod<<1;
 0090           ;               delay_us(8);
 0090           ;       }
 0090           ;       set_cs;
 0090 979A              sbi 0x12,7
 0092                   .dbline -2
 0092                   .dbline 60
 0092           ; }
 0092           L13:
 0092 0E940000          xcall pop_gset3
 0096                   .dbline 0 ; func end
 0096 0895              ret
 0098                   .dbsym r i 20 c
 0098                   .dbsym r mod 22 c
 0098                   .dbsym r cmd 10 c
 0098                   .dbend
 0098                   .dbfunc e send_data _send_data fV
 0098           ;              i -> R20
 0098           ;            mod -> R22
 0098           ;           data -> R10
 0098           ;           addr -> R12
                        .even
 0098           _send_data::
 0098 0E940000          xcall push_gset4
 009C A22E              mov R10,R18
 009E C02E              mov R12,R16
 00A0                   .dbline -1
 00A0                   .dbline 65
 00A0           ; 
 00A0           ; //send data and address to the lcd.
 00A0           ; 
 00A0           ; void send_data(unsigned char addr,unsigned char data)
 00A0           ; {
 00A0                   .dbline 68
 00A0           ;       unsigned char i,mod;
 00A0           ; 
 00A0           ;       clr_cs; 
 00A0 9798              cbi 0x12,7
 00A2                   .dbline 69
 00A2           ;       mod=0x05;    //entern the write mode.
 00A2 65E0              ldi R22,5
 00A4                   .dbline 70
 00A4           ;       for(i=0;i<3;i++)
 00A4 4427              clr R20
 00A6 0FC0              xjmp L30
 00A8           L27:
 00A8                   .dbline 71
 00A8           ;       {
 00A8                   .dbline 72
 00A8           ;               if((mod&0x01)==0x01)
 00A8 862F              mov R24,R22
 00AA 8170              andi R24,1
 00AC 8130              cpi R24,1
 00AE 11F4              brne L31
 00B0                   .dbline 73
 00B0           ;                       set_data;
 00B0 C39A              sbi 0x18,3
 00B2 01C0              xjmp L32
 00B4           L31:
 00B4                   .dbline 75
 00B4           ;               else
 00B4           ;                       clr_data;
 00B4 C398              cbi 0x18,3
 00B6           L32:
 00B6                   .dbline 77
 00B6 C498              cbi 0x18,4
 00B8                   .dbline 78
 00B8 08E0              ldi R16,8
 00BA A2DF              xcall _delay_us
 00BC                   .dbline 79
 00BC C49A              sbi 0x18,4
 00BE                   .dbline 80
 00BE 6695              lsr R22
 00C0                   .dbline 81
 00C0 08E0              ldi R16,8
 00C2 9EDF              xcall _delay_us
 00C4                   .dbline 82
 00C4           L28:
 00C4                   .dbline 70
 00C4 4395              inc R20
 00C6           L30:
 00C6                   .dbline 70
 00C6 4330              cpi R20,3
 00C8 78F3              brlo L27
 00CA                   .dbline 83
 00CA           ;               
 00CA           ;               clr_wr;
 00CA           ;               delay_us(8);
 00CA           ;               set_wr;
 00CA           ;               mod=mod>>1;
 00CA           ;               delay_us(8);
 00CA           ;       }

⌨️ 快捷键说明

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