📄 mian.lis
字号:
.module mian.c
.area text(rom, con, rel)
0000 .dbfile D:\NEW\AVR_T6963\mian.c
0000 .dbfunc e main _main fV
0000 ; i -> R20
.even
0000 _main::
0000 2597 sbiw R28,5
0002 .dbline -1
0002 .dbline 19
0002 ; #define MAIN_C
0002 ; /************************************************************************
0002 ; ;连线图: 液晶屏分为4 行*15列汉字使用间接操作方式
0002 ; ;*LCM--------------------------ATmega16*
0002 ; ;*D0~D7 PB0~PB7*
0002 ; *CD PA2*
0002 ; *RD PA1*
0002 ; *WR PA0*
0002 ; ;************************************************************************/
0002 ; /******************************************************/
0002 ; /* 本程序在晓奇程序的基础上改编*/
0002 ; /* Email: mymach@tom.com */
0002 ; /******************************************************/
0002 ;
0002 ; #include "includes.h"
0002 ;
0002 ;
0002 ; void main(void) // 测试用
0002 ; {
0002 .dbline 21
0002 ; unsigned char i;
0002 ; DDRA = 0xFF;
0002 8FEF ldi R24,255
0004 8ABB out 0x1a,R24
0006 .dbline 22
0006 ; PORTA = 0xff;
0006 8BBB out 0x1b,R24
0008 .dbline 23
0008 ; shortdelay(1200);
0008 00EB ldi R16,1200
000A 14E0 ldi R17,4
000C 0E940000 xcall _shortdelay
0010 .dbline 25
0010 ; //MCUCR = 0x00;
0010 ; fnLCMInit();
0010 0E940000 xcall _fnLCMInit
0014 .dbline 26
0014 ; cls();
0014 0E940000 xcall _cls
0018 .dbline 27
0018 ; cursor(0,0);
0018 2227 clr R18
001A 0027 clr R16
001C 0E940000 xcall _cursor
0020 .dbline 28
0020 ; dprintf(12,1,"test for:中文测试");
0020 80E0 ldi R24,<L2
0022 90E0 ldi R25,>L2
0024 9983 std y+1,R25
0026 8883 std y+0,R24
0028 21E0 ldi R18,1
002A 0CE0 ldi R16,12
002C 0E940000 xcall _dprintf
0030 .dbline 29
0030 ; dprintf(10,2,"T6963C use ATMega16");
0030 80E0 ldi R24,<L3
0032 90E0 ldi R25,>L3
0034 9983 std y+1,R25
0036 8883 std y+0,R24
0038 22E0 ldi R18,2
003A 0AE0 ldi R16,10
003C 0E940000 xcall _dprintf
0040 .dbline 30
0040 ; dprintf(10,3,"~mymach~");
0040 80E0 ldi R24,<L4
0042 90E0 ldi R25,>L4
0044 9983 std y+1,R25
0046 8883 std y+0,R24
0048 23E0 ldi R18,3
004A 0AE0 ldi R16,10
004C 0E940000 xcall _dprintf
0050 .dbline 31
0050 ; Linexy(5,5,80,5,8); // 画斜线1
0050 88E0 ldi R24,8
0052 8C83 std y+4,R24
0054 85E0 ldi R24,5
0056 8A83 std y+2,R24
0058 80E5 ldi R24,80
005A 8883 std y+0,R24
005C 25E0 ldi R18,5
005E 05E0 ldi R16,5
0060 0E940000 xcall _Linexy
0064 .dbline 32
0064 ; Linexy(5,5,80,20,8); // 斜线2
0064 88E0 ldi R24,8
0066 8C83 std y+4,R24
0068 84E1 ldi R24,20
006A 8A83 std y+2,R24
006C 80E5 ldi R24,80
006E 8883 std y+0,R24
0070 25E0 ldi R18,5
0072 05E0 ldi R16,5
0074 0E940000 xcall _Linexy
0078 .dbline 33
0078 ; Linexy(80,20,80,5,8); // 斜线3
0078 88E0 ldi R24,8
007A 8C83 std y+4,R24
007C 85E0 ldi R24,5
007E 8A83 std y+2,R24
0080 80E5 ldi R24,80
0082 8883 std y+0,R24
0084 24E1 ldi R18,20
0086 00E5 ldi R16,80
0088 0E940000 xcall _Linexy
008C .dbline 35
008C ;
008C ; Linexy(2,2,238,2,8); // ------
008C 88E0 ldi R24,8
008E 8C83 std y+4,R24
0090 82E0 ldi R24,2
0092 8A83 std y+2,R24
0094 8EEE ldi R24,238
0096 8883 std y+0,R24
0098 22E0 ldi R18,2
009A 02E0 ldi R16,2
009C 0E940000 xcall _Linexy
00A0 .dbline 36
00A0 ; Linexy(2,2,2,62,8); // |
00A0 88E0 ldi R24,8
00A2 8C83 std y+4,R24
00A4 8EE3 ldi R24,62
00A6 8A83 std y+2,R24
00A8 82E0 ldi R24,2
00AA 8883 std y+0,R24
00AC 22E0 ldi R18,2
00AE 02E0 ldi R16,2
00B0 0E940000 xcall _Linexy
00B4 .dbline 37
00B4 ; circle(45,45,20,8); // 画圆
00B4 88E0 ldi R24,8
00B6 8A83 std y+2,R24
00B8 84E1 ldi R24,20
00BA 8883 std y+0,R24
00BC 2DE2 ldi R18,45
00BE 0DE2 ldi R16,45
00C0 0E940000 xcall _circle
00C4 .dbline 38
00C4 ; circle(45,45,21,8); // 画同心圆加粗
00C4 88E0 ldi R24,8
00C6 8A83 std y+2,R24
00C8 85E1 ldi R24,21
00CA 8883 std y+0,R24
00CC 2DE2 ldi R18,45
00CE 0DE2 ldi R16,45
00D0 0E940000 xcall _circle
00D4 .dbline 39
00D4 ; shortdelay(2000);
00D4 00ED ldi R16,2000
00D6 17E0 ldi R17,7
00D8 0E940000 xcall _shortdelay
00DC 4DC0 xjmp L6
00DE L5:
00DE .dbline 42
00DE ;
00DE ; while(1)
00DE ; {
00DE .dbline 44
00DE ; // 变化圆演示直径不断的变化由大到小再由小到大来回缩放
00DE ; for (i=20;i>5;i--)
00DE 44E1 ldi R20,20
00E0 1EC0 xjmp L11
00E2 L8:
00E2 .dbline 45
00E2 .dbline 46
00E2 2224 clr R2
00E4 2A82 std y+2,R2
00E6 842F mov R24,R20
00E8 8F5F subi R24,255 ; addi 1
00EA 8883 std y+0,R24
00EC 2DE2 ldi R18,45
00EE 0DE2 ldi R16,45
00F0 0E940000 xcall _circle
00F4 .dbline 47
00F4 88E0 ldi R24,8
00F6 8A83 std y+2,R24
00F8 4883 std y+0,R20
00FA 2DE2 ldi R18,45
00FC 0DE2 ldi R16,45
00FE 0E940000 xcall _circle
0102 .dbline 48
0102 88E0 ldi R24,8
0104 8A83 std y+2,R24
0106 842F mov R24,R20
0108 8150 subi R24,1
010A 8883 std y+0,R24
010C 2DE2 ldi R18,45
010E 0DE2 ldi R16,45
0110 0E940000 xcall _circle
0114 .dbline 49
0114 0CE2 ldi R16,300
0116 11E0 ldi R17,1
0118 0E940000 xcall _shortdelay
011C .dbline 50
011C L9:
011C .dbline 44
011C 4A95 dec R20
011E L11:
011E .dbline 44
011E 85E0 ldi R24,5
0120 8417 cp R24,R20
0122 F8F2 brlo L8
0124 .dbline 52
0124 ; {
0124 ; circle(45,45,i+1,0); // 擦除外圆
0124 ; circle(45,45,i,8);
0124 ; circle(45,45,i-1,8);
0124 ; shortdelay(300);
0124 ; }
0124 ;
0124 ; shortdelay(500);
0124 04EF ldi R16,500
0126 11E0 ldi R17,1
0128 0E940000 xcall _shortdelay
012C .dbline 53
012C ; for (i=5;i<20;i++)
012C 45E0 ldi R20,5
012E 1EC0 xjmp L15
0130 L12:
0130 .dbline 54
0130 .dbline 55
0130 2224 clr R2
0132 2A82 std y+2,R2
0134 842F mov R24,R20
0136 8150 subi R24,1
0138 8883 std y+0,R24
013A 2DE2 ldi R18,45
013C 0DE2 ldi R16,45
013E 0E940000 xcall _circle
0142 .dbline 56
0142 88E0 ldi R24,8
0144 8A83 std y+2,R24
0146 4883 std y+0,R20
0148 2DE2 ldi R18,45
014A 0DE2 ldi R16,45
014C 0E940000 xcall _circle
0150 .dbline 57
0150 88E0 ldi R24,8
0152 8A83 std y+2,R24
0154 842F mov R24,R20
0156 8F5F subi R24,255 ; addi 1
0158 8883 std y+0,R24
015A 2DE2 ldi R18,45
015C 0DE2 ldi R16,45
015E 0E940000 xcall _circle
0162 .dbline 58
0162 08EC ldi R16,200
0164 10E0 ldi R17,0
0166 0E940000 xcall _shortdelay
016A .dbline 59
016A L13:
016A .dbline 53
016A 4395 inc R20
016C L15:
016C .dbline 53
016C 4431 cpi R20,20
016E 00F3 brlo L12
0170 .dbline 60
0170 0CE2 ldi R16,300
0172 11E0 ldi R17,1
0174 0E940000 xcall _shortdelay
0178 .dbline 61
0178 L6:
0178 .dbline 41
0178 B2CF xjmp L5
017A X0:
017A .dbline -2
017A .dbline 62
017A ; {
017A ; circle(45,45,i-1,0); // 擦除内圆
017A ; circle(45,45,i,8);
017A ; circle(45,45,i+1,8);
017A ; shortdelay(200);
017A ; }
017A ; shortdelay(300);
017A ; }
017A ; }
017A L1:
017A 2596 adiw R28,5
017C .dbline 0 ; func end
017C 0895 ret
017E .dbsym r i 20 c
017E .dbend
.area data(ram, con, rel)
0000 .dbfile D:\NEW\AVR_T6963\mian.c
0000 L4:
0000 .blkb 9
.area idata
0000 7E6D796D6163687E00 .byte 126,'m,'y,'m,'a,'c,'h,126,0
.area data(ram, con, rel)
0009 .dbfile D:\NEW\AVR_T6963\mian.c
0009 L3:
0009 .blkb 20
.area idata
0009 543639363343207573652041544D6567 .byte 'T,54,57,54,51,'C,32,'u,'s,'e,32,'A,'T,'M,'e,'g
0019 61313600 .byte 'a,49,54,0
.area data(ram, con, rel)
001D .dbfile D:\NEW\AVR_T6963\mian.c
001D L2:
001D .blkb 18
.area idata
001D 7465737420666F723AD6D0CEC4B2E2CA .byte 't,'e,'s,'t,32,'f,'o,'r,58,214,208,206,196,178,226,202
002D D400 .byte 212,0
.area data(ram, con, rel)
002F .dbfile D:\NEW\AVR_T6963\mian.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -