⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file8.lst

📁 单片机学习系统附的实验源代码
💻 LST
字号:

PAGE 1





    1:		N      0040	   musich       equ 40h                       ;音乐定时高位数据
    2:		N      0041	   musicl       equ 41h                       ;音乐定时低位数据
    3:		N      0042	   musicstart   equ 42h                       ;音乐开始首地址
    4:		B	 B7	   beep         bit p3.7                      ;蜂鸣器定义
    5:
    6:				;  ************************   预定义结束   *******************
    7:
    8:		N      0000	   org 00h                              ;程序开始
    9:	  0000	02 00 30	   jmp main                             ;跳转到主程序
   10:
   11:		N      001B	   org 1bh                              ;定时器T1中断入口地址
   12:	  001B	02 00 3D	   jmp timer_1                           ;定时器服务程序
   13:
   14:		N      0030	   org 030h                             ;主程序代码开始
   15:	  0030	75 81 30	   main:mov sp,#30h                     ;设置堆栈
   16:	  0033	12 00 4A	        lcall music                     ;调用音乐程序
   17:	  0036	80 F8		        jmp main                        ;重新开始
   18:
   19:	  0038	78 14		musdelay:mov r0,#20                     ;短时间延时
   20:	  003A	D8 FE		     d:  djnz r0,d                      ;延时时间 20 uS
   21:	  003C	22		          ret                           ;返回
   22:				; ************  定时器 服务程序 *******************8
   23:	  003D	C2 8E		timer_1:    clr tr1                      ;停止定时器工作
   24:	  003F	85 40 8D	           mov th1,musich               ;重新设置定时初值
   25:	  0042	85 41 8B	           mov tl1,musicl               ;
   26:	  0045	B2 B7		           cpl beep                     ;从蜂鸣器输出声音
   27:	  0047	D2 8E		           setb tr1                     ;开始定时工作
   28:	  0049	32		            reti                        ;中断返回
   29:				;****************************************************
   30:				;************ 音乐播放程序 *********************
   31:	  004A	75 89 10	music:          mov tmod,#10h           ;设置定时器T1工作方式1
   32:	  004D	D2 AF		                setb ea                 ;总的中断
   33:	  004F	D2 AB		                setb et1                ;定时器T1中断允许
   34:	  0051	75 42 00	                mov musicstart,#00h     ;音乐开始地址
   35:	  0054	75 40 FF	                mov musich,#0ffh        ;音乐定时常数高位
   36:	  0057	75 41 FF	                mov musicl,#0ffh        ;音乐定时常数低位
   37:
   38:	  005A	90 00 E5	   loopm:       mov dptr,#mu_tab        ;得到音符表头
   39:	  005D	E5 42		                mov a,musicstart        ;开始查表
   40:	  005F	93		                movc a,@a+dptr          ;获得音乐数据
   41:	  0060	60 2C		                jz musend               ;结束符 00H,返回
   42:	  0062	23		                rl a                    ;A*2
   43:	  0063	F5 F0		                mov b,a                 ;暂存地址
   44:	  0065	90 00 B9	                mov dptr,#mustab        ;获得音符表头
   45:	  0068	93		                movc a,@a+dptr          ;根据音乐数据查得定时常数
   46:	  0069	F5 40		                mov musich,a            ;保存定时常数高位
   47:	  006B	F5 8D		                mov th1,a               ;设置定时器高位常数
   48:	  006D	E5 F0		                mov a,b                 ;开始找低位数据
   49:	  006F	04		                inc a                   ;指向下一个数据
   50:	  0070	90 00 B9	                mov dptr,#mustab        ;得到音符表头
   51:	  0073	93		                movc a,@a+dptr          ;查得低位数据
   52:	  0074	F5 41		                mov musicl,a            ;保存数据
   53:	  0076	F5 8B		                mov tl1,a               ;设置定时低位常数
   54:	  0078	D2 8E		                setb tr1                ;定时器T1开始工作
   55:
   56:	  007A	90 00 E5		        mov dptr,#mu_tab        ;得到音乐表

PAGE 2



   57:	  007D	05 42		                inc musicstart          ;指向下一个单元(音符节拍)
   58:	  007F	E5 42		                mov a,musicstart        ;开始查找
   59:	  0081	93		                movc a,@a+dptr          ;找到数据
   60:	  0082	12 00 9C	                lcall delay1            ;根据参数延时,发出持续音乐
   61:	  0085	05 42		                inc  musicstart         ;指向下一个音
   62:	  0087	C2 8E		                clr tr1                 ;停止发声
   63:	  0089	12 00 AE	                lcall delay
   64:	  008C	80 CC			jmp loopm                       ;重复,直到遇到结束符号 00H.
   65:
   66:	  008E	C2 8E		musend:         clr tr1                 ;乐曲播放完毕,关闭定时器
   67:	  0090	C2 AF		                clr ea                  ;禁止中断
   68:	  0092	C2 AB		                clr et1                 ;关闭定时器T1中断
   69:	  0094	C2 B7		                clr beep                ;禁止蜂鸣器
   70:	  0096	74 14		                mov a,#20
   71:	  0098	12 00 9C	                lcall delay1
   72:	  009B	22		               ret
   73:				;*********************
   74:				;************ 节拍发生器 ,产生音乐节拍 *********************************
   75:	  009C	78 00		delay1:            mov r0,#00h                    ;节拍发生器,用来发生节拍
   76:	  009E	79 00		                   mov r1,#00h                    ;
   77:	  00A0	FA		                   mov r2,a                       ;这是节拍发生器的参数,当它为8
   78:	  00A1	D8 FE		          dlay1:djnz r0,dlay1                     ;表示1拍
   79:	  00A3	78 00		                    mov r0,#00h
   80:	  00A5	D9 FA		                    djnz r1,dlay1
   81:	  00A7	78 00		                    mov r0,#00h
   82:	  00A9	79 00		                    mov r1,#00h
   83:	  00AB	DA F4		                    djnz r2,dlay1
   84:	  00AD	22		                    ret
   85:				; ————————————————————
   86:				; ********  延时 产生休止符  *****************
   87:
   88:	  00AE	78 00		delay:           mov r0,#00h                    ;延时 10ms
   89:	  00B0	79 64		                 mov r1,#100
   90:	  00B2	D8 FE		          dlay:  djnz r0,dlay
   91:	  00B4	78 64		                 mov r0,#100
   92:	  00B6	D9 FA		                 djnz r1,dlay
   93:	  00B8	22		                 ret
   94:				;  ************************
   95:				;  ************************曲谱编码,这是定义的曲谱表,对应如下  ***********************************
				***************
   96:					        ;        1 低音 DO     2 低音 RE       3  低音ME       4 低音 FA      5 低音 SO
				 6 低音LA      7 低音SI
   97:	  00B9	68 6A F8 8B	mustab:      db 'h','j', 0f8h,8bh,    0f9h,5bh,      0fah,14h,        0fah,0ch,      0fbh,03h,
	  00BD	F9 5B FA 14	0fbh,8fh,      0fch,0bh
	  00C1	FA 0C FB 03
	  00C5	FB 8F FC 0B
   98:
   99:				                        ; 8 中音 DO    9 中音 RE       0ah 中音ME  0bh 中音 FA   0ch 中音 SO  0dh 中
				音LA  0eh 中音SI
  100:	  00C9	FC 43 FC AB		   db  0fch,43h,    0fch,0abh,       0fdh,08h,      0fdh,33h,      0fdh,81h,      0fdh,0c7h,
	  00CD	FD 08 FD 33	   0feh,05h
	  00D1	FD 81 FD C7
	  00D5	FE 05
  101:
  102:					        ; 0fh 高音 DO 10h 高音 RE 11h 高音ME  12h 高音 FA   13h 高音 SO   14h 高音LA  15h 高
				音SI
  103:	  00D7	FE 21 FE 55		   db  0feh,21h,   0feh,55h,       0feh,84h,      0fdh,99h,       0feh,0c0h,     0feh,0e3h,
	  00DB	FE 84 FD 99	  0ffh,02h

PAGE 3



	  00DF	FE C0 FE E3
	  00E3	FF 02
  104:
  105:				;以下为音乐乐谱代码,前两位表示曲谱,后一位表示节拍
  106:				;8为 1 拍,4 ->半拍
  107:
  108:	  00E5	06 04 08 04	mu_tab:      db  6,4,8,4,10,4,1,4,9,8,8,4,7,4,10,8,9,8,6,16
	  00E9	0A 04 01 04
	  00ED	09 08 08 04
	  00F1	07 04 0A 08
	  00F5	09 08 06 10
  109:	  00F9	08 04 0A 04	             db  8,4,10,4,12,4,12,4,13,8,12,4,11,4,10,16
	  00FD	0C 04 0C 04
	  0101	0D 08 0C 04
	  0105	0B 04 0A 10
  110:	  0109	00		             db  00h
  111:				   end





                     register banks used:  ---

          0  个错误




PAGE 4





	       L I S T   O F   S Y M B O L S
	       =============================


SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
AC				  BIT	      D6
ACC				  DATA	      E0
B				  DATA	      F0
BEEP				  BIT	      B7	   4
CY				  BIT	      D7
D				  CODE	    003A	  20
DELAY				  CODE	    00AE	  88
DELAY1				  CODE	    009C	  75
DLAY				  CODE	    00B2	  90
DLAY1				  CODE	    00A1	  78
DPH				  DATA	      83
DPL				  DATA	      82
EA				  BIT	      AF
ES				  BIT	      AC
ET0				  BIT	      A9
ET1				  BIT	      AB
EX0				  BIT	      A8
EX1				  BIT	      AA
EXTI0				  CODE	    0003
EXTI1				  CODE	    0013
F0				  BIT	      D5
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INT0				  BIT	      B2
INT1				  BIT	      B3
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
LOOPM				  CODE	    005A	  38
MAIN				  CODE	    0030	  15
MUSDELAY			  CODE	    0038	  19
MUSEND				  CODE	    008E	  66
MUSIC				  CODE	    004A	  31
MUSICH				  NUMBER    0040	   1
MUSICL				  NUMBER    0041	   2
MUSICSTART			  NUMBER    0042	   3
MUSTAB				  CODE	    00B9	  97
MU_TAB				  CODE	    00E5	 108
OV				  BIT	      D2
P				  BIT	      D0
P0				  DATA	      80
P1				  DATA	      90
P2				  DATA	      A0
P3				  DATA	      B0
PCON				  DATA	      87
PS				  BIT	      BC
PSW				  DATA	      D0
PT0				  BIT	      B9
PT1				  BIT	      BB

PAGE 5



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
PX0				  BIT	      B8
PX1				  BIT	      BA
RB8				  BIT	      9A
RD				  BIT	      B7
REN				  BIT	      9C
RESET				  CODE	    0000
RI				  BIT	      98
RS0				  BIT	      D3
RS1				  BIT	      D4
RXD				  BIT	      B0
SBUF				  DATA	      99
SCON				  DATA	      98
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
T0				  BIT	      B4
T1				  BIT	      B5
TB8				  BIT	      9B
TCON				  DATA	      88
TF0				  BIT	      8D
TF1				  BIT	      8F
TH0				  DATA	      8C
TH1				  DATA	      8D
TI				  BIT	      99
TIMER0				  CODE	    000B
TIMER1				  CODE	    001B
TIMER_1				  CODE	    003D	  23
TL0				  DATA	      8A
TL1				  DATA	      8B
TMOD				  DATA	      89
TR0				  BIT	      8C
TR1				  BIT	      8E
TXD				  BIT	      B1
WR				  BIT	      B6

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -