南通大学计算机科学与技术学院
微机原理课程设计
报 告 书
课 题 名 电子钢琴 班 级__________ 建电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