MCS51单片机课程设计报告文档格式.docx

上传人:b****5 文档编号:21305342 上传时间:2023-01-29 格式:DOCX 页数:25 大小:936.09KB
下载 相关 举报
MCS51单片机课程设计报告文档格式.docx_第1页
第1页 / 共25页
MCS51单片机课程设计报告文档格式.docx_第2页
第2页 / 共25页
MCS51单片机课程设计报告文档格式.docx_第3页
第3页 / 共25页
MCS51单片机课程设计报告文档格式.docx_第4页
第4页 / 共25页
MCS51单片机课程设计报告文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

MCS51单片机课程设计报告文档格式.docx

《MCS51单片机课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《MCS51单片机课程设计报告文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

MCS51单片机课程设计报告文档格式.docx

0BFH

86H

FBH

0CFH

0E6H

0EDH

0FDH

87H

0FFH

0EFH

三、软件原理及框图阐述

音乐播放原理:

单片机产生不同频率脉冲信号的原理:

要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。

(可根据下图理解)

例如,中音1频率为523Hz,其周期为1/523S=1912uS,因此只要每1912us就将I/O反接,就可到中音DO(532Hz)。

在程序中则为1912/4=478≈30H。

高音频率为中音频率的2倍则高音1为18H。

对应音符表

音符名

频率(Hz)

对应数值

低音1

261.6256

60H

低音2

293.6648

56H

低音3

329.6276

4CH

低音4

349.2282

48H

低音5

391.9954

40H

低音6

440

39H

低音7

493.8833

34H

中音1

523.2511

30H

中音2

587.3295

2BH

中音3

659.2551

26H

中音4

698.4565

24H

中音5

783.9909

20H

中音6

880

1CH

中音7

987.7666

1AH

高音1

1046.502

18H

高音2

1174.659

15H

高音3

1318.51

13H

高音4

1396.913

12H

高音5

1567.982

10H

高音6

1760

0EH

高音7

1975.533

0DH

休止符

 

计时器T0控制播放时长,且规定:

一拍40H半拍20H1/4拍10H。

数码管动态扫描原理:

视觉停留:

当一个画面1秒内连续闪烁24次以上则人眼认为该画面为静止。

1打开相应数码管负极引脚,

2输出信号存到A寄存器,

3A寄存器带进位右移,则最后一位存到C,

4把C中的信号传给P1.1口,

5P3.4口给74LS164一个上升沿触发信号,74LS164内数值右移,P1.1口信号存到Q0,

6循环②—⑤7次,使Q0—Q7为对应数值

7延时使每一个数字显示一段时间,并保证能使数字1秒内连续闪烁24次以上

8循环重复①—⑧

数码管动态扫描PROTEUS仿真:

程序框图:

程序:

ORG0000H

LJMPSTRAT;

主程序

ORG000BH;

音乐用中断入口

LJMPTEE0

ORG001BH;

计时用中断入口

LJMPTEE1

ORG0100H

STRAT:

MOVSP,#0DFH

;

*****************************模式选择模块*************************************

MOVDPTR,#SMG0;

数码管显示无小数点数字

MOVP1,#01011111B;

初始化P1口并打数码管2显示1

MOVA,#1

MOVCA,@A+DPTR;

LCALLPRINT

MOVP1,#11011111B;

初始化P1口并打数码管3显示0

MOVA,#0

MOVP1,#00111111B;

初始化P1口并打数码管4显示R

MOVA,#77H

MOVP1,#10111111B;

初始化P1口并打数码管5显示2

MOVA,#2

JNBP1.4,MUSIC;

按下S1进入音乐模式

JNBP1.3,CHANGE0;

按下S2进入计时模式

SJMPSTRAT;

保持显示1OR2

;

*********************************音乐模块************************************

MUSIC:

音乐播放

LCALLDELKEY;

延时避免开关多次读取

PPEQUP3.7;

定义音乐输出口

MOVP1,#0FFH;

清除读数

MOVTH0,#0D8H;

定义计时器0初值定时10ms

MOVTL0,#0EFH

MOVTMOD,#01H;

计时器0为1模式

MOVIE,#82H;

打开中断总开关与计时器1中断开关

MUSIC0:

JNBP1.4,SONG1;

第一次扫描到按下S1跳转到SONG1

JNBP1.3,SONG3;

第一次扫描到按下S2跳转到SONG3

JNBP1.2,END1;

第一次扫描到按下S3跳转到END1

LJMPMUSIC0;

未按下开关则不断循环等待

END1:

JNBP1.2,STRAT;

第二次扫描到按下S3(即长按S3)跳转到初始程序

未按下S3(即短按S3)跳转到音乐初始模式

SONG1:

JNBP1.4,SONG2;

第二次扫描到按下S1(即长按S1)跳转到SONG2

MOVDPTR,#MOUSE;

播放老鼠爱大米

初始化P1口并打数码管5显示1

MOVA,#6

LCALLPRINT;

调用输出语句

LJMPMUSIC1

SONG2:

MOVDPTR,#LIKE;

播放甩葱歌

MOVA,#5BH

SONG3:

JNBP1.3,SONG4;

第二次扫描到按下S2(即长按S2)跳转到SONG4

MOVDPTR,#SKY;

播放天空之城

初始化P1口并打数码管5显现3

MOVA,#4FH

SONG4:

MOVDPTR,#ANGEL;

播放残酷天使纲领

初始化P1口并打数码管5显示4

MOVA,#66H

CHANGE0:

LJMPJISHU;

连接计时返回跳转

CHANGE3:

LJMPSTRAT;

连接初始程序返回跳转

MUSIC1:

JNBP1.2,MUSIC;

按下S3返回音乐模式

MOV20H,#00H;

中断计数器清0

NOP

CLRA;

A清零

MOVCA,@A+DPTR;

查表取代码

JZEND0;

是00H,则结束

CJNEA,#0FFH,MUSIC4;

如果是休止符,往下执行

LJMPMUSIC3

END0:

LJMPMUSIC;

是结束符则跳转到音乐初始程序

MUSIC4:

MOVR6,A;

读取音符的频率

INCDPTR;

DPTR加一

MOVA,#0;

清除A

取节拍代码送R7

MOVR7,A;

读取音符发音的时间

SETBTR0;

启动计数

MUSIC2:

CPLPP;

音乐输出口控制

MOVA,R6

MOVR3,A;

频率转存R3

LCALLDEL;

调用音乐延时

MOVA,R7

CJNEA,20H,MUSIC2;

中断计数器(20H)=R7否?

(即控制时长)

不等,则继续循环

等于,则清零

取下一代码

MUSIC3:

MOVR2,20H

CJNER2,#10,MUSIC3

读取下一个音符

DEL:

延时2*频率(根据具体效果调整)

DEL1:

MOVR4,#0cH

DEL2:

DJNZR4,DEL2

DJNZR3,DEL1

RET

*********************************计时模块*******************************;

JISHU:

MOVTH1,#03CH;

定义计时器1初值定时50ms

MOVTL1,#0B0H

MOVTMOD,#10H;

计时器1模式1

MOVIE,#88H

MOVR0,#0;

清零计时

MOVR1,#0

MOVR2,#0

MOVR3,#0

MOVR4,#0

MOVR5,#0

MOVR6,#20;

重装中断计数器1

开关延迟

STRAT0:

LCALLSMGPRINT;

调用数码管动态显示

JNBP1.2,CHANGE3;

按下S3返回初始模式选择

JNBP1.4,STRAT1;

按下S1开始计时

SJMPSTRAT0;

未按下则循环扫描按键

STRAT1:

SETBTR1;

开始计时

STRAT2:

调用数码管动态显示

JNBP1.3,STOP;

按下S2则停止计时

SJMPSTRAT2;

未按下S2则一直计时

STOP:

CLRTR1;

停止计时

保持显示

按下S1则继续计时

JNBP1.2,JISHU;

按下S3则返回计时初始程序

SJMPSTOP;

未按下S3则循环等待

TEE1:

重装计时初值

DJNZR6,CHANGE2;

直到延迟20次(即1秒)

INCR5;

计时加1

CJNER5,#10,CHANGE2;

第6数码管满10进1

INCR4

CJNER4,#6,CHANGE2;

第5数码管满6进1

INCR3

CJNER3,#10,CHANGE2;

第4数码管满10进1

INCR2

CJNER2,#6,CHANGE2;

第3数码管满6进1

INCR1

CJNER1,#10,CHANGE2;

第2数码管满10进1

INCR0

CJNER0,#10,CHANGE2;

记满100小时清零

MOVR0,#0

CHANGE2:

RETI

TEE0:

音乐模式用中断

INC20H;

中断服务,中断计数器0加1

MOVTH0,#0D8H

MOVTL0,#0EFH;

12M晶振,形成10毫秒中断

****************************调用库*************************

SMGPRINT:

MOVDPTR,#SMG0

MOVP1,#00011111B;

初始化P1口并打数码管0

MOVA,R0

MOVCA,@A+DPTR

初始化P1口并打数码管2

MOVA,R2

初始化P1口并打数码管4

MOVA,R4

初始化P1口并打数码管5

MOVA,R5

MOVDPTR,#SMG1

MOVP1,#10011111B;

初始化P1口并打数码管1

MOVA,R1

初始化P1口并打数码管3

MOVA,R3

PRINT:

数码管显示

MOV24H,#08H

LOOP:

RRCA;

A带进位位右移

MOVP1.1,C;

将进位位输出到74LS164

CPLP3.4;

给予74LS164上升沿触发信号

CPLP3.4

DJNZ24H,LOOP;

A右移并输出7次

DELSMG:

MOV25H,02H;

延时(显示一段时间)

LOOP1:

MOV26H,80H

LOOP2:

DJNZ26H,LOOP2

DJNZ25H,LOOP1

SMG0:

不带小数点0-9代码

DB3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH;

不带小数点0-9

SMG1:

带小数点0-9代码

DB0BfH,86H,0dbH,0cfH,0e6H,0edH,0fdH,87H,0ffH,0efH;

带小数点0-9

DELKEY:

按键延迟避免多次读取

MOV21H,#10H

DEL3:

MOV22H,#00H

DEL4:

MOV23H,#00H

DEL5:

DJNZ23H,DEL5

DJNZ22H,DEL4

DJNZ21H,DEL3

**************************************音乐代码************************************************

MOUSE:

老鼠爱大米

DB30H,20H,2BH,10H,26H,10H

DB26H,20H,26H,20H,2BH,20H,30H,10H,2BH,10H,2BH,60H,30H,10H,2BH,10H

DB26H,20H,26H,20H,2BH,20H,30H,20H,30H,60H,40H,10H,39H,10H

DB40H,40H,40H,10H,40H,10H,39H,10H,30H,10H,30H,60H,30H,20H

DB30H,20H,30H,20H,30H,10H,2BH,10H,2BH,40H,30H,20H,2BH,10H,26H,10H

DB26H,20H,26H,20H,20H,20H,1CH,10H,2BH,10H,2BH,40H,26H,20H,2BH,10H,30H,10H

DB30H,20H,30H,20H,2BH,20H,26H,10H,20H,10H,20H,60H,40H,10H,40H,10H

DB39H,20H,30H,10H,30H,10H,30H,10H,26H,30H,2BH,20H,30H,20H,30H,20H,2BH,10H,30H,10H

DB30H,0C0H,26H,20H,26H,10H,20H,10H

DB20H,20H,20H,10H,20H,10H,20H,20H,20H,10H,1CH,10H,1CH,40H,26H,20H,2BH,20H

DB30H,20H,30H,20H,30H,20H,2BH,10H,26H,10H,26H,60H,26H,10H,20H,10H

DB20H,20H,20H,20H,20H,20H,1CH,10H,18H,10H,18H,20H,1CH,20H,20H,20H,26H,20H

DB2BH,20H,30H,20H,30H,20H,39H,10H,2BH,10H,2BH,60H,26H,10H,20H,10H

DB20H,20H,20H,20H,20H,10H,1CH,20H,20H,10H,1CH,40H,26H,20H,2BH,20H

