计算机接口课设报告.doc_第1页
计算机接口课设报告.doc_第2页
计算机接口课设报告.doc_第3页
计算机接口课设报告.doc_第4页
计算机接口课设报告.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档简易电子琴一、设计目标运用本学期学过的接口芯片,设计一个8086微机应用系统,要求系统中除CPU以外包含三个以上芯片。具体题目为简易电子琴,用小键盘演奏简单乐曲。即点击对应按键,可发出不同的音阶,从而演奏音乐。二、设计所用仪器和器件1.外设:按键扬声器示波器2.芯片:8086芯片 1 8253芯片 1 8255芯片 174HC373芯片274HC138芯片 1三、设计内容简易电子琴,用小键盘演奏简单乐曲。四、设计过程1.设计说明芯片对应的功能为:8255A:作为键盘接口、扬声器接口、8253芯片接口。 利用8255控制扬声器的开关状态,通过按键模拟电子琴的按键,接受按键的输入,设置不同的计数值,输出到8253中,给8253芯片设置不同的计数值。8253:使用其分频功能,产生乐音。接受不同的计数值,产生不同频率的波形,从而使得扬声器产生不同的频率。此处用到其方式2。2个74HC373芯片,1个74HC138芯片,分别作为锁存器、译码器。它们是IO端口译码电路的重要组成成分。2.设计方案(1)逻辑框图44按键8253芯片8255芯片示波器 扬声器(2)程序流程图开始芯片初始化有无按键按下?N Y读取按键取出音阶值设置8255口输出开扬声器延时关扬声器3.设计系统的硬件电路图硬件图设计与连接如下图4.代码设计#define TCONTRO 0A006H#define TCON0 0A000H#define TCON1 0A002H#define TCON2 0A004H#define IOCON8006H#define IOA 8000H#define IOB 8002H#define IOC 8004H/#define feq 1000000/以下是C调低音的音频宏定义#define l_dao 382 /将“l_dao”宏定义为低音“1”的频率262Hz#define l_re 350 /将“l_re”宏定义为低音“2”的频率286Hz#define l_mi 322 /将“l_mi”宏定义为低音“3”的频率311Hz#define l_fa 287 /将“l_fa”宏定义为低音“4”的频率349Hz#define l_sao 254 /将“l_sao”宏定义为低音“5”的频率392Hz#define l_la 227 /将“l_a”宏定义为低音“6”的频率440Hz#define l_xi 202 /将“l_xi”宏定义为低音“7”的频率494Hz/以下是C调中音的音频宏定义#define dao 191 /将“dao”宏定义为中音“1”的频率523Hz#define re 170 /将“re”宏定义为中音“2”的频率587Hz#define mi 152 /将“mi”宏定义为中音“3”的频率659Hz#define fa 143 /将“fa”宏定义为中音“4”的频率698Hz#define sao 128 /将“sao”宏定义为中音“5”的频率784Hz#define la 114 /将“la”宏定义为中音“6”的频率880Hz#define xi 101 /将“xi”宏定义为中音“7”的频率523H /以下是C调高音的音频宏定义#define h_dao 96 /将“h_dao”宏定义为高音“1”的频率1046Hz#define h_re 85 /将“h_re”宏定义为高音“2”的频率1174Hz#define h_mi 76 /将“h_mi”宏定义为高音“3”的频率1318Hz#define h_fa 72 /将“h_fa”宏定义为高音“4”的频率1396Hz#define h_sao 64 /将“h_sao”宏定义为高音“5”的频率1567Hz#define h_la 57 /将“h_la”宏定义为高音“6”的频率1760Hz#define h_xi 51 /将“h_xi”宏定义为高音“7”的频率1975Hzvoid outp(unsigned int addr, char data) / Write a byte to the specified I/O port _asm mov dx, addr mov al, data out dx, al char inp(unsigned int addr) / Read a byte from the specified I/O port char result; _asm mov dx, addr in al, dx mov result, al return result;void delay() unsigned char i,j; for(i=0;i250;i+) for(j=0;j50;j+) ;unsigned char table16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/按键对应的频率unsigned int cf=l_dao,l_re,l_mi,l_fa,l_sao,l_la,l_xi,duo,re,mi,fa,sao,la,xi,h_dao,h_re,h_mi,h_fa,h_sao,h_la,h_xi;void display(int i) outp(IOA,tablei); int a = cfi; outp(TCONTRO,0x36); int ch=cfi/256; int cl=cfi%256; outp(TCON0,cl); outp(TCON0,ch); int j; for(j=0;j4;j+)/控制节拍数 delay();/延时1个节拍单位void main(void) unsigned char i,j,k,tmp; unsigned int count; /储存定时器的定时常数 unsigned int ch, cl; /储存定时器的定时常数 / Write your code here outp(TCONTRO,0x36); /计数器0,只写计算值低8位,方式3,二进制计数 outp(IOCON,0x88); outp(IOA,0xFF); while (1) j=0x0e; tmp = 0; for(k=0;k4;k+) j-=k; if(j=0x08) j=0x07; outp(IOC,j); i=inp(IOC);i=inp(IOC);i=inp(IOC);/重复几次 i|=0x0f; switch(i)/键盘演奏case 0xef:display(4*k);break;case 0xdf:display(4*k+1);break;case 0xbf:display(4*k+2);break;case 0x7f:disp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论