单片机课程设计doc

上传人:wuy****ng 文档编号:122706517 上传时间:2022-07-21 格式:DOCX 页数:24 大小:33.70KB
收藏 版权申诉 举报 下载
单片机课程设计doc_第1页
第1页 / 共24页
单片机课程设计doc_第2页
第2页 / 共24页
单片机课程设计doc_第3页
第3页 / 共24页
资源描述:

《单片机课程设计doc》由会员分享,可在线阅读,更多相关《单片机课程设计doc(24页珍藏版)》请在装配图网上搜索。

1、单片机课程设计简易电子琴 一、 课设要求所设计简易电子琴能够单曲循环,且能暂停播放,能够实现按键发音功能,能够让点阵LED显示播放声音音调的高低.二、 设计思路首先,本实验主要依靠单片机开发板上的喇叭来发出声音,不同的音调对应不同的频率,喇叭发出声音需要正弦波驱动,由于单片机只能输出方波,所以不能用单片机直接驱动喇叭,但是开发板上有自带的喇叭驱动模块,能够将方波转换成同频率的正弦波,所以本次实验的核心模块是让单片机的两个定时器相互配合,改变单片机输出方波的频率和时间,让喇叭发出不同频率,不同节拍的声音,最后形成一首完整的歌曲.其次,按键发音功能也是靠两定时器相互配合实现,只是加了一个计算键值的

2、模块,将所得键值转换成输出的频率来发声.最后,LED显示音调功能是把歌曲的不同音调转换成点阵不同的行点亮来实现.下面将详细介绍各模块的程序及其功能.三、硬件连接: 本次课设使用上海朗译科技公司的型号为LY-51S单片机开发板,单片机型号为STC89RD541.单片机P1.0口接喇叭输入口(J42B1插针)口接独立按键区K3插针口接独立按键区K4插针口(INT0)接独立按键区K1插针口(INT1)接独立按键区K2插针6.P3.7,P3.6,P3.5分别接于J4的SER(数据输入),SRCLK(移位时钟),RCLK(锁存输出)7.P1.7,P1.6,P1.5分别接于J5的SER(数据输入),SRC

3、LK(移位时钟),RCLK(锁存输出)8.P0口接于J6排针控制共阳极数码管9.P1口接于J24排针控制矩阵键盘四、程序模块:(1)发音模块:将单片机P1.0口接于喇叭的输入口,发音由定时器T0来完成,让定时器T0工作在方式1,每次定时器T0溢出中断时,取反一次P1.0口,这样就可以发出各种频率的方波.程序如下TINT0:PUSH PSW PUSH ACC MOV TH0,40H MOV TL0,41H CPL P1.0 POP ACC POP PSW由于定时器0工作在方式一时不能自动装入初值,所以每次中断发生后需要装入初值,由于方式1是16位定时,所以初值需要两个存储单元,初值放在40H和4

4、1H存储单元中,这两个单元中的不同内容对应不同频率,初值对应频率表如下,高位在前,低位在后 1 2 3 DB 0F8H,94h,0F9H,5CH,0FAH,15H, 4 5 6 7 DB 0FAH,68H,0FBH,05H,0FBH,90H,0FCH,0CH 1 2 3 4 DB 0FCH,4AH,0FCH,0AEH,0FDH,0AH,0FDH,34H, 5 6 7 DB 0FDH,82H,0FDH,0C8H,0FEH,06H 12 22 32 DB 0FEH,25H,0FEH,57H,0FEH,85H该表由标准音标频率计算而得.至于在40H和41H中该装入什么初值,在下一个模块中介绍.(2)

5、发音时长模块:发音时长有定时器T1决定,本次实验中播放单曲时单位时长为0.25s,既歌曲谱中每个音调只响0.25s.定时器T1工作在方式2,模块程序如下:TINT1:PUSH PSW PUSH ACC DJNZ R1,REBACK MOV R1,#40 DJNZ R2,REBACK MOV R2,#25 LCALL DISP1 MOV A,#00H CLR C MOV A,43H ADD A,#1 MOV 43H,A MOV A,#00H ADDC A,42H MOV 42H,A MOV A,#00H MOV DPH,42H MOV DPL,43H MOVC A,A+DPTR MOV 44H,

6、A MOV R0,A LCALL DISP CJNE A,#00H,STOP CLR TR0 AJMP REBACK CJNE A,#0FFH,GOON MOV 42H,#1FH MOV 43H,#0FFH AJMP REBACKGOON: SETB TR0 MOV A,44H RL A MOV R7,A MOV DPTR,#PITCH MOVC A,A+DPTR MOV 40H,A INC R7 MOV A,R7 MOVC A,A+DPTR MOV 41H,AREBACK:POP ACC POP PSW RETI程序中第行到第行,保证了执行完这几行程序中,某个音调已经响了0.25s,因为定时

7、器T1每次中断为250us.第三行为点阵显示音调高低子程序,44H存放音调,作为点阵的显示依据.后续将做介绍.第行到第行为读取乐谱中下一个音调部分,42H和43H为音调指针,两者合看作一个16位寄存器,存储待装入DPTR的数据,这里定义为DPTR,在上一个音调响完一个单位时间后,DPTR加1,指向下一个音调,并将DPTR中地址装入DPTR,并在表#SCORE(起始为2000H)中读出下一个音调,并存入44H中.第行到第行作用是,原歌曲中需要停顿的部分,在#score表中均为0,通过看A中内容是否为0,来判断是否需要停顿,如果为0,就停止定时器0,喇叭将不发声.#0FFH是歌曲结束标志,当A中内

8、容为#0FFH时,将DPTR赋值1FFFH,待下一次中断来临时,DPTR 加一后可以回到乐谱#SCORE初始位置2000H,以便实现循环播放.第行到第行是将从#SCORE中读出的真实音调转换成定时器T0所需要的各音调对应的定时器初值.因为在音调-初值表#PITCH中,每个音调占两个字节,所以将A中包含的音调乘了2,发送到R7,R7在这里作为#PITCH表指针,#PITCH表中每个音调的初值高位在前,地位在后,在读取完高位并发送到40H后,R7加1,读取地位,然后将读取的数据发送到41H.在下一个单位时间内鸣响. 行为点阵显示作用,后续将做介绍.(3) 单曲循环初始化模块: 本次课设定为按下P1

9、.1口对应的按键K3时,单片机从主菜单进入单曲循环模式,按键为低电平有效,并且对定时器,外部中断等进行初始化设定,程序如下: SINGCYCLE:NOP JNB P1.1,NEXT LJMP MAINNEXT: LCALL DISPNONE CLR 20H SETB 21H SETB EX1 SETB ET0 SETB ET1 MOV P0,#0F9H MOV TMOD,#21H MOV R1,#40 MOV R2,#25 MOV TH1,#00H MOV TL1,#06H MOV TH0,#0FDH MOV TL0,#0AH MOV 40H,#20H MOV 41H,#00H CLR P1.

10、0SINGCYCLE1:JB 21H,RETURN1 LJMP MAINRETURN1: AJMP SINGCYCLE1其中第行到第行为判断K3键是否按下,按下后则继续执行,未按下则返回主菜单.第行为让点阵不显示程序,因为在主菜单中加入了欢迎界面,所以在这里停止LED的欢迎界面.第行第行为标志位,20H为暂停/播放标志位,用于外部中断1子程序检验和控制,当20H=0时,表示当前单片机正在暂停状态,此时如果外部中断1发生,则会启动定时器T0,定时器T1,如果20H=1的时候,中断1发生,则会停止定时器T0,T1,实现暂停播放功能.第行为置位单曲循环模式标志位,主要是实现返回主菜单功能,在行间循环

11、等待定时器中断时,会检验21H,若21H=0,则会跳出循环,返回主菜单,21H会由外部中断0清零.第-行为开启中断,EX1为暂停/播放中断允许位.行是让共阳极数码管显示1,表示单曲循环模式.第-行依次为设置播放单位时长的定时器初值,设置音调初值,设置乐谱指针初值并启动定时器.执行完成后进入-行循环等待中断. (4)按键发音初始化模块:按键发音的主要原理是:利用开发板的16键矩阵键盘,赋予每个按键一个键值,利用反转法来计算按下的键的键值,既行输出4个1,列输出4个0,且行为高四位,列为低四位,然后读取行,有键按下则行中有1位为0,然后在让行输出0,列输出1,读取列,有间按下时,列中有一位为0,然

12、后这8位二进制数就与16个键一一对应了.然后根据这8位二进制数编码一个对应的音调,就可以实现按键发音了.按键发音模式初始化程序如下:SINGPRESS:NOP JNB P1.3,NEXTA LJMP MAINNEXTA: SETB 22H MOV TMOD,#21H MOV P0,#0A4H SETB ET0SINGPRESS1:LCALL DISPNONE MOV P1,#0F0H NOP MOV A,P2 ANL A,#0F0H MOV 30H,A MOV P2,#0FH NOP MOV A,P2 ANL A,#0FH ORL A,30H MOV 20H,A CJNE A,#0FFH,CA

13、LCULATE JB 22H,RETURN2 LJMP MAINCALCULATE:LCALL KEYVALUERETURN2: AJMP SINGPRESS1程序第-行与单曲循环初始化类似,只是标志位改成了22H,然后让共阳极数码管显示2,并且按键发音只用到1个定时器,所以只允许T0中断.第-, 行既反转法检测被按下的按键部分,然后将被按下按键对应的8位二进制数存放入20H单元,因为20H可以位寻址,便于计算键值,好转换成相应的音调,具体程序将在下一模块展示. (5)按键发音KEYVALUE子程序:该子程序主要功能是:计算出被按下按键的键值,寻找键值对应的音调,让后让喇叭播放一定时间该音调,

14、并且在点阵上显示该音调的相对高低.具体程序如下:KEYVALUE: PUSH PSW PUSH ACCMOV R7,#00H JB 00H,PLUS4 MOV A,R7 ADD A,#0 MOV R7,APLUS4: JB 01H,PLUS8 MOV A,R7 ADD A,#4 MOV R7,APLUS8: JB 02H,PLUS12 MOV A,R7 ADD A,#8 MOV R7,APLUS12: JB 03H,PLUS41 MOV A,R7 ADD A,#12 MOV R7,APLUS41: JB 04H,PLUS3 MOV A,R7 ADD A,#4 MOV R7,APLUS3: JB

15、 05H,PLUS2 MOV A,R7 ADD A,#3 MOV R7,APLUS2: JB 06H,PLUS1 MOV A,R7 ADD A,#2 MOV R7,APLUS1: JB 07H,NEXTA MOV A,R7 ADD A,#1 MOV R7,ANEXTA: MOV R0,A RL A MOV R7,A MOV DPTR,#PITCH MOVC A,A+DPTR MOV 40H,A MOV TH0,A INC R7 MOV A,R7 MOVC A,A+DPTR MOV 41H,A MOV TL0,A LCALL DISP MOV R7,#00H SETB TR0 LCALL DEL

16、AY_100MS POP ACC POP PSW RET矩阵键盘的行对应20H的0-3位,列对应20H的4-7位-行既计算键值,把2进制代码转换成十进制数,2进制数在20H中,计算结果在R7中,首先检验被按下按键所处行,因为每一行有4个按键,所以被按下按键如果在第一行就在R7中加0,如果在第二行就加4,第三行加8,第四行加12,在确定所处行之后再检验04H-07H位,如果在第1列就加1,第2列加2,第三列加3,第四列加4,最后得到R7中最终的10进制数作为对应按键的键值,既音调.例如,如果20H中数据为10110111B,则R7中为(14)10,表示M14被按下.在这里键值与简谱的对应关系为M

17、1=1=中音C,M2=2=中音D,以此类推.在确定键值后,在PITCH表中找到键值对应的双字节定时器T0的初值,然后把这两个字节数据送到TH0,40H,TL0,41H.同时根据键值的大小决定LED点阵的显示内容,正如-行程序所示.第行决定了键按下后喇叭响的时间,这里设置为100ms.执行完成后返回,同时关闭喇叭.等待下一次按键发生. (7)主菜单程序: MAIN:MOV SP,#54H SETB EA SETB EX0 MOV P0,#0C0H LCALL DISPWELCOME JNB P1.1,MODE1 NOP JNB P1.2,MODE2 NOP LCALL DELAY_100MS A

18、JMP MAINMODE1:LJMP SINGCYCLEMODE2:LJMP SINGPRESS 主菜单循环过程中,加入1延时程序主要是避免点阵LED在显示欢迎界面时刷新过快导致某些LED误点亮. (8)点阵LED欢迎界面程序 LED点阵某个LED点亮的条件是列为高电平,行为低电平,LED点阵列为公共端,由1个595驱动,既对列串行输入8位数据,决定哪几列点亮.因为该点阵是双色的,所以由两个595级联来驱动,一个驱动红色LED,一个驱动绿色LED,所以对行需要串行输入16位数据来决定哪一行哪种颜色点亮.下述程序中,50H存放带点亮列,51H存放绿色带点亮行,52H存放红色带点亮行.因为595具

19、有锁存功能,所以点阵为静态显示,但是下述程序执行一次,改变一次显示内容,最终可以看到一个动态的欢迎界面.DISPWELCOME: PUSH PSW PUSH ACCMOV R2,#00HDISPWELCOME1:JB 2FH,WHICH MOV DPTR,#WELCOME AJMP ROLLWHICH:MOV DPTR,#WELCOME1ROLL: MOV A,R2 MOVC A,A+DPTR MOV 50H,A INC R2 MOV A,R2 MOVC A,A+DPTR MOV 51H,A INC R2 MOV A,R2 MOVC A,A+DPTR MOV 52H,A NOP MOV A,5

20、1H NOP MOV R5,#8J510: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J510 MOV R5,#8 MOV A,52H NOPJ520: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J520 NOP SETB P1.5 NOP CLR P1.5 NOP MOV A,50H NOP MOV R5,#8J40: RLC A MOV P3.7,C SETB P3.6 NOP CLR P3.6 DJNZ R5,J40 SETB P3.5 NOP CLR P3.5 NOP INC R

21、2 CJNE R2,#60,RETURN0 MOV R2,#00H CPL 2FHRETURN0: POP ACC POP PSWRET 因为欢迎界面中需要两种不同颜色的LED,所以-行为选择显示的颜色,有2FH作为标志位,当需要显示红色时,从表#welcome中读取数据,红色显示完后,取反2FH,既从#welcome1读取数据. -行为将待显示内容输入寄存器并显示的程序,因为刷新显示时,需要改变50H,51H,52H的值,所以#welcome(或#welcome1)表中从头开始数每三个字节为一个显示画面.R2为数据指针,每运送完行或列就自加1,由于一种颜色的欢迎界面由20个画面组成,所以#w

22、elcome(或#welcome1)中有60个字节数据,R2在显示完成后也会为60,因此在-行中判断R2是否为60,为60则表明一种颜色的界面已经完成.取反标志位2FH,进入另一种颜色的欢迎界面. (9)点阵显示音调高低程序:该子程序比欢迎程序要简单,因为只需让所有列都点亮,然后改变点亮行就可以显示音调的相对高低了.所以50H,52H均为高电平.点亮行数据51H的值由R0中存储的简谱决定.在单曲循环发音时长模块既T1中断程序的第行,按键发音KEYVALUE子程序的第行,分别是将乐谱中的简谱或者计算出按键对应的简谱存入R0,在调用该子程序时,以R0为指针,再#DISPPITCH表中找到对应的行寄

23、存器的内容,然后输送给51H.子程序如下:DISP: PUSH PSW PUSH ACC MOV A,R0 MOV DPTR,#DISPPITCH MOVC A,A+DPTR MOV 51H,A MOV 50H,#0FFH MOV 52H,#0FFH NOP MOV R5,#8 MOV A,51HJ51: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J51 MOV R5,#8 MOV A,52HJ52: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J52 NOP SETB P1.5 NOP

24、CLR P1.5 MOV A,50H MOV R5,#8J4: RLC A MOV P3.7,C SETB P3.6 NOP CLR P3.6 DJNZ R5,J4 SETB P3.5 NOP CLR P3.5 POP ACC POP PSW RET-行就是确定51H的值,既哪几行点亮.后续程序与前面相同. (10)熄灭点阵子程序:熄灭程序更为简单,只需要将50H,51H,52H分别赋值0FFH,再输送到3片595,则点阵熄灭,子程序如下:DISPNONE: PUSH PSW PUSH ACCMOV 50H,#0FFH MOV 51H,#0FFH MOV 52H,#0FFH NOP MOV R

25、5,#8 MOV A,51HJ51N: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J51N MOV R5,#8 MOV A,52HJ52N: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J52N NOP SETB P1.5 NOP CLR P1.5 MOV A,50H MOV R5,#8J4N: RLC A MOV P3.7,C SETB P3.6 NOP CLR P3.6 DJNZ 44H,J4N SETB P3.5 NOP CLR P3.5 POP ACC POP PSW RET (1

26、1)播放/暂停程序:播放暂停由外部中断1控制,只在单曲循环模式有效,通过检验标志位20H来实现,程序如下:OUTINT1: PUSH PSW PUSH ACC JB 20H,PAUSE SETB 20H SETB TR0 SETB TR1 AJMP RETURNAPAUSE:CLR 20H CLR TR1 CLR TR0RETURNA: POP ACC POP PSW RETI-行既检验喇叭处于播放状态还是停止状态,若20H=0,则会将20H置位,启动定时器T0,T1,开始播放音乐.若20H=1,则会跳转到,置零20 H位,停止T0、T1,喇叭暂停播放,最后返回单曲循环初始化程序部分等待. (

27、12)返回主菜单程序:该功能由外部中断0实现,因为外部中断0在任何时刻都有效,所以只需在外部中断0子程序中清零单曲循环,按键发音的模式标志位21H,22H即可,这样在各自的循环等待定时器中断的过程中检查到21H或22H为0,则会自动返回主菜单.程序如下:OUTINT0:PUSH PSW PUSH ACC CLR 21H CLR 22HCLR TR0CLR TR1POP ACCPOP PSWRETI(13)延时子程序:DELAY_100MS:PUSH PSW PUSH ACC MOV R3,#250 MOV R4,#40MOV R6,#10D_100MS1: DJNZ R3,D_100MS1 M

28、OV R3,#250 DJNZ R4,D_100MS1MOV R4,#40DJNZ R6,D_100MS1MOV R6,#10POP ACCPOP PSWRETDELAY_200MS:PUSH PSW PUSH ACC MOV R3,#250 MOV R4,#40MOV R6,#20D_200MS1: DJNZ R3,D_200MS1 MOV R3,#250 DJNZ R4,D_200MS1MOV R4,#40DJNZ R6,D_200MS1MOV R6,#20POP ACCPOP PSWRET上述13个模块化程序相互配合实现了本次课设要求的功能.附录:完整程序ORG 0000HAJMP MA

29、INORG 0003HLJMP OUTINT0ORG 000BHLJMP TINT0ORG 0013HLJMP OUTINT1ORG 001BHLJMP TINT1ORG 0030HMAIN:MOV SP,#54H SETB EA SETB EX0 CLR ET0 CLR ET1 CLR EX1 CLR TR0 CLR TR1 MOV P0,#0C0H MOV R2,#00HMAIN1:LCALL DISPWELCOME JNB P1.1,MODE1 NOP JNB P1.2,MODE2 NOP LCALL DELAY_100MS AJMP MAIN1MODE1:LJMP SINGCYCLEM

30、ODE2:LJMP SINGPRESSSINGCYCLE:NOP JNB P1.1,NEXT LJMP MAINNEXT: LCALL DISPNONE CLR 20H SETB 21H SETB EX1 SETB ET0 SETB ET1 MOV P0,#0F9H MOV TMOD,#21H MOV R1,#40 MOV R2,#25 MOV TH1,#00H MOV TL1,#06H MOV TH0,#0FCH MOV TL0,#0AEH MOV 42H,#20H MOV 43H,#00H CLR P1.0SINGCYCLE1:JB 21H,RETURN1 LJMP MAINRETURN1

31、: AJMP SINGCYCLE1SINGPRESS:NOP JNB P1.2,NEXTA LJMP MAINNEXTA: SETB 22H MOV TMOD,#11H MOV P0,#0A4H SETB ET0SINGPRESS1:LCALL DISPNONE MOV P2,#0F0H NOP MOV A,P2 ANL A,#0F0H MOV 30H,A MOV P2,#0FH NOP MOV A,P2 ANL A,#0FH ORL A,30H MOV 20H,A CJNE A,#0FFH,CALCULATE CLR TR0 JB 22H,RETURN2 LJMP MAINCALCULATE

32、:LCALL KEYVALUERETURN2: AJMP SINGPRESS1KEYVALUE: PUSH PSW PUSH ACC MOV R7,#00H JB 00H,PLUS4 MOV A,R7 ADD A,#0 MOV R7,APLUS4: JB 01H,PLUS8 MOV A,R7 ADD A,#4 MOV R7,APLUS8: JB 02H,PLUS12 MOV A,R7 ADD A,#8 MOV R7,APLUS12: JB 03H,PLUS41 MOV A,R7 ADD A,#12 MOV R7,APLUS41: JB 04H,PLUS3 MOV A,R7 ADD A,#4 M

33、OV R7,APLUS3: JB 05H,PLUS2 MOV A,R7 ADD A,#3 MOV R7,APLUS2: JB 06H,PLUS1 MOV A,R7 ADD A,#2 MOV R7,APLUS1: JB 07H,RETURNB MOV A,R7 ADD A,#1 MOV R7,ARETURNB: MOV R0,A RL A MOV R7,A MOV DPTR,#PITCH MOVC A,A+DPTR MOV 40H,A INC R7 MOV A,R7 MOVC A,A+DPTR MOV 41H,A LCALL DISP MOV R7,#00H SETB TR0 LCALL DEL

34、AY_100MS POP ACC POP PSW RETTINT0:PUSH PSW PUSH ACC MOV TH0,40H MOV TL0,41H CPL P1.0 POP ACC POP PSW RETITINT1:PUSH PSW PUSH ACC DJNZ R1,REBACK MOV R1,#40 DJNZ R2,REBACK MOV R2,#25 MOV A,#00H CLR C MOV A,43H ADD A,#1 MOV 43H,A MOV A,#00H ADDC A,42H MOV 42H,A MOV A,#00H MOV DPH,42H MOV DPL,43H MOVC A

35、,A+DPTR MOV 44H,A MOV R0,A LCALL DISP CJNE A,#00H,REPEAT CLR TR0 AJMP REBACKREPEAT:CJNE A,#99H,GOON MOV 42H,#1FH MOV 43H,#0FFH AJMP REBACKGOON: SETB TR0 MOV 44H,A RL A MOV R7,A MOV DPTR,#PITCH MOVC A,A+DPTR MOV 40H,A INC R7 MOV A,R7 MOVC A,A+DPTR MOV 41H,AREBACK:POP ACC POP PSW RETIDISPWELCOME: PUSH

36、 PSW PUSH ACCDISPWELCOME1:JB 2FH,WHICH MOV DPTR,#WELCOME AJMP ROLLWHICH:MOV DPTR,#WELCOME1ROLL: MOV A,R2 MOVC A,A+DPTR MOV 50H,A INC R2 MOV A,R2 MOVC A,A+DPTR MOV 51H,A INC R2 MOV A,R2 MOVC A,A+DPTR MOV 52H,A NOP MOV A,51H NOP MOV R5,#8J510: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J510 MOV R

37、5,#8 MOV A,52H NOPJ520: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J520 NOP SETB P1.5 NOP CLR P1.5 NOP MOV A,50H NOP MOV R5,#8J40: RLC A MOV P3.7,C SETB P3.6 NOP CLR P3.6 DJNZ R5,J40 SETB P3.5 NOP CLR P3.5 NOP INC R2 CJNE R2,#60,RETURN0 MOV R2,#00H CPL 2FHRETURN0:POP ACC POP PSW RETDISP: PUSH P

38、SW PUSH ACC MOV A,R0 MOV DPTR,#DISPPITCH MOVC A,A+DPTR MOV 51H,A MOV 50H,#0FFH MOV 52H,#0FFH NOP MOV R5,#8 MOV A,51HJ51: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J51 MOV R5,#8 MOV A,52HJ52: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J52 NOP SETB P1.5 NOP CLR P1.5 MOV A,50H MOV R5,#8J4: R

39、LC A MOV P3.7,C SETB P3.6 NOP CLR P3.6 DJNZ R5,J4 SETB P3.5 NOP CLR P3.5 POP ACC POP PSW RETDISPNONE:PUSH PSW PUSH ACC MOV 50H,#0FFH MOV 51H,#0FFH MOV 52H,#0FFH NOP MOV R5,#8 MOV A,51HJ51N: RLC A MOV P1.7,C SETB P1.6 NOP CLR P1.6 DJNZ R5,J51N MOV R5,#8 MOV A,52HJ52N: RLC A MOV P1.7,C SETB P1.6 NOP C

40、LR P1.6 DJNZ R5,J52N NOP SETB P1.5 NOP CLR P1.5 MOV A,50H MOV R5,#8J4N: RLC A MOV P3.7,C SETB P3.6 NOP CLR P3.6 DJNZ R5,J4N SETB P3.5 NOP CLR P3.5 NOP POP ACC POP PSW RETOUTINT1: PUSH PSW PUSH ACCAAA: DJNZ 30H,AAA JB 20H,PAUSE SETB 20H SETB TR0 SETB TR1 AJMP RETURNAPAUSE:CLR 20H CLR TR1 CLR TR0RETUR

41、NA: POP ACC POP PSW RETIOUTINT0:PUSH PSW PUSH ACC CLR 21H CLR 22HCLR TR0CLR TR1POP ACCPOP PSWRETIDELAY_100MS:PUSH PSW PUSH ACC MOV R3,#250 MOV R4,#40MOV R6,#10D_100MS1: DJNZ R3,D_100MS1 MOV R3,#250 DJNZ R4,D_100MS1MOV R4,#40DJNZ R6,D_100MS1MOV R6,#10POP ACCPOP PSWRETDELAY_20MS:PUSH PSW PUSH ACC MOV

42、R3,#250 MOV R4,#40MOV R6,#2D_20MS1: DJNZ R3,D_20MS1 MOV R3,#250 DJNZ R4,D_20MS1MOV R4,#40DJNZ R6,D_20MS1MOV R6,#2POP ACCPOP PSWRETDELAY_500MS:PUSH PSW PUSH ACC MOV R3,#250 MOV R4,#40MOV R6,#50D_500MS1: DJNZ R3,D_500MS1 MOV R3,#250 DJNZ R4,D_500MS1MOV R4,#40DJNZ R6,D_500MS1MOV R6,#50POP ACCPOP PSWRET

43、ORG 1000HPITCH:DB 0F8H,94H,0F8H,94h,0F9H,5CH,0FAH,15H,0FAH,68H,0FBH,05H,0FBH,90H,0FCH,0CH DB 0FCH,4AH,0FCH,0AEH,0FDH,0AH,0FDH,34H,0FDH,82H,0FDH,0C8H,0FEH,06H DB 0FEH,25H,0FEH,57H,0FEH,85HORG 2000HSCORE: DB 10,9,8,9,6,6,6,8,9,10,12,13,9,9,10,9,8,9,6,6,6,3,3,5,6,6,6,0 DB 10,9,8,9,6,6,6,8,9,10,12,13,9,

44、9,10,9,8,9,6,6,6,3,3,5,6,6,9,9,8,8,0,0 DB 9,9,8,8,0 DB 10,9,8,9,6,6,6,8,9,10,12,13,9,9,10,9,8,9,6,6,6,3,3,5,6,6,6,0 DB 10,9,8,9,6,6,6,8,9,10,12,13,9,9,10,9,8,9,6,8,8,3,3,5,6,6,6,9,9,8,0 DB 0,0,0,0 DB 10,10,12,12,13,13,13,0 DB 10,12,13,9,9,8,0 DB 10,12,13,9,9,8,8,6,6,13,13,8,12,0,0 DB 10,10,12,12,13,

45、13,0 DB 15,14,13,9,9,8,0 DB 10,15,14,13,9,8,9,10,9,8,6,8,0,0 DB 10,10,12,12,13,13,0 DB 10,12,13,9,9,8,0 DB 10,12,13,9,8,8,6,13,13,8,12,0,0 DB 10,10,12,12,13,13,0 DB 15,14,13,9,9,8,0 DB 10,15,14,13,9,8,9,10,9,8,0 DB 9,8,9,10,9,8,8,6,10,12,10,9,6,6,0 DB 6,6,0,6,6,0,6,8,9,10,13,10,9,9,8,6,5,0 DB 6,6,0,

46、6,6,0,6,8,9,10,8,9,0 DB 10,9,8,9,6,6,6,8,9,10,12,13,9,9,10,9,8,9,6,6,6,3,3,5,6,6,6,0 DB 10,9,8,9,6,6,6,8,9,10,12,13,9,9,10,9,8,9,6,8,8,3,3,5,6,6,6,9,9,8,0,0,0 DB 10,10,12,12,13,13,13,0 DB 10,12,13,9,9,8,0 DB 10,12,13,9,9,8,8,6,13,13,8,12,0,0 DB 10,10,12,12,13,13,0 DB 15,14,13,9,9,8,0 DB 10,15,14,13,

47、9,8,9,10,9,8,6,8,0,0 DB 10,10,12,12,13,13,0 DB 10,12,13,9,9,8,0 DB 10,12,13,9,8,8,6,13,13,8,12,0,0 DB 10,10,12,12,13,13,0 DB 15,14,13,9,9,8,0 DB 10,15,14,13,9,8,9,10,9,0 DB 9,9,8,9,10,10,12,10,9,8,13,13,14,14,15,15,15DISPPITCH:DB 0FFH,0FFH,0FFH,7FH,7FH,3FH,1FH,1FH,0FH,07H,03H,01H,00H,00H,00H,00H,00H

48、WELCOME: DB 81H,0FFH,7EH,42H,0FFH,0BDH,24H,0FFH,0DBH,18H,0FFH,0E7H,24H,0FFH,0E7H,42H,0FFH,0E7H,81H,0FFH,0E7H,81H,0FFH,0DBH,81H,0FFH,0BDH DB 81H,0FFH,7EH,42H,0FFH,0BDH,24H,0FFH,0DBH,18H,0FFH,0E7H,18H,0FFH,0DBH,18H,0FFH,0BDH,18H,0FFH,7EH,24H,0FFH,7EH,42H,0FFH,7EH,81H,0FFH,7EHWELCOME1:DB 81H,07EH,0FFH,42H,0BDH,0FFH,24H,0DBH,0FFH,18H,0E7H,0FFH,24H,0E7H,0FFH,42H,0E7H,0FFH,81H,0E7H,0FFH,81H,0DBH,0FFH,81H,0BDH,0FFH DB 81H,07EH,0FFH,42H,0BDH,0FFH,24H,0DBH,0FFH,18H,0E7H,0FFH,18H,0DBH,0FFH,18H,0BDH,0FFH,18H,07EH,0FFH,24H,07EH,0FFH,42H,7EH,0FFH,81H,7EH,0FFHEND

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!