MCS单片机课程设计报告_第1页
MCS单片机课程设计报告_第2页
MCS单片机课程设计报告_第3页
MCS单片机课程设计报告_第4页
MCS单片机课程设计报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机课程设计报告专业班级:学生学号:学生姓名:指导教师:设计时间:自动化与电气工程学院

设计课题题目:最小系统实现音乐播放及秒计时器一、设计任务与要求1.学会运用STC12C5404单片机为核心,以动态扫描的形式点亮数码管2.学会利用利用STC12C54040单片机为核心,驱动蜂鸣器3.利用最小系统板做音乐播放和秒级计时双模式系统二、硬件原理及单元电路分析74LS1648位串入,并出移位寄存器。用于数码管输出的串入并出。时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度74LS1383线-8线译码器。用于控制数码管的共阴极引脚。MAX232MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。三位共阴数码管三位共阴数码管结构0123456789不带小数点3FH06H5BH4FH66H6DH7DH07H7FH6FH带小数点0BFH86HFBH0CFH0E6H0EDH0FDH87H0FFH0EFH三、软件原理及框图阐述音乐播放原理:单片机产生不同频率脉冲信号的原理:要产生音频脉冲,只要算出某一音频的脉冲(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)对应数值低音1261.625660H低音2293.664856H低音3329.62764CH低音4349.228248H低音5391.995440H低音644039H低音7493.883334H中音1523.251130H中音2587.32952BH中音3659.255126H中音4698.456524H中音5783.990920H中音68801CH中音7987.76661AH高音11046.50218H高音21174.65915H高音31318.5113H高音41396.91312H高音51567.98210H高音617600EH高音71975.5330DH休止符0FFH计时器T0控制播放时长,且规定:一拍40H半拍20H1/4拍10H。数码管动态扫描原理:视觉停留:当一个画面1秒内连续闪烁24次以上则人眼认为该画面为静止。打开相应数码管负极引脚,输出信号存到A寄存器,A寄存器带进位右移,则最后一位存到C,把C中的信号传给P1.1口,P3.4口给74LS164一个上升沿触发信号,74LS164内数值右移,P1.1口信号存到Q0,循环②—⑤7次,使Q0—Q7为对应数值延时使每一个数字显示一段时间,并保证能使数字1秒内连续闪烁24次以上循环重复①—⑧数码管动态扫描PROTEUS仿真:程序框图:程序:ORG0000HLJMPSTRAT;主程序ORG000BH;音乐用中断入口LJMPTEE0ORG001BH;计时用中断入口LJMPTEE1ORG0100HSTRAT:MOVSP,#0DFH;*****************************模式选择模块*************************************MOVDPTR,#SMG0;数码管显示无小数点数字MOVP1,#01011111B;初始化P1口并打数码管2显示1MOVA,#1MOVCA,@A+DPTR;LCALLPRINTMOVP1,#11011111B;初始化P1口并打数码管3显示0MOVA,#0MOVCA,@A+DPTR;LCALLPRINTMOVP1,#00111111B;初始化P1口并打数码管4显示RMOVA,#77HLCALLPRINTMOVP1,#10111111B;初始化P1口并打数码管5显示2MOVA,#2MOVCA,@A+DPTR;LCALLPRINTJNBP1.4,MUSIC;按下S1进入音乐模式JNBP1.3,CHANGE0;按下S2进入计时模式SJMPSTRAT;保持显示1OR2;*********************************音乐模块************************************MUSIC:;音乐播放LCALLDELKEY;延时避免开关多次读取PPEQUP3.7;定义音乐输出口MOVP1,#0FFH;清除读数MOVTH0,#0D8H;定义计时器0初值定时10msMOVTL0,#0EFHMOVTMOD,#01H;计时器0为1模式MOVIE,#82H;打开中断总开关与计时器1中断开关MUSIC0:JNBP1.4,SONG1;第一次扫描到按下S1跳转到SONG1JNBP1.3,SONG3;第一次扫描到按下S2跳转到SONG3JNBP1.2,END1;第一次扫描到按下S3跳转到END1LJMPMUSIC0;未按下开关则不断循环等待END1:LCALLDELKEY;延时避免开关多次读取JNBP1.2,STRAT;第二次扫描到按下S3(即长按S3)跳转到初始程序LJMPMUSIC0;未按下S3(即短按S3)跳转到音乐初始模式SONG1:LCALLDELKEY;延时避免开关多次读取JNBP1.4,SONG2;第二次扫描到按下S1(即长按S1)跳转到SONG2MOVDPTR,#MOUSE;播放老鼠爱大米MOVP1,#10111111B;初始化P1口并打数码管5显示1MOVA,#6LCALLPRINT;调用输出语句LJMPMUSIC1SONG2:MOVDPTR,#LIKE;播放甩葱歌MOVP1,#10111111B;初始化P1口并打数码管5显示2MOVA,#5BHLCALLPRINT;调用输出语句LJMPMUSIC1SONG3:LCALLDELKEY;延时避免开关多次读取JNBP1.3,SONG4;第二次扫描到按下S2(即长按S2)跳转到SONG4MOVDPTR,#SKY;播放天空之城MOVP1,#10111111B;初始化P1口并打数码管5显现3MOVA,#4FHLCALLPRINT;调用输出语句LJMPMUSIC1SONG4:MOVDPTR,#ANGEL;播放残酷天使纲领MOVP1,#10111111B;初始化P1口并打数码管5显示4MOVA,#66HLCALLPRINT;调用输出语句LJMPMUSIC1CHANGE0:LJMPJISHU;连接计时返回跳转CHANGE3:LJMPSTRAT;连接初始程序返回跳转MUSIC1:JNBP1.2,MUSIC;按下S3返回音乐模式MOV20H,#00H;中断计数器清0NOPCLRA;A清零MOVCA,@A+DPTR;查表取代码JZEND0;是00H,则结束CJNEA,#0FFH,MUSIC4;如果是休止符,往下执行LJMPMUSIC3END0:LJMPMUSIC;是结束符则跳转到音乐初始程序MUSIC4:NOPMOVR6,A;读取音符的频率INCDPTR;DPTR加一MOVA,#0;清除AMOVCA,@A+DPTR;取节拍代码送R7MOVR7,A;读取音符发音的时间SETBTR0;启动计数MUSIC2:NOPCPLPP;音乐输出口控制MOVA,R6MOVR3,A;频率转存R3LCALLDEL;调用音乐延时MOVA,R7CJNEA,20H,MUSIC2;中断计数器(20H)=R7否?(即控制时长);不等,则继续循环MOV20H,#00H;等于,则清零INCDPTR;取下一代码LJMPMUSIC1MUSIC3:MOVR2,20HCJNER2,#10,MUSIC3INCDPTR;读取下一个音符LJMPMUSIC1DEL:;延时2*频率(根据具体效果调整)NOPDEL1:MOVR4,#0cHDEL2:NOPDJNZR4,DEL2NOPDJNZR3,DEL1RET;*********************************计时模块*******************************;JISHU:MOVTH1,#03CH;定义计时器1初值定时50msMOVTL1,#0B0HMOVTMOD,#10H;计时器1模式1MOVIE,#88HMOVR0,#0;清零计时MOVR1,#0MOVR2,#0MOVR3,#0MOVR4,#0MOVR5,#0MOVR6,#20;重装中断计数器1LCALLDELKEY;开关延迟STRAT0:LCALLSMGPRINT;调用数码管动态显示JNBP1.2,CHANGE3;按下S3返回初始模式选择JNBP1.4,STRAT1;按下S1开始计时SJMPSTRAT0;未按下则循环扫描按键STRAT1:SETBTR1;开始计时STRAT2:LCALLSMGPRINT;调用数码管动态显示JNBP1.3,STOP;按下S2则停止计时SJMPSTRAT2;未按下S2则一直计时STOP:CLRTR1;停止计时LCALLSMGPRINT;保持显示JNBP1.4,STRAT1;按下S1则继续计时JNBP1.2,JISHU;按下S3则返回计时初始程序SJMPSTOP;未按下S3则循环等待TEE1:MOVTH1,#03CH;重装计时初值MOVTL1,#0B0HDJNZR6,CHANGE2;直到延迟20次(即1秒)MOVR6,#20;重装中断计数器1INCR5;计时加1CJNER5,#10,CHANGE2;第6数码管满10进1MOVR5,#0INCR4CJNER4,#6,CHANGE2;第5数码管满6进1MOVR4,#0INCR3CJNER3,#10,CHANGE2;第4数码管满10进1MOVR3,#0INCR2CJNER2,#6,CHANGE2;第3数码管满6进1MOVR2,#0INCR1CJNER1,#10,CHANGE2;第2数码管满10进1MOVR1,#0INCR0CJNER0,#10,CHANGE2;记满100小时清零MOVR0,#0MOVR1,#0MOVR2,#0MOVR3,#0MOVR4,#0MOVR5,#0CHANGE2:RETITEE0:;音乐模式用中断INC20H;中断服务,中断计数器0加1MOVTH0,#0D8HMOVTL0,#0EFH;12M晶振,形成10毫秒中断RETI;****************************调用库*************************SMGPRINT:MOVDPTR,#SMG0MOVP1,#00011111B;初始化P1口并打数码管0MOVA,R0MOVCA,@A+DPTRLCALLPRINTMOVP1,#01011111B;初始化P1口并打数码管2MOVA,R2MOVCA,@A+DPTRLCALLPRINTMOVP1,#00111111B;初始化P1口并打数码管4MOVA,R4MOVCA,@A+DPTRLCALLPRINTMOVP1,#10111111B;初始化P1口并打数码管5MOVA,R5MOVCA,@A+DPTRLCALLPRINTMOVDPTR,#SMG1MOVP1,#10011111B;初始化P1口并打数码管1MOVA,R1MOVCA,@A+DPTRLCALLPRINTMOVP1,#11011111B;初始化P1口并打数码管3MOVA,R3MOVCA,@A+DPTRLCALLPRINTRETPRINT:;数码管显示MOV24H,#08HLOOP:RRCA;A带进位位右移MOVP1.1,C;将进位位输出到74LS164CPLP3.4;给予74LS164上升沿触发信号CPLP3.4DJNZ24H,LOOP;A右移并输出7次DELSMG:MOV25H,02H;延时(显示一段时间)LOOP1:MOV26H,80HLOOP2:DJNZ26H,LOOP2DJNZ25H,LOOP1RETSMG0:;不带小数点0-9代码DB3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH;不带小数点0-9SMG1:;带小数点0-9代码DB0BfH,86H,0dbH,0cfH,0e6H,0edH,0fdH,87H,0ffH,0efH;带小数点0-9DELKEY:;按键延迟避免多次读取MOV21H,#10HDEL3:MOV22H,#00HDEL4:MOV23H,#00HDEL5:DJNZ23H,DEL5DJNZ22H,DEL4DJNZ21H,DEL3RET;**************************************音乐代码************************************************MOUSE:;老鼠爱大米DB30H,20H,2BH,10H,26H,10HDB26H,20H,26H,20H,2BH,20H,30H,10H,2BH,10H,2BH,60H,30H,10H,2BH,10HDB26H,20H,26H,20H,2BH,20H,30H,20H,30H,60H,40H,10H,39H,10HDB40H,40H,40H,10H,40H,10H,39H,10H,30H,10H,30H,60H,30H,20HDB30H,20H,30H,20H,30H,10H,2BH,10H,2BH,40H,30H,20H,2BH,10H,26H,10HDB26H,20H,26H,20H,20H,20H,1CH,10H,2BH,10H,2BH,40H,26H,20H,2BH,10H,30H,10HDB30H,20H,30H,20H,2BH,20H,26H,10H,20H,10H,20H,60H,40H,10H,40H,10HDB39H,20H,30H,10H,30H,10H,30H,10H,26H,30H,2BH,20H,30H,20H,30H,20H,2BH,10H,30H,10HDB30H,0C0H,26H,20H,26H,10H,20H,10HDB20H,20H,20H,10H,20H,10H,20H,20H,20H,10H,1CH,10H,1CH,40H,26H,20H,2BH,20HDB30H,20H,30H,20H,30H,20H,2BH,10H,26H,10H,26H,60H,26H,10H,20H,10HDB20H,20H,20H,20H,20H,20H,1CH,10H,18H,10H,18H,20H,1CH,20H,20H,20H,26H,20HDB2BH,20H,30H,20H,30H,20H,39H,10H,2BH,10H,2BH,60H,26H,10H,20H,10HDB20H,20H,20H,20H,20H,10H,1CH,20H,20H,10H,1CH,40H,26H,20H,2BH,20HDB30H,20H,30H,20H,30H,20H,2BH,10H,26H,10H,26H,60H,26H,10H,20H,10HDB20H,20H,20H,20H,20H,20H,1CH,10H,18H,10H,18H,20H,1CH,20H,20H,20H,26H,10H,2BH,10HDB2BH,20H,2BH,20H,2BH,80H,30H,10H,26H,20H,24H,10HDB26H,20H,2BH,20H,2BH,80H,26H,20H,2BH,10H,30H,10HDB30H,40H,26H,20H,2BH,10H,30H,10H,30H,40H,26H,20H,2BH,20HDB26H,20H,30H,20H,26H,20H,1CH,10H,20H,10H,20H,60H,26H,10H,20H,10HDB1CH,20H,1CH,10H,20H,10H,20H,20H,1CH,10H,20H,10H,20H,40H,26H,10H,2BH,10H,30H,20HDB2BH,20H,2BH,10H,26H,10H,2BH,20H,30H,10H,2BH,10H,2BH,40H,26H,20H,2BH,10H,30H,10HDB30H,40H,26H,20H,2BH,10H,30H,10H,30H,40H,26H,20H,2BH,20HDB26H,20H,30H,20H,26H,10H,1CH,20H,20H,10H,20H,60H,26H,10H,20H,10HDB1CH,20H,1CH,20H,18H,20H,20H,10H,1CH,10H,20H,30H,20H,10H,26H,10H,2BH,10H,30H,20HDB2BH,40H,2BH,10H,30H,10H,2BH,10H,26H,10H,2BH,40H,26H,20H,26H,20H,2BH,60H,30H,20H,30H,0C0HDB00HSKY:;天空之城DB39H,20H,34H,20HDB18H,60H,1AH,20H,18H,40H,13H,40HDB1AH,0C0H,26H,10H,26H,10HDB1CH,60H,20H,20H,1CH,40H,18H,40HDB20H,80H,0FFH,26H,10H,26H,10HDB24H,60H,26H,20H,26H,20H,18H,60HDB26H,80,0FFH,18H,20H,18H,20H,18H,20HDB1AH,60H,24H,20H,24H,40H,1AH,40HDB1AH,80H,0FFH,1CH,20H,1AH,20HDB18H,60H,1AH,20H,18H,40H,13H,40H,DB1AH,80H,26H,10H,26H,10HDB1CH,60H,20H,20H,1CH,40H,18HDB20H,80H,20H,40H,0FFH,26H,20H,DB24H,40H,18H,20H,1AH,20H,1AH,40H,18H,40H,DB15H,20H,15H,20H,13H,20H,18H,40H,0FFHDB18H,40H,1AH,20H,1CH,20H,1CH,20H,1AH,40H,20H,40HDB1CH,80H,0FFH,18H,20H,15H,20HDB13H,60H,15H,20H,13H,40H,10H,40HDB15H,80H,0FFH,26H,20H,26H,20HDB18H,20H,1AH,20H,18H,40H,13H,40HDB13H,80H,0FFH,0FFH,0FFH,0FFHDB1CH,20H,1AH,20H,18H,40H,1AH,40H,15H,20H,15H,20HDB18H,60H,20H,20H,20H,40H,0FFHDB12H,40H,13H,40H,15H,40H,18H,40HDB13H,80H,13H,80H,DB13H,80H,0FFH,13H,40HDB0EH,80H,10H,40H,10H,40H,DB13H,20H,15H,20H,18H,40H,0FFH,18H,20H,DB15H,40H,18H,20H,15H,20H,15H,20H,10H,40HDB13H,80H,0FFH,13H,40HDB0EH,80H,10H,80HDB13H,20H,15H,20H,18H,80H,0FFH,18H,20HDB15H,40H,18H,20H,15H,20H,15H,20H,1AH,40HDB1CH,80H,0FFH,1CH,20H,1AH,20DB1CH,80H,1CH,80HDB00HANGEL:;残酷天使纲领DB39H,40H,30H,40H,2BH,30H,30H,10H,30H,20H,2BH,20HDB2BH,20H,2BH,20H,20H,20H,24H,20H,26H,10H,2BH,20H,26H,10H,26H,40HDB26H,40H,20H,40H,1CH,30H,2BH,10H,2BH,20H,30H,20HDB20H,20H,20H,20H,26H,20H,20H,20HDB20H,30H,1CH,10H,1CH,0C0HDB0FFH,30H,20H,40H,10H,40H,10H,40H,40H,0FFH,30H,20HDB30H,30H,2BH,10H,2BH,20H,20H,20H,20H,40H,0FFH,20H,20HDB26H,30H,24H,10H,24H,20H,26H,20H,2BH,30H,30H,10H,30H,20H,2BH,20HDB26H,30H,24H,10H,24H,20H,26H,20H,39H,40H,0FFH,39H,10H,34H,10HDB30H,30H,30H,10H,30H,20H,34H,20H,34H,40H,0FFH,30H,10H,2BH,10HDB24H,30H,26H,10H,26H,20H,2BH,20H,30H,40H,0FFH,26H,20HDB26H,30H,2BH,10H,2BH,20H,30H,20H,2BH,40H,39H,40HDB39H,60H,34H,20H,34H,80HDB0FFH,30H,20H,40H,10H,40H,10H,40H,40H,0FFH,30H,20HDB30H,20H,2BH,10H,2BH,20H,20H,20H,20H,40H,0FFH,20H,20HDB26H,30H,24H,10H,24H,20H,26H,20H,2BH,30H,30H,10H,30H,20H,2BH,20HDB26H,30H,24H,10H,24H,20H,26H,20H,39H,40H,0FFH,39H,10H,34H,10HDB30H,30H,30H,10H,30H,20H,34H,20H,34H,40H,0FFH,30H,10H,2BH,10HDB24H,30H,26H,10H,26H,20H,2BH,20H,30H,40H,0FFH,26H,20HDB26H,30H,2BH,10H,2BH,20H,30H,20H,2BH,30H,26H,10H,26H,20H,24H,20HDB26H,80H,26H,80HDB30H,30H,30H,10H,30H,20H,34H,20H,30H,30H,30H,10H,30H,20H,34H,20HDB2BH,30H,2BH,10H,2BH,20H,30H,20H,34H,30H,39H,10H,39H,20H,34H,20HDB30H,30H,30H,10H,30H,20H,34H,20H,2BH,30H,34H,10H,34H,10H,39H,30HDB30H,30H,30H,10H,30H,20H,34H,20H,30H,30H,30H,10H,30H,20H,34H,20HDB2BH,30H,2BH,10H,2BH,20H,30H,20H,34H,30H,30H,10H,30H,20H,2BH,20HDB26H,30H,24H,10H,24H,20H,26H,20H,2BH,30H,30H,10H,30H,20H,2BH,20HDB26H,80H,26H,80HDB39H,40H,30H,40H,2BH,30H,30H,10H,30H,20H,2BH,20HDB2BH,20H,2BH,20H,20H,20H,24H,20H,26H,10H,2BH,20H,26H,10H,26H,40HDB26H,40H,20H,40H,1CH,30H,2BH,10H,2BH,20H,30H,20HDB34H,20H,34H,20H,39H,20H,34H,20H,2BH,10H,30H,20H,30H,10H,30H,40HDB39H,40H,30H,40H,2BH,30H,30H,10H,30H,20H,2BH,20HDB2BH,20H,2BH,20H,20H,20H,24H,20H,26H,10H,2BH,20H,26H,10H,26H,40HDB26H,40H,20H,40H,1CH,30H,2BH,10H,2BH,20H,30H,20HDB20H,20H,20H,20H,26H,20H,20H,20HDB20H,30H,1CH,10H,1CH,0C0HDB00HLIKE:;甩葱歌DB30H,20H,24H,20H,24H,30H,20H,10H,1CH,10H,1CH,10H,24H,20H,24H,20H,24H,10H,1CH,10HDB20H,20H,26H,20H,26H,20H,26H,20H,20H,10H,20H,10H,24H,20H,24H,30H,24H,10HDB30H,20H,24H,20H,24H,30H,20H,10H,1CH,10H,1CH,10H,24H,20H,24H,20H,24H,10H,1CH,10HDB18H,10H,18H,10H,18H,10H,1AH,10H,1CH,10H,1CH,10H,20H,10H,20H,10H,1CH,20H,24H,10H,24H,10H,24H,20H,24H,10H,1CH,10HDB18H,20H,18H,20H,1AH,20H,1CH,20H,20H,20H,26H,20H,26H,20H,26H,10H,26H,10DB1AH,10H,1AH,10H,1AH,10H,1AH,10H,1CH,20H,20H,20H,1CH,20H,24H,10H,24H,10H,24H,20H,24H,10H,1CH,10HDB18H,20H,18H,20H,1AH,20H,1CH,20H,20H,20H,26H,20H,26H,20H,26H,10H,26H,10D

温馨提示

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

评论

0/150

提交评论