?? main.s
字號:
.module main.c
.area data(ram, con, rel)
_wTimeCount::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\點陣型LCD顯示應用設計\main.c
.dbsym e wTimeCount _wTimeCount c
.area text(rom, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\點陣型LCD顯示應用設計\main.c
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 24
; //***************************************************************
; // File Name : LED.c
; // Author : Steaven
; // Created : 2008-07-26
; // Modified :
; // Revision : V0.0
; //***************************************************************
;
; #include "iom16v.h"
; #include "DataType.h"
; #include "app.h"
; #include "lcd.h"
; #include "zimo.h"
;
; void LCD_Write_Frame0(void);
; void LCD_Write_Frame1(void);
; void LCD_Write_Frame2(void);
; void LCD_Display_Init(void);
; void LCD_Display_Update(void);
;
; INT8U wTimeCount = 0;
;
; void main(void)
; {
.dbline 25
; Hardware_Init();
xcall _Hardware_Init
.dbline 26
; LCD_Init();
xcall _LCD_Init
.dbline 27
; LCD_Display_Init();
xcall _LCD_Display_Init
xjmp L3
L2:
.dbline 29
.dbline 30
xcall _LCD_Display_Update
.dbline 31
L3:
.dbline 28
xjmp L2
X0:
.dbline -2
.dbline 32
; while(1)
; {
; LCD_Display_Update();
; }
; }
L1:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 76
jmp _wTimeCountr0_Interrupt
.area text(rom, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\點陣型LCD顯示應用設計\main.c
.area data(ram, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\點陣型LCD顯示應用設計\main.c
L6:
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\點陣型LCD顯示應用設計\main.c
L7:
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\點陣型LCD顯示應用設計\main.c
L8:
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\點陣型LCD顯示應用設計\main.c
.area text(rom, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\點陣型LCD顯示應用設計\main.c
.dbfunc e wTimeCountr0_Interrupt _wTimeCountr0_Interrupt fV
.dbsym s buzzer_status L8 c
.dbsym s buzzer_count L7 c
.dbsym s int_count L6 c
.even
_wTimeCountr0_Interrupt::
xcall push_lset
.dbline -1
.dbline 42
;
; //***************************************************************
; // Function : wTimeCountr0_Interrupt
; // Input : none
; // Output : none
; // Description : ATmega16 T/C0 ISR
; //***************************************************************
; #pragma interrupt_handler wTimeCountr0_Interrupt:20
; void wTimeCountr0_Interrupt(void)
; {
.dbline 48
; static INT8U int_count = 0;
; static INT8U buzzer_count = 0;
; static INT8U buzzer_status = 0;
;
; //Clear wTimeCountr0 OCIF Flag
; TIFR |= 0x02;
in R24,0x38
ori R24,2
out 0x38,R24
.dbline 49
; TCNT0 = 0x00;
clr R2
out 0x32,R2
.dbline 51
; //Interrupt Count
; int_count++;
lds R24,L6
subi R24,255 ; addi 1
sts L6,R24
.dbline 52
; if(int_count == 1)
cpi R24,1
brne L9
.dbline 53
; {
.dbline 54
; Buzzer_ON();
xcall _Buzzer_ON
.dbline 55
; }
xjmp L10
L9:
.dbline 56
; else if(int_count == 6)
lds R24,L6
cpi R24,6
brne L11
.dbline 57
; {
.dbline 58
; if(wTimeCount <= 8)
ldi R24,8
lds R2,_wTimeCount
cp R24,R2
brlo L12
.dbline 59
; {
.dbline 60
; Buzzer_OFF();
xcall _Buzzer_OFF
.dbline 61
; }
.dbline 62
; }
xjmp L12
L11:
.dbline 63
; else if(int_count == 100)
lds R24,L6
cpi R24,100
brne L15
.dbline 64
; {
.dbline 65
; int_count = 0;
clr R2
sts L6,R2
.dbline 66
; if(wTimeCount <= 8)
ldi R24,8
lds R2,_wTimeCount
cp R24,R2
brlo L17
.dbline 67
; {
.dbline 68
; wTimeCount++;
mov R24,R2
subi R24,255 ; addi 1
sts _wTimeCount,R24
.dbline 69
; }
L17:
.dbline 70
; }
L15:
L12:
L10:
.dbline -2
.dbline 71
; }
L5:
xcall pop_lset
.dbline 0 ; func end
reti
.dbend
.dbfunc e LCD_Write_Frame0 _LCD_Write_Frame0 fV
.even
_LCD_Write_Frame0::
sbiw R28,2
.dbline -1
.dbline 74
;
; void LCD_Write_Frame0(void)
; {
.dbline 75
; LCD_Write_Char(0,0x08,Char_0816_0x00);
ldi R24,<_Char_0816_0x00
ldi R25,>_Char_0816_0x00
std y+1,R25
std y+0,R24
ldi R18,8
clr R16
xcall _LCD_Write_Char
.dbline 76
; LCD_Write_Word(0,0x09,Char_1616_DI);
ldi R24,<_Char_1616_DI
ldi R25,>_Char_1616_DI
std y+1,R25
std y+0,R24
ldi R18,9
clr R16
xcall _LCD_Write_Word
.dbline 77
; LCD_Write_Char(0,0x0B,Char_0816_2);
ldi R24,<_Char_0816_2
ldi R25,>_Char_0816_2
std y+1,R25
std y+0,R24
ldi R18,11
clr R16
xcall _LCD_Write_Char
.dbline 78
; LCD_Write_Char(0,0x0C,Char_0816_9);
ldi R24,<_Char_0816_9
ldi R25,>_Char_0816_9
std y+1,R25
std y+0,R24
ldi R18,12
clr R16
xcall _LCD_Write_Char
.dbline 79
; LCD_Write_Word(0,0x0D,Char_1616_JIE);
ldi R24,<_Char_1616_JIE
ldi R25,>_Char_1616_JIE
std y+1,R25
std y+0,R24
ldi R18,13
clr R16
xcall _LCD_Write_Word
.dbline 80
; LCD_Write_Char(0,0x0F,Char_0816_0x00);
ldi R24,<_Char_0816_0x00
ldi R25,>_Char_0816_0x00
std y+1,R25
std y+0,R24
ldi R18,15
clr R16
xcall _LCD_Write_Char
.dbline 82
;
; LCD_Write_Word(1,0x08,Char_1616_AO);
ldi R24,<_Char_1616_AO
ldi R25,>_Char_1616_AO
std y+1,R25
std y+0,R24
ldi R18,8
ldi R16,1
xcall _LCD_Write_Word
.dbline 83
; LCD_Write_Word(1,0x0A,Char_1616_LIN);
ldi R24,<_Char_1616_LIN
ldi R25,>_Char_1616_LIN
std y+1,R25
std y+0,R24
ldi R18,10
ldi R16,1
xcall _LCD_Write_Word
.dbline 84
; LCD_Write_Word(1,0x0C,Char_1616_PI);
ldi R24,<_Char_1616_PI
ldi R25,>_Char_1616_PI
std y+1,R25
std y+0,R24
ldi R18,12
ldi R16,1
xcall _LCD_Write_Word
.dbline 85
; LCD_Write_Word(1,0x0E,Char_1616_KE);
ldi R24,<_Char_1616_KE
ldi R25,>_Char_1616_KE
std y+1,R25
std y+0,R24
ldi R18,14
ldi R16,1
xcall _LCD_Write_Word
.dbline 87
;
; LCD_Write_Char(2,0x08,Char_0816_0x00);
ldi R24,<_Char_0816_0x00
ldi R25,>_Char_0816_0x00
std y+1,R25
std y+0,R24
ldi R18,8
ldi R16,2
xcall _LCD_Write_Char
.dbline 88
; LCD_Write_Word(2,0x09,Char_1616_YUN);
ldi R24,<_Char_1616_YUN
ldi R25,>_Char_1616_YUN
std y+1,R25
std y+0,R24
ldi R18,9
ldi R16,2
xcall _LCD_Write_Word
.dbline 89
; LCD_Write_Word(2,0x0B,Char_1616_DONG);
ldi R24,<_Char_1616_DONG
ldi R25,>_Char_1616_DONG
std y+1,R25
std y+0,R24
ldi R18,11
ldi R16,2
xcall _LCD_Write_Word
.dbline 90
; LCD_Write_Word(2,0x0D,Char_1616_HUI);
ldi R24,<_Char_1616_HUI
ldi R25,>_Char_1616_HUI
std y+1,R25
std y+0,R24
ldi R18,13
ldi R16,2
xcall _LCD_Write_Word
.dbline 91
; LCD_Write_Char(2,0x0F,Char_0816_0x00);
ldi R24,<_Char_0816_0x00
ldi R25,>_Char_0816_0x00
std y+1,R25
std y+0,R24
ldi R18,15
ldi R16,2
xcall _LCD_Write_Char
.dbline 93
;
; LCD_Write_Char(3,0x08,Char_0816_0x00);
ldi R24,<_Char_0816_0x00
ldi R25,>_Char_0816_0x00
std y+1,R25
std y+0,R24
ldi R18,8
ldi R16,3
xcall _LCD_Write_Char
.dbline 94
; LCD_Write_Char(3,0x09,Char_0816_0x00);
ldi R24,<_Char_0816_0x00
ldi R25,>_Char_0816_0x00
std y+1,R25
std y+0,R24
ldi R18,9
ldi R16,3
xcall _LCD_Write_Char
.dbline 95
; LCD_Write_Word(3,0x0A,Char_1616_KAI);
ldi R24,<_Char_1616_KAI
ldi R25,>_Char_1616_KAI
std y+1,R25
std y+0,R24
ldi R18,10
ldi R16,3
xcall _LCD_Write_Word
.dbline 96
; LCD_Write_Word(3,0x0C,Char_1616_MU);
ldi R24,<_Char_1616_MU
ldi R25,>_Char_1616_MU
std y+1,R25
std y+0,R24
ldi R18,12
ldi R16,3
xcall _LCD_Write_Word
.dbline 97
; LCD_Write_Char(3,0x0E,Char_0816_0x21);
ldi R24,<_Char_0816_0x21
ldi R25,>_Char_0816_0x21
std y+1,R25
std y+0,R24
ldi R18,14
ldi R16,3
xcall _LCD_Write_Char
.dbline 98
; LCD_Write_Char(3,0x0F,Char_0816_0x00);
ldi R24,<_Char_0816_0x00
ldi R25,>_Char_0816_0x00
std y+1,R25
std y+0,R24
ldi R18,15
ldi R16,3
xcall _LCD_Write_Char
.dbline -2
.dbline 99
; }
L19:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.dbfunc e LCD_Write_Frame1 _LCD_Write_Frame1 fV
.even
_LCD_Write_Frame1::
sbiw R28,2
.dbline -1
.dbline 102
;
; void LCD_Write_Frame1(void)
; {
.dbline 103
; LCD_Write_Char(0,0x08,Char_0816_2);
ldi R24,<_Char_0816_2
ldi R25,>_Char_0816_2
std y+1,R25
std y+0,R24
ldi R18,8
clr R16
xcall _LCD_Write_Char
.dbline 104
; LCD_Write_Char(0,0x09,Char_0816_0);
ldi R24,<_Char_0816_0
ldi R25,>_Char_0816_0
std y+1,R25
std y+0,R24
ldi R18,9
clr R16
xcall _LCD_Write_Char
.dbline 105
; LCD_Write_Char(0,0x0A,Char_0816_0);
ldi R24,<_Char_0816_0
ldi R25,>_Char_0816_0
std y+1,R25
std y+0,R24
ldi R18,10
clr R16
xcall _LCD_Write_Char
.dbline 106
; LCD_Write_Char(0,0x0B,Char_0816_8);
ldi R24,<_Char_0816_8
ldi R25,>_Char_0816_8
std y+1,R25
std y+0,R24
ldi R18,11
clr R16
xcall _LCD_Write_Char
.dbline 107
; LCD_Write_Char(0,0x0C,Char_0816_0x3A);
ldi R24,<_Char_0816_0x3A
ldi R25,>_Char_0816_0x3A
std y+1,R25
std y+0,R24
ldi R18,12
clr R16
xcall _LCD_Write_Char
.dbline 108
; LCD_Write_Char(0,0x0D,Char_0816_8);
ldi R24,<_Char_0816_8
ldi R25,>_Char_0816_8
std y+1,R25
std y+0,R24
ldi R18,13
clr R16
xcall _LCD_Write_Char
.dbline 109
; LCD_Write_Char(0,0x0E,Char_0816_0x3A);
ldi R24,<_Char_0816_0x3A
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -