微机原理设计报告书

更新时间:2023-03-08 05:13:58 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

南通大学计算机科学与技术学院

微机原理课程设计

报 告 书

课 题 名 电子钢琴 班 级__________ 建电112 ___________ 姓 名____周莹_____学号__1112062032 _ 姓 名____沈静_____学号__1112062033__ 指导教师 顾 晖 日 期 2013.2.25 ~ 2013.3.1

目录

1 设计目的.................................1

2 设计内容.................................1

3 设计要求.................................1

4 设计原理与硬件电路........................1 5 程序流程图................................3

6 程序代码...................................4

7 程序及硬件系统调试情况.....................8

8 设计总结与体会..............................8

9 参考文献....................................9

1、设计目的

微机原理及接口技术课程设计是对所学课程内容的全面、系统的总结、巩固和提高的一项课程实践活动。根据汇编语言的特点,选择相应的课题,在老师的指导下,有学生独立完成。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用。通过课程设计,一方面提高运用汇编语言变成解决实际问题的能力,另一方面使同学们更深入的了解计算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基础。

2、设计内容

利用8086中的8255和8253芯片设计一个程序及硬件原理图,通过Proteus ISIS软件进行编辑运行,使按下特定的按钮后,使扬声器发出duo,rai,mi,fa,so,la,si,do的声音

3、设计要求

将键盘变成钢琴键盘,选择键盘上7个按键,作为7个音阶。按下这些键能使扬声器发出不同的音调,控制扬声器的开关。

4、设计原理及硬件图

电子琴的设计实际上就是要设计一个程序,能够通过该程序控制PC机内扬声器

的发声规律,按下相应的按键后,扬声器能发出指定频率的声音。PC机内的扬声器是通过并行接口芯片8255和定时芯片8253来控制发音的,其电路连接方式如下图所示。

8255A PB PA1 PA0 10kHZ

CLK0 8253 GATE0 OUT0 & 扬声器 通过控制PB端口从而控制按键的选择与开关,扬声器是由8253通道0产生的方波信号

1

和8255的PA1相与后驱动发声的,且通道0的门信号由8255的PB0提供,要想让扬声器发声,PA0和PA1必须同时为高电平,因此,可以通过对8255的PA0和PA1的设置来控制扬声器的开通和关断,而其发音频率可以通过对8253通道0的计数初值的设置来控制。所设计程序的任务就是要通过对按键的判断来设置8255的PA0和PA1输出电平的高低,以及8253通道2计数初值的设置。计数初值N=时钟频率/音阶频率.即计数初值=10000/各音阶的频率

各音符频率及对应的计数初值表

音符 频率 计数初值 1 263 2 294 3 333 30 4 357 28 5 400 25 6 454 22 7 500 20 8 526 19 38 34

硬件图

AD[0..15]AD0AD1AD2AD3AD4AD5AD6AD7347813141718111U6D0D1D2D3D4D5D6D7CLKMR74273AD[16..19]25342726322928A131A142A1513Q0Q1Q2Q3Q4Q5Q6Q7256912151619A8A9A10A11A12A13A14A15Q0Q1Q2Q3Q4Q5Q6Q7256912151619A0A1A2A3A4A5A6A7A9A10A11A12ADR[0..19]23222120U5ABCDE1E2012345678910111213141512345678910111314151617IO0IO1IO2IO3IO4IO5AD[0..7]IO6IO7IO8IO9IO10IO11IO12IO13IO14RDIO15WRA1A2SW9SW-SPDT-MOMSW8R110kR210kU3M/IOU4AD0AD1AD2AD3AD4AD5AD6AD7343332313029282753698356D0D1D2D3D4D5D6D7RDWRA0A1RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC78255ATRACE=143214039383718192021222324251415161713121110SW-SPDT-MOMSW11819R310kNOTU121222418313023173319RESETAD[0..15]READYA[16..19]INTA/QS1INTRALE/QS0HOLD/GT1BHEHLDA/GT0DT/R/S1TESTDEN/S2NMIRDMN/MXWR/LOCKCLKM/IO/S08086LOAD_SEG=0x0800U2:A12SW-SPDT-MOMSW2R410kU8AD83AD94AD107AD118AD1213AD1314AD1417AD1518111U7D0D1D2D3D4D5D6D7CLKMR74273SW3SW4SW5SW-SPDT-MOMR510k742774154SW-SPDT-MOMR610kNOTRDWRM/IOSW-SPDT-MOMR710kIO1SW-SPDT-MOMSW6R810kSW-SPDT-MOMAD[16..19]U10AD16AD17AD18AD19347813141718111D0D1D2D3D4D5D6D7CLKMR74273Q0Q1Q2Q3Q4Q5Q6Q7256912151619A16A17A18A19BHEU11LS1AND_2SOUNDERU9(CLK0)U9AD[0..7]AD0AD1AD2AD3AD4AD5AD6AD7876543212223192021D0D1D2D3D4D5D6D7RDWRA0A1CS8253ACLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT291110151413181617RDWRA1A2IO2

2

5、设计流程图

开始

8255初始化

控制PB端口

8253初始化

调用弹奏子程序

控制PA端口

Y PA1=0

N

结束

3 2

6、程序代码

code segment assume cs:code

start:mov al,82h ;初始化8255 mov dx,206h out dx,al

r:mov al,0 mov dx,202h in al,dx cmp al,1h jz d1 cmp al,2h jz d2 cmp al,4h jz d3 cmp al,8h jz d4 cmp al,10h jz d5 cmp al,20h jz d6 cmp al,40h jz d7 cmp al,80h jz d8 jmp r

d1:mov al,36h

;控制PB端口,从而确定闭合哪个按钮;8253初始化

4

mov dx,406h out dx,al

mov ax,38 ;根据各音调频率 ,设置计数初值 mov dx,400h out dx,al mov al,ah out dx,al jmp play d2:mov al,36h mov dx,406h out dx,al mov ax,34 mov dx,400h out dx,al mov al,ah out dx,al jmp play d3:mov al,36h mov dx,406h out dx,al mov ax,30 mov dx,400h out dx,al mov al,ah out dx,al jmp play d4:mov al,36h mov dx,406h out dx,al mov ax,28

5

mov dx,400h out dx,al mov al,ah out dx,al jmp play d5:mov al,36h mov dx,406h out dx,al mov ax,25 mov dx,400h out dx,al mov al,ah out dx,al jmp play d6:mov al,36h mov dx,406h out dx,al mov ax,22 mov dx,400h out dx,al mov al,ah out dx,al jmp play d7:mov al,36h mov dx,406h out dx,al mov ax,20 mov dx,400h out dx,al mov al,ah

6

out dx,al jmp play d8:mov al,36h mov dx,406h out dx,al mov ax,19 mov dx,400h out dx,al mov al,ah out dx,al jmp play

play:mov dx,206h ;初始化8255 mov al,82h out dx,al mov dx,200h mov al,3 out dx,al mov cx,3fffh

l1:loop l1

mov al,0 ;通过设置PA端口控制扬声器开关 mov dx,200h out dx,al jmp r code ends end start

7、程序及系统运行调试情况

1) 调试过程中遇到的问题及解决方法

问题 解决方法 7

调试程序时显示路径错误 将masm文件夹放到指定盘中 或者将masm32中的路径改为对应的盘 检查程序的输入法,拼写,可行性等几方面的问题 检查连线情况 程序有错误 开关按钮无法按下

2) 调试结果

戴上耳机运行,按下开关0,1,2,3,4,5,6,7发出duo,rai,mi,fa,so,la,si,do的声音

8、设计总结与体会

通过这次课程设计,我从中学到了许多从普通的课堂上学不到的东西,锻炼了自己编程的能力和团结合作的能力,经过我们小组同学的共同努力以及参考查阅相关书籍及内容,最后程序运行时能够实现目标,我感到很有成就感,最重要的是加深了我对课本理论知识的理解。 微机原理的接口与设计这门课程刚刚结束,但是由于以前我们实验课不多,所以这次试验刚开始时最大的感觉就是以前学过的东西很难一下子拿出来应用。

当刚看到这个课设题目时,我感到无从下手,从理论课上只是了解了CPU的结构和工作原理,以及几个接口芯片的工作原理,还有汇编语言的一些基本指令。但我们没有被吓到,通过查阅资料和理性分析,电子琴的设计是由接口芯片8255和8253共同控制的,8255的PA0作为8253通道0的门信号,而8255的PA1和8253通道0的输出相与后的信号作为扬声器的驱动信号,了解了其内部接线方式后,思路也就有了,要想让扬声器发声,8255的PA0和PA1必须同时为高电平,其中之一为低电平时,扬声器就不能发声,而发声的音调则可通过改变8253的计数初值来实现,通过8255的PB口控制按键的开关。

接下来我就开始编写实现指定功能的程序了,首先是最简单的弹奏功能,通过对按键的判断来发出相应频率的声音,因为要判断按键,所以很自然地就想到了CMP指令,在计算计数初值时,因为要用到相应音符的频率,所以需要将按键转换为音符的频率,然后编写播放功能。

接下来连硬件图成了让我们很苦恼的事,不过有了正确地程序,大家不断尝试与思考,最终皇天不负有心人,通过一次一次的失败,一次一次的坚持,最终获得了成功。

8

总之,这次课程设计让我意识到我们虽然完成了书本知识的学习,但是我们能够真正运用的东西太少了,所以这次的课程设计提供给我们这个绝好的机会,让我们能得到学以致用的机会。

这次课程设计让我学到了许多从课本上学不到的知识,加深了对理论知识的理解,激发了我对汇编语言的兴趣。这次课程设计把这些指令应用到了实际中来,加深了对各种指令功能的理解,最后功能实现时,感到很有成就感,觉得汇编语言很神奇,激发了我对它的兴趣。最后也让我体会到什么叫团结就是力量。我希望以后能有更多这样的机会让我们收获知识,增长能力,学会坚持。

9、参考文献

[1]仇玉章、冯一兵主编《微机算机技术――实验与指导》.清华大学出版社. [2]顾晖 《微机原理与接口技术》 电子工业出版社

9

总之,这次课程设计让我意识到我们虽然完成了书本知识的学习,但是我们能够真正运用的东西太少了,所以这次的课程设计提供给我们这个绝好的机会,让我们能得到学以致用的机会。

这次课程设计让我学到了许多从课本上学不到的知识,加深了对理论知识的理解,激发了我对汇编语言的兴趣。这次课程设计把这些指令应用到了实际中来,加深了对各种指令功能的理解,最后功能实现时,感到很有成就感,觉得汇编语言很神奇,激发了我对它的兴趣。最后也让我体会到什么叫团结就是力量。我希望以后能有更多这样的机会让我们收获知识,增长能力,学会坚持。

9、参考文献

[1]仇玉章、冯一兵主编《微机算机技术――实验与指导》.清华大学出版社. [2]顾晖 《微机原理与接口技术》 电子工业出版社

9

本文来源:https://www.bwwdw.com/article/g6b.html

Top