DB20H,20H,20H,20H,20H,20H,1CH,10H,18H,10H,18H,20H,1CH,20H,20H,20H,26H,10H,2BH,10H

DB2BH,20H,2BH,20H,2BH,80H,30H,10H,26H,20H,24H,10H

DB26H,20H,2BH,20H,2BH,80H,26H,20H,2BH,10H,30H,10H

DB30H,40H,26H,20H,2BH,10H,30H,10H,30H,40H,26H,20H,2BH,20H

DB26H,20H,30H,20H,26H,20H,1CH,10H,20H,10H,20H,60H,26H,10H,20H,10H

DB1CH,20H,1CH,10H,20H,10H,20H,20H,1CH,10H,20H,10H,20H,40H,26H,10H,2BH,10H,30H,20H

DB2BH,20H,2BH,10H,26H,10H,2BH,20H,30H,10H,2BH,10H,2BH,40H,26H,20H,2BH,10H,30H,10H

DB26H,20H,30H,20H,26H,10H,1CH,20H,20H,10H,20H,60H,26H,10H,20H,10H

DB1CH,20H,1CH,20H,18H,20H,20H,10H,1CH,10H,20H,30H,20H,10H,26H,10H,2BH,10H,30H,20H

DB2BH,40H,2BH,10H,30H,10H,2BH,10H,26H,10H,2BH,40H,26H,20H,26H,20H,2BH,60H,30H,20H,30H,0C0H

DB00H

SKY:

天空之城

DB39H,20H,34H,20H

DB18H,60H,1AH,20H,18H,40H,13H,40H

DB1AH,0C0H,26H,10H,26H,10H

DB1CH,60H,20H,20H,1CH,40H,18H,40H

DB20H,80H,0FFH,26H,10H,26H,10H

DB24H,60H,26H,20H,26H,20H,18H,60H

DB26H,80,0FFH,18H,20H,18H,20H,18H,20H

DB1AH,60H,24H,20H,24H,40H,1AH,40H

DB1AH,80H,0FFH,1CH,20H,1AH,20H

DB18H,60H,1AH,20H,18H,40H,13H,40H,

DB1AH,80H,26H,10H,26H,10H

DB1CH,60H,20H,20H,1CH,40H,18H

DB20H,80H,20H,40H,0FFH,26H,20H,

DB24H,40H,18H,20H,1AH,20H,1AH,40H,18H,40H,

DB15H,20H,15H,20H,13H,20H,18H,40H,0FFH

DB18H,40H,1AH,20H,1CH,20H,1CH,20H,1AH,40H,20H,40H

DB1CH,80H,0FFH,18H,20H,15H,20H

DB13H,60H,15H,20H,13H,40H,10H,40H

DB15H,80H,0FFH,26H,20H,26H,20H

DB18H,20H,1AH,20H,18H,40H,13H,40H

DB13H,80H,0FFH,0FFH,0FFH,0FFH

DB1CH,20H,1AH,20H,18H,40H,1AH,40H,15H,20H,15H,20H

DB18H,60H,20H,20H,20H,40H,0FFH

DB12H,40H,13H,40H,15H,40H,18H,40H

DB13H,80H,13H,80H,

DB13H,80H,0FFH,13H,40H

DB0EH,80H,10H,40H,10H,40H,

DB13H,20H,15H,20H,18H,40H,0FFH,18H,20H,

DB15H,40H,18H,20H,15H,20H,15H,20H,10H,40H

DB0EH,80H,10H,80H

DB13H,20H,15H,20H,18H,80H,0FFH,18H,20H

DB15H,40H,18H,20H,15H,20H,15H,20H,1AH,40H

DB1CH,80H,0FFH,1CH,20H,1AH,20

DB1CH,80H,1CH,80H

ANGEL:

残酷天使纲领

DB39H,40H,30H,40H,2BH,30H,30H,10H,30H,20H,2BH,20H

DB2BH,20H,2BH,20H,20H,20H,24H,20H,26H,10H,2BH,20H,26H,10H,26H,40H

DB26H,40H,20H,40H,1CH,30H,2BH,10H,2BH,20H,30H,20H

DB

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1