📄 main.lis
字号:
.module main.c
.area data(ram, con, rel)
0000 _wTimeCount::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\点阵型LCD显示应用设计\main.c
0001 .dbsym e wTimeCount _wTimeCount c
.area text(rom, con, rel)
0000 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\点阵型LCD显示应用设计\main.c
0000 .dbfunc e main _main fV
.even
0000 _main::
0000 .dbline -1
0000 .dbline 24
0000 ; //***************************************************************
0000 ; // File Name : LED.c
0000 ; // Author : Steaven
0000 ; // Created : 2008-07-26
0000 ; // Modified :
0000 ; // Revision : V0.0
0000 ; //***************************************************************
0000 ;
0000 ; #include "iom16v.h"
0000 ; #include "DataType.h"
0000 ; #include "app.h"
0000 ; #include "lcd.h"
0000 ; #include "zimo.h"
0000 ;
0000 ; void LCD_Write_Frame0(void);
0000 ; void LCD_Write_Frame1(void);
0000 ; void LCD_Write_Frame2(void);
0000 ; void LCD_Display_Init(void);
0000 ; void LCD_Display_Update(void);
0000 ;
0000 ; INT8U wTimeCount = 0;
0000 ;
0000 ; void main(void)
0000 ; {
0000 .dbline 25
0000 ; Hardware_Init();
0000 0E940000 xcall _Hardware_Init
0004 .dbline 26
0004 ; LCD_Init();
0004 0E940000 xcall _LCD_Init
0008 .dbline 27
0008 ; LCD_Display_Init();
0008 70D1 xcall _LCD_Display_Init
000A 01C0 xjmp L3
000C L2:
000C .dbline 29
000C .dbline 30
000C 7ED1 xcall _LCD_Display_Update
000E .dbline 31
000E L3:
000E .dbline 28
000E FECF xjmp L2
0010 X0:
0010 .dbline -2
0010 .dbline 32
0010 ; while(1)
0010 ; {
0010 ; LCD_Display_Update();
0010 ; }
0010 ; }
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbend
.area vector(rom, abs)
.org 76
004C 0C940900 jmp _wTimeCountr0_Interrupt
.area text(rom, con, rel)
0012 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\点阵型LCD显示应用设计\main.c
.area data(ram, con, rel)
0001 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\点阵型LCD显示应用设计\main.c
0001 L6:
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\点阵型LCD显示应用设计\main.c
0002 L7:
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\点阵型LCD显示应用设计\main.c
0003 L8:
0003 .blkb 1
.area idata
0003 00 .byte 0
.area data(ram, con, rel)
0004 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\点阵型LCD显示应用设计\main.c
.area text(rom, con, rel)
0012 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\点阵型LCD显示应用设计\main.c
0012 .dbfunc e wTimeCountr0_Interrupt _wTimeCountr0_Interrupt fV
0012 .dbsym s buzzer_status L8 c
0012 .dbsym s buzzer_count L7 c
0012 .dbsym s int_count L6 c
.even
0012 _wTimeCountr0_Interrupt::
0012 0E940000 xcall push_lset
0016 .dbline -1
0016 .dbline 42
0016 ;
0016 ; //***************************************************************
0016 ; // Function : wTimeCountr0_Interrupt
0016 ; // Input : none
0016 ; // Output : none
0016 ; // Description : ATmega16 T/C0 ISR
0016 ; //***************************************************************
0016 ; #pragma interrupt_handler wTimeCountr0_Interrupt:20
0016 ; void wTimeCountr0_Interrupt(void)
0016 ; {
0016 .dbline 48
0016 ; static INT8U int_count = 0;
0016 ; static INT8U buzzer_count = 0;
0016 ; static INT8U buzzer_status = 0;
0016 ;
0016 ; //Clear wTimeCountr0 OCIF Flag
0016 ; TIFR |= 0x02;
0016 88B7 in R24,0x38
0018 8260 ori R24,2
001A 88BF out 0x38,R24
001C .dbline 49
001C ; TCNT0 = 0x00;
001C 2224 clr R2
001E 22BE out 0x32,R2
0020 .dbline 51
0020 ; //Interrupt Count
0020 ; int_count++;
0020 80910100 lds R24,L6
0024 8F5F subi R24,255 ; addi 1
0026 80930100 sts L6,R24
002A .dbline 52
002A ; if(int_count == 1)
002A 8130 cpi R24,1
002C 19F4 brne L9
002E .dbline 53
002E ; {
002E .dbline 54
002E ; Buzzer_ON();
002E 0E940000 xcall _Buzzer_ON
0032 .dbline 55
0032 ; }
0032 1CC0 xjmp L10
0034 L9:
0034 .dbline 56
0034 ; else if(int_count == 6)
0034 80910100 lds R24,L6
0038 8630 cpi R24,6
003A 41F4 brne L11
003C .dbline 57
003C ; {
003C .dbline 58
003C ; if(wTimeCount <= 8)
003C 88E0 ldi R24,8
003E 20900000 lds R2,_wTimeCount
0042 8215 cp R24,R2
0044 98F0 brlo L12
0046 .dbline 59
0046 ; {
0046 .dbline 60
0046 ; Buzzer_OFF();
0046 0E940000 xcall _Buzzer_OFF
004A .dbline 61
004A ; }
004A .dbline 62
004A ; }
004A 10C0 xjmp L12
004C L11:
004C .dbline 63
004C ; else if(int_count == 100)
004C 80910100 lds R24,L6
0050 8436 cpi R24,100
0052 61F4 brne L15
0054 .dbline 64
0054 ; {
0054 .dbline 65
0054 ; int_count = 0;
0054 2224 clr R2
0056 20920100 sts L6,R2
005A .dbline 66
005A ; if(wTimeCount <= 8)
005A 88E0 ldi R24,8
005C 20900000 lds R2,_wTimeCount
0060 8215 cp R24,R2
0062 20F0 brlo L17
0064 .dbline 67
0064 ; {
0064 .dbline 68
0064 ; wTimeCount++;
0064 822D mov R24,R2
0066 8F5F subi R24,255 ; addi 1
0068 80930000 sts _wTimeCount,R24
006C .dbline 69
006C ; }
006C L17:
006C .dbline 70
006C ; }
006C L15:
006C L12:
006C L10:
006C .dbline -2
006C .dbline 71
006C ; }
006C L5:
006C 0E940000 xcall pop_lset
0070 .dbline 0 ; func end
0070 1895 reti
0072 .dbend
0072 .dbfunc e LCD_Write_Frame0 _LCD_Write_Frame0 fV
.even
0072 _LCD_Write_Frame0::
0072 2297 sbiw R28,2
0074 .dbline -1
0074 .dbline 74
0074 ;
0074 ; void LCD_Write_Frame0(void)
0074 ; {
0074 .dbline 75
0074 ; LCD_Write_Char(0,0x08,Char_0816_0x00);
0074 80E0 ldi R24,<_Char_0816_0x00
0076 90E0 ldi R25,>_Char_0816_0x00
0078 9983 std y+1,R25
007A 8883 std y+0,R24
007C 28E0 ldi R18,8
007E 0027 clr R16
0080 0E940000 xcall _LCD_Write_Char
0084 .dbline 76
0084 ; LCD_Write_Word(0,0x09,Char_1616_DI);
0084 80E0 ldi R24,<_Char_1616_DI
0086 90E0 ldi R25,>_Char_1616_DI
0088 9983 std y+1,R25
008A 8883 std y+0,R24
008C 29E0 ldi R18,9
008E 0027 clr R16
0090 0E940000 xcall _LCD_Write_Word
0094 .dbline 77
0094 ; LCD_Write_Char(0,0x0B,Char_0816_2);
0094 80E0 ldi R24,<_Char_0816_2
0096 90E0 ldi R25,>_Char_0816_2
0098 9983 std y+1,R25
009A 8883 std y+0,R24
009C 2BE0 ldi R18,11
009E 0027 clr R16
00A0 0E940000 xcall _LCD_Write_Char
00A4 .dbline 78
00A4 ; LCD_Write_Char(0,0x0C,Char_0816_9);
00A4 80E0 ldi R24,<_Char_0816_9
00A6 90E0 ldi R25,>_Char_0816_9
00A8 9983 std y+1,R25
00AA 8883 std y+0,R24
00AC 2CE0 ldi R18,12
00AE 0027 clr R16
00B0 0E940000 xcall _LCD_Write_Char
00B4 .dbline 79
00B4 ; LCD_Write_Word(0,0x0D,Char_1616_JIE);
00B4 80E0 ldi R24,<_Char_1616_JIE
00B6 90E0 ldi R25,>_Char_1616_JIE
00B8 9983 std y+1,R25
00BA 8883 std y+0,R24
00BC 2DE0 ldi R18,13
00BE 0027 clr R16
00C0 0E940000 xcall _LCD_Write_Word
00C4 .dbline 80
00C4 ; LCD_Write_Char(0,0x0F,Char_0816_0x00);
00C4 80E0 ldi R24,<_Char_0816_0x00
00C6 90E0 ldi R25,>_Char_0816_0x00
00C8 9983 std y+1,R25
00CA 8883 std y+0,R24
00CC 2FE0 ldi R18,15
00CE 0027 clr R16
00D0 0E940000 xcall _LCD_Write_Char
00D4 .dbline 82
00D4 ;
00D4 ; LCD_Write_Word(1,0x08,Char_1616_AO);
00D4 80E0 ldi R24,<_Char_1616_AO
00D6 90E0 ldi R25,>_Char_1616_AO
00D8 9983 std y+1,R25
00DA 8883 std y+0,R24
00DC 28E0 ldi R18,8
00DE 01E0 ldi R16,1
00E0 0E940000 xcall _LCD_Write_Word
00E4 .dbline 83
00E4 ; LCD_Write_Word(1,0x0A,Char_1616_LIN);
00E4 80E0 ldi R24,<_Char_1616_LIN
00E6 90E0 ldi R25,>_Char_1616_LIN
00E8 9983 std y+1,R25
00EA 8883 std y+0,R24
00EC 2AE0 ldi R18,10
00EE 01E0 ldi R16,1
00F0 0E940000 xcall _LCD_Write_Word
00F4 .dbline 84
00F4 ; LCD_Write_Word(1,0x0C,Char_1616_PI);
00F4 80E0 ldi R24,<_Char_1616_PI
00F6 90E0 ldi R25,>_Char_1616_PI
00F8 9983 std y+1,R25
00FA 8883 std y+0,R24
00FC 2CE0 ldi R18,12
00FE 01E0 ldi R16,1
0100 0E940000 xcall _LCD_Write_Word
0104 .dbline 85
0104 ; LCD_Write_Word(1,0x0E,Char_1616_KE);
0104 80E0 ldi R24,<_Char_1616_KE
0106 90E0 ldi R25,>_Char_1616_KE
0108 9983 std y+1,R25
010A 8883 std y+0,R24
010C 2EE0 ldi R18,14
010E 01E0 ldi R16,1
0110 0E940000 xcall _LCD_Write_Word
0114 .dbline 87
0114 ;
0114 ; LCD_Write_Char(2,0x08,Char_0816_0x00);
0114 80E0 ldi R24,<_Char_0816_0x00
0116 90E0 ldi R25,>_Char_0816_0x00
0118 9983 std y+1,R25
011A 8883 std y+0,R24
011C 28E0 ldi R18,8
011E 02E0 ldi R16,2
0120 0E940000 xcall _LCD_Write_Char
0124 .dbline 88
0124 ; LCD_Write_Word(2,0x09,Char_1616_YUN);
0124 80E0 ldi R24,<_Char_1616_YUN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -