📄 led.lis
字号:
.module led.c
.area vector(rom, abs)
.org 18
0012 00C0 rjmp _timet0_ovf
.area data(ram, con, rel)
0000 L2:
0000 .blkb 2
.area idata
0000 6E00 .word 110
.area data(ram, con, rel)
0002 L3:
0002 .blkb 2
.area idata
0002 BE00 .word 190
.area data(ram, con, rel)
0004 L4:
0004 .blkb 2
.area idata
0004 2003 .word 800
.area data(ram, con, rel)
.area text(rom, con, rel)
0000 .dbfile F:\AVR-PRO\avr3\led.c
0000 .dbfunc e timet0_ovf _timet0_ovf fV
0000 .dbsym s M05_CONT L4 i
0000 .dbsym s BEEP2_CONT L3 i
0000 .dbsym s BEEP1_CONT L2 i
.even
0000 _timet0_ovf::
0000 2A92 st -y,R2
0002 3A92 st -y,R3
0004 8A93 st -y,R24
0006 9A93 st -y,R25
0008 EA93 st -y,R30
000A 2FB6 in R2,0x3f
000C 2A92 st -y,R2
000E .dbline -1
000E .dbline 52
000E ; #include <iom8v.h> //包含型号头文件
000E ; #include <macros.h> //包含"位"操作头文件
000E ; #include <stdio.h>
000E ;
000E ; //========PD7输出高电平
000E ; #define LED_LIANG PORTD|=BIT(PD7)
000E ; //========PD7输出低电平
000E ; #define LED_MIE PORTD&=~BIT(PD7)
000E ; //========PD6输出高电平
000E ; #define BUZZ_YE PORTD|=BIT(PD6)
000E ; //========PD6输出低电平
000E ; #define BUZZ_NO PORTD&=~BIT(PD6)
000E ; /*========液晶模拟驱动口定义==========*/
000E ; #define HT_CS_ONE PORTB|=BIT(PB3)
000E ; #define HT_CS_ZER PORTB&=-BIT(PB3)
000E ; #define HT_WR_ONE PORTB|=BIT(PB4)
000E ; #define HT_WR_ZER PORTB&=-BIT(PB4)
000E ; #define HT_DT_ONE PORTB|=BIT(PB5)
000E ; #define HT_DT_ZER PORTB&=-BIT(PB5)
000E ;
000E ; #define PC1_1 PORTC|=BIT(PC1)
000E ; #define PC1_0 PORTC&=-BIT(PC1)
000E ; #define PC2_1 PORTC|=BIT(PC2)
000E ; #define PC2_0 PORTC&=-BIT(PC2)
000E ; #define PC3_1 PORTC|=BIT(PC3)
000E ; #define PC3_0 PORTC&=-BIT(PC3)
000E ; #define PC4_1 PORTC|=BIT(PC4)
000E ; #define PC4_0 PORTC&=-BIT(PC4)
000E ; #define PC5_1 PORTC|=BIT(PC5)
000E ; #define PC5_0 PORTC&=-BIT(PC5)
000E ; /*全局变量定义*/
000E ;
000E ;
000E ;
000E ; unsigned char MBZ,VARIA_BIT,LCD[23];
000E ; struct data
000E ; {
000E ; unsigned BEEP1:1;
000E ; unsigned BEEP2:1;
000E ; unsigned BIT1 :1;
000E ; unsigned BIT2 :1;
000E ; unsigned BIT3 :1;
000E ; unsigned BIT4 :1;
000E ; unsigned BIT5 :1;
000E ; unsigned BIT6 :1;
000E ; }a;
000E ;
000E ; unsigned char key_t2();
000E ; /*=============定时器0中断函数==============*/
000E ; #pragma interrupt_handler timet0_ovf:10
000E ; void timet0_ovf(void)
000E ; {
000E .dbline 57
000E ; static unsigned int
000E ; BEEP1_CONT=110,
000E ; BEEP2_CONT=190,
000E ; M05_CONT=800;
000E ; SREG =0X80; //重新开放中断
000E 80E8 ldi R24,128
0010 8FBF out 0x3f,R24
0012 .dbline 58
0012 ; TCNT0=0XEE; //重装1.25MS的定时初值
0012 8EEE ldi R24,238
0014 82BF out 0x32,R24
0016 .dbline 59
0016 ; DDRB|=BIT(PB0);
0016 B89A sbi 0x17,0
0018 .dbline 60
0018 ; PORTB|=BIT(PB0);
0018 C09A sbi 0x18,0
001A .dbline 61
001A ; M05_CONT--;
001A 80910400 lds R24,L4
001E 90910500 lds R25,L4+1
0022 0197 sbiw R24,1
0024 90930500 sts L4+1,R25
0028 80930400 sts L4,R24
002C .dbline 62
002C ; if(M05_CONT==0)
002C 8030 cpi R24,0
002E 8907 cpc R24,R25
0030 89F4 brne L5
0032 X0:
0032 .dbline 63
0032 ; {
0032 .dbline 64
0032 ; M05_CONT=800;
0032 80E2 ldi R24,800
0034 93E0 ldi R25,3
0036 90930500 sts L4+1,R25
003A 80930400 sts L4,R24
003E .dbline 65
003E ; if(MBZ==0) { MBZ=1; }
003E 20901900 lds R2,_MBZ
0042 2220 tst R2
0044 21F4 brne L7
0046 .dbline 65
0046 .dbline 65
0046 81E0 ldi R24,1
0048 80931900 sts _MBZ,R24
004C .dbline 65
004C 03C0 rjmp L8
004E L7:
004E .dbline 66
004E ; else { MBZ=0; }
004E .dbline 66
004E 2224 clr R2
0050 20921900 sts _MBZ,R2
0054 .dbline 66
0054 L8:
0054 .dbline 67
0054 ; }
0054 L5:
0054 .dbline 68
0054 ; if(a.BEEP1==1)
0054 80910000 lds R24,_a
0058 8170 andi R24,1
005A 8130 cpi R24,1
005C E1F4 brne L9
005E .dbline 69
005E ; {
005E .dbline 70
005E ; BUZZ_NO;
005E 9698 cbi 0x12,6
0060 .dbline 71
0060 ; if((BEEP1_CONT--)==1)
0060 20900000 lds R2,L2
0064 30900100 lds R3,L2+1
0068 C101 movw R24,R2
006A 0197 sbiw R24,1
006C 90930100 sts L2+1,R25
0070 80930000 sts L2,R24
0074 C101 movw R24,R2
0076 8130 cpi R24,1
0078 E0E0 ldi R30,0
007A 9E07 cpc R25,R30
007C 61F4 brne L11
007E .dbline 72
007E ; {
007E .dbline 73
007E ; BEEP1_CONT=110;
007E 8EE6 ldi R24,110
0080 90E0 ldi R25,0
0082 90930100 sts L2+1,R25
0086 80930000 sts L2,R24
008A .dbline 74
008A ; BUZZ_YE;
008A 969A sbi 0x12,6
008C .dbline 75
008C ; a.BEEP1=0;
008C 80910000 lds R24,_a
0090 8E7F andi R24,254
0092 80930000 sts _a,R24
0096 .dbline 76
0096 ; }
0096 L11:
0096 .dbline 77
0096 ; }
0096 L9:
0096 .dbline 79
0096 ; /*==========响铃2次函数设置============*/
0096 ; if(a.BEEP2==1) //响铃2次
0096 80910000 lds R24,_a
009A 8695 lsr R24
009C 8170 andi R24,1
009E 8130 cpi R24,1
00A0 09F0 breq X3
00A2 3DC0 rjmp L13
00A4 X3:
00A4 .dbline 80
00A4 ; {
00A4 .dbline 81
00A4 ; --BEEP2_CONT;
00A4 80910200 lds R24,L3
00A8 90910300 lds R25,L3+1
00AC 0197 sbiw R24,1
00AE 90930300 sts L3+1,R25
00B2 80930200 sts L3,R24
00B6 .dbline 82
00B6 ; if(BEEP2_CONT>113)
00B6 81E7 ldi R24,113
00B8 90E0 ldi R25,0
00BA 20900200 lds R2,L3
00BE 30900300 lds R3,L3+1
00C2 8215 cp R24,R2
00C4 9305 cpc R25,R3
00C6 10F4 brsh L15
00C8 .dbline 83
00C8 ; {
00C8 .dbline 84
00C8 ; BUZZ_NO;
00C8 9698 cbi 0x12,6
00CA .dbline 85
00CA ; }else
00CA 29C0 rjmp L16
00CC L15:
00CC .dbline 86
00CC ; if(BEEP2_CONT>75)
00CC 8BE4 ldi R24,75
00CE 90E0 ldi R25,0
00D0 20900200 lds R2,L3
00D4 30900300 lds R3,L3+1
00D8 8215 cp R24,R2
00DA 9305 cpc R25,R3
00DC 10F4 brsh L17
00DE .dbline 87
00DE ; {
00DE .dbline 88
00DE ; BUZZ_YE;
00DE 969A sbi 0x12,6
00E0 .dbline 89
00E0 ; }else
00E0 1EC0 rjmp L18
00E2 L17:
00E2 .dbline 90
00E2 ; if(BEEP2_CONT>0)
00E2 20900200 lds R2,L3
00E6 30900300 lds R3,L3+1
00EA 2220 tst R2
00EC 11F4 brne X1
00EE 3320 tst R3
00F0 11F0 breq L19
00F2 X1:
00F2 .dbline 91
00F2 ; {
00F2 .dbline 92
00F2 ; BUZZ_NO;
00F2 9698 cbi 0x12,6
00F4 .dbline 93
00F4 ; }else
00F4 14C0 rjmp L20
00F6 L19:
00F6 .dbline 94
00F6 ; if(BEEP2_CONT==0)
00F6 20900200 lds R2,L3
00FA 30900300 lds R3,L3+1
00FE 2220 tst R2
0100 71F4 brne L21
0102 3320 tst R3
0104 61F4 brne L21
0106 X2:
0106 .dbline 95
0106 ; {
0106 .dbline 96
0106 ; BUZZ_YE;
0106 969A sbi 0x12,6
0108 .dbline 97
0108 ; a.BEEP2=0;
0108 80910000 lds R24,_a
010C 8D7F andi R24,253
010E 80930000 sts _a,R24
0112 .dbline 98
0112 ; BEEP2_CONT=190;
0112 8EEB ldi R24,190
0114 90E0 ldi R25,0
0116 90930300 sts L3+1,R25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -