微机原理与接口技术基于PROTEUS实现音乐播放器的设计
- 格式:docx
- 大小:23.87 KB
- 文档页数:9
基于Proteus的微机原理与接口技术教学作者:刘彩虹唐彩霞刘子龙来源:《新校园·上旬刊》2017年第04期摘要:本文基于8086为CPU,8255为并行接口电路,分析了Proteus在仿真8086微机系统时的步骤,介绍了Proteus在“微机原理与接口技术”课程教学中的应用,并具体分析了将Proteus引入课程教学中的优点。
关键词:微机原理;接口技术;Proteus;虚拟仿真“微型计算机原理与接口技术”作为计算机专业基础课程之一,其重要性越来越突出。
“微型计算机原理与接口技术”主要内容是微型计算机的基本工作原理、系统的组成、接口技术和基本的汇编语言程序设计知识。
随着微接口技术的发展,接口已经成为直接影响计算机推广的关键。
嵌入式产品的开发与应用中的硬件方面是微机接口电路开发与应用的重要内容,因而微机接口技术是本专业大学生必须掌握的基本技能。
学生应采用理论与实践相结合的方法,在理论指导下,加强动手实验,在实践中巩固理论,进而全面掌握微机接口理论,并掌握实际应用开发能力。
一、Proteus软件介绍Proteus仿真软件是系统设计与仿真平台,它包含2个软件包,ARES是布线编辑软件包,ISIS是原理图编辑与仿真软件包。
Proteus对8086 CPU及相关接口芯片提供了支持。
电路仿真和原理图设计两个功能模块是“微型计算机原理与接口技术”教学和实验仿真中的主要内容。
Proteus软件有丰富的器件库,超过27000种元器件,它的原理图设计功能非常强。
Proteus软件具有智能化的器件搜索和连线功能,因而提高了使用效率。
Proteus软件具有完善的电路仿真功能,有很多的激励源,例如直流、正弦、指数信号以及大量的虚拟仪器。
线路上变化的信号可以用图形的方式实时显示,可以分析电路的多项指标。
二、Proteus软件在教学中的应用1.仿真方法Proteus软件运行ISIS后,进入软件的主界面。
首先要设置view图形界面的大小和system 下的颜色、捕捉对齐等项目。
一.课程设计目的1.通过D/A装换器产生模拟信号,使PC机作为简易音乐播放器。
2.了解利用数模转换器产生音乐的基本方法。
二.课程设计任务设计并实现一个键控音乐播放器。
要求:(1)自己选用合适的芯片,不少于两种。
(2)自行设计电路并使用汇编语言编写程序完成键控音乐播放器功能。
(3)该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键进行播放、退出或出错提示。
三、总体设计方案1、总体设计方案一所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。
不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。
而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8253产生各音符,用8255并行接口来控制扬声器的开关,达到播放音乐的功能。
2、总体设计方案二可以使用0832(数模转换器)来产生频率,原理图:提出这个方案是因为我想产生模拟信号,来驱动扬声器,这样产生的声音更加圆润感觉更连续,效果更好点。
我们想把一个周期的波形分成32份,然后每份给8253一个值让他转换成模拟信号,不同的频率可以用8253计数器控制,比如要产生261Hz的频率,使用1MHz的话,周期就为1/261=3.83ms,分成32份,每份间隔时间就是3.83ms/32=0.12ms,换句话说就是送计数器0的初值为1M/261/32=120次。
3、各个音符的对应频率表:音符频率/HZ 半周期/us 音符频率/HZ 半周期/us低1DO 262 1908 #4FA# 740 0676#1DO# 277 1805 中5SO 784 0638低2RE 294 1700 #5SO# 831 0602#2RE# 311 1608 中6LA 880 0568低3M 330 1516 #6LA# 932 0536低4FA 349 1433 中7SI 988 0506#4FA# 370 1350 高1DO 1046 0478低5SO 392 1276 #DO# 1109 0451#5SO# 415 1205 高2RE 1175 0426低6LA 440 1136 #2RE# 1245 0402#6LA# 466 1072 高3M 1318 0372低7SI 494 1012 高4FA 1397 0358中1DO 523 0956 #4FA# 1480 0338#1DO# 554 0903 高5SO 1568 0319中2RE 578 0842 #5S0# 1661 0292#2RE# 622 0804 高6LA 1760 0284中3M 659 0759 #6LA# 1865 0268中4FA 698 0716 高7SI 1976 0253四.部分电路设计及功能解说1、频率发生电路使用8253产生音符频率。
微机原理与接口技术课程设计报告题目名称:简单的音乐选择播放器学生姓名:学号:专业年级: 09级计算计科学与技术指导教师:时间: 2012年1月1日目录1.课程设计方案 ................................................................................. - 2 - 2.课程设计任务和技术要求 ............................................................. - 2 - 3、总体设计方案 ................................................................................. - 2 -3.1基本设计 ................................................................................. - 2 -3.2 扬声器驱动 ............................................................................ - 2 -3.3程序运行 ................................................................................. - 3 -3.3.1主要界面 ...................................................................... - 3 -4、程序设计方案 ................................................................................. - 4 -4.1数据段设计 ............................................................................. - 4 -4.1代码段设计 ............................................................................. - 4 -5. 心得体会........................................................................................... - 4 -6.主要参考文献 .................................................................................... - 5 - 附页:.................................................................................................... - 6 -1.课程设计方案本次课程设计,由于个人能力有限最终将设计改为利用汇编制作音乐选择播放器,PC机上的大多数I/O都是由主板上的8255可编程序外围接口芯片管理的。
信息科学与技术学院微机原理与接口技术课程设计报告题目名称:基于PROTEUS实现音乐播放器的设计学生姓名:王浩宇关问鼎徐然冉启幸学号: 05 51 24 78专业班级: 13 电信指导教师:刘恩博2015年 7月 9 日目录一.课程设计题目基于PROTEUS实现音乐播放器的设计二.课程设计任务及要求设计要求:1.实现播放音乐;2.实现多首音乐连续播放和选择播放;3.要求通过PROTUES完成此项功能,并完成PCB电路图。
三.总体方案与设计说明每个音符的对应频率表1 每个音符的对应频率设计说明该音乐播放器通过用8086中央处理器、74LS373地址锁存电路、74LS138译码电路、定时/计数器8253A来实现功能。
8086中央处理器输出地址码A16-A19和数据AD0-AD15,将AD0-AD7输入地址锁存器输出A0-A7,再将A0-A7通过译码器进行译码输出作为8253的片选信号,8253产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,从而设计出一个功能完整的音乐播放器。
四.硬件电路设计及描述芯片介绍(1)8086中央处理器8086中央处理器是Intel系列的16位微处理器,有16根数据线和20跟地址线。
它主要由执行部件EU(Execution Unit)和总线接口部件BIU(Bus interface Unit)两部分组成。
8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。
资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。
它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。
大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。
运算结果会储存在操作数中的一个。
为了能够简单有效地进行对8086操作,故采用最小模式进行工作。
要使8086处于最小模式,首先要将MN/MX端置为高电平。
《微处理器与接口技术课程设计》报告——简易音乐播放器设计专业:通信工程班级:1611姓名:学号:2018年7 月摘要本设计是基于AT89C51单片机的简易音乐播放器。
该音乐播放器是一个依据单片机技术原理,通过PROTEUS仿真软件对硬件电路进行仿真制作以及利用KEIL软件对音乐播放器源程序进行C怨言编译,而设计出的一个音乐播放器。
该音乐播放器通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的声音,程序通过把乐谱转化成相应的定时常熟来驱动蜂鸣器演奏音乐。
本音乐播放器共收录了3首歌曲,同时设计了LED等的变换,随着音调进行闪烁。
可以通过按键暂停和播放歌曲,并能够切换至下一个歌曲。
并能够通过LCD1602显示出歌曲的名称。
关键词:AT89C51;LCD1602;音乐播放器;按键第1章课程设计目的1.1巩固和加深对微处理器原理和接口技术知识的理解;1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;1.3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。
第2章课程设计任务与要求2.1 设计任务设计一个简单的音乐播放器,能够在系统开始模拟后自动播放音乐,并且能够在LCD屏幕上显示出正在播放的音乐的名字,LED灯随着音调的不同实现不同个数的灯亮,并且能够通过按键暂停、开始播放和切换歌曲。
2.2 设计要求1.在播放歌曲时LCD屏幕上能够正确显示出歌曲名。
2.在按下暂停按键后能够暂停播放歌曲,并且再次按下后能够继续播放歌曲。
3.在按下切换按键后能够切换歌曲,并且LCD屏幕上的歌名随之变换。
4.能够实现LED灯随着音乐音调进行相应的发光。
第3章硬件设计3.1 设计思想本系统时由按键系统,单片机系统,屏幕显示系统以及音乐播放系统组成的。
基于Proteus仿真软件的“微机原理与接口技术”实验教学的研究作者:杨杜赵文进来源:《电脑知识与技术》2012年第36期摘要:针对“微机原理与接口技术”实验教学现状中存在的问题,提出了基于Proteus仿真软件进行实验教学的教改方法。
介绍了一个实验教学实例——利用Proteus仿真软件设计和实现一个3-路抢答器。
通过该实例分析获知基于Proteus仿真在实验课程教学中的应用方法、仿真过程和优点。
关键词:微机原理与接口技术;Proteus;8255A;8253中图分类号:G642 文献标识码:A 文章编号:1009-3044(2012)36-8730-03“微机原理与接口技术”是计算机、电子信息、自动化等专业的一门专业基础课,该课程要求学员掌握微型计算机的硬件组成及使用,学会运用指令系统和汇编语言进行程序设计,熟悉各种典型的接口芯片和接口技术及其具体的应用,全面培养学员的微机软、硬件设计与应用能力,培养工程意识、工程素质、实践能力和创新能力。
该课程概念抽象,知识点多,实践性强,并具有理论与实践、硬件与软件相结合等特点。
因此教学过程中除课堂的理论学习外,还需要良好的实践性教学环节与之配合。
优质实验课不仅可以提高学员的学习兴趣,进一步加深对微机结构、汇编语言等知识的理解,还使学员对计算机内部原理和一些芯片的工作流程有了更直接的感性认识。
实验教学在对学员动手能力、创新能力和综合素质的培养方面起着理论教学不可替代的作用。
该文论述了采用Proteus仿真技术进行微机原理实验教学的教改新思路,并结合实例介绍了具体实验方法。
1 微机原理实验教学现状分析“微机原理与接口技术”实验主要分单板机操作、汇编语言程序设计练习和接口电路实验三大部分。
其中接口电路实验主要有:存储器读写实验、基本输入输出实验、中断实验、8255A 芯片实验、8253芯片实验、串行接口实验、DMA实验、D/A和A/D转换实验等[1]。
目前接口电路实验主要是通过硬件实验箱如TPC-H的操作来完成。
实验报告(2016 / 2017 学年第二学期)课程名称微机原理与接口技术实验名称音乐播放程序设计实验时间2017 年 6 月13 日学院电子信息学院指导教师严华学生学号学院(系) 电子信息学院专业光电信息科学与工程1、实验目的通过编写程序控制8253和8255A芯片,实现一个简单的音乐播放程序。
2、实验原理我们在这次课设选择了音乐程序设计,音乐程序设计可以实现至少两首歌的可选择播放。
对于歌曲的播放我们采用的是计数器/定时器8253芯片,而对于选择哪首歌播放则是利用可编程并行接口8255A芯片来实现的。
基于8253定时计数接口芯片的工作原理,本次课设实现了音乐演奏系统程序设计。
当运行程序时,扬声器便发出优美的音乐。
首先要解决发声并发出相应音符声音的问题,由8253计数器0在初始化时用来产生一定频率的方波来使扬声器发声,再根据不同音符对应的频率写入计数初值发出相应的音符声。
对8255芯片PA0和PA1口的置0和1来控制扬声器的开关。
其次实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制音符发音的长短,实现连续发声把[SI]是否为0作为循环的条件在每一次扬声器发出一个相应音符之后做无条件转移,从而使扬声器连续发声。
3、实验容A.实验环境搭建B. 编程由于选取的乐曲音符音调幅度较大,故利用表格,算出其初值计数初值= 1193180 (8253输入频率)/ 音符频率以下为程序代码#include <dos.h>#include <stdio.h>#define INIT_T2 0xb6#define PORT_T2 0x42#define CTRL_T 0x43#define PORT_PB 0x61#define DDO 4554#define DRUI 4058#define DMI 3616#define DFA 3419#define DSO 3044#define DLA 2712#define DXI 2415#define DO 2281#define RUI 2033#define MI 1811#define FA 1709#define SO 1522#define LA 1356#define XI 1208#define GDO 1140#define GRUI 1015#define GMI 905#define GFA 854#define GSO 761#define GLA 678#define GXI 604void sing(unsigned int frq,unsigned int ms) {unsigned char value;union{unsigned int divisor;unsigned char d[2];}tone;if (frq!=0){tone.divisor=frq;outportb(CTRL_T,INIT_T2); outportb(PORT_T2,tone.d[0]); outportb(PORT_T2,tone.d[1]);value=inportb(PORT_PB); outportb(PORT_PB,(value|0x03));}delay(ms);outportb(PORT_PB,(value|0xfc)); }void main(){sing(DSO,400);sing(DLA,400);sing(DO,400);sing(RUI,400);sing(MI,600);sing(RUI,200);sing(RUI,400);sing(DO,400);sing(DLA,1600);sing(0,1600);sing(DSO,400);sing(DLA,400);sing(DO,400);sing(RUI,400);sing(MI,400);sing(SO,800);sing(RUI,2000);sing(0,2000);sing(RUI,800);sing(DSO,400);sing(RUI,400);sing(RUI,400);sing(MI,400);sing(RUI,400);sing(DO,1600);sing(0,2000);sing(RUI,400);sing(RUI,400);sing(RUI,400);sing(DSO,400);sing(DLA,400);sing(DO,400);sing(DLA,2000);sing(0,2000);sing(FA,800);sing(FA,400);sing(MI,400);sing(RUI,400);sing(DO,400);sing(0,2000); sing(RUI,400); sing(RUI,400); sing(RUI,400); sing(RUI,400); sing(DSO,400); sing(DLA,400); sing(DO,400); sing(DLA,2000); sing(0,2000); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(LA,2000); sing(0,2000); sing(LA,400); sing(LA,400); sing(LA,400); sing(GDO,400); sing(LA,400); sing(LA,400); sing(SO,2000); sing(0,2000); sing(SO,400); sing(SO,400); sing(SO,400); sing(SO,400); sing(LA,400); sing(GDO,400); sing(LA,2000); sing(0,800); sing(SO,400); sing(LA,400); sing(GRUI,400); sing(GMI,2800); sing(GRUI,3200); sing(0,1600); sing(SO,400); sing(LA,400); sing(GDO,400); sing(GRUI,400); sing(GMI,600); sing(GRUI,200); sing(GRUI,400); sing(GDO,400); sing(LA,3200); sing(SO,400); sing(LA,400);sing(GRUI,400); sing(GMI,600); sing(GSO,600); sing(GRUI,3600); sing(0,400); sing(GRUI,400); sing(GRUI,400); sing(SO,400); sing(GRUI,400); sing(GRUI,400); sing(GMI,400); sing(GRUI,400); sing(GDO,3200); sing(0,400); sing(GRUI,400); sing(GRUI,400); sing(GRUI,400); sing(SO,400); sing(LA,400); sing(GDO,400); sing(LA,3600); sing(0,1600); sing(LA,3200); sing(0,400); sing(GFA,400); sing(GFA,400); sing(GFA,400); sing(GMI,400); sing(GRUI,400); sing(GDO,400); sing(GMI,400); sing(GRUI,1600); sing(0,1600); sing(0,400); sing(GFA,400); sing(GFA,400); sing(GLA,400); sing(GSO,400); sing(GFA,400); sing(GMI,400); sing(GRUI,2000); sing(0,2000); sing(GRUI,400); sing(GRUI,400); sing(SO,400); sing(GRUI,400); sing(GRUI,400); sing(GMI,400); sing(GRUI,400); sing(GDO,1600); sing(0,2000);sing(GRUI,400);sing(GRUI,400);sing(SO,400);sing(LA,400);sing(GDO,400);sing(LA,3600);}运行结果如下4、实验中遇到的问题一开始程序中的#define DDO 4554语句为#define 1DO 4554,程序运行时显示编译出错,我意识到1DO有可能不符合宏名定义要求,通过查阅有关资料后发现,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线,随后修改了程序。
Proteus在《微机原理与接口技术》教学中的应用DOI:10.11907/rjdk.172731Abstract:Aiming at the problems in traditional methods of theoretical and experimental teaching, we introduce Proteus as an auxiliary tool into the course of Microcomputer Principle and Interface Technology. The reform and advantages brought by Proteus are analyzed. Our exploration in the teaching methods of theoretical curriculum, the design of experiment items, and the examination method of experimental course based on Proteus is presented. Some attentions that should be paid on the utilization of Proteus in teaching are also pointed out. Our practice shows that the teaching effect and students’ comprehensive design ability have been improved to some extent after we introduced Proteus into the curriculum.Key Words:Proteus; simulation software; theoretical teaching;experimental teaching0 引言Proteus是英国Labcenter Electronics公司开发的EDA工具软件,集电路图设计、制版及仿真等多种功能于一身,不仅能对电工、电子电路进行设计与分析,还能对微处理器进行设计和仿真[1],在单片机教学中应用非常广泛[2-4]。
HEFEI UNIVERSITYproteus仿真设计报告作品名称:音乐播放器申报者信息:队员1:队员2:一.引言目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
在音乐播放方面,利用单片机储存音乐,控制播放也越来越广泛。
为了更好的掌握单片机的应用,用单片机设计一个音乐播放器。
这样可以有效的将理论知识与实践相结合。
二.设计要求以单片机为核心,设计一个数字音乐盒:利用I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(不少于30s )。
采用LCD 显示信息。
歌曲的存储选用外部存储器EEPROM三. 硬件电路设计3.1 总体设计方案本系统以89C51单片机为控制核心,以按键开关作为控制元件,以扬声器作为执行器件,再结合6MHZ 的晶振电路,共同构成音乐播放器系统。
图1 系统硬件组成3.2 单元电路设计 3.2.1 单片机简介89C51单片机拥有4KB 的片内ROM 和128B 的片内RAM 。
ROM 和RAM 的片外寻电源电路AT8951 单片机12MHZ 晶振电路显示电路复位电路发声电路址范围都为64KB 。
单片机拥有32个并行口和1个串行口。
在89C51单片机中存在5个中断源,其中有两个外部中断源、两个内部中断源和一个串行中断源。
XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51图2 89C51单片机3.2.2 显示电路显示电路是一个1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
一、课程设计的任务和目的课程设计题目:音乐播放器课程设计的实现目的:本课程设计主要是通过汇编语言用软件编程的方法实现简单的音乐播放功能。
通过在《微机原理与接口技术》课程上所学的汇编知识和8253/8254芯片相关知识,来完成本课程设计;用汇编程序完成键控音乐播放器的,用8253/8254定时器来产生声音。
该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键进行播放、退出或出错提示。
通过课程设计环节来加强对所学知识的理解和应用。
二、课程设计相关知识2.1 定时/计数器8253/58254在微机及控制系统中,经常要用到定时信号。
如系统的日历时钟,动态存储器刷新。
对外部执行机构控制时也需要定时中断、定时检测、定时查询等。
定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使CPU 执行延迟子程序的时间就是定时时间。
缺点:执行延迟时,CPU 一直被占用,降低了CPU 的效率。
硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。
突出优点为计数时不占用CPU 时间,如利用定时器/计数器产生中断信号,可建立多作业环境,提高了CPU 效率。
作为定时器可用8253或者8254,二者功能基本相同,知识工作的最高频率不一样。
本实验就采用了8254,其主要功能为:(1)每片上有3 个独立的16 位的减计数器通道。
(2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。
(3)每个通道都有6 种工作方式,都可以通过程序设置或改变。
(4)每个计数器的速率可高达10MHz。
主要部分有:数据总线缓冲器、读/写控制逻辑、控制字寄存器、计数通道0#、1#、2#:内部结构如下图:8254内部结构2.2 8254外部引脚8254芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。
8254芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:8254的引脚(1)D7~D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。
信息科学与技术学院微机原理与接口技术课程设计报告题目名称:基于PROTEUS实现音乐播放器的设计学生姓名:王浩宇关问鼎徐然冉启幸学号:专业班级: 13 电信指导教师:刘恩博2015年 7月 9 日目录一.课程设计题目基于PROTEUS实现音乐播放器的设计二.课程设计任务及要求设计要求:1.实现播放音乐;2.实现多首音乐连续播放和选择播放;3.要求通过PROTUES完成此项功能,并完成PCB电路图。
三.总体方案与设计说明每个音符的对应频率表1 每个音符的对应频率设计说明该音乐播放器通过用8086中央处理器、74LS373地址锁存电路、74LS138译码电路、定时/计数器8253A来实现功能。
8086中央处理器输出地址码A16-A19和数据AD0-AD15,将AD0-AD7输入地址锁存器输出A0-A7,再将A0-A7通过译码器进行译码输出作为8253的片选信号,8253产生不同频率的脉冲来模拟音符,通过时间的长短来模拟音长,从而设计出一个功能完整的音乐播放器。
四.硬件电路设计及描述芯片介绍(1)8086中央处理器8086中央处理器是Intel系列的16位微处理器,有16根数据线和20跟地址线。
它主要由执行部件EU(Execution Unit)和总线接口部件BIU(Bus interface Unit)两部分组成。
8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。
资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。
它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。
大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。
运算结果会储存在操作数中的一个。
为了能够简单有效地进行对8086操作,故采用最小模式进行工作。
要使8086处于最小模式,首先要将MN/MX端置为高电平。
(2)74LS373地址锁存电路74LS373为D锁存器,AD0-AD7为输入数据,输出Ao0-Ao7。
74LS373 的输出端 O0~O7 可直接与总线相连。
当三态允许控制端 OE 为低电平时,O0-O7 为正常逻辑状态,可用来驱动负载或总线。
当 OE 为高电平时,O0-O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端 LE 为高电平时,O 随数据 D 而变。
当 LE 为低电平时,O 被锁存在已建立的数据电平。
引出端符号:D0~D7 数据输入端OE 三态允许控制端(低电平有效)LE 锁存允许端O0-O7 输出端表2 74LS373真值表(3) 74LS138译码电路A0-A7通过译码电路输出作为8253的片选信号。
其工作原理如下:a.当一个选通端E1为高电平,另两个选通端E2和E3为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。
比如:A0A1A2=110时,则Y6输出端输出低电平信号。
b.可用在8086的译码电路中,扩展内存。
在该电路中,除了A2A1其他几位是11110**0的时候才能给CS送一个有效电平,而当A1A2=00,01,10,11之时即为F0H,F2H,F4H,F6H分别对应的是通道0,1,2,3的运行。
(4) 定时/计数器8253A主要功能:a.每片上有3 个独立的16 位的减计数器通道。
b.对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。
c.每个通道都有6 种工作方式,都可以通过程序设置或改变。
8253的内部结构如图所示,它主要包括以下几个主要部分:图 8253的内部结构a.数据总线缓冲器实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包括某时刻的实时计数值。
b..读/写控制逻辑控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。
c.控制字寄存器在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。
d.计数通道0#、1#、2#:这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一个16位的计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1计数器变化。
音乐播放器工作于方式3:方波发生器当装入初值后,在GATE上升沿启动计数,OUT 输出高电平;当计数完成一半时,OUT输出低电平。
计数过程:当把方式3的控制字写入控制字寄存器后,输出端OUT变成高电平,作为初始电平。
再将计数初值写入计数初值寄存器CR中,再经过一个时钟周期,计数初值被移入计数执行单元CE中,从下一个时钟脉冲开始作减1 计数,方式3的计数过程分为两种情况:第一种情况:计数初值为偶数,当作减1计数减到N/2时,输出端OUT端变成低电平,减到0时,输出端OUT变成高电平,并重新从初值开始新的计数过程。
若GATE为高电平,则一直重复同样的计数过程。
可见,输出端OUT输出连续的方波,故称方波发生器。
第二种情况:计数初值为奇数,当作减1计数减到(N+1)/2以后,输出端OUT 变成低电平,减到0时,输出端OUT又变成高电平。
并重新从初值开始新的计数过程。
这时输出端的波形为连续的近似方波。
门控信号的影响工作在方式3时,门控信号GATE的功能与工作方式2一样,即GATE 为高电平时,允许计数;GATE为低电平时停止计数。
GATE引脚上的信号从低电平跳到高电平时,将会重新把计数初值寄存器CR中的内容移入计数执行单元CE中,并以新装入的值重新开始计数。
五.软件设计流程(模块流程图)及描述通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。
便可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段延时程序。
SI指向曲中的频率,BP指向曲中的时间节拍。
从SI的指向的音节表中取一个频率,只要不是0,即有效就再读取时间,然后转到start子程序,计算计数初值送入计数器,产生各种频率信号,再送至扬声器。
程序流程图硬件电路图图1 电路仿真图六.源程序代码(要有注释)code segmentassume cs:code;;;;;;;;;;;;;;;;;;;音乐文件;;;;;;;;;;;;;;;;;;;;;;;;;;;;;freq dw 2 dup(262,294,330,262)dw 2 dup(330,349,392)dw 2 dup(392,440,392,349,330,262)dw 2 dup(294,196,262),0 ;歌曲频率time dw 8 dup (10000)dw 2 dup (10000,10000,20000)dw 12 dup (9000)dw 6 dup(18000) ;歌曲时间节拍值dw 10000reg dw 3;;;;;;;;;;;;;;;;;;;;;;计数器3遍;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; start1:mov ch,2jmp startstart:dec reg ;减一计数cmp reg,0je endd ;循环三次结束lea si,freqlea bp,timelea sp,regmov di,cs:[si];频率mov bx,[bp]jmp musicmusic:;;;;;;;;;;;;;;;;;;;;;;送控制字;;;;;;;;;;;;;;;;;;;;;;;;;;;mov dx,0F6h ;控制端口mov ;控制字out dx,al;;;;;;;;;;;;;;;频率计算并送8253;;;;;;;;;;;;;;mov dx,00h ;设置被除数mov ax,5000div dimov dx,0F4hout dx,al;;;;;;;;;;;;;;;;;;;;;;mov ax,1 ;频率out dx,axmov bx,20000 ; 时间wait1: mov cx,6 ;设循环次数6delay1: loop delay1dec bx ;循环持续bx次,即传进来的节拍时间jnz wait1;;;;;;;;;;;;;;;;;;定位到下一个音符;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;dec bxjnz wait1add si,2add bp,2mov di,cs:[si]cmp di,0je startmov bx,[bp]jmp music;;;;;;;;;;;;;;;;;;程序结束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;endd:mov dx,0F6hmovout dx,alcode endsend start七.课程设计体会经过一个星期的课程设计,完成任务的效果和预想中有很大的出入,虽然中间遇到了一些问题,但经过我们的努力,还是把问题给解决了。
这次课程设计对我综合运用所学知识的能力的提高有不小的帮助,之前做的实验都是很简单的编程,跟硬件结合也没有这么复杂,实现的功能都比较简单,可是这次要实现的功能相对来说比较复杂,要求掌握的知识比较全面。
我们第一次做硬件设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说8255A芯片的使用,PROTUES软件的应用技巧,对汇编语言掌握得不好……通过这次课程设计之后,我们把以前所学过的知识又重新温故了一遍,起到了课程设计的预期效果。
参考文献[1] 史嘉权微型计算机及应用第四版清华大学出版社,2008[2] 沈美明IBM-PC汇编语言程序设计第二版清华大学出版社,2001[3] 付家才微型计算机及其接口技术指导与题典[M]化学工业出版社,2004。