📄 buzzer.lst
字号:
(0117) 返 回:无
(0118) --------------------------------------------------------------------*/
(0119) void delay50ms(sint16 t)
(0120) {
(0121) uint16 i;
(0122) for(;t>0;t--)
01E6 C00B RJMP 0x01F2
(0123) for(i=0;i<52642;i++)
01E7 2744 CLR R20
01E8 2755 CLR R21
01E9 C002 RJMP 0x01EC
01EA 5F4F SUBI R20,0xFF
01EB 4F5F SBCI R21,0xFF
01EC 3A42 CPI R20,0xA2
01ED ECED LDI R30,0xCD
01EE 075E CPC R21,R30
01EF F3D0 BCS 0x01EA
01F0 5001 SUBI R16,1
01F1 4010 SBCI R17,0
01F2 2422 CLR R2
01F3 2433 CLR R3
01F4 1620 CP R2,R16
01F5 0631 CPC R3,R17
01F6 F384 BLT 0x01E7
01F7 940E02BD CALL pop_gset1
01F9 9508 RET
FILE: E:\微雪电子CD1\产品资料\开发板实验板\SMK系列\SMK1632\实验教程\内核及主板相关实验\BUZZER~1\Buzzer\Buzzer.c
(0001) /*********************************************************************
(0002) 微 雪 电 子 WaveShare http://www.waveShare.net
(0003)
(0004) 功能目的: 建立BUZZER使用示例
(0005)
(0006) 目标系统: 基于AVR单片机
(0007)
(0008) 应用软件: ICCAVR
(0009)
(0010) 版 本: Version 1.0
(0011)
(0012) 圆版时间: 2005-03-01
(0013)
(0014) 开发人员: SEE
(0015)
(0016) 说 明: 若用于商业用途,请保留此段文字或注明代码来源
(0017)
(0018) 深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
(0019) *********************************************************************/
(0020)
(0021) /*01010101010101010101010101010101010101010101010101010101010101010101
(0022) ----------------------------------------------------------------------
(0023) 版本更新记录:
(0024)
(0025) ----------------------------------------------------------------------
(0026) 实验内容:
(0027) 使蜂鸣器间歇式的进行鸣叫,鸣叫1秒,停1秒。
(0028) ----------------------------------------------------------------------
(0029) 硬件连接:
(0030) 将“Buzzer”引针与“PB3” 引针使用短路帽短接。
(0031) ----------------------------------------------------------------------
(0032) 注意事项:
(0033) (1)若有加载库函数,请将光盘根目录下的“库函数”下的“ICC_H”文件夹拷到D盘
(0034) (2)请详细阅读:光盘根目录下的“产品资料\开发板实验板\SMK系列\SMK1632\说明资料”
(0035)
(0036) ----------------------------------------------------------------------
(0037) 10101010101010101010101010101010101010101010101010101010101010101010*/
(0038)
(0039) #include <iom16v.h>
(0040) #include "D:\ICC_H\CmmICC.H"
(0041)
(0042) #define OUT_BUZ sbi(DDRB,3) //PB3
(0043) #define BUZ_ON sbi(PORTB,3)
(0044) #define BUZ_OFF cbi(PORTB,3)
(0045)
(0046) /*--------------------------------------------------------------------
(0047) 函数名称:
(0048) 函数功能:
(0049) 注意事项:
(0050) 提示说明:
(0051) 输 入:
(0052) 返 回:
(0053) --------------------------------------------------------------------*/
(0054) void main(void)
(0055) {
(0056) OUT_BUZ;
_main:
01FA 9ABB SBI 0x17,3
01FB C008 RJMP 0x0204
(0057) while(1)
(0058) {
(0059) BUZ_ON;
01FC 9AC3 SBI 0x18,3
(0060) delay50ms(20);
01FD E104 LDI R16,0x14
01FE E010 LDI R17,0
01FF DFE4 RCALL _delay50ms
(0061) BUZ_OFF;
0200 98C3 CBI 0x18,3
(0062) delay50ms(20);
FILE: <library>
0201 E104 LDI R16,0x14
0202 E010 LDI R17,0
0203 DFE0 RCALL _delay50ms
0204 CFF7 RJMP 0x01FC
0205 9508 RET
push_arg4:
0206 933A ST R19,-Y
0207 932A ST R18,-Y
push_arg2:
0208 931A ST R17,-Y
0209 930A ST R16,-Y
020A 9508 RET
div32u:
020B 94E8 BCLR 6
020C C001 RJMP 0x020E
mod32u:
020D 9468 BSET 6
020E D02F RCALL long_div_prolog
020F 24CC CLR R12
0210 C008 RJMP 0x0219
div32s:
0211 94E8 BCLR 6
0212 C001 RJMP 0x0214
mod32s:
0213 9468 BSET 6
0214 D029 RCALL long_div_prolog
0215 FD37 SBRC R19,7
0216 D053 RCALL neg_R16_R19
0217 FDB7 SBRC R27,7
0218 D05A RCALL neg_R24_R27
0219 2477 CLR R7
021A 2488 CLR R8
021B 2499 CLR R9
021C 24AA CLR R10
021D 24BB CLR R11
021E D041 RCALL tst_R16_R19
021F F0C1 BEQ 0x0238
0220 D044 RCALL tst_R24_R27
0221 F0B1 BEQ 0x0238
0222 E2E8 LDI R30,0x28
0223 0F00 LSL R16
0224 1F11 ROL R17
0225 1F22 ROL R18
0226 1F33 ROL R19
0227 1C77 ROL R7
0228 1C88 ROL R8
0229 1C99 ROL R9
022A 1CAA ROL R10
022B 1CBB ROL R11
022C 1688 CP R8,R24
022D 0699 CPC R9,R25
022E 06AA CPC R10,R26
022F 06BB CPC R11,R27
0230 F028 BCS 0x0236
0231 1A88 SUB R8,R24
0232 0A99 SBC R9,R25
0233 0AAA SBC R10,R26
0234 0ABB SBC R11,R27
0235 9503 INC R16
0236 95EA DEC R30
0237 F759 BNE 0x0223
0238 F426 BRTC 0x023D
0239 2D08 MOV R16,R8
023A 2D19 MOV R17,R9
023B 2D2A MOV R18,R10
023C 2D3B MOV R19,R11
023D C013 RJMP long_div_epilog
long_div_prolog:
023E 927A ST R7,-Y
023F 928A ST R8,-Y
0240 929A ST R9,-Y
0241 92AA ST R10,-Y
0242 92BA ST R11,-Y
0243 92CA ST R12,-Y
0244 93EA ST R30,-Y
0245 938A ST R24,-Y
0246 939A ST R25,-Y
0247 93AA ST R26,-Y
0248 93BA ST R27,-Y
0249 858B LDD R24,Y+11
024A 859C LDD R25,Y+12
024B 85AD LDD R26,Y+13
024C 85BE LDD R27,Y+14
024D 2EC3 MOV R12,R19
024E F00E BRTS 0x0250
024F 26CB EOR R12,R27
0250 9508 RET
long_div_epilog:
0251 FCC7 SBRC R12,7
0252 D017 RCALL neg_R16_R19
0253 91B9 LD R27,Y+
0254 91A9 LD R26,Y+
0255 9199 LD R25,Y+
0256 9189 LD R24,Y+
0257 91E9 LD R30,Y+
0258 90C9 LD R12,Y+
0259 90B9 LD R11,Y+
025A 90A9 LD R10,Y+
025B 9099 LD R9,Y+
025C 9089 LD R8,Y+
025D 9079 LD R7,Y+
025E 9624 ADIW R28,4
025F 9508 RET
tst_R16_R19:
0260 2FE0 MOV R30,R16
0261 2BE1 OR R30,R17
0262 2BE2 OR R30,R18
0263 2BE3 OR R30,R19
0264 9508 RET
tst_R24_R27:
0265 2FE8 MOV R30,R24
0266 2BE9 OR R30,R25
0267 2BEA OR R30,R26
0268 2BEB OR R30,R27
0269 9508 RET
neg_R16_R19:
026A 9500 COM R16
026B 9510 COM R17
026C 9520 COM R18
026D 9530 COM R19
026E 5F0F SUBI R16,0xFF
026F 4F1F SBCI R17,0xFF
0270 4F2F SBCI R18,0xFF
0271 4F3F SBCI R19,0xFF
0272 9508 RET
neg_R24_R27:
0273 9580 COM R24
0274 9590 COM R25
0275 95A0 COM R26
0276 95B0 COM R27
0277 5F8F SUBI R24,0xFF
0278 4F9F SBCI R25,0xFF
0279 4FAF SBCI R26,0xFF
027A 4FBF SBCI R27,0xFF
027B 9508 RET
empy32s:
empy32u:
027C 940E02D1 CALL long_prolog
027E 927F PUSH R7
027F 940E02EA CALL tstzero1
0281 F139 BEQ 0x02A9
0282 2477 CLR R7
0283 940E02F0 CALL tstzero2
0285 F419 BNE 0x0289
0286 018C MOVW R16,R24
0287 019D MOVW R18,R26
0288 C020 RJMP 0x02A9
0289 9F08 MUL R16,R24
028A 2CB0 MOV R11,R0
028B 2CA1 MOV R10,R1
028C 9F28 MUL R18,R24
028D 2C90 MOV R9,R0
028E 2C81 MOV R8,R1
028F 9F18 MUL R17,R24
0290 0CA0 ADD R10,R0
0291 1C91 ADC R9,R1
0292 1C87 ADC R8,R7
0293 9F09 MUL R16,R25
0294 0CA0 ADD R10,R0
0295 1C91 ADC R9,R1
0296 1C87 ADC R8,R7
0297 9F19 MUL R17,R25
0298 0C90 ADD R9,R0
0299 1C81 ADC R8,R1
029A 9F0A MUL R16,R26
029B 0C90 ADD R9,R0
029C 1C81 ADC R8,R1
029D 9F38 MUL R19,R24
029E 0C80 ADD R8,R0
029F 9F29 MUL R18,R25
02A0 0C80 ADD R8,R0
02A1 9F1A MUL R17,R26
02A2 0C80 ADD R8,R0
02A3 9F0B MUL R16,R27
02A4 0C80 ADD R8,R0
02A5 2D0B MOV R16,R11
02A6 2D1A MOV R17,R10
02A7 2D29 MOV R18,R9
02A8 2D38 MOV R19,R8
02A9 907F POP R7
02AA 940C02DF JMP long_epilog
pop_gset2:
02AC E0E2 LDI R30,2
02AD 940C02BE JMP pop
pop_gset4:
02AF E0E8 LDI R30,0x8
02B0 940C02BE JMP pop
push_gset5:
02B2 92FA ST R15,-Y
02B3 92EA ST R14,-Y
push_gset4:
02B4 92DA ST R13,-Y
02B5 92CA ST R12,-Y
push_gset3:
02B6 92BA ST R11,-Y
02B7 92AA ST R10,-Y
push_gset2:
02B8 937A ST R23,-Y
02B9 936A ST R22,-Y
push_gset1:
02BA 935A ST R21,-Y
02BB 934A ST R20,-Y
02BC 9508 RET
pop_gset1:
02BD E0E1 LDI R30,1
pop:
02BE 9149 LD R20,Y+
02BF 9159 LD R21,Y+
02C0 FDE0 SBRC R30,0
02C1 9508 RET
02C2 9169 LD R22,Y+
02C3 9179 LD R23,Y+
02C4 FDE1 SBRC R30,1
02C5 9508 RET
02C6 90A9 LD R10,Y+
02C7 90B9 LD R11,Y+
02C8 FDE2 SBRC R30,2
02C9 9508 RET
02CA 90C9 LD R12,Y+
02CB 90D9 LD R13,Y+
02CC FDE3 SBRC R30,3
02CD 9508 RET
02CE 90E9 LD R14,Y+
02CF 90F9 LD R15,Y+
02D0 9508 RET
long_prolog:
02D1 928A ST R8,-Y
02D2 929A ST R9,-Y
02D3 92AA ST R10,-Y
02D4 92BA ST R11,-Y
02D5 93EA ST R30,-Y
02D6 938A ST R24,-Y
02D7 939A ST R25,-Y
02D8 93AA ST R26,-Y
02D9 93BA ST R27,-Y
02DA 8589 LDD R24,Y+9
02DB 859A LDD R25,Y+10
02DC 85AB LDD R26,Y+11
02DD 85BC LDD R27,Y+12
02DE 9508 RET
long_epilog:
02DF 91B9 LD R27,Y+
02E0 91A9 LD R26,Y+
02E1 9199 LD R25,Y+
02E2 9189 LD R24,Y+
02E3 91E9 LD R30,Y+
02E4 90B9 LD R11,Y+
02E5 90A9 LD R10,Y+
02E6 9099 LD R9,Y+
02E7 9089 LD R8,Y+
02E8 9624 ADIW R28,4
02E9 9508 RET
tstzero1:
02EA 27EE CLR R30
02EB 2BE0 OR R30,R16
02EC 2BE1 OR R30,R17
02ED 2BE2 OR R30,R18
02EE 2BE3 OR R30,R19
02EF 9508 RET
tstzero2:
02F0 27EE CLR R30
02F1 2BE8 OR R30,R24
02F2 2BE9 OR R30,R25
02F3 2BEA OR R30,R26
02F4 2BEB OR R30,R27
02F5 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -