微机原理与接口技术课程设计音乐流水灯.docx
《微机原理与接口技术课程设计音乐流水灯.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计音乐流水灯.docx(13页珍藏版)》请在冰点文库上搜索。
微机原理与接口技术课程设计音乐流水灯
微机原理与接口技术课程设计
音
乐
流
水
灯
专业:
自动化
班级:
1530202
姓名:
何名春
学号:
201530020226
指导老师:
胡文龙
一、课程设计题目
音乐流水灯
二、设计目的和要求
(1)、目的
a、增强对8255和8253芯片的认识
b、掌握8255和8253的工作方式及应用编程。
b、熟悉这类的硬件电路
c、提高汇编编程的能力
d、掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法
e、掌握实时处理程序的编制和调试方法。
(2)、要求
(a)、利用芯片8255和8253实现8个发光LED流水形式,并且在灯依次亮是加上音调,即利用8255和8253实现音乐背景下8个LED跑马灯功能。
(b)、利用8253经过驱动电路使发出至少4个音调,8255控制8个LED形成流水灯,
(c)、用一个按键控制灯全灭和音调全停。
(d)、软件用循环灯和循环音调,使用移位和数组的方式,不能单独的编写一个灯亮一个灯灭的多个程序组合。
三、
设计流程图
否
四、硬件电路
8255与8253组合电路图
五、原理分析
8255:
通过8255的PA口控制8个LED灯,以实现流水的形式,并用一个PB口控制一个开关,以实现闭合开关执行功能,断开开关就实现灯灭、音停。
8255的PC口控制8253的GATE口,以实现GATE=1,就开始计时,则发出音调,否则,则反之。
8253:
在CLK输入一个时钟信号,通过8MHZ经过393以输入时钟信号,再输出信号OUT输出给功放电路,驱动扬声器,以达到发出音乐
六、软件分析
通过对8255和8253的控制字,以让8255的PA输入,PB输出,PC输出,8253选择计数器1,根据硬件的连接,再定义控制字
总程序
DATASEGMENT
DATAENDS
CODESEGMENTPUBLIC'CODE'
ASSUMECS:
CODE
my_8253_0equ400h
my_8253_1equ402h
my_8253_2equ404h
my_8253_comequ406h
my_8255_aequ200h
my_8255_bequ202h
my_8255_cequ204h
my_8255_comequ206h
ydw080h,096h,0aeh,0c5h,0d8h,0e9h,0f5h,0FFH,099H,0c5H,0aeh
mdw3816d,3610d,3413d,3215d,3039d,2865d,2703d,2551d,2409d
START:
;Writeyourcodehere
again:
moval,90H
movdx,206h
outdx,al
movdx,200h
inal,dx
TESTal,03h
jzdisp_3
testal,01h
jzdisp_1
testal,02h
jzdisp_2
testal,00h
jzjudge
jmpagain
disp_1:
xorax,ax
movbl,101B
movsi,0d
xxx:
movdx,406h
moval,36h
outdx,al
movdx,400h
movax,y[si]
outdx,al
moval,ah
outdx,al
rolbl,1
moval,bl
movdx,202h
outdx,al
movcx,00fffh
loop$
jmpjudge
yyy:
incsi
cmpsi,18
jlxxx
loopdisp_1
disp_2:
xorax,ax
movbl,01B
movsi,0d
sss:
movdx,406h
moval,76h
outdx,al
movdx,402h
movax,m[si]
outdx,al
moval,ah
outdx,al
rorbl,1
moval,bl
movdx,202h
outdx,al
movcx,0108Bh
loop$
jmpjudge
zzz:
incsi
cmpsi,18
jlsss
testal,01h
jzagain
loopdisp_2
disp_3:
movdx,406h
moval,76h
outdx,al
movdx,402h
movax,01h
outdx,al
moval,ah
outdx,al
movdx,406h
moval,36h
outdx,al
movdx,400h
movax,01h
outdx,al
moval,ah
outdx,al
moval,11111111b
movdx,202h
outdx,al
jmpagain
judge:
moval,90H
movdx,206h
outdx,al
movdx,200h
inal,dx
testal,03h
jzdisp_3
testal,01h
jzyyy
testal,02h
jzzzz
testal,00h
movdx,406h
moval,36h
outdx,al
movdx,400h
movax,1
outdx,al
moval,ah
outdx,al
movdx,406h
moval,76h
outdx,al
movdx,402h
movax,1
outdx,al
moval,ah
outdx,al
jzagain
jmpjudge
ENDLESS:
JMPENDLESS
CODEENDS
ENDSTART
七、心得体会
早在上课的时候老师就说了课程设计,开始以为时间还早,并没有提前去构思,等到要做课程设计的时候,发现自己并不知道该怎么做,然后就回顾了一下以往做的实验,再自己通过看书上的例子,和网上的例子,先一个一个单独实现,开始先单独把流水灯做了出来,然后再把声音做出来,两个虽然都单独做出来了,但是存在很多问题,开始时,灯只要仿真就全亮,并没有实现流水功能,之后进行了调试与程序的修改,最后实现了流水灯。
然后就是声音,开始时根据课本例子,但是运行时没有声音,之后检查是电路图没有画对,修改之后有声音了,但是只有一个音调,老师要求要有几个不同音调,于是就问了同学,请同学帮忙,最后有了几个不同的音调,两部分虽然可以单独实现,可是连在一起却实现不了,最后,只能请同学帮忙看一下,可是程序改了又改还是没有要的效果出来。
最后虽然没有自己做出来,而是用了同学的,但是自己也并不是直接看都不看,而是仔细的看了同学写的程序,自己认真理解了一遍,有没看懂的地方就问了同学,同学也非常耐心的跟我解答。
通过这个课程设计,它既增强了编程能力,也熟悉了对8255和8253芯片的认识,对硬件和软件结合的编程也有一点的认识,希望以后能更重视这点,以增强自己的能力。
当然从课程设计中也发现了自己好多不足之处,学习的知识记得不牢固,编程能力很薄弱,常犯一些小错误,有好多的知识并没有掌握,甚至连一点印象都没有,感觉都没学过,这也让我看到了与别的同学的差距,给自己一个警醒,促使自己去看书,去填补自己的知识
通过课程设计确实提高了自己一些能力,也学到了好多知识,更发现了自己许多的不足,知识的遗漏和缺少,希望在今后自己能自觉的学习,更加努力,缩小与其他同学的差距,让自己能真正学到知识,知道学的知识该怎么运用,让自己能够有所提高。