最新版单片机课程设计报告8257524.docx
《最新版单片机课程设计报告8257524.docx》由会员分享,可在线阅读,更多相关《最新版单片机课程设计报告8257524.docx(12页珍藏版)》请在冰豆网上搜索。
最新版单片机课程设计报告8257524
目录
一、引言—本课程设计的目的………..………………..2
二、八路LED跑马灯实验…………….……………….2
2.1设计内容…………………………………………………2
2.2电路图……………………………………………………2
2.3上机程序..…………………………………….………….3
2.4调试结果及结论:
……………….……………………….4
三、二位数码管循环显示00~99的实验…..………….4
3.1设计内容...……………………………………………….4
3.2电路图...………………………………………………….4
3.3上机程序..…………………………………………..……5
3.4调试结果及结论…………………………………………6
四、单片机演奏音乐实验………………………………6
4.1设计内容..……………………………………….……….6
4.2电路图……………………………………………………6
4.3上机程序…………………………………………………7
4.4调试结果及结论...……………………………………….9
五、心得体会...………………………………………….9
六、参考文献…………..………………………………10
摘要:
由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制。
通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用。
关键词:
单片机,程序,跑马灯,数码管,测试……
一、引言—本课程设计的目的
以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。
在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。
二、八路LED跑马灯实验
2.1设计内容:
八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了。
2.2电路图:
.
2.3上机程序:
org0000h
ajmpstart
org0030h
start:
mova,#7fh
clrc
movr2,#08h
loop:
rrca
movp0,a
calldelay
djnzr2,loop
movr2,#07h
loop1:
rlca
movp0,a
calldelay
djnzr2,loop1
jmpstart
delay:
d1:
movr4,#20
d2:
movr5,#248
djnzr5,$
djnzr4,d2
ret
end
2.4调试结果及结论:
八路发光二极管轮流点亮汇编语言的一大优势就是能够精确控制程序的执行时间,这在编写一些对时序要求严格的外围器件驱动时由为重要!
三、二位数码管循环显示00~99的实验
3.1设计内容:
8段数码管显示.两位数码管显示00--99依次循环(动态扫描方式).p1做LED显示数据输出口.p3.2;p3.3分别控制数码管个位数和十位数显示.用单片机进行数码显示应具有显示器件;应用最广泛的是8段数码管。
8段数码管从内部接线上分共阳和共阴两种。
在电路设计时应根据情况决定采用共阳或共阴,其基本原则是:
若单片机IO口直接驱动数码管个段,最好采用共阳数码管,因为51单片机IO口输出高电平时输出的电流很小,数码管不会太亮;若数码管是通过驱动芯片与单片机相连的,就要看驱动芯片对数码管极性的要求。
3.2电路图:
3.3上机程序:
a_bitequ20h
b_bitequ21h
tempequ22h
start:
movtemp,#0
ss:
acalldisplay
inctemp
mova,temp
cjnea,#100,next
movtemp,#0
next:
ljmpss
display:
mova,temp
movb,#10
divab
movb_bit,a
mova_bit,b
movdptr,#numtab
movr0,#4
dpl1:
movr1,#250
dplop:
mova,a_bit
MOVC+DPTR
movp0,a
clrp2.6
ACALLdlms
setbp2.6
mova,b_bit
MOVC+DPTR
movp0,a
clrp2.7
ACALLdlms
setbp2.7
djnzr1,dplop
djnzr0,dpl1
ret
dlms:
movr7,#80
djnzr7,$
ret
numtab:
DB30H,0FCH,0A2H,0A4H,6CH,25H,21H,0BCH,20H,24H
end
3.4调试结果及结论:
8段数码管显示.两位数码管显示00--99依次循环(动态扫描方式)。
因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。
四、单片机演奏音实验
4.1设计内容:
利用单片机演奏音乐大概是单片机爱好者感兴趣的问题之一。
这里我们用网站提供的实验板来做这个实验,并且了解单片机演奏音乐的基本原理,和相关的源程序。
我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的高电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调乐曲中,每一音符对应着确定的频率,我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。
此外,结束符和体止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。
为了产生手弹的节奏感,在某些音符(例如两个相同音符)音插入一个时间单位的频率略有不同的音符。
4.2电路图:
4.3上机程序:
ORG0000H
LJMPSTART
ORG000BH
INC20H;中断服务,中断计数器加1
MOVTH0,#0D8H
MOVTL0,#0EFH;12M晶振,形成10毫秒中断
RETI
START:
MOVSP,#50H
MOVTH0,#0D8H
MOVTL0,#0EFH
MOVTMOD,#01H
MOVIE,#82H
MUSIC0:
NOP
MOVDPTR,#DAT;表头地址送DPTR
MOV20H,#00H;中断计数器清0
MUSIC1:
NOP
CLRA;A清零
MOVC+DPTR;查表取代码
JZEND0;是00H,则结束
CJNEA,#0FFH,MUSIC5;如果是休止符,往下执行
LJMPMUSIC3
MUSIC5:
NOP
MOVR6,A;R6=18H音符的频率
INCDPTRDPTR加一
MOVA,#0
MOVC+DPTR;取节拍代码送R7
MOVR7,A;R7=30H音符发音的时间
SETBTR0;启动计数
MUSIC2:
NOP
CPLP2.5;P2.5是音乐输出引脚
MOVA,R6
MOVR3,A;R3=R6=18H
LCALLDEL
MOVA,R7
CJNEA,20H,MUSIC2;中断计数器(20H)=R7否?
;不等,则继续循环
MOV20H,#00H;等于,则取下一代码
INCDPTR
LJMPMUSIC1
MUSIC3:
NOP;休止100毫秒
CLRTR0
MOVR2,#0DH;R2=13
MUSIC4:
NOP
MOVR3,#0FFH;R3=255
LCALLDEL
DJNZR2,MUSIC4
INCDPTR
LJMPMUSIC1
END0:
NOP
MOVR2,#0FFH;歌曲结束,延时1秒后继续
MUSIC6:
MOVR3,#00H
LCALLDEL
DJNZR2,MUSIC6
LJMPMUSIC0
DEL:
NOP
DEL3:
MOVR4,#02H
DEL4:
NOP
DJNZR4,DEL4
NOP
DJNZR3,DEL3
RET
NOP
DAT:
DB82H,01H,81H,94H,84H
DB0B4H,0A4H,04H
DB82H,01H,81H,94H,84H
DB0C4H,0B4H,04H
DB82H,01H,81H,0F4H,0D4H
DB0B4H,0A4H,94H
DB0E2H,01H,0E1H,0D4H,0B4H
DB0C4H,0B4H,04H
DB82H,01H,81H,94H,84H
DB0B4H,0A4H,04H
DB82H,01H,81H,94H,84H
DB0C4H,0B4H,04H
DB82H,01H,81H,0F4H,0D4H
DB0B4H,0A4H,94H
DB0E2H,01H,0E1H,0D4H,0B4H
DB0C4H,0B4H,04H
4.4调试结果及结论:
本程序演奏的是“生日快乐”,网友也可以自行找出一首歌,将乐曲翻译成码表输入机器,而程序不变。
本实验方法简便,即使不懂音乐的人,将一首陌生的曲子翻译成代码也是易事,和着机器的演奏学唱一首歌曲,其趣味无穷。
五、心得体会:
通过本次课程设计我们获益良多。
既巩固了单片机的一些相关基本知识,又熟悉了PROTRL的相关操作。
对一个整体的电子设计项目,有了一定的认识,初步学会了一定的设计方法,明白了如何用这种方法去实现一个系统的设计。
在电子技术应用领域中,单片机的应用愈来愈多地应用到各行各业。
如:
工业控制、仪器仪表、电讯技术、办公自动化和计算机外部设备、汽车与节能、商用产品、家用电器等。
目前,单片机正朝着大容量片上存储器、多功能i/o接口、宽范围工作电源和低功耗方向发展。
要开发单片机的应用,不但要掌握单片机硬件和软件方面的知识,而且还要深入了解各应用系统的专业知识,只有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。
一个好的工程设计师不仅要掌握单片机的工作原理,而且还要不断了解各公司最新芯片的结构和应用,在实际应用中找到最好的性能价格比。
所以以后还要注意培养接受新知识的自学能力,掌握芯片发展动态。
同时也让我们找到了自己在某些知识上的欠缺,并通过这次机会得到弥补,取得进步!
六、参考文献:
[1]张毅坤,陈善久,裘雪红.单片微型计算机原理及应用.西安电子科技大学出版社.2008年5月
[2]华成英,童诗白.模拟电子技术基础.高等教育出版社,2007年8月
[3]赵辉,刘印华.PROTEL99电子线路CAD.北京邮电大学出版社.2008年1月