📄 sound.lst
字号:
__text_start:
__start:
002A E5CF LDI R28,0x5F
002B E0D4 LDI R29,4
002C BFCD OUT 0x3D,R28
002D BFDE OUT 0x3E,R29
002E 51C0 SUBI R28,0x10
002F 40D0 SBCI R29,0
0030 EA0A LDI R16,0xAA
0031 8308 STD Y+0,R16
0032 2400 CLR R0
0033 E6E0 LDI R30,0x60
0034 E0F0 LDI R31,0
0035 E010 LDI R17,0
0036 36E0 CPI R30,0x60
0037 07F1 CPC R31,R17
0038 F011 BEQ 0x003B
0039 9201 ST R0,Z+
003A CFFB RJMP 0x0036
003B 8300 STD Z+0,R16
003C E5E4 LDI R30,0x54
003D E0F0 LDI R31,0
003E E6A0 LDI R26,0x60
003F E0B0 LDI R27,0
0040 E010 LDI R17,0
0041 35E4 CPI R30,0x54
0042 07F1 CPC R31,R17
0043 F021 BEQ 0x0048
0044 95C8 LPM
0045 9631 ADIW R30,1
0046 920D ST R0,X+
0047 CFF9 RJMP 0x0041
0048 940E0064 CALL _main
_exit:
004A CFFF RJMP _exit
FILE: E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\蜂鸣器测试\main.c
(0001) /****************************************Copyright (c)**************************************************
(0002) ** ADEmbed Development Co.,LTD.
(0003) ** http://www.adembed.com
(0004) **--------------File Info-------------------------------------------------------------------------------
(0005) ** File name: main.c
(0006) ** Last modified Date: 2008-12-13
(0007) ** Last Version: 1.0
(0008) ** Descriptions: Sound Test.
(0009) **
(0010) **------------------------------------------------------------------------------------------------------
(0011) ** Created by: junbolu
(0012) ** Created date: 2008-12-13
(0013) ** Version: 1.0
(0014) ** Descriptions:
(0015) **
(0016) **------------------------------------------------------------------------------------------------------
(0017) ** Modified by:
(0018) ** Modified date:
(0019) ** Version:
(0020) ** Descriptions:
(0021) **
(0022) **------------------------------------------------------------------------------------------------------
(0023) **ICC-AVR application builder : 2008-12-13
(0024) **Target : M16
(0025) **Crystal: 7.3728Mhz
(0026) **PD7--->Sound_EN
(0027) **
(0028) **描述:驱动蜂鸣器,并且让他非连续鸣叫。
(0029) ** 学习单片机的简单程序,如果你才学习单片机,一定要好好掌握。
(0030) **
(0031) **涉及知识点:
(0032) ** DO输出
(0033) ** for 循环的应用
(0034) ** 软件延时函数的编写
(0035) *******************************************************************************************************/
(0036)
(0037) #include<iom16v.h>
(0038) #include<macros.h>
(0039)
(0040) void Delay_us(unsigned int time)
(0041) {
(0042) while(time--);
_Delay_us:
time --> R16
004B 0118 MOVW R2,R16
004C 5001 SUBI R16,1
004D 4010 SBCI R17,0
004E 2022 TST R2
004F F7D9 BNE 0x004B
0050 2033 TST R3
0051 F7C9 BNE 0x004B
0052 9508 RET
_Delay_ms:
time --> R20
0053 940E0078 CALL push_gset1
0055 01A8 MOVW R20,R16
(0043) }
(0044)
(0045) void Delay_ms(unsigned int time)
(0046) {
0056 C003 RJMP 0x005A
(0047) while(time--)
(0048) {
(0049) Delay_us(1000);
0057 EE08 LDI R16,0xE8
0058 E013 LDI R17,3
0059 DFF1 RCALL _Delay_us
005A 011A MOVW R2,R20
005B 5041 SUBI R20,1
005C 4050 SBCI R21,0
005D 2022 TST R2
005E F7C1 BNE 0x0057
005F 2033 TST R3
0060 F7B1 BNE 0x0057
0061 940E007B CALL pop_gset1
0063 9508 RET
(0050) }
(0051) }
(0052)
(0053) void main(void)
(0054) {
(0055) //初始化端口
(0056) DDRD |=0X80; //设置PD7为输出
_main:
0064 9A8F SBI 0x11,7
(0057) PORTD|=0X80; //设置PD7为高电平
0065 9A97 SBI 0x12,7
(0058)
(0059) //开始演示
(0060) for(;;)
(0061) {
(0062) PORTD&=~0X80; //低电平驱动
0066 9897 CBI 0x12,7
(0063) Delay_ms(100); //延时0.1s
0067 E604 LDI R16,0x64
0068 E010 LDI R17,0
0069 DFE9 RCALL _Delay_ms
(0064) PORTD|=0X80; //高电平暂停
006A 9A97 SBI 0x12,7
(0065) Delay_ms(1000); //延时2s
FILE: <library>
006B EE08 LDI R16,0xE8
006C E013 LDI R17,3
006D DFE5 RCALL _Delay_ms
006E CFF7 RJMP 0x0066
006F 9508 RET
push_gset5:
0070 92FA ST R15,-Y
0071 92EA ST R14,-Y
push_gset4:
0072 92DA ST R13,-Y
0073 92CA ST R12,-Y
push_gset3:
0074 92BA ST R11,-Y
0075 92AA ST R10,-Y
push_gset2:
0076 937A ST R23,-Y
0077 936A ST R22,-Y
push_gset1:
0078 935A ST R21,-Y
0079 934A ST R20,-Y
007A 9508 RET
pop_gset1:
007B E0E1 LDI R30,1
pop:
007C 9149 LD R20,Y+
007D 9159 LD R21,Y+
007E FDE0 SBRC R30,0
007F 9508 RET
0080 9169 LD R22,Y+
0081 9179 LD R23,Y+
0082 FDE1 SBRC R30,1
0083 9508 RET
0084 90A9 LD R10,Y+
0085 90B9 LD R11,Y+
0086 FDE2 SBRC R30,2
0087 9508 RET
0088 90C9 LD R12,Y+
0089 90D9 LD R13,Y+
008A FDE3 SBRC R30,3
008B 9508 RET
008C 90E9 LD R14,Y+
008D 90F9 LD R15,Y+
008E 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